xref: /openbsd/gnu/usr.bin/perl/plan9/mkfile (revision eac174f2)
1ba47ec9dSmillertAPE=/sys/src/ape
2ba47ec9dSmillert< $APE/config
3ba47ec9dSmillert<plan9/buildinfo
4ba47ec9dSmillertarchname = plan9_$objtype
5*eac174f2Safresh1privroot = /sys/lib/perl
6*eac174f2Safresh1privlib  = $privroot/$p9pvers
7*eac174f2Safresh1archroot = /$objtype/lib/perl
8*eac174f2Safresh1archlib  = $archroot/$p9pvers
9ba47ec9dSmillertsitelib  = $privlib/site_perl
10ba47ec9dSmillertsitearch = $archlib/site_perl
11*eac174f2Safresh1corelib  = $archlib/CORE
12*eac174f2Safresh1arpalib  = $corelib/arpa
13ba47ec9dSmillert
14*eac174f2Safresh1pwd=`{pwd}
15*eac174f2Safresh1cpanlib=`{cd cpan; ls -ld * | grep '^d' | awk '{ print $10 }' | grep -v '^\.'}
16*eac174f2Safresh1icpanlib=`{echo $pwd^/cpan/^$cpanlib^/lib}
17*eac174f2Safresh1distlib=`{cd dist; ls -ld * | grep '^d' | awk '{ print $10 }' | grep -v '^\.'}
18*eac174f2Safresh1idistlib=`{echo $pwd^/dist/^$distlib $pwd^/dist/^$distlib^/lib }
19*eac174f2Safresh1extlib=`{cd ext; ls -ld * | grep '^d' | awk '{ print $10 }' | grep -v '^\.'}
20*eac174f2Safresh1iextlib=`{echo $pwd^/ext/^$extlib $pwd^/ext/^$extlib/lib }
21*eac174f2Safresh1
22*eac174f2Safresh1buildlibs=`{echo -I$pwd^/^(lib archlib privlib) -I^$icpanlib -I^$idistlib -I^$iextlib }
23*eac174f2Safresh1miniperl=`{echo $pwd/miniperl $buildlibs }
24*eac174f2Safresh1perl=`{echo $pwd/perl $buildlibs }
25*eac174f2Safresh1xscmd=`{echo $pwd/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp -noprototypes -typemap $pwd/dist/ExtUtils-ParseXS/t/typemap}
26*eac174f2Safresh1miniperlxs=`{echo $miniperl $xscmd}
27*eac174f2Safresh1perlxs=`{echo $perl $xscmd}
28*eac174f2Safresh1
29*eac174f2Safresh1BASECFLAGS=-B -D_SUSV2_SOURCE -D_POSIX_SOURCE -D_BSD_EXTENSION
30*eac174f2Safresh1PERLCFLAGS =-DPERL_CORE $BASECFLAGS
31*eac174f2Safresh1CFLAGS=-DPERL_IS_MINIPERL $PERLCFLAGS
32ba47ec9dSmillert
33ba47ec9dSmillertCCCMD = $CC  -c $CFLAGS
34*eac174f2Safresh1PERLCCCMD= $CC -c $PERLCFLAGS
35*eac174f2Safresh1XSCCCMD= $CC -c $BASECFLAGS
36ba47ec9dSmillert
37*eac174f2Safresh1perllib = archlib/CORE/libperl.a
38ba47ec9dSmillert
39*eac174f2Safresh1perlshr = archlib/CORE/libperlshr.a
40ba47ec9dSmillert
41ba47ec9dSmillertinstallman1dir = /sys/man/1
42ba47ec9dSmillertinstallman3dir = /sys/man/2
43ba47ec9dSmillert
4448950c12Ssthenpodnames = perl perlbook perldata perldebtut perldiag perldsc perlform perlfunc perlipc perllexwarn perllol perlmod perlmodlib perlmodinstall perlnewmod perlop perlootut perlopentut perlpacktut perlpod perlport perlrequick perlretut perlref perlreftut perlrequick perlrun perlsec perlstyle perlsub perlsyn perltie perltrap perlutil perlunifaq perluniintro perlvar
4555745691Smillertfaqpodnames = perlfaq perlfaq1 perlfaq2 perlfaq3 perlfaq4 perlfaq5 perlfaq6 perlfaq7 perlfaq8 perlfaq9
46e9260a21Safresh1advpodnames = perlapi perlapio perlcall perlclib perlcompile perldebguts perldbmfilter perldebug perldelta perldiag perlebcdic perlembed perlfilter perlfork perlguts perlhack perlintern perliol perllocale perlnumber perlobj perlpodspec perlre perlthrtut perltodo perlunicode perlunicook perlxs perlxs perlxstut
47*eac174f2Safresh1archpodnames = perlaix perlamiga perlbeos perlbs2000 perlce perlcygwin perldgux perlfreebsd perlhpux perlhurd perlirix perlmacosx perlmpeix perlos2 perlos390 perlos400 perlplan9 perlqnx perlsolaris perltru64 perlvms perlvos perlwin32
48*eac174f2Safresh1histpodnames = perl5004delta perl5005delta perl561delta perl56delta perl570delta perl571delta perl572delta perl573delta perl58delta perlhist
49ba47ec9dSmillert
50ba47ec9dSmillertlibpods = ${podnames:%=pod/%.pod}
51ba47ec9dSmillert
52ba47ec9dSmillertperlpods = $libpods
53ba47ec9dSmillert
54*eac174f2Safresh1extensions = File::Glob IO Opcode DynaLoader Fcntl POSIX Cwd re B Devel::Peek attributes Hash::Util Hash::Util::FieldHash mro Storable Time::HiRes Unicode::Normalize List::Util
55*eac174f2Safresh1ext_xs = Glob.xs IO.xs Opcode.xs  dl_none.xs Fcntl.xs POSIX.xs Cwd.xs re.xs B.xs Peek.xs attributes.xs Util.xs FieldHash.xs mro.xs Storable.xs HiRes.xs Normalize.xs ListUtil.xs
56ba47ec9dSmillertext_c = ${ext_xs:%.xs=%.c}
57*eac174f2Safresh1ext_obj = ${ext_xs:%.xs=%.$O} bsd_glob.$O poll.$O re_comp.$O re_exec.$O
58ba47ec9dSmillert
59*eac174f2Safresh1# Socket requires a full version of Perl (one with IO to build).
60*eac174f2Safresh1more_extensions = Socket Data::Dumper
61*eac174f2Safresh1more_ext_xs = Socket.xs Dumper.xs
62*eac174f2Safresh1more_ext_c = ${more_ext_xs:%.xs=%.c}
63*eac174f2Safresh1more_ext_obj = ${more_ext_xs:%.xs=%.$O}
64*eac174f2Safresh1
65*eac174f2Safresh1obj = av.$O caretx.$O deb.$O doio.$O doop.$O dquote.$O dump.$O globals.$O gv.$O hv.$O keywords.$O locale.$O malloc.$O mathoms.$O mg.$O mro_core.$O numeric.$O op.$O pad.$O perlapi.$O perlio.$O perly.$O pp.$O pp_ctl.$O pp_hot.$O pp_pack.$O pp_sort.$O pp_sys.$O reentr.$O regcomp.$O regexec.$O run.$O scope.$O sv.$O taint.$O time64.$O toke.$O universal.$O utf8.$O util.$O
66ba47ec9dSmillert
67f64b279aSmillertOBJS = perl.$O plan9.$O $obj
68ba47ec9dSmillert
69*eac174f2Safresh1# TODO: what's this used for?
70*eac174f2Safresh1testlist = `{cd t; echo base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t opbasic/*.t op/*.t uni/*.t perf/*.t}
71ba47ec9dSmillert
72ba47ec9dSmillertinstall:V:	perl preplibrary
73*eac174f2Safresh1		cp perl /$objtype/bin/perl-$p9pvers
74*eac174f2Safresh1		cp plan9/aperl /rc/bin/Perl-$p9pvers
75ba47ec9dSmillert
76*eac174f2Safresh1		if (test ! -d $privroot) mkdir $privroot
77*eac174f2Safresh1		if (test ! -d $privlib) mkdir $privlib
78*eac174f2Safresh1		if (test ! -d $privlib/auto) mkdir $privlib/auto
79*eac174f2Safresh1		if (test ! -d $sitelib) mkdir $sitelib
80*eac174f2Safresh1		if (test ! -d $archroot) mkdir $archroot
81*eac174f2Safresh1		if (test ! -d $archlib) mkdir $archlib
82*eac174f2Safresh1		if (test ! -d $sitearch) mkdir $sitearch
83*eac174f2Safresh1		if (test ! -d $corelib) mkdir $corelib
84*eac174f2Safresh1		if (test ! -d $arpalib) mkdir $arpalib
85*eac174f2Safresh1		cp *.h plan9/*.h  $corelib
86*eac174f2Safresh1		cp plan9/arpa/*.h  $arpalib
87*eac174f2Safresh1
88*eac174f2Safresh1		# Populate library directories
89*eac174f2Safresh1		{cd privlib ; tar c . } | {cd $privlib ; tar x }
90*eac174f2Safresh1		{cd lib ; tar c . } | {cd $privlib ; tar x }
91*eac174f2Safresh1		{cd archlib ; tar c . } | {cd $archlib ; tar x }
92*eac174f2Safresh1		# mk man # don't make man pages now--resolve multiversion
93*eac174f2Safresh1
94*eac174f2Safresh1perl:	perlnosocket more_extensions
95*eac174f2Safresh1		$LD $PERLCFLAGS -o perl perlmain.$O perl.$O $perllib $perlshr $more_ext_obj
96*eac174f2Safresh1
97*eac174f2Safresh1perlnosocket:		config.h miniperlmain.$O miniperl archlib/Config.pm perlmain.$O $perlshr
98*eac174f2Safresh1		$LD $PERLCFLAGS -o perl perlmain.$O perl.$O $perllib $perlshr
99ba47ec9dSmillert
100ba47ec9dSmillertminiperl:	config.h $perllib miniperlmain.$O
101ba47ec9dSmillert		$LD  $CFLAGS -o miniperl miniperlmain.$O  $perllib
102ba47ec9dSmillert
103*eac174f2Safresh1preplibrary:V:	miniperl archlib/Config.pm
104*eac174f2Safresh1			mkdir -p privlib/auto
105*eac174f2Safresh1			for (file in lib/*.pm lib/*/*.pm archlib/Config.pm) $miniperl -e 'use AutoSplit; autosplit(@ARGV)' $file privlib/auto
106ba47ec9dSmillert
107ba47ec9dSmillert$perllib(%):N:	%
108ba47ec9dSmillert$perllib: ${OBJS:%=$perllib(%)}
109*eac174f2Safresh1		mkdir -p archlib/CORE
110ba47ec9dSmillert		ar rv $perllib $OBJS
111ba47ec9dSmillert		$RANLIB $perllib
112ba47ec9dSmillert
113*eac174f2Safresh1miniperlmain.$O:	config.h uudmap.h
114ba47ec9dSmillert				$CCCMD miniperlmain.c
115ba47ec9dSmillert
116ba47ec9dSmillertperlmain.$O:	config.h perlmain.c
117*eac174f2Safresh1			$PERLCCCMD perl.c
118*eac174f2Safresh1			$PERLCCCMD perlmain.c
119ba47ec9dSmillert
120*eac174f2Safresh1malloc.$O: malloc.c
121*eac174f2Safresh1			# Does the PTRDIFF_MAX need to be set per architecture?
122*eac174f2Safresh1			$CCCMD -DPTRDIFF_MAX^'='^9223372036854775807L malloc.c
123*eac174f2Safresh1
124*eac174f2Safresh1perlmain.c:	miniperl extensions archlib/Config.pm
125*eac174f2Safresh1			$miniperl -MExtUtils::Miniperl -e 'writemain(\q{perlmain.c}, @ARGV)' $extensions
126ba47ec9dSmillert
127ba47ec9dSmillertconfig.h:		plan9/fndvers
128ba47ec9dSmillert			plan9/fndvers
129*eac174f2Safresh1			mkdir -p archlib/CORE
130*eac174f2Safresh1			cp config.h archlib/CORE
131ba47ec9dSmillert
132ba47ec9dSmillert$perlshr(%):N:	%
133ba47ec9dSmillert$perlshr:  ${ext_obj:%=$perlshr(%)}
134ba47ec9dSmillert		ar rv $perlshr $ext_obj
135ba47ec9dSmillert		$RANLIB $perlshr
136ba47ec9dSmillert
137*eac174f2Safresh1uudmap.h:	generate_uudmap.c
138*eac174f2Safresh1			$CCCMD generate_uudmap.c
139*eac174f2Safresh1			# This is currently a show-stopper for cross-compilation: find the true $objtype by looking at kernel?
140*eac174f2Safresh1			$LD $CFLAGS -o generate_uudmap generate_uudmap.$O
141*eac174f2Safresh1			chmod +x generate_uudmap
142*eac174f2Safresh1			./generate_uudmap uudmap.h bitcount.h mg_data.h
143*eac174f2Safresh1
144*eac174f2Safresh1extensions:V: miniperl archlib/Config.pm $ext_c dist/XSLoader/XSLoader.pm
145*eac174f2Safresh1
146*eac174f2Safresh1more_extensions:V: perlnosocket $more_ext_c $more_ext_obj
147*eac174f2Safresh1			ext_obj=`{echo $ext_obj $more_ext_obj}
148*eac174f2Safresh1
149*eac174f2Safresh1Socket.$O: Socket.c
150*eac174f2Safresh1			$XSCCCMD -I plan9 Socket.c
151*eac174f2Safresh1
152*eac174f2Safresh1attributes.$O: attributes.c
153*eac174f2Safresh1			$XSCCCMD -I plan9 attributes.c
154*eac174f2Safresh1
155*eac174f2Safresh1mro.$O: mro.c
156*eac174f2Safresh1			$XSCCCMD -I plan9 mro.c
157*eac174f2Safresh1
158*eac174f2Safresh1B.$O: B.c
159*eac174f2Safresh1			$XSCCCMD -I plan9 B.c
160*eac174f2Safresh1
161*eac174f2Safresh1Peek.$O: Peek.c
162*eac174f2Safresh1			$XSCCCMD -I plan9 Peek.c
163*eac174f2Safresh1
164*eac174f2Safresh1Util.$O: Util.c
165*eac174f2Safresh1			$XSCCCMD -I plan9 Util.c
166*eac174f2Safresh1
167*eac174f2Safresh1FieldHash.$O: FieldHash.c
168*eac174f2Safresh1			$XSCCCMD -I plan9 FieldHash.c
169*eac174f2Safresh1
170*eac174f2Safresh1re.$O: re.c
171*eac174f2Safresh1			$XSCCCMD -DPERL_EXT_RE_BUILD -DPERL_EXT_RE_DEBUG -DPERL_EXT -I plan9 re.c
172*eac174f2Safresh1
173*eac174f2Safresh1re_comp.$O: re_comp.c
174*eac174f2Safresh1			$XSCCCMD -DPERL_EXT_RE_BUILD -DPERL_EXT_RE_DEBUG -DPERL_EXT -I plan9 re_comp.c
175*eac174f2Safresh1
176*eac174f2Safresh1re_exec.$O: re_exec.c
177*eac174f2Safresh1			$XSCCCMD -DPERL_EXT_RE_BUILD -DPERL_EXT_RE_DEBUG -DPERL_EXT -I plan9 re_exec.c
178*eac174f2Safresh1
179*eac174f2Safresh1Cwd.$O: Cwd.c IO.c
180*eac174f2Safresh1			cp dist/IO/ppport.h dist/PathTools
181*eac174f2Safresh1			$XSCCCMD -DDOUBLE_SLASHES_SPECIAL^'='^0 -I plan9 Cwd.c
182*eac174f2Safresh1
183*eac174f2Safresh1IO.$O: extensions
184*eac174f2Safresh1			$XSCCCMD -I plan9 IO.c
185*eac174f2Safresh1
186*eac174f2Safresh1poll.$O: extensions
187*eac174f2Safresh1			$XSCCCMD -I plan9 poll.c
188*eac174f2Safresh1
189*eac174f2Safresh1POSIX.$O: extensions
190*eac174f2Safresh1			$XSCCCMD -I plan9 POSIX.c
191*eac174f2Safresh1
192*eac174f2Safresh1Glob.$O: extensions
193*eac174f2Safresh1			$XSCCCMD -I plan9 Glob.c
194*eac174f2Safresh1
195*eac174f2Safresh1bsd_glob.$O: extensions
196*eac174f2Safresh1			$XSCCCMD -I plan9 -I. bsd_glob.c
197*eac174f2Safresh1
198*eac174f2Safresh1Normalize.$O:	extensions
199*eac174f2Safresh1			$XSCCCMD -I plan9 -I. Normalize.c
200*eac174f2Safresh1
201*eac174f2Safresh1Dumper.$O:	Dumper.c
202*eac174f2Safresh1			$XSCCCMD -I plan9 -I. Dumper.c
203*eac174f2Safresh1
204*eac174f2Safresh1HiRes.$O:	extensions
205*eac174f2Safresh1			$XSCCCMD -I plan9 -I. HiRes.c
206*eac174f2Safresh1
207*eac174f2Safresh1Storable.$O:	extensions
208*eac174f2Safresh1			$XSCCCMD -I plan9 -I. Storable.c
209*eac174f2Safresh1
210*eac174f2Safresh1ListUtil.$O:	extensions
211*eac174f2Safresh1			$XSCCCMD -I plan9 -I. ListUtil.c
212*eac174f2Safresh1
213*eac174f2Safresh1Opcode.$O: extensions
214*eac174f2Safresh1			$XSCCCMD -I plan9 Opcode.c
215*eac174f2Safresh1
216*eac174f2Safresh1Fcntl.$O: extensions
217*eac174f2Safresh1			$XSCCCMD -I plan9 Fcntl.c
218*eac174f2Safresh1
219*eac174f2Safresh1dl_none.$O: extensions
220*eac174f2Safresh1			$XSCCCMD -I plan9 dl_none.c
221*eac174f2Safresh1
222*eac174f2Safresh1Glob.c:		archlib/Config.pm	ext/File-Glob/Glob.xs
223*eac174f2Safresh1			cd ext/File-Glob
224*eac174f2Safresh1			$miniperl Makefile.PL # to write constants
225*eac174f2Safresh1			cd $pwd
226*eac174f2Safresh1			$miniperlxs ext/File-Glob/Glob.xs > $target
227*eac174f2Safresh1			cp ext/File-Glob/bsd_glob.^(c h) $pwd
228*eac174f2Safresh1			mkdir -p archlib/File
229*eac174f2Safresh1			cp ext/File-Glob/Glob.pm archlib/File/Glob.pm
230*eac174f2Safresh1
231*eac174f2Safresh1ppport.h:   archlib/Config.pm
232*eac174f2Safresh1			if (test ! -f /bin/sh) bind -a /386/bin/ape /bin
233*eac174f2Safresh1			# specify the list, otherwise suicide
234*eac174f2Safresh1			$miniperl mkppport --list mkppport.lst
235*eac174f2Safresh1
236*eac174f2Safresh1Cwd.c:		archlib/Config.pm dist/PathTools/Cwd.xs
237*eac174f2Safresh1			$miniperlxs dist/PathTools/Cwd.xs > $target
238*eac174f2Safresh1			cp dist/PathTools/Cwd.pm archlib
239*eac174f2Safresh1			{ cd dist/PathTools/lib; tar c . } | { mkdir -p archlib; cd archlib; tar x }
240*eac174f2Safresh1
241*eac174f2Safresh1IO.c:		archlib/Config.pm dist/IO/IO.xs ppport.h
242*eac174f2Safresh1			$miniperlxs dist/IO/IO.xs > $target
243*eac174f2Safresh1			cp dist/IO/poll.^(c h) $pwd
244*eac174f2Safresh1			cp dist/IO/IO.pm archlib
245*eac174f2Safresh1			{ cd dist/IO/lib; tar c . } | { mkdir -p archlib; cd archlib; tar x }
246*eac174f2Safresh1
247*eac174f2Safresh1dist/XSLoader/XSLoader.pm:  archlib/Config.pm
248*eac174f2Safresh1			cd dist/XSLoader
249*eac174f2Safresh1			$miniperl XSLoader_pm.PL
250*eac174f2Safresh1			cp XSLoader.pm $pwd/archlib
251*eac174f2Safresh1
252*eac174f2Safresh1ext/Errno/Errno.pm: perlnosocket
253*eac174f2Safresh1			cd ext/Errno
254*eac174f2Safresh1			$perl Makefile.PL
255*eac174f2Safresh1			$perl Errno_pm.PL arch.txt
256*eac174f2Safresh1			cp Errno.pm $pwd/archlib
257*eac174f2Safresh1
258*eac174f2Safresh1Socket.c:		perlnosocket cpan/Socket/Socket.xs ext/Errno/Errno.pm
259*eac174f2Safresh1			cd cpan/Socket
260*eac174f2Safresh1			$perl Makefile.PL # to write const-xs.inc
261*eac174f2Safresh1			cd $pwd
262*eac174f2Safresh1			$perlxs cpan/Socket/Socket.xs > $target
263*eac174f2Safresh1			cp cpan/Socket/Socket.pm archlib
264*eac174f2Safresh1
265*eac174f2Safresh1uni.data:	archlib/Config.pm lib/unicore/mktables
266*eac174f2Safresh1			$miniperl lib/unicore/mktables -C lib/unicore -makelist -p
267*eac174f2Safresh1
268*eac174f2Safresh1Normalize.c:		archlib/Config.pm dist/Unicode-Normalize/Normalize.xs uni.data
269*eac174f2Safresh1			$miniperl dist/Unicode-Normalize/mkheader
270*eac174f2Safresh1			$miniperlxs dist/Unicode-Normalize/Normalize.xs > $target
271*eac174f2Safresh1			mkdir -p archlib/Unicode
272*eac174f2Safresh1			cp dist/Unicode-Normalize/Normalize.pm archlib/Unicode
273*eac174f2Safresh1
274*eac174f2Safresh1Dumper.c:		perlnosocket dist/Data-Dumper/Dumper.xs
275*eac174f2Safresh1			$perlxs dist/Data-Dumper/Dumper.xs > $target
276*eac174f2Safresh1			mkdir -p archlib/Data
277*eac174f2Safresh1			cp dist/Data-Dumper/Dumper.pm archlib/Data
278*eac174f2Safresh1
279*eac174f2Safresh1HiRes.c:		archlib/Config.pm dist/Time-HiRes/HiRes.xs
280*eac174f2Safresh1			cd dist/Time-HiRes
281*eac174f2Safresh1			$miniperl Makefile.PL # to write const-xs.inc
282*eac174f2Safresh1			cd $pwd
283*eac174f2Safresh1			$miniperlxs dist/Time-HiRes/HiRes.xs > $target
284*eac174f2Safresh1			mkdir -p archlib/Time
285*eac174f2Safresh1			cp dist/Time-HiRes/HiRes.pm archlib/Time
286*eac174f2Safresh1
287*eac174f2Safresh1ListUtil.c:		archlib/Config.pm cpan/Scalar-List-Utils/ListUtil.xs
288*eac174f2Safresh1			cp cpan/Scalar-List-Utils/multicall.h $pwd
289*eac174f2Safresh1			$miniperlxs cpan/Scalar-List-Utils/ListUtil.xs > $target
290*eac174f2Safresh1			{ cd cpan/Scalar-List-Utils/lib; tar c . } | { mkdir -p archlib; cd archlib; tar x }
291*eac174f2Safresh1
292*eac174f2Safresh1Storable.c:		archlib/Config.pm dist/Storable/Storable.xs
293*eac174f2Safresh1			$miniperlxs dist/Storable/Storable.xs > $target
294*eac174f2Safresh1			cp dist/Storable/Storable.pm archlib
295*eac174f2Safresh1
296*eac174f2Safresh1Opcode.c:		archlib/Config.pm ext/Opcode/Opcode.xs
297*eac174f2Safresh1			$miniperlxs ext/Opcode/Opcode.xs > $target
298*eac174f2Safresh1			cp ext/Opcode/^(Opcode ops)^.pm archlib
299*eac174f2Safresh1
300*eac174f2Safresh1Fcntl.c:		archlib/Config.pm ext/Fcntl/Fcntl.xs
301*eac174f2Safresh1			cd ext/Fcntl
302*eac174f2Safresh1			$miniperl Makefile.PL # to write const-xs.inc
303*eac174f2Safresh1			cd $pwd
304*eac174f2Safresh1			$miniperlxs ext/Fcntl/Fcntl.xs > $target
305*eac174f2Safresh1			cp ext/Fcntl/Fcntl.pm archlib
306*eac174f2Safresh1
307*eac174f2Safresh1POSIX.c:		archlib/Config.pm ext/POSIX/POSIX.xs
308*eac174f2Safresh1			cd ext/POSIX
309*eac174f2Safresh1			$miniperl Makefile.PL # to write const-xs.inc
310*eac174f2Safresh1			cd $pwd
311*eac174f2Safresh1			$miniperlxs ext/POSIX/POSIX.xs > $target
312*eac174f2Safresh1			cp ext/POSIX/lib/POSIX.pm archlib
313*eac174f2Safresh1
314*eac174f2Safresh1B.c:		archlib/Config.pm ext/B/B.xs
315*eac174f2Safresh1			cd ext/B
316*eac174f2Safresh1			$miniperl Makefile.PL PERL_CORE^'='^1 # to write const-xs.inc
317*eac174f2Safresh1			cd $pwd
318*eac174f2Safresh1			$miniperlxs ext/B/B.xs > $target
319*eac174f2Safresh1			cp ext/B/^(B O)^.pm archlib
320*eac174f2Safresh1
321*eac174f2Safresh1Peek.c:		archlib/Config.pm ext/Devel-Peek/Peek.xs
322*eac174f2Safresh1			$miniperlxs ext/Devel-Peek/Peek.xs > $target
323*eac174f2Safresh1			cp ext/Devel-Peek/Peek.pm archlib
324*eac174f2Safresh1
325*eac174f2Safresh1attributes.c:	archlib/Config.pm ext/attributes/attributes.xs
326*eac174f2Safresh1			$miniperlxs ext/attributes/attributes.xs > $target
327*eac174f2Safresh1			cp ext/attributes/attributes.pm archlib
328*eac174f2Safresh1
329*eac174f2Safresh1mro.c:	archlib/Config.pm ext/mro/mro.xs
330*eac174f2Safresh1			$miniperlxs ext/mro/mro.xs > $target
331*eac174f2Safresh1			cp ext/mro/mro.pm archlib
332*eac174f2Safresh1
333*eac174f2Safresh1Util.c:	archlib/Config.pm ext/Hash-Util/Util.xs
334*eac174f2Safresh1			$miniperlxs ext/Hash-Util/Util.xs > $target
335*eac174f2Safresh1			{ cd ext/Hash-Util/lib; tar c . } | { cd archlib; tar x }
336*eac174f2Safresh1
337*eac174f2Safresh1FieldHash.c:	archlib/Config.pm ext/Hash-Util-FieldHash/FieldHash.xs
338*eac174f2Safresh1			$miniperlxs ext/Hash-Util-FieldHash/FieldHash.xs > $target
339*eac174f2Safresh1			{ cd ext/Hash-Util-FieldHash/lib; tar c . } | { cd archlib; tar x }
340*eac174f2Safresh1
341*eac174f2Safresh1re.c:	archlib/Config.pm ext/re/re.xs
342*eac174f2Safresh1			$miniperlxs ext/re/re.xs > $target
343*eac174f2Safresh1			cp ext/re/re_^(comp top)^.h $pwd
344*eac174f2Safresh1			cp ext/re/re.pm archlib
345*eac174f2Safresh1
346*eac174f2Safresh1re_comp.c:	miniperl re.c regcomp.c
347*eac174f2Safresh1			cp regcomp.c $target
348*eac174f2Safresh1
349*eac174f2Safresh1re_exec.c:	miniperl re.c regexec.c
350*eac174f2Safresh1			cp regexec.c $target
351*eac174f2Safresh1
352*eac174f2Safresh1dl_none.c:	archlib/Config.pm ext/DynaLoader/dl_none.xs
353*eac174f2Safresh1			cd ext/DynaLoader;
354*eac174f2Safresh1			$miniperl DynaLoader_pm.PL
355*eac174f2Safresh1			cd $pwd
356*eac174f2Safresh1			$miniperlxs ext/DynaLoader/dl_none.xs > $target
357*eac174f2Safresh1			cp ext/DynaLoader/DynaLoader.pm archlib
358*eac174f2Safresh1
359*eac174f2Safresh1preptest:Q: perl
360*eac174f2Safresh1			# Bind the crap out of everything, as different tests expect different INCs
361*eac174f2Safresh1			cp perl t/perl
362*eac174f2Safresh1			cd t
363*eac174f2Safresh1			mntpt=/$objtype/lib/perl
364*eac174f2Safresh1			if (test ! -d $mntpt ) {
365*eac174f2Safresh1				mkdir $mntpt
366*eac174f2Safresh1				rmdir=1
367ba47ec9dSmillert			}
368*eac174f2Safresh1			ramfs -m $mntpt
369*eac174f2Safresh1			mkdir -p $mntpt/5.32.0/site_perl
370*eac174f2Safresh1			echo -n Binding directories
371*eac174f2Safresh1			for (l in $pwd/lib $pwd/archlib $icpanlib $idistlib $iextlib ) {
372*eac174f2Safresh1				if (test -d $l ) {
373*eac174f2Safresh1					if (! ~ `{grep $l <{ns} >[1]/dev/null; echo $status} '') bind -a $l $mntpt/5.32.0/site_perl
374*eac174f2Safresh1					echo -n .
375*eac174f2Safresh1				}
376*eac174f2Safresh1			}
377*eac174f2Safresh1			bind $mntpt/5.32.0/site_perl $pwd/lib
378*eac174f2Safresh1			echo done
379*eac174f2Safresh1			echo Binding sh
380*eac174f2Safresh1			if (! ~ `{grep /$objtype/bin/ape <{ns} >[1]/dev/null; echo $status} '') bind -a /$objtype/bin/ape /bin
381ba47ec9dSmillert
382*eac174f2Safresh1minitest:V: preptest
383*eac174f2Safresh1			cd t
384*eac174f2Safresh1			perl TEST $testlist
385*eac174f2Safresh1			unmount $pwd/lib
386*eac174f2Safresh1			unmount $mntpt
387*eac174f2Safresh1			if (~ $rmdir 1) rm $mntpt
388*eac174f2Safresh1			rm t/perl
389ba47ec9dSmillert
390*eac174f2Safresh1test:V: preptest
391*eac174f2Safresh1			cd t
392ba47ec9dSmillert			perl TEST `{ ls */*.t | comm -23 - ../plan9/exclude }
393*eac174f2Safresh1			unmount $pwd/lib
394*eac174f2Safresh1			unmount $mntpt
395*eac174f2Safresh1			if (~ $rmdir 1) rm $mntpt
396*eac174f2Safresh1			rm t/perl
397ba47ec9dSmillert
398*eac174f2Safresh1plan9.$O:	config.h plan9/plan9.c
399*eac174f2Safresh1			cp plan9/plan9.c plan9.c
400ba47ec9dSmillert			$CCCMD plan9.c
401ba47ec9dSmillert
402ba47ec9dSmillert%.$O:	config.h %.c
403ba47ec9dSmillert		$CCCMD $stem.c
404ba47ec9dSmillert
405*eac174f2Safresh1archlib/Config.pm:		config.sh
406*eac174f2Safresh1				$miniperl make_patchnum.pl
407*eac174f2Safresh1				$miniperl configpm
408*eac174f2Safresh1				cp lib/Config.pm archlib/Config.pm
409*eac174f2Safresh1				cp lib/Config_heavy.pl archlib/Config_heavy.pl
410*eac174f2Safresh1				cp lib/Config_git.pl archlib/Config_git.pl
411ba47ec9dSmillert
412*eac174f2Safresh1
413*eac174f2Safresh1config.sh:	miniperl
414*eac174f2Safresh1		miniperl plan9/genconfig.pl $extensions $more_extensions
415ba47ec9dSmillert
416ba47ec9dSmillertinstallall:V:
417*eac174f2Safresh1			for (386 68000 68020 arm arm amd64 mips power power64 sparc sparc64 spim) mk install
418ba47ec9dSmillert
419ba47ec9dSmillertman:V:		$perlpods pod/pod2man.PL perl
420ba47ec9dSmillert			perl pod/pod2man.PL
421ba47ec9dSmillert			for (i in $podnames) pod/pod2man pod/$i.pod > $installman3dir/$i
42255745691Smillert			for (i in $faqpodnames) pod/pod2man pod/$i.pod > $installman3dir/$i
42355745691Smillert			for (i in $advpodnames) pod/pod2man pod/$i.pod > $installman3dir/$i
42455745691Smillert			for (i in $archpodnames) pod/pod2man pod/$i.pod > $installman3dir/$i
425f64b279aSmillert			for (i in $histpodnames) pod/pod2man pod/$i.pod > $installman3dir/$i
426ba47ec9dSmillert
427ba47ec9dSmillertnuke clean:V:
428*eac174f2Safresh1		rm -f *.$O config.sh $perllib config.h $perlshr perlmain.c perl miniperl git_version.h $ext_c $more_ext_c generate_uudmap uudmap.h bitcount.h mg_data.h plan9.c plan9ish.h math.h bsd_glob.^(c h) poll.^(c h) re_*.^(c h) uni.data multicall.h
429*eac174f2Safresh1		rm -rf privlib archlib
430ba47ec9dSmillert
431ba47ec9dSmillertdeleteman:V:
432ba47ec9dSmillert			rm -f $installman1dir/perl* $installman3dir/perl*
433