2 |
use ExtUtils::MakeMaker; |
use ExtUtils::MakeMaker; |
3 |
# See lib/ExtUtils/MakeMaker.pm for details of how to influence |
# See lib/ExtUtils/MakeMaker.pm for details of how to influence |
4 |
# the contents of the Makefile that is written. |
# the contents of the Makefile that is written. |
5 |
|
|
6 |
|
my $M6502_OPTIONS = '-DEXEC6502 -DFAST_RDOP -DLSB_FIRST '; |
7 |
|
$M6502_OPTIONS .= '-DDEBUG '; |
8 |
|
|
9 |
|
my $run = './t/05-M6502.t -d'; |
10 |
|
|
11 |
WriteMakefile( |
WriteMakefile( |
12 |
NAME => 'M6502', |
NAME => 'M6502', |
13 |
VERSION_FROM => 'M6502.pm', # finds $VERSION |
VERSION_FROM => 'M6502.pm', # finds $VERSION |
17 |
'Data::Dump' => 0, |
'Data::Dump' => 0, |
18 |
'Carp' => 0, |
'Carp' => 0, |
19 |
'Test::Exception' => 0, |
'Test::Exception' => 0, |
20 |
|
'SDL' => '2.1.2', |
21 |
}, # e.g., Module::Name => 1.1 |
}, # e.g., Module::Name => 1.1 |
22 |
($] >= 5.005 ? ## Add these new keywords supported since 5.005 |
($] >= 5.005 ? ## Add these new keywords supported since 5.005 |
23 |
(ABSTRACT_FROM => 'M6502.pm', # retrieve abstract from module |
(ABSTRACT_FROM => 'M6502.pm', # retrieve abstract from module |
24 |
AUTHOR => 'Dobrica Pavlinusic <dpavlin@rot13.org>') : ()), |
AUTHOR => 'Dobrica Pavlinusic <dpavlin@rot13.org>') : ()), |
25 |
LIBS => [''], # e.g., '-lm' |
LIBS => [''], # e.g., '-lm' |
26 |
DEFINE => '-DEXEC6502 -DFAST_RDOP', # M6502 options |
DEFINE => '', |
27 |
INC => '-I.', # e.g., '-I. -I/usr/include/other' |
INC => '-I. -I./src/', # e.g., '-I. -I/usr/include/other' |
28 |
# Un-comment this if you add C files to link with later: |
# Un-comment this if you add C files to link with later: |
29 |
OBJECT => '$(O_FILES)', # link all the C files too |
OBJECT => '$(O_FILES) cpu.o', # link all the C files too |
30 |
OPTIMIZE => '-g', |
OPTIMIZE => '-g', |
31 |
|
depend => { |
32 |
|
# M6502 options |
33 |
|
'cpu$(OBJ_EXT)' => qq{src/M6502.c\n\t\$(CC) \$(CCCDLFLAGS) -c -o cpu\$(OBJ_EXT) $M6502_OPTIONS src/M6502.c}, |
34 |
|
}, |
35 |
|
clean => { |
36 |
|
'FILES' => 'html', |
37 |
|
}, |
38 |
); |
); |
39 |
|
|
40 |
sub MY::postamble { |
sub MY::postamble { |
41 |
return <<'MAKE_FRAG'; |
return <<"MAKE_FRAG"; |
42 |
|
|
43 |
emulator: $(INST_ARCHAUTODIR)/$(NAME).$(SO) config.h perl.c |
run: all |
44 |
$(CC) -o emulator perl.o $(INST_ARCHAUTODIR)/$(NAME).$(SO) `perl -MExtUtils::Embed -e ldopts` |
perl -Mblib -MOrao -le 'print Orao->new->boot;' |
45 |
|
|
46 |
run: emulator |
gdb: all |
47 |
#( ./emulator 2>&1 ) | tee log | head -50 |
gdb -x run --args perl $run |
|
./emulator |
|
48 |
|
|
49 |
html: all |
html: all |
50 |
test -d html || mkdir html |
test -d html || mkdir html |
51 |
allpod2xhtml.pl $(INST_LIB) html |
allpod2xhtml.pl \$(INST_LIB) html |
52 |
|
|
53 |
MAKE_FRAG |
MAKE_FRAG |
54 |
} |
} |