98916b866581853999b9f2744d26118291a18fa4
[manu/RT-Extension-WatchedQueues.git] / inc / Module / Install / Win32.pm
1 package Module::Install::Win32;
2
3 use strict;
4 use Module::Install::Base;
5
6 use vars qw{$VERSION @ISA $ISCORE};
7 BEGIN {
8         $VERSION = '0.72';
9         @ISA     = qw{Module::Install::Base};
10         $ISCORE  = 1;
11 }
12
13 # determine if the user needs nmake, and download it if needed
14 sub check_nmake {
15         my $self = shift;
16         $self->load('can_run');
17         $self->load('get_file');
18
19         require Config;
20         return unless (
21                 $^O eq 'MSWin32'                     and
22                 $Config::Config{make}                and
23                 $Config::Config{make} =~ /^nmake\b/i and
24                 ! $self->can_run('nmake')
25         );
26
27         print "The required 'nmake' executable not found, fetching it...\n";
28
29         require File::Basename;
30         my $rv = $self->get_file(
31                 url       => 'http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe',
32                 ftp_url   => 'ftp://ftp.microsoft.com/Softlib/MSLFILES/Nmake15.exe',
33                 local_dir => File::Basename::dirname($^X),
34                 size      => 51928,
35                 run       => 'Nmake15.exe /o > nul',
36                 check_for => 'Nmake.exe',
37                 remove    => 1,
38         );
39
40         die <<'END_MESSAGE' unless $rv;
41
42 -------------------------------------------------------------------------------
43
44 Since you are using Microsoft Windows, you will need the 'nmake' utility
45 before installation. It's available at:
46
47   http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe
48       or
49   ftp://ftp.microsoft.com/Softlib/MSLFILES/Nmake15.exe
50
51 Please download the file manually, save it to a directory in %PATH% (e.g.
52 C:\WINDOWS\COMMAND\), then launch the MS-DOS command line shell, "cd" to
53 that directory, and run "Nmake15.exe" from there; that will create the
54 'nmake.exe' file needed by this module.
55
56 You may then resume the installation process described in README.
57
58 -------------------------------------------------------------------------------
59 END_MESSAGE
60
61 }
62
63 1;