1use ExtUtils::MakeMaker; 2 3create_constants(); # Make a module 4 5# See lib/ExtUtils/MakeMaker.pm for details of how to influence 6# the contents of the Makefile that is written. 7WriteMakefile( 8 'NAME' => 'OS2::Process', 9 VERSION_FROM=> 'Process.pm', 10 MAN3PODS => {}, # Pods will be built by installman. 11 'LIBS' => [''], # e.g., '-lm' 12 'DEFINE' => '', # e.g., '-DHAVE_SOMETHING' 13 'INC' => '', # e.g., '-I/usr/include/other' 14 IMPORTS => { _16_DosSmSetTitle => 'sesmgr.DOSSMSETTITLE', 15 # _16_Win16SetTitle => 'pmshapi.93', 16 }, 17); 18 19sub create_constants { 20 return if -d 'Process_constants'; 21 my $src_dir; 22 my @try = qw(.. ../.. ../../.. ../../../..); 23 for (@try) { 24 $src_dir = $_, last if -d "$_/utils" and -r "$_/utils/h2xs"; 25 } 26 warn("Can't find \$PERL_SRC/utils/h2xs in @try, falling back to no constants"), 27 return unless defined $src_dir; 28 # Can't name it *::Constants, otherwise constants.xs would overwrite it... 29 # This produces warnings from PSZ-conversion on WS_* constants. 30 system $^X, "-I$src_dir/lib", "$src_dir/utils/h2xs", '-fn', 'OS2::Process::Const', 31 '--skip-exporter', '--skip-autoloader', # too large memory overhead 32 '--skip-strict', '--skip-warnings', # likewise 33 '--skip-ppport', # will not work without dynaloading. 34 # Most useful for OS2::Process: 35 '-M^(HWND|WM|SC|SWP|WC|PROG|QW|EDI|WS|QWS|QWP|QWL|FF|FI|LS|FS|FCF|BS|MS|TBM|CF|CFI|FID|MB|MBID|CF|CFI|SPTR)_', 36 '-F', '-DINCL_NLS -DINCL_BASE -DINCL_PM', # Define more symbols 37 'os2emx.h' # EMX version of OS/2 API 38 and warn("Can't build module with constants, falling back to no constants"), 39 return; 40 rename 'OS2/Process/Const', 'Process_constants' 41 or warn("Error renaming module, falling back to no constants: $!"), 42 return; 43 return 1; 44} 45