1use 5.008; 2use ExtUtils::MakeMaker; 3use ExtUtils::Constant 0.11 'WriteConstants'; 4use Config; 5 6WriteMakefile( 7 'NAME' => 'XS::APItest', 8 'VERSION_FROM' => 'APItest.pm', # finds $VERSION 9 'PREREQ_PM' => {}, # e.g., Module::Name => 1.1 10 ABSTRACT_FROM => 'APItest.pm', # retrieve abstract from module 11 AUTHOR => 'Tim Jenness <t.jenness@jach.hawaii.edu>, Christian Soeller <csoelle@mph.auckland.ac.nz>, Hugo van der Sanden <hv@crypt.compulink.co.uk>, Andrew Main (Zefram) <zefram@fysh.org>', 12 'C' => ['exception.c', 'core.c', 'notcore.c'], 13 'OBJECT' => '$(BASEEXT)$(OBJ_EXT) XSUB-undef-XS_VERSION$(OBJ_EXT) XSUB-redefined-macros$(OBJ_EXT) $(O_FILES)', 14 realclean => {FILES => 'const-c.inc const-xs.inc'}, 15 ($Config{gccversion} && $Config{d_attribute_deprecated} ? 16 (CCFLAGS => $Config{ccflags} . ' -Wno-deprecated-declarations') : ()), 17 depend => { 'core.o' => 'core_or_not.inc', 18 'notcore.o' => 'core_or_not.inc' }, 19); 20 21my @names = (qw(HV_DELETE HV_DISABLE_UVAR_XKEY HV_FETCH_ISSTORE 22 HV_FETCH_ISEXISTS HV_FETCH_LVALUE HV_FETCH_JUST_SV 23 G_SCALAR G_ARRAY G_VOID G_DISCARD G_EVAL G_NOARGS 24 G_KEEPERR G_NODEBUG G_METHOD G_FAKINGEVAL 25 IS_NUMBER_IN_UV IS_NUMBER_GREATER_THAN_UV_MAX 26 IS_NUMBER_NOT_INT IS_NUMBER_NEG IS_NUMBER_INFINITY 27 IS_NUMBER_NAN 28 ), 29 {name=>"G_WANT", default=>["IV", "G_ARRAY|G_VOID"]}); 30 31open my $fh, '../../overload.h' or die "Can't open ../../overload.h: $!"; 32while (<$fh>) { 33 push @names, {name => $1, macro => 1} if /^\s+([A-Za-z_0-9]+_amg),/; 34} 35 36WriteConstants( 37 PROXYSUBS => 1, 38 NAME => 'XS::APItest', 39 NAMES => \@names, 40 ); 41 42sub MY::install { "install ::\n" }; 43