Mercurial > repo
comparison perl-5.22.2/os2/Makefile.SHs @ 8045:a16537d2fe07
<xfix> tar xf perl-5.22.2.tar.gz # Ah, whatever, I\'m doing it anyway
author | HackBot |
---|---|
date | Sat, 14 May 2016 14:54:38 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
8044:711c038a7dce | 8045:a16537d2fe07 |
---|---|
1 # This file is read by Makefile.SH to produce rules for $(LIBPERL) (and | |
2 # some additional rules as well). | |
3 | |
4 # Rerun `sh Makefile.SH; make depend' after making any change. | |
5 | |
6 # Additional rules supported: perl_, aout_test, aout_install, use them | |
7 # for a.out style perl (which may fork). | |
8 | |
9 perl_fullversion="5.00${PERL_VERSION}_$PERL_SUBVERSION" | |
10 case "$archname" in | |
11 *-thread*) perl_fullversion="${perl_fullversion}-threaded";; | |
12 esac | |
13 | |
14 dll_post="`echo $perl_fullversion | sum | sed -e 's/^0*//' | awk '{print $1}'`" | |
15 dll_post="`printf '%x' $dll_post | tr '[a-z]' '[A-Z]'`" | |
16 | |
17 aout_extra_libs='' | |
18 aout_extra_sep='' | |
19 for xxx in $aout_extra_static_ext; do | |
20 aout_extra_dir=`echo "$xxx" | sed -e 's/::/\//g'` | |
21 aout_extra_lib="lib/auto/$aout_extra_dir/"`basename "$aout_extra_dir"` | |
22 aout_extra_libs="$aout_extra_libs$aout_extra_sep$aout_extra_lib$aout_lib_ext" | |
23 aout_extra_sep=' ' | |
24 done | |
25 | |
26 $spitshell >>Makefile <<!GROK!THIS! | |
27 | |
28 PERL_FULLVERSION = $perl_fullversion | |
29 | |
30 AOUT_OPTIMIZE = \$(OPTIMIZE) | |
31 AOUT_CCCMD = \$(CC) -DPERL_CORE $aout_ccflags \$(AOUT_OPTIMIZE) | |
32 AOUT_AR = $aout_ar | |
33 AOUT_OBJ_EXT = $aout_obj_ext | |
34 AOUT_LIB_EXT = $aout_lib_ext | |
35 AOUT_LIBPERL = libperl$aout_lib_ext | |
36 AOUT_CLDFLAGS = $aout_ldflags | |
37 | |
38 AOUT_LIBPERL_DLL = libperl_dll$aout_lib_ext | |
39 AOUT_CCCMD_DLL = \$(CC) -DDOSISH -DOS2=2 -DEMBED -I. -DPACK_MALLOC -DDEBUGGING_MSTATS -DTWO_POT_OPTIMIZE -DPERL_EMERGENCY_SBRK | |
40 AOUT_CLDFLAGS_DLL = -Zexe -Zmt -Zcrtdll -Zstack 32000 | |
41 | |
42 # No -DPERL_CORE | |
43 SO_CCCMD = \$(CC) $ccflags \$(OPTIMIZE) | |
44 | |
45 LD_OPT = \$(OPTIMIZE) | |
46 PERL_DLL_LD_OPT = -Zmap -Zlinker /map/li | |
47 | |
48 PERL_DLL_BASE = perl$dll_post | |
49 PERL_DLL = \$(PERL_DLL_BASE)\$(DLSUFFIX) | |
50 TEST_PERL_DLL = perl_dll_t | |
51 CONFIG_ARGS = $config_args | |
52 AOUT_EXTRA_LIBS = $aout_extra_libs | |
53 | |
54 !GROK!THIS! | |
55 | |
56 $spitshell >>Makefile <<'!NO!SUBS!' | |
57 PREPLIBRARY_LIBPERL = $(LIBPERL) | |
58 $(LIBPERL): perl.imp perl5.def libperl_override.lib | |
59 emximp -o $(LIBPERL) perl.imp | |
60 cp $(LIBPERL) perl.lib | |
61 | |
62 imp_version: $(FIRSTMAKEFILE) | |
63 echo $(PERL_DLL_BASE) > $@ | |
64 | |
65 libperl_override.imp: os2/os2add.sym miniperl imp_version | |
66 ./miniperl -wnle 'print "$$_\t$(PERL_DLL_BASE)\t$$_\t?"' os2/os2add.sym > $@ | |
67 echo 'strdup $(PERL_DLL_BASE) Perl_strdup ?' >> $@ | |
68 echo 'putenv $(PERL_DLL_BASE) Perl_putenv ?' >> $@ | |
69 | |
70 libperl_override.lib: libperl_override.imp | |
71 emximp -o $@ libperl_override.imp | |
72 | |
73 libperl_dllmain.imp: imp_version | |
74 echo 'main $(PERL_DLL_BASE) dll_perlmain ?' > $@ | |
75 | |
76 libperl_dllmain.lib: libperl_dllmain.imp | |
77 emximp -o $@ libperl_dllmain.imp | |
78 | |
79 libperl_dllmain.a: libperl_dllmain.imp | |
80 emximp -o $@ libperl_dllmain.imp | |
81 | |
82 $(AOUT_LIBPERL_DLL): perl.imp $(PERL_DLL) perl5.def | |
83 emximp -o $(AOUT_LIBPERL_DLL) perl.imp | |
84 | |
85 perl.imp: perl5.def imp_version | |
86 emximp -o perl.imp perl5.def | |
87 echo 'emx_calloc emxlibcm 400 ?' >> $@ | |
88 echo 'emx_free emxlibcm 401 ?' >> $@ | |
89 echo 'emx_malloc emxlibcm 402 ?' >> $@ | |
90 echo 'emx_realloc emxlibcm 403 ?' >> $@ | |
91 | |
92 .PHONY: perl_dll installcmd aout_clean aout_install aout_install.perl \ | |
93 perlrexx test_prep_perl_ test_prep_perl_sys test_prep_perl_stat \ | |
94 test_prep_perl_stat_aout test_prep_various \ | |
95 stat_aout_harness aout_harness stat_harness sys_harness all_harness \ | |
96 stat_aout_test aout_test stat_test sys_test all_test \ | |
97 perl___harness test_harness_redir | |
98 | |
99 perl_dll: $(PERL_DLL) | |
100 | |
101 perl_dll_t: t/$(PERL_DLL) | |
102 | |
103 t/$(PERL_DLL): $(PERL_DLL) | |
104 $(LNS) $(PERL_DLL) t/$(PERL_DLL) | |
105 | |
106 $(PERL_DLL): $(obj) perl5.def perl$(OBJ_EXT) perlmain$(OBJ_EXT) $(DYNALOADER) | |
107 $(LD) $(LD_OPT) $(LDDLFLAGS) $(PERL_DLL_LD_OPT) -o $@ perl$(OBJ_EXT) $(obj) perlmain$(OBJ_EXT) $(DYNALOADER) $(libs) perl5.def || ( rm $(PERL_DLL) && sh -c false ) | |
108 | |
109 perl5.olddef: perl.linkexp | |
110 echo "LIBRARY '$(PERL_DLL_BASE)' INITINSTANCE TERMINSTANCE" > $@ | |
111 echo DESCRIPTION "'Perl interpreter v$(PERL_FULLVERSION), export autogenerated'" >>$@ | |
112 echo STACKSIZE 32768 >>$@ | |
113 echo CODE LOADONCALL >>$@ | |
114 echo DATA LOADONCALL NONSHARED MULTIPLE >>$@ | |
115 echo EXPORTS >>$@ | |
116 !NO!SUBS! | |
117 | |
118 if [ ! -z "$myttyname" ] ; then | |
119 $spitshell >>Makefile <<'!NO!SUBS!' | |
120 echo ' "ttyname"' >>$@ | |
121 !NO!SUBS! | |
122 fi | |
123 | |
124 $spitshell >>Makefile <<'!NO!SUBS!' | |
125 cat perl.linkexp >>$@ | |
126 | |
127 # grep -v '"\(malloc\|realloc\|free\)"' perl.linkexp >>$@ | |
128 | |
129 | |
130 perl.exports: perl.exp EXTERN.h perl.h | |
131 (echo "#include \"EXTERN.h\" \n#include \"perl.h\" \n#include \"perl.exp\""; \ | |
132 echo "malloc\nrealloc\ncalloc\nfree") | \ | |
133 $(CC) -DEMBED -E - | \ | |
134 awk '{if ($$2 == "") print $$1}' | sort | uniq > $@ | |
135 | |
136 perl.linkexp: perl.exports perl.map os2/os2.sym | |
137 cat perl.exports os2/os2.sym perl.map | sort | uniq -d | sed -e 's/\w\+/ "\0"/' > perl.linkexp | |
138 | |
139 # We link miniperl statically, since .DLL depends on $(DYNALOADER) | |
140 | |
141 miniperl.map: miniperl | |
142 | |
143 miniperl.exe: miniperl | |
144 | |
145 miniperl: $(obj) perl$(OBJ_EXT) miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) | |
146 $(CC) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) perl$(OBJ_EXT) `echo $(obj)|sed -e 's/\bop\./opmini./g'` $(libs) -Zmap -Zlinker /map/PM:VIO | |
147 @./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest | |
148 | |
149 depend: os2ish.h dlfcn.h os2thread.h os2.c | |
150 | |
151 # Stupid make? Needed... | |
152 os2$(OBJ_EXT) : os2.c | |
153 | |
154 os2.c: os2/os2.c os2ish.h | |
155 cp -f $< $@ | |
156 | |
157 dl_os2.c: os2/dl_os2.c os2ish.h | |
158 cp -f $< $@ | |
159 | |
160 os2ish.h: os2/os2ish.h | |
161 cp -f $< $@ | |
162 | |
163 os2thread.h: os2/os2thread.h | |
164 cp -f $< $@ | |
165 | |
166 dlfcn.h: os2/dlfcn.h | |
167 cp -f $< $@ | |
168 | |
169 # Non-Forking dynamically loaded perl | |
170 # Make many: they are useful in low-memory conditions (floppy boot? Lot of shared memory used?) | |
171 | |
172 perl___$(EXE_EXT) perl___: $& libperl_dllmain$(LIB_EXT) | |
173 $(SHRPENV) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o perl___ libperl_dllmain$(LIB_EXT) -Zlinker /map/PM:VIO | |
174 $(SHRPENV) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -Zstack 8192 -o perl___8 libperl_dllmain$(LIB_EXT) -Zlinker /map/PM:VIO | |
175 $(SHRPENV) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -Zstack 4096 -o perl___4 libperl_dllmain$(LIB_EXT) -Zlinker /map/PM:VIO | |
176 $(SHRPENV) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -Zstack 2048 -o perl___2 libperl_dllmain$(LIB_EXT) -Zlinker /map/PM:VIO | |
177 $(SHRPENV) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -Zstack 1024 -o perl___1 libperl_dllmain$(LIB_EXT) -Zlinker /map/PM:VIO | |
178 $(SHRPENV) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -Zstack 512 -o perl___05 libperl_dllmain$(LIB_EXT) -Zlinker /map/PM:VIO | |
179 $(SHRPENV) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -Zstack 320 -o perl___03 libperl_dllmain$(LIB_EXT) -Zlinker /map/PM:VIO | |
180 | |
181 # This one is compiled -Zsys, so cannot do many things: | |
182 | |
183 # Remove -Zcrtdll | |
184 STAT_CLDFLAGS = -Zexe -Zomf -Zmt -Zstack 32000 | |
185 | |
186 # Non-forking dynamically loaded perl with a wrong CRT library: | |
187 | |
188 perl_stat perl_stat$(EXE_EXT): $& libperl_dllmain$(LIB_EXT) | |
189 $(SHRPENV) $(CC) $(STAT_CLDFLAGS) $(CCDLFLAGS) -o perl_stat libperl_dllmain$(LIB_EXT) -Zlinker /map/PM:VIO | |
190 | |
191 # Remove -Zcrtdll, add -Zsys | |
192 SYS_CLDFLAGS = $(STAT_CLDFLAGS) -Zsys | |
193 | |
194 # Non-Forking dynamically loaded perl without EMX - so with wrong CRT library | |
195 | |
196 perl_sys perl_sys$(EXE_EXT): $& libperl_dllmain$(LIB_EXT) | |
197 $(SHRPENV) $(CC) $(SYS_CLDFLAGS) $(CCDLFLAGS) -o perl_sys libperl_dllmain$(LIB_EXT) -Zlinker /map/PM:VIO | |
198 | |
199 installcmd : | |
200 @perl -e 'die qq{Give the option INSTALLCMDDIR=... to make!} if $$ARGV[0] eq ""' $(INSTALLCMDDIR) | |
201 ./miniperl -Ilib os2/perl2cmd.pl $(INSTALLCMDDIR) | |
202 | |
203 # Aout section: | |
204 | |
205 aout_obj = $(addsuffix $(AOUT_OBJ_EXT),$(basename $(obj))) | |
206 AOUT_DYNALOADER = $(addsuffix $(AOUT_LIB_EXT),$(basename $(DYNALOADER))) | |
207 aout_ext = $(static_ext) $(dynamic_ext) $(AOUT_EXTRA_LIBS) | |
208 aout_static_ext = $(addsuffix $(AOUT_LIB_EXT),$(basename $(aout_ext))) | |
209 aout_static_lib = $(addsuffix $(LIB_EXT),$(basename $(aout_ext))) | |
210 | |
211 aout_static_ext_dll = $(addsuffix $(AOUT_LIB_EXT),$(basename $(static_ext))) | |
212 DYNALOADER_OBJ = ext/DynaLoader/DynaLoader$(OBJ_EXT) | |
213 aout_static_ext_dll = $(addsuffix $(AOUT_LIB_EXT),$(basename $(static_ext))) | |
214 AOUT_DYNALOADER_OBJ = $(addsuffix $(AOUT_OBJ_EXT),$(basename $(DYNALOADER_OBJ))) | |
215 | |
216 $(AOUT_DYNALOADER_OBJ) : $(DYNALOADER_OBJ) | |
217 emxaout -o $@ $< | |
218 | |
219 $(DYNALOADER_OBJ) : $(DYNALOADER) | |
220 @sh -c true | |
221 | |
222 # Quick hack to construct directories necessary for /*/% stuff: | |
223 | |
224 $(aout_static_ext) : $(static_ext) $(dynamic_ext) | |
225 | |
226 $(AOUT_LIBPERL) : $(aout_obj) perl$(AOUT_OBJ_EXT) | |
227 rm -f $@ | |
228 $(AOUT_AR) rcu $@ perl$(AOUT_OBJ_EXT) $(aout_obj) | |
229 cp $@ perl$(AOUT_LIB_EXT) | |
230 | |
231 .c$(AOUT_OBJ_EXT): | |
232 $(AOUT_CCCMD) $(PLDLFLAGS) -c $*.c | |
233 | |
234 opmini$(AOUT_OBJ_EXT): op.c | |
235 $(AOUT_CCCMD) $(PLDLFLAGS) -DPERL_EXTERNAL_GLOB -o opmini$(AOUT_OBJ_EXT) -c op.c | |
236 | |
237 perlmain(AOUT_OBJ_EXT): perlmain.c | |
238 $(AOUT_CCCMD_DLL) $(PLDLFLAGS) -c perlmain.c | |
239 | |
240 # Assume that extensions are at most 4 deep (this is so with 5.8.1) | |
241 aout_extlist: $(aout_static_ext) $(AOUT_DYNALOADER) | |
242 echo lib/auto/*.a lib/auto/*/*.a lib/auto/*/*/*.a lib/auto/*/*/*/*.a | tr ' ' '\n' | grep -v '\*' > $@ | |
243 | |
244 aout_perlmain.c: miniperlmain.c config.sh makefile $(static_ext_autoinit) $(aout_static_ext) writemain aout_extlist | |
245 sh writemain `cat aout_extlist` > aout_perlmain.c | |
246 | |
247 _preplibrary = miniperl lib/Config.pm lib/lib.pm lib/re.pm | |
248 | |
249 miniperl_: $& miniperlmain$(AOUT_OBJ_EXT) $(AOUT_LIBPERL) opmini$(AOUT_OBJ_EXT) $(_preplibrary) | |
250 $(CC) $(AOUT_CLDFLAGS) $(CCDLFLAGS) -o miniperl_ miniperlmain$(AOUT_OBJ_EXT) opmini$(AOUT_OBJ_EXT) $(AOUT_LIBPERL) $(libs) | |
251 | |
252 # Forking statically loaded perl | |
253 | |
254 # Need a miniperl_ dependency, since $(AOUT_DYNALOADER) is build via implicit | |
255 # rules, thus would not rebuild miniperl_ via an explicit rule | |
256 | |
257 perl_$(EXE_EXT) perl_: $& miniperl_ aout_perlmain$(AOUT_OBJ_EXT) $(AOUT_LIBPERL) $(AOUT_DYNALOADER) $(aout_static_ext) ext.libs aout_extlist | |
258 $(CC) $(AOUT_CLDFLAGS) $(CCDLFLAGS) $(OPTIMIZE) -o perl_ aout_perlmain$(AOUT_OBJ_EXT) `cat aout_extlist` $(AOUT_LIBPERL) `cat ext.libs` $(libs) | |
259 | |
260 # Remove -Zcrtdll | |
261 STAT_AOUT_CLDFLAGS = -Zexe -Zmt -Zstack 32000 | |
262 | |
263 # Forking dynamically loaded perl with a wrong CRT library: | |
264 | |
265 perl_stat_aout$(EXE_EXT) perl_stat_aout: $& libperl_dllmain$(AOUT_LIB_EXT) | |
266 $(SHRPENV) $(CC) $(STAT_AOUT_CLDFLAGS) $(CCDLFLAGS) $(OPTIMIZE) -o perl_stat_aout libperl_dllmain$(AOUT_LIB_EXT) | |
267 | |
268 PERLREXX_DLL = perlrexx.dll | |
269 | |
270 perl perl$(EXE_EXT) : perl__ perl___ $(PERLREXX_DLL) $(PERL_DLL) | |
271 | |
272 # Dynamically loaded PM-application perl: | |
273 | |
274 perl__$(EXE_EXT) perl__: $& libperl_dllmain$(LIB_EXT) | |
275 $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o perl__ libperl_dllmain$(LIB_EXT) -Zlinker /PM:PM | |
276 | |
277 # Forking dynamically loaded perl: | |
278 | |
279 perl$(EXE_EXT) perl: $& libperl_dllmain$(AOUT_LIB_EXT) | |
280 $(CC) $(AOUT_CLDFLAGS_DLL) $(CCDLFLAGS) -o perl libperl_dllmain$(AOUT_LIB_EXT) | |
281 | |
282 clean: aout_clean | |
283 | |
284 aout_clean: | |
285 -rm *perl_.* *.o *.a lib/auto/*/*.a lib/auto/*/*/*.a lib/auto/*/*/*/*.a ext/*/Makefile.aout ext/*/*/Makefile.aout ext/*/*/*/Makefile.aout | |
286 | |
287 aout_install: perl_ aout_install.perl | |
288 | |
289 aout_install.perl: perl_ installperl | |
290 ./perl_ installperl --destdir="$(DESTDIR)" | |
291 | |
292 perlrexx: $(PERLREXX_DLL) | |
293 @sh -c true | |
294 | |
295 perlrexx.c: os2/perlrexx.c | |
296 @cp -f os2/$@ $@ | |
297 | |
298 # Remove -Zexe, add -Zdll -Zso. No stack needed | |
299 SO_CLDFLAGS = -Zdll -Zso -Zomf -Zmt -Zsys | |
300 | |
301 # A callable-from-REXX DLL | |
302 | |
303 $(PERLREXX_DLL): perlrexx$(OBJ_EXT) perlrexx.def | |
304 $(SHRPENV) $(CC) $(SO_CLDFLAGS) $(CCDLFLAGS) -o $@ perlrexx$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LIBPERL) `cat ext.libs` $(libs) perlrexx.def | |
305 | |
306 perlrexx.def: miniperl $(_preplibrary) | |
307 echo "LIBRARY 'perlrexx' INITINSTANCE TERMINSTANCE" > $@ | |
308 echo "DESCRIPTION '@#perl5-porters@perl.org:`miniperl -Ilib -MConfig -e 'print \$$]'`#@ REXX to Perl `miniperl -Ilib -MConfig -e 'print \$$Config{version}'` interface'" >> $@ | |
309 echo "EXPORTS" >> $@ | |
310 echo ' "PERL"' >> $@ | |
311 echo ' "PERLTERM"' >> $@ | |
312 echo ' "PERLINIT"' >> $@ | |
313 echo ' "PERLEXIT"' >> $@ | |
314 echo ' "PERLEVAL"' >> $@ | |
315 echo ' "PERLLASTERROR"' >> $@ | |
316 echo ' "PERLEVALSUBCOMMAND"' >> $@ | |
317 echo ' "PERLEXPORTALL"' >> $@ | |
318 echo ' "PERLDROPALL"' >> $@ | |
319 echo ' "PERLDROPALLEXIT"' >> $@ | |
320 | |
321 | |
322 perlrexx$(OBJ_EXT): perlrexx.c | |
323 $(SO_CCCMD) $(PLDLFLAGS) -c perlrexx.c | |
324 | |
325 # To test with harness, one needed to HARNESS_IGNORE_EXITCODE=2 | |
326 | |
327 # Define to be empty to get a TTY test | |
328 REDIR_TEST = 2>&1 | tee 00_$@ | |
329 | |
330 test_prep_perl_: test_prep_pre miniperl_ ./perl_$(EXE_EXT) | |
331 PERL=./perl_ $(MAKE) _test_prep | |
332 | |
333 test_prep_various: test_prep_pre miniperl $(dynamic_ext) $(TEST_PERL_DLL) | |
334 | |
335 test_prep_perl_sys: test_prep_various ./perl_sys$(EXE_EXT) | |
336 PERL=./perl_sys $(MAKE) _test_prep | |
337 | |
338 test_prep_perl___: test_prep_various ./perl___$(EXE_EXT) | |
339 PERL=./perl___ $(MAKE) _test_prep | |
340 | |
341 test_prep_perl_stat: test_prep_various ./perl_stat$(EXE_EXT) | |
342 PERL=./perl_stat $(MAKE) _test_prep | |
343 | |
344 test_prep_perl_stat_aout: test_prep_various ./perl_stat_aout$(EXE_EXT) | |
345 PERL=./perl_stat_aout $(MAKE) _test_prep | |
346 | |
347 aout_test: test_prep_perl_ | |
348 PERL=./perl_ $(MAKE) _test | |
349 | |
350 aout_harness: test_prep_perl_ | |
351 -PERL=./perl_ $(MAKE) TESTFILE=harness _test $(REDIR_TEST) | |
352 | |
353 sys_test: test_prep_perl_sys | |
354 PERL=./perl_sys $(MAKE) _test | |
355 | |
356 sys_harness: test_prep_perl_sys | |
357 -PERL=./perl_sys $(MAKE) TESTFILE=harness _test $(REDIR_TEST) | |
358 | |
359 stat_test: test_prep_perl_stat | |
360 PERL=./perl_stat $(MAKE) _test | |
361 | |
362 stat_harness: test_prep_perl_stat | |
363 -PERL=./perl_stat $(MAKE) TESTFILE=harness _test $(REDIR_TEST) | |
364 | |
365 stat_aout_test: test_prep_perl_stat_aout | |
366 PERL=./perl_stat_aout $(MAKE) _test | |
367 | |
368 stat_aout_harness: test_prep_perl_stat_aout | |
369 -PERL=./perl_stat_aout $(MAKE) TESTFILE=harness _test $(REDIR_TEST) | |
370 | |
371 perl___test: test_prep_perl___ | |
372 PERL=./perl___ $(MAKE) _test | |
373 | |
374 perl___harness: test_prep_perl___ | |
375 -PERL=./perl___ $(MAKE) TESTFILE=harness _test $(REDIR_TEST) | |
376 | |
377 all_test: test aout_test perl___test sys_test stat_test stat_aout_test | |
378 | |
379 test_harness_redir: test_prep | |
380 -PERL=./perl $(MAKE) TESTFILE=harness _test $(REDIR_TEST) | |
381 | |
382 all_harness: test_harness_redir aout_harness perl___harness sys_harness stat_harness stat_aout_harness | |
383 | |
384 !NO!SUBS! | |
385 | |
386 # Now we need to find directories in ./ext/ which are up to 3 level deep | |
387 # Currently (2001/06) there is no directories 4 levels deep. | |
388 # (Only directories so that there is no Makefile.PL some levels up matter.) | |
389 | |
390 dirs='' | |
391 ddirs='' | |
392 preci='ext/%/Makefile.aout ' | |
393 for d in ext/* | |
394 do | |
395 # echo "...Checking '$d'..." | |
396 # skip the kid if the parent exists: cmp SDBFile/sdbm, done by MakeMaker | |
397 if test ! -e "$d/Makefile.PL"; then | |
398 # Need to treat subdirectories manually | |
399 # echo "...Checking subdirs of '$d'..." | |
400 d_treated='' | |
401 for dd in $d/* | |
402 do | |
403 if test ! -d $dd; then | |
404 continue | |
405 fi | |
406 if test -e "$dd/Makefile.PL"; then | |
407 if test "X$d_treated" = "X"; then | |
408 d_treated=1 | |
409 # echo "...Found parentless 2-level deep Makefile.PL's in $d/*/:" $d/*/Makefile.PL | |
410 dirs="$dirs $d" | |
411 preci="$preci $d/%/Makefile.aout" | |
412 fi | |
413 else | |
414 # Need to treat subsubdirectories manually | |
415 dd_treated='' | |
416 for ddd in $dd/* # ext/*/*/*/Makefile.PL | |
417 do | |
418 if test ! -d $ddd; then | |
419 continue | |
420 fi | |
421 if test -e "$ddd/Makefile.PL"; then | |
422 if test "X$dd_treated" = "X"; then | |
423 dd_treated=1 | |
424 # echo "...Found parentless 3-level deep Makefile.PL's in $dd/*/:" $dd/*/Makefile.PL | |
425 ddirs="$ddirs $dd" | |
426 preci="$preci $dd/%/Makefile.aout" | |
427 fi | |
428 fi | |
429 done | |
430 fi | |
431 done | |
432 fi | |
433 done | |
434 | |
435 # ext/threads is marked as NORECURS, so we need to specialcase it | |
436 if echo "$static_ext $dynamic_ext" | grep -q threads/shared ; then | |
437 preci="$preci ext/threads/%/Makefile.aout" | |
438 dirs="$dirs ext/threads" | |
439 fi | |
440 | |
441 $spitshell >>Makefile <<!GROK!THIS! | |
442 .PRECIOUS : $preci | |
443 | |
444 # Set this to FORCE to force a rebuilt of aout extensions | |
445 | |
446 AOUT_EXTENSIONS_FORCE = | |
447 | |
448 !GROK!THIS! | |
449 | |
450 for d in $ddirs | |
451 do | |
452 # Remove the leading component ext/ | |
453 dd=`dirname $d` | |
454 pp=`basename $dd` | |
455 p=$pp/`basename $d` | |
456 $spitshell >>Makefile <<!GROK!THIS! | |
457 lib/auto/$p/*/%.a : $d/%/Makefile.aout | |
458 @cd $d/\$(basename \$(notdir \$@)) ; make -f Makefile.aout config || echo "\$(MAKE) config failed, continuing anyway..." | |
459 cd $d/\$(basename \$(notdir \$@)) ; make -f Makefile.aout LINKTYPE=static CCCDLFLAGS= | |
460 | |
461 $d/%/Makefile.aout : miniperl_ \$(_preplibrary) \$(AOUT_EXTENSIONS_FORCE) | |
462 cd \$(dir \$@) ; ../../../../miniperl_ -I ../../../../lib Makefile.PL FIRST_MAKEFILE=Makefile.aout INSTALLDIRS=perl PERL_CORE=1 | |
463 | |
464 !GROK!THIS! | |
465 | |
466 done | |
467 | |
468 for d in $dirs | |
469 do | |
470 p=`basename $d` | |
471 $spitshell >>Makefile <<!GROK!THIS! | |
472 lib/auto/$p/*/%.a : $d/%/Makefile.aout | |
473 @cd $d/\$(basename \$(notdir \$@)) ; make -f Makefile.aout config || echo "\$(MAKE) config failed, continuing anyway..." | |
474 cd $d/\$(basename \$(notdir \$@)) ; make -f Makefile.aout LINKTYPE=static CCCDLFLAGS= | |
475 | |
476 $d/%/Makefile.aout : miniperl_ \$(_preplibrary) \$(AOUT_EXTENSIONS_FORCE) | |
477 cd \$(dir \$@) ; ../../../miniperl_ -I ../../../lib Makefile.PL FIRST_MAKEFILE=Makefile.aout INSTALLDIRS=perl PERL_CORE=1 | |
478 | |
479 !GROK!THIS! | |
480 | |
481 done | |
482 | |
483 # We need to special-case OS2/DLL/DLL.a, since the recipe above will | |
484 # try to find it in ext/OS2-DLL | |
485 | |
486 $spitshell >>Makefile <<'!NO!SUBS!' | |
487 lib/auto/OS2/DLL/DLL.a : lib/auto/OS2/REXX/REXX.a | |
488 @sh -c true | |
489 | |
490 lib/auto/*/%.a : ext/%/Makefile.aout | |
491 @cd ext/$(basename $(notdir $@)) ; make -f Makefile.aout config || echo "\$(MAKE) config failed, continuing anyway..." | |
492 cd ext/$(basename $(notdir $@)) ; make -f Makefile.aout LINKTYPE=static CCCDLFLAGS= | |
493 | |
494 ext/%/Makefile.aout : miniperl_ $(_preplibrary) $(AOUT_EXTENSIONS_FORCE) | |
495 cd $(dir $@) ; ../../miniperl_ -I ../../lib Makefile.PL FIRST_MAKEFILE=Makefile.aout INSTALLDIRS=perl PERL_CORE=1 | |
496 | |
497 !NO!SUBS! |