1 Content-type: text/plain; charset="us-ascii"
2 Content-disposition: attachment; filename="mkfile"
7 sourcedir = /sys/src/cmd/perl/$p9pvers
8 archname = plan9_$objtype
10 archlib = /$objtype/lib/perl/$p9pvers
11 sitelib = $privlib/site_perl
12 sitearch = $archlib/site_perl
14 CFLAGS = -B -D_POSIX_SOURCE -D_BSD_EXTENSION -DNO_EMBED
17 CCCMD = $CC -c $CFLAGS
19 perllib = $archlib/CORE/libperl.a
21 perlshr = $archlib/CORE/libperlshr.a
23 installman1dir = /sys/man/1
24 installman3dir = /sys/man/2
26 podnames = perl perlbook perlbot perlcall perldata perldebug perldiag perldsc perlembed perlform perlfunc perlguts perlipc perllol perlmod perlobj perlop perlovl perlpod perlre perlref perlrun perlsec perlstyle perlsub perlsyn perltie perltoc perltrap perlvar perlxs perlxstut
28 libpods = ${podnames:%=pod/%.pod}
32 extensions = IO Socket Opcode DynaLoader Fcntl FileHandle POSIX
33 ext_xs = IO.xs Socket.xs Opcode.xs dl_none.xs Fcntl.xs FileHandle.xs POSIX.xs
34 ext_c = ${ext_xs:%.xs=%.c}
35 ext_obj = ${ext_xs:%.xs=%.$O}
37 obj = gv.$O toke.$O perly.$O op.$O regcomp.$O dump.$O util.$O mg.$O hv.$O av.$O run.$O pp_hot.$O sv.$O pp.$O scope.$O pp_ctl.$O pp_sys.$O doop.$O doio.$O regexec.$O taint.$O deb.$O globals.$O plan9.$O universal.$O
41 testlist = base/*.t comp/*.t cmd/*.t io/*.t op/*.t
43 install:V: perl preplibrary
44 cp perl /$objtype/bin/perl
45 cp plan9/aperl /rc/bin/aperl
47 perl: config.h miniperlmain.$O miniperl $archlib/Config.pm perlmain.$O $perlshr
48 $LD $CFLAGS -o perl perlmain.$O $perllib $perlshr
50 miniperl: config.h $perllib miniperlmain.$O
51 $LD $CFLAGS -o miniperl miniperlmain.$O $perllib
53 preplibrary:V: miniperl $archlib/Config.pm
55 for (file in *.pm */*.pm $archlib/Config.pm) $sourcedir/miniperl -e 'use AutoSplit; autosplit(@ARGV)' $file $privlib/auto
58 $perllib: ${OBJS:%=$perllib(%)}
62 miniperlmain.$O: config.h
65 perlmain.$O: config.h perlmain.c
68 perlmain.c: miniperl vms/writemain.pl
69 ./miniperl vms/writemain.pl $extensions
71 config.h: config.plan9 plan9/fndvers
72 plan9/fndvers config.h
73 cp config.h $archlib/CORE
76 $perlshr: ${ext_obj:%=$perlshr(%)}
77 ar rv $perlshr $ext_obj
80 IO.c: miniperl ext/IO/IO.xs
81 ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/IO/IO.xs > $target
82 cp ext/IO/*.pm $privlib
83 if (test !-d $privlib/IO) mkdir $privlib/IO
84 cp ext/IO/lib/IO/*.pm $privlib/IO
86 Socket.$O: config.h Socket.c
87 $CCCMD -I plan9 Socket.c
89 Socket.c: miniperl ext/Socket/Socket.xs
90 ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/Socket/Socket.xs > $target
91 cp ext/Socket/Socket.pm $privlib
93 Opcode.c: miniperl ext/Opcode/Opcode.xs
94 ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/Opcode/Opcode.xs > $target
95 cp ext/Opcode/*.pm $privlib
97 Fcntl.c: miniperl ext/Fcntl/Fcntl.xs
98 ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/Fcntl/Fcntl.xs > $target
99 cp ext/Fcntl/Fcntl.pm $privlib
101 FileHandle.c: miniperl ext/FileHandle/FileHandle.xs
102 ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/FileHandle/FileHandle.xs > $target
103 cp ext/FileHandle/FileHandle.pm $privlib
105 POSIX.c: miniperl ext/POSIX/POSIX.xs
106 ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/POSIX/POSIX.xs > $target
107 cp ext/POSIX/POSIX.pm $privlib
109 dl_none.c: miniperl ext/DynaLoader/dl_none.xs
110 ./miniperl $privlib/ExtUtils/xsubpp -noprototypes -typemap $privlib/ExtUtils/typemap ext/DynaLoader/dl_none.xs > $target
111 cp ext/DynaLoader/DynaLoader.pm $privlib
114 bind -b $privlib $sourcedir/lib
115 bind -b $archlib $sourcedir/lib
118 cp /$objtype/bin/perl $sourcedir/t
119 perl TEST `{ ls */*.t | comm -23 - ../plan9/exclude }
121 plan9.$O: config.h ./plan9/plan9.c
122 cp ./plan9/plan9.c ./plan9.c
128 $archlib/Config.pm: miniperl config.sh
129 ./miniperl configpm $archlib/Config.pm
131 config.sh: miniperl config.h
132 ./miniperl ./plan9/genconfig.pl
135 for (objtype in 386 mips 68020 sparc) mk install
137 man:V: $perlpods pod/pod2man.PL perl
139 for (i in $podnames) pod/pod2man pod/$i.pod > $installman3dir/$i
140 pod/pod2man plan9/perlplan9.pod > $installman3dir/perlplan9
143 rm -f *.$O $extensions^.pm config.sh $perllib config.h $perlshr perlmain.c perl miniperl $archlib/Config.pm $ext_c
146 rm -f *.$O config.sh miniperl t/perl
149 rm -f $installman1dir/perl* $installman3dir/perl*