1 | #! /bin/sh
|
---|
2 | case $PERL_CONFIG_SH in
|
---|
3 | '')
|
---|
4 | if test -f config.sh
|
---|
5 | then TOP=.
|
---|
6 | else
|
---|
7 | echo "Can't find config.sh."; exit 1
|
---|
8 | fi
|
---|
9 | . $TOP/config.sh
|
---|
10 | ;;
|
---|
11 | esac
|
---|
12 |
|
---|
13 | # H.Merijn Brand [17 Feb 2004]
|
---|
14 | # This comment is just to ensure that Configure will find variables that
|
---|
15 | # are removed/replaced in patches on blead, but are still needed in the
|
---|
16 | # 5.8.x, 5.6.x and 5.005.x maintainance tracks.
|
---|
17 | # metaconfig -m will scan all .SH files on this level (not deeper), and
|
---|
18 | # not in x2p and other subfolders. This file is as good as any .SH
|
---|
19 | # patch references
|
---|
20 | # #22227 $baserev
|
---|
21 | # #22302 $yacc $byacc
|
---|
22 |
|
---|
23 | # H.Merijn Brand [30 Oct 2004]
|
---|
24 | # Mentioned for the same reason for future reference
|
---|
25 | # #23434 $d_strlcat $d_strlcpy
|
---|
26 |
|
---|
27 | : This forces SH files to create target in same directory as SH file.
|
---|
28 | : This is so that make depend always knows where to find SH derivatives.
|
---|
29 | case "$0" in
|
---|
30 | */*) cd `expr X$0 : 'X\(.*\)/'` ;;
|
---|
31 | esac
|
---|
32 |
|
---|
33 | case "$d_dosuid" in
|
---|
34 | *define*) suidperl='suidperl' ;;
|
---|
35 | *) suidperl='';;
|
---|
36 | esac
|
---|
37 |
|
---|
38 | linklibperl='$(LIBPERL)'
|
---|
39 | shrpldflags='$(LDDLFLAGS)'
|
---|
40 | ldlibpth=''
|
---|
41 | DPERL_EXTERNAL_GLOB='-DPERL_EXTERNAL_GLOB'
|
---|
42 | case "$useshrplib" in
|
---|
43 | true)
|
---|
44 | # Prefix all runs of 'miniperl' and 'perl' with
|
---|
45 | # $ldlibpth so that ./perl finds *this* shared libperl.
|
---|
46 | case "$LD_LIBRARY_PATH" in
|
---|
47 | '')
|
---|
48 | ldlibpth="LD_LIBRARY_PATH=`pwd`";;
|
---|
49 | *)
|
---|
50 | ldlibpth="LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}";;
|
---|
51 | esac
|
---|
52 |
|
---|
53 | pldlflags="$cccdlflags"
|
---|
54 | static_target='static_pic'
|
---|
55 | case "${osname}${osvers}" in
|
---|
56 | next4*)
|
---|
57 | ld=libtool
|
---|
58 | lddlflags="-dynamic -undefined warning -framework System \
|
---|
59 | -compatibility_version 1 -current_version $patchlevel \
|
---|
60 | -prebind -seg1addr 0x27000000 -install_name \$(shrpdir)/\$@"
|
---|
61 | ;;
|
---|
62 | rhapsody*|darwin*)
|
---|
63 | shrpldflags="${ldflags} -dynamiclib \
|
---|
64 | -compatibility_version \
|
---|
65 | ${api_revision}.${api_version}.${api_subversion} \
|
---|
66 | -current_version \
|
---|
67 | ${revision}.${patchlevel}.${subversion} \
|
---|
68 | -install_name \$(shrpdir)/\$@"
|
---|
69 | ;;
|
---|
70 | cygwin*)
|
---|
71 | linklibperl="-lperl"
|
---|
72 | ;;
|
---|
73 | sunos*)
|
---|
74 | linklibperl="-lperl"
|
---|
75 | ;;
|
---|
76 | netbsd*|freebsd[234]*|openbsd*)
|
---|
77 | linklibperl="-L. -lperl"
|
---|
78 | ;;
|
---|
79 | interix*)
|
---|
80 | linklibperl="-L. -lperl"
|
---|
81 | shrpldflags="$shrpldflags -Wl,--image-base,0x57000000"
|
---|
82 | ;;
|
---|
83 | aix*)
|
---|
84 | shrpldflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:perl.exp"
|
---|
85 | case "$osvers" in
|
---|
86 | 3*) shrpldflags="$shrpldflags -e _nostart"
|
---|
87 | ;;
|
---|
88 | *) shrpldflags="$shrpldflags -b noentry"
|
---|
89 | ;;
|
---|
90 | esac
|
---|
91 | shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib"
|
---|
92 | linklibperl="-L $archlibexp/CORE -L `pwd | sed 's/\/UU$//'` -lperl"
|
---|
93 | ;;
|
---|
94 | hpux*)
|
---|
95 | linklibperl="-L `pwd | sed 's/\/UU$//'` -Wl,+s -Wl,+b$archlibexp/CORE -lperl"
|
---|
96 | ;;
|
---|
97 | os390*)
|
---|
98 | shrpldflags='-W l,dll'
|
---|
99 | linklibperl='libperl.x'
|
---|
100 | DPERL_EXTERNAL_GLOB=''
|
---|
101 | ;;
|
---|
102 | esac
|
---|
103 | case "$ldlibpthname" in
|
---|
104 | '') ;;
|
---|
105 | *)
|
---|
106 | case "$osname" in
|
---|
107 | os2)
|
---|
108 | ldlibpth=''
|
---|
109 | ;;
|
---|
110 | *)
|
---|
111 | eval "ldlibpth=\"$ldlibpthname=`pwd`:\$$ldlibpthname\""
|
---|
112 | ;;
|
---|
113 | esac
|
---|
114 | # Strip off any trailing :'s
|
---|
115 | ldlibpth=`echo $ldlibpth | sed 's/:*$//'`
|
---|
116 | ;;
|
---|
117 | esac
|
---|
118 |
|
---|
119 | case "$ldlibpth" in
|
---|
120 | # Protect any spaces
|
---|
121 | *" "*) ldlibpth=`echo $ldlibpth|sed 's/ /\\\\ /g'` ;;
|
---|
122 | esac
|
---|
123 |
|
---|
124 | case "$osname" in
|
---|
125 | linux)
|
---|
126 | # If there is a pre-existing $libperl from a previous
|
---|
127 | # installation, Linux needs to use LD_PRELOAD to
|
---|
128 | # override the LD_LIBRARY_PATH setting. See the
|
---|
129 | # INSTALL file, under "Building a shared perl library".
|
---|
130 | # If there is no pre-existing $libperl, we don't need
|
---|
131 | # to do anything further.
|
---|
132 | if test -f $archlib/CORE/$libperl; then
|
---|
133 | rm -f preload
|
---|
134 | cat <<'EOT' > preload
|
---|
135 | #! /bin/sh
|
---|
136 | lib=$1
|
---|
137 | shift
|
---|
138 | test -r $lib && export LD_PRELOAD="$lib $LD_PRELOAD"
|
---|
139 | exec "$@"
|
---|
140 | EOT
|
---|
141 | chmod 755 preload
|
---|
142 | ldlibpth="$ldlibpth `pwd`/preload `pwd`/$libperl"
|
---|
143 | fi
|
---|
144 | ;;
|
---|
145 | os390) test -f /bin/env && ldlibpth="/bin/env $ldlibpth"
|
---|
146 | ;;
|
---|
147 | esac
|
---|
148 |
|
---|
149 | ;;
|
---|
150 |
|
---|
151 | *) pldlflags=''
|
---|
152 | static_target='static'
|
---|
153 | ;;
|
---|
154 | esac
|
---|
155 |
|
---|
156 | : Prepare dependency lists for Makefile.
|
---|
157 | dynamic_list=' '
|
---|
158 | for f in $dynamic_ext; do
|
---|
159 | : the dependency named here will never exist
|
---|
160 | base=`echo "$f" | sed 's/.*\///'`
|
---|
161 | dynamic_list="$dynamic_list lib/auto/$f/$base.$dlext"
|
---|
162 | done
|
---|
163 |
|
---|
164 | static_list=' '
|
---|
165 | for f in $static_ext; do
|
---|
166 | base=`echo "$f" | sed 's/.*\///'`
|
---|
167 | static_list="$static_list lib/auto/$f/$base\$(LIB_EXT)"
|
---|
168 | done
|
---|
169 |
|
---|
170 | nonxs_list=' '
|
---|
171 | for f in $nonxs_ext; do
|
---|
172 | base=`echo "$f" | sed 's/.*\///'`
|
---|
173 | nonxs_list="$nonxs_list ext/$f/pm_to_blib"
|
---|
174 | done
|
---|
175 |
|
---|
176 | # Handle the usage of different yaccs in posix-bc (During Configure we
|
---|
177 | # us yacc for perly.y and byacc for a2p.y. The makefiles must use the
|
---|
178 | # same configuration for run_byacc!):
|
---|
179 | case "$osname" in
|
---|
180 | posix-bc)
|
---|
181 | byacc=$yacc
|
---|
182 | ;;
|
---|
183 | esac
|
---|
184 |
|
---|
185 | echo "Extracting Makefile (with variable substitutions)"
|
---|
186 | $spitshell >Makefile <<!GROK!THIS!
|
---|
187 | # Makefile.SH
|
---|
188 | # This file is derived from Makefile.SH. Any changes made here will
|
---|
189 | # be lost the next time you run Configure.
|
---|
190 | # Makefile is used to generate $firstmakefile. The only difference
|
---|
191 | # is that $firstmakefile has the dependencies filled in at the end.
|
---|
192 | #
|
---|
193 | #
|
---|
194 | # I now supply perly.c with the kits, so don't remake perly.c without byacc
|
---|
195 | BYACC = $byacc
|
---|
196 | CC = $cc
|
---|
197 | LD = $ld
|
---|
198 |
|
---|
199 | LDFLAGS = $ldflags
|
---|
200 | CLDFLAGS = $ldflags
|
---|
201 |
|
---|
202 | mallocsrc = $mallocsrc
|
---|
203 | mallocobj = $mallocobj
|
---|
204 | LNS = $lns
|
---|
205 | # NOTE: some systems don't grok "cp -f". XXX Configure test needed?
|
---|
206 | CPS = $cp
|
---|
207 | RMS = rm -f
|
---|
208 | ranlib = $ranlib
|
---|
209 |
|
---|
210 | # The following are mentioned only to make metaconfig include the
|
---|
211 | # appropriate questions in Configure. If you want to change these,
|
---|
212 | # edit config.sh instead, or specify --man1dir=/wherever on
|
---|
213 | # installman commandline.
|
---|
214 | bin = $installbin
|
---|
215 | scriptdir = $scriptdir
|
---|
216 | shrpdir = $archlibexp/CORE
|
---|
217 | privlib = $installprivlib
|
---|
218 | man1dir = $man1dir
|
---|
219 | man1ext = $man1ext
|
---|
220 | man3dir = $man3dir
|
---|
221 | man3ext = $man3ext
|
---|
222 |
|
---|
223 | # The following are used to build and install shared libraries for
|
---|
224 | # dynamic loading.
|
---|
225 | LDDLFLAGS = $lddlflags
|
---|
226 | SHRPLDFLAGS = $shrpldflags
|
---|
227 | CCDLFLAGS = $ccdlflags
|
---|
228 | DLSUFFIX = .$dlext
|
---|
229 | PLDLFLAGS = $pldlflags
|
---|
230 | LIBPERL = $libperl
|
---|
231 | LLIBPERL= $linklibperl
|
---|
232 | SHRPENV = $shrpenv
|
---|
233 |
|
---|
234 | # Static targets are ordinarily built without CCCDLFLAGS. However,
|
---|
235 | # if building a shared libperl.so that might later be linked into
|
---|
236 | # another application, then it might be appropriate to also build static
|
---|
237 | # extensions (usually just DynaLoader) with relocatable code (e.g. -fPIC
|
---|
238 | # for GNU cc). This is handled by ext/util/make_ext.
|
---|
239 | STATIC = $static_target
|
---|
240 |
|
---|
241 | # The following is used to include the current directory in
|
---|
242 | # the dynamic loader path you are building a shared libperl.
|
---|
243 | LDLIBPTH = $ldlibpth
|
---|
244 |
|
---|
245 | dynamic_ext = $dynamic_list
|
---|
246 | static_ext = $static_list
|
---|
247 | nonxs_ext = $nonxs_list
|
---|
248 | ext = \$(dynamic_ext) \$(static_ext) \$(nonxs_ext)
|
---|
249 | DYNALOADER = lib/auto/DynaLoader/DynaLoader\$(LIB_EXT)
|
---|
250 |
|
---|
251 | libs = $perllibs $cryptlib
|
---|
252 |
|
---|
253 | public = perl\$(EXE_EXT) $suidperl utilities translators
|
---|
254 |
|
---|
255 | shellflags = $shellflags
|
---|
256 |
|
---|
257 | # This is set to MAKE=$make if your $make command doesn't
|
---|
258 | # do it for you.
|
---|
259 | $make_set_make
|
---|
260 |
|
---|
261 | # Mention $gmake here so it gets probed for by Configure.
|
---|
262 |
|
---|
263 | # These variables may need to be manually set for non-Unix systems.
|
---|
264 | AR = $full_ar
|
---|
265 | EXE_EXT = $_exe
|
---|
266 | LIB_EXT = $_a
|
---|
267 | OBJ_EXT = $_o
|
---|
268 | PATH_SEP = $p_
|
---|
269 |
|
---|
270 | FIRSTMAKEFILE = $firstmakefile
|
---|
271 |
|
---|
272 | # Any special object files needed by this architecture, e.g. os2/os2.obj
|
---|
273 | ARCHOBJS = $archobjs
|
---|
274 |
|
---|
275 | .SUFFIXES: .c \$(OBJ_EXT) .i .s
|
---|
276 |
|
---|
277 | # grrr
|
---|
278 | SHELL = $sh
|
---|
279 |
|
---|
280 | # how to tr(anslate) newlines
|
---|
281 | TRNL = '$trnl'
|
---|
282 |
|
---|
283 | OPTIMIZE = $optimize
|
---|
284 |
|
---|
285 | EXTRAS = $extras
|
---|
286 |
|
---|
287 | INSTALLPREFIXEXP = $prefix
|
---|
288 |
|
---|
289 | !GROK!THIS!
|
---|
290 | # not used by Makefile but by installperl;
|
---|
291 | # mentioned here so that metaconfig picks these up
|
---|
292 | # $installusrbinperl
|
---|
293 | # $versiononly
|
---|
294 |
|
---|
295 | case "${osname}:${osvers}" in
|
---|
296 | darwin:*)
|
---|
297 | $spitshell >>Makefile <<EOF
|
---|
298 |
|
---|
299 | # Your locales are broken (osname $osname, osvers $osvers)
|
---|
300 | # and to avoid the numerous
|
---|
301 | # perl: warning: Setting locale failed.
|
---|
302 | # warnings during the build process we reset the locale variables.
|
---|
303 |
|
---|
304 | LC_ALL=C
|
---|
305 | LANG=C
|
---|
306 | LANGUAGE=C
|
---|
307 | EOF
|
---|
308 | ;;
|
---|
309 | esac
|
---|
310 |
|
---|
311 | ## In the following dollars and backticks do not need the extra backslash.
|
---|
312 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
313 |
|
---|
314 | CCCMD = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $@`
|
---|
315 |
|
---|
316 | CCCMDSRC = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $<`
|
---|
317 |
|
---|
318 | CONFIGPM = lib/Config.pm lib/Config_heavy.pl
|
---|
319 | private = preplibrary $(CONFIGPM) lib/Config.pod lib/ExtUtils/Miniperl.pm
|
---|
320 |
|
---|
321 | # Files to be built with variable substitution before miniperl
|
---|
322 | # is available.
|
---|
323 | sh = Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH \
|
---|
324 | makedir.SH myconfig.SH writemain.SH pod/Makefile.SH
|
---|
325 |
|
---|
326 | shextract = Makefile cflags config.h makeaperl makedepend \
|
---|
327 | makedir myconfig writemain pod/Makefile
|
---|
328 |
|
---|
329 | # Files to be built with variable substitution after miniperl is
|
---|
330 | # available. Dependencies handled manually below (for now).
|
---|
331 |
|
---|
332 | pl = pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL \
|
---|
333 | pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL
|
---|
334 |
|
---|
335 | # lib/lib.pm is not listed here because it has a rule of its own.
|
---|
336 | plextract = pod/pod2html pod/pod2latex pod/pod2man pod/pod2text \
|
---|
337 | pod/pod2usage pod/podchecker pod/podselect
|
---|
338 |
|
---|
339 | addedbyconf = UU $(shextract) $(plextract) lib/lib.pm pstruct
|
---|
340 |
|
---|
341 | # Unicode data files generated by mktables
|
---|
342 | unidatafiles = lib/unicore/Canonical.pl lib/unicore/Exact.pl \
|
---|
343 | lib/unicore/Properties lib/unicore/Decomposition.pl \
|
---|
344 | lib/unicore/CombiningClass.pl lib/unicore/Name.pl lib/unicore/PVA.pl
|
---|
345 |
|
---|
346 | # Directories of Unicode data files generated by mktables
|
---|
347 | unidatadirs = lib/unicore/To lib/unicore/lib
|
---|
348 |
|
---|
349 | h1 = EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h
|
---|
350 | h2 = embed.h form.h gv.h handy.h hv.h keywords.h mg.h op.h opcode.h
|
---|
351 | h3 = pad.h patchlevel.h perl.h perlapi.h perly.h pp.h proto.h regcomp.h
|
---|
352 | h4 = regexp.h scope.h sv.h unixish.h util.h iperlsys.h thread.h
|
---|
353 | h5 = utf8.h warnings.h
|
---|
354 | h = $(h1) $(h2) $(h3) $(h4) $(h5)
|
---|
355 |
|
---|
356 | c1 = $(mallocsrc) av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c reentr.c
|
---|
357 | c2 = perl.c perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c
|
---|
358 | c3 = gv.c sv.c taint.c toke.c util.c deb.c run.c universal.c xsutils.c pad.c
|
---|
359 | c4 = globals.c perlio.c perlapi.c numeric.c locale.c pp_pack.c pp_sort.c
|
---|
360 |
|
---|
361 | c = $(c1) $(c2) $(c3) $(c4) miniperlmain.c perlmain.c opmini.c
|
---|
362 |
|
---|
363 | obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT)
|
---|
364 | obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
|
---|
365 | obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) xsutils$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT)
|
---|
366 |
|
---|
367 | obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
|
---|
368 |
|
---|
369 | lintflags = \
|
---|
370 | -bhn \
|
---|
371 | -p \
|
---|
372 | -s \
|
---|
373 | -Ncheck=%all \
|
---|
374 | -Nlevel=4 \
|
---|
375 | -errfmt=src \
|
---|
376 | -errtags \
|
---|
377 | -erroff=E_BAD_PTR_CAST \
|
---|
378 | -erroff=E_BLOCK_DECL_UNUSED \
|
---|
379 | -erroff=E_CONSTANT_CONDITION \
|
---|
380 | -erroff=E_BAD_PTR_CAST_ALIGN \
|
---|
381 | -erroff=E_PTRDIFF_OVERFLOW \
|
---|
382 | -erroff=E_EXPR_NULL_EFFECT \
|
---|
383 | -erroff=E_BAD_PTR_INT_COMBINATION \
|
---|
384 | -erroff=E_LOOP_EMPTY \
|
---|
385 | -erroff=E_TRUE_LOGICAL_EXPR \
|
---|
386 | -erroff=E_FALSE_LOGICAL_EXPR \
|
---|
387 | -erroff=E_INDISTING_FROM_TRUNC \
|
---|
388 | -erroff=E_POINTER_TO_OBJECT \
|
---|
389 | -erroff=E_ASSIGN_NARROW_CONV \
|
---|
390 | -erroff=E_BAD_SIGN_EXTEND \
|
---|
391 | -erroff=E_INCL_NUSD \
|
---|
392 | -erroff=E_MAIN_PARAM \
|
---|
393 | -Wfoo.flow
|
---|
394 |
|
---|
395 | .c$(OBJ_EXT):
|
---|
396 | $(CCCMD) $(PLDLFLAGS) $*.c
|
---|
397 |
|
---|
398 | .c.i:
|
---|
399 | $(CCCMDSRC) -E $*.c > $*.i
|
---|
400 |
|
---|
401 | .c.s:
|
---|
402 | $(CCCMDSRC) -S $*.c
|
---|
403 |
|
---|
404 | all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
|
---|
405 | @echo " ";
|
---|
406 | @echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
|
---|
407 |
|
---|
408 | .PHONY: all compile translators utilities
|
---|
409 |
|
---|
410 | compile: all
|
---|
411 | echo "testing compilation" > testcompile;
|
---|
412 | cd utils; $(MAKE) compile;
|
---|
413 | cd x2p; $(MAKE) compile;
|
---|
414 | cd pod; $(MAKE) compile;
|
---|
415 |
|
---|
416 | translators: miniperl$(EXE_EXT) $(CONFIGPM) FORCE
|
---|
417 | @echo " "; echo " Making x2p stuff"; cd x2p; $(LDLIBPTH) $(MAKE) all
|
---|
418 |
|
---|
419 | utilities: miniperl$(EXE_EXT) $(CONFIGPM) $(plextract) lib/lib.pm FORCE
|
---|
420 | @echo " "; echo " Making utilities"; cd utils; $(LDLIBPTH) $(MAKE) all
|
---|
421 |
|
---|
422 |
|
---|
423 | # This is now done by installman only if you actually want the man pages.
|
---|
424 | # @echo " "; echo " Making docs"; cd pod; $(MAKE) all;
|
---|
425 |
|
---|
426 | # Phony target to force checking subdirectories.
|
---|
427 | # Apparently some makes require an action for the FORCE target.
|
---|
428 | .PHONY: FORCE
|
---|
429 | FORCE:
|
---|
430 | @sh -c true
|
---|
431 | !NO!SUBS!
|
---|
432 | $spitshell >>Makefile <<!GROK!THIS!
|
---|
433 |
|
---|
434 | # We do a copy of the op.c instead of a symlink because gcc gets huffy
|
---|
435 | # if we have a symlink forest to another disk (it complains about too many
|
---|
436 | # levels of symbolic links, even if we have only two)
|
---|
437 |
|
---|
438 | opmini.c: op.c
|
---|
439 | \$(RMS) opmini.c
|
---|
440 | \$(CPS) op.c opmini.c
|
---|
441 |
|
---|
442 | opmini\$(OBJ_EXT): opmini.c
|
---|
443 | \$(CCCMD) \$(PLDLFLAGS) $DPERL_EXTERNAL_GLOB opmini.c
|
---|
444 |
|
---|
445 | !GROK!THIS!
|
---|
446 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
447 | miniperlmain$(OBJ_EXT): miniperlmain.c patchlevel.h
|
---|
448 | $(CCCMD) $(PLDLFLAGS) $*.c
|
---|
449 |
|
---|
450 | perlmain.c: miniperlmain.c config.sh $(FIRSTMAKEFILE)
|
---|
451 | sh writemain $(DYNALOADER) $(static_ext) > perlmain.c
|
---|
452 |
|
---|
453 | !NO!SUBS!
|
---|
454 | case "$osname" in
|
---|
455 | cygwin)
|
---|
456 | ;; # Let cygwin/Makefile.SHs do its work.
|
---|
457 | *)
|
---|
458 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
459 | perlmain$(OBJ_EXT): perlmain.c
|
---|
460 | $(CCCMD) $(PLDLFLAGS) $*.c
|
---|
461 |
|
---|
462 | !NO!SUBS!
|
---|
463 | ;;
|
---|
464 | esac
|
---|
465 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
466 | # The file ext.libs is a list of libraries that must be linked in
|
---|
467 | # for static extensions, e.g. -lm -lgdbm, etc. The individual
|
---|
468 | # static extension Makefile's add to it.
|
---|
469 | ext.libs: $(static_ext)
|
---|
470 | -@test -f ext.libs || touch ext.libs
|
---|
471 |
|
---|
472 | !NO!SUBS!
|
---|
473 |
|
---|
474 | # How to build libperl. This is still rather convoluted.
|
---|
475 | # Load up custom Makefile.SH fragment for shared loading and executables:
|
---|
476 | case "$osname" in
|
---|
477 | *)
|
---|
478 | Makefile_s="$osname/Makefile.SHs"
|
---|
479 | ;;
|
---|
480 | esac
|
---|
481 |
|
---|
482 | case "$osname" in
|
---|
483 | aix)
|
---|
484 | $spitshell >>Makefile <<!GROK!THIS!
|
---|
485 | LIBS = $perllibs
|
---|
486 | # In AIX we need to change this for building Perl itself from
|
---|
487 | # its earlier definition (which is for building external
|
---|
488 | # extensions *after* Perl has been built and installed)
|
---|
489 | CCDLFLAGS = `echo $ccdlflags|sed -e 's@-bE:.*/perl\.exp@-bE:perl.exp@'`
|
---|
490 |
|
---|
491 | !GROK!THIS!
|
---|
492 | case "$useshrplib" in
|
---|
493 | define|true|[yY]*)
|
---|
494 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
495 |
|
---|
496 | LIBPERL_NONSHR = libperl_nonshr$(LIB_EXT)
|
---|
497 | MINIPERL_NONSHR = miniperl_nonshr$(EXE_EXT)
|
---|
498 |
|
---|
499 | $(LIBPERL_NONSHR): perl$(OBJ_EXT) $(obj)
|
---|
500 | $(RMS) $(LIBPERL_NONSHR)
|
---|
501 | $(AR) rcu $(LIBPERL_NONSHR) perl$(OBJ_EXT) $(obj)
|
---|
502 |
|
---|
503 | $(MINIPERL_NONSHR): $(LIBPERL_NONSHR) miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT)
|
---|
504 | $(CC) $(LDFLAGS) -o $(MINIPERL_NONSHR) miniperlmain$(OBJ_EXT) \
|
---|
505 | opmini$(OBJ_EXT) $(LIBPERL_NONSHR) $(LIBS)
|
---|
506 |
|
---|
507 | MINIPERLEXP = $(MINIPERL_NONSHR)
|
---|
508 |
|
---|
509 | LIBPERLEXPORT = perl.exp
|
---|
510 |
|
---|
511 | !NO!SUBS!
|
---|
512 |
|
---|
513 | ;;
|
---|
514 | *)
|
---|
515 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
516 | MINIPERLEXP = miniperl$(EXE_EXT)
|
---|
517 |
|
---|
518 | PERLEXPORT = perl.exp
|
---|
519 |
|
---|
520 | !NO!SUBS!
|
---|
521 | ;;
|
---|
522 | esac
|
---|
523 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
524 | perl.exp: $(MINIPERLEXP) makedef.pl config.sh $(SYM) $(SYMH)
|
---|
525 | ./$(MINIPERLEXP) makedef.pl PLATFORM=aix CC_FLAGS="$(OPTIMIZE)" | sort -u | sort -f > perl.exp
|
---|
526 |
|
---|
527 | !NO!SUBS!
|
---|
528 | ;;
|
---|
529 | os2)
|
---|
530 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
531 | MINIPERLEXP = miniperl
|
---|
532 |
|
---|
533 | perl5.def: $(MINIPERLEXP) makedef.pl config.sh $(SYM) $(SYMH) miniperl.map
|
---|
534 | #emximp miniperlmain$(OBJ_EXT) perl$(OBJ_EXT) `echo $(obj)|sed -e 's/\bop\./opmini./g'` \
|
---|
535 | # | sed -e 's/ *;.*//' -e '/^ *$$/d' -e 's/"\([^"]*\)/\1/' > miniperl.in.def
|
---|
536 | ./$(MINIPERLEXP) makedef.pl PLATFORM=os2 -DPERL_DLL=$(PERL_DLL) CC_FLAGS="$(OPTIMIZE)" > perl5.def
|
---|
537 |
|
---|
538 | !NO!SUBS!
|
---|
539 | ;;
|
---|
540 | esac
|
---|
541 |
|
---|
542 | if test -r $Makefile_s ; then
|
---|
543 | . $Makefile_s
|
---|
544 | $spitshell >>Makefile <<!GROK!THIS!
|
---|
545 |
|
---|
546 | Makefile: $Makefile_s
|
---|
547 | !GROK!THIS!
|
---|
548 | else
|
---|
549 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
550 | $(LIBPERL): $& perl$(OBJ_EXT) $(obj) $(LIBPERLEXPORT)
|
---|
551 | !NO!SUBS!
|
---|
552 | case "$useshrplib" in
|
---|
553 | true)
|
---|
554 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
555 | $(LD) -o $@ $(SHRPLDFLAGS) perl$(OBJ_EXT) $(obj) $(libs)
|
---|
556 | !NO!SUBS!
|
---|
557 | case "$osname" in
|
---|
558 | aix)
|
---|
559 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
560 | rm -f libperl$(OBJ_EXT)
|
---|
561 | mv $@ libperl$(OBJ_EXT)
|
---|
562 | $(AR) qv $(LIBPERL) libperl$(OBJ_EXT)
|
---|
563 | !NO!SUBS!
|
---|
564 | ;;
|
---|
565 | esac
|
---|
566 | ;;
|
---|
567 | *)
|
---|
568 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
569 | rm -f $(LIBPERL)
|
---|
570 | $(AR) rcu $(LIBPERL) perl$(OBJ_EXT) $(obj)
|
---|
571 | @$(ranlib) $(LIBPERL)
|
---|
572 | !NO!SUBS!
|
---|
573 | ;;
|
---|
574 | esac
|
---|
575 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
576 |
|
---|
577 | # How to build executables.
|
---|
578 |
|
---|
579 | # The $& notation tells Sequent machines that it can do a parallel make,
|
---|
580 | # and is harmless otherwise.
|
---|
581 | # The miniperl -w -MExporter line is a basic cheap test to catch errors
|
---|
582 | # before make goes on to run preplibrary and then MakeMaker on extensions.
|
---|
583 | # This is very handy because later errors are often caused by miniperl
|
---|
584 | # build problems but that's not obvious to the novice.
|
---|
585 | # The Module used here must not depend on Config or any extensions.
|
---|
586 |
|
---|
587 | !NO!SUBS!
|
---|
588 |
|
---|
589 | case "${osname}${osvers}" in
|
---|
590 | aix*|beos*)
|
---|
591 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
592 | miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT)
|
---|
593 | $(CC) -o miniperl $(CLDFLAGS) \
|
---|
594 | `echo $(obj) | sed 's/ op$(OBJ_EXT) / /'` \
|
---|
595 | miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perl$(OBJ_EXT) $(libs)
|
---|
596 | $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
|
---|
597 | !NO!SUBS!
|
---|
598 | ;;
|
---|
599 | next4*)
|
---|
600 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
601 | miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT)
|
---|
602 | $(CC) -o miniperl `echo $(obj) | sed 's/ op$(OBJ_EXT) / /'` \
|
---|
603 | miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perl$(OBJ_EXT) $(libs)
|
---|
604 | $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
|
---|
605 | !NO!SUBS!
|
---|
606 | ;;
|
---|
607 | darwin*)
|
---|
608 | case "$osvers" in
|
---|
609 | [1-6].*) ;;
|
---|
610 | *) case "$ldflags" in
|
---|
611 | *"-flat_namespace"*) ;;
|
---|
612 | *) # to allow opmini.o to override stuff in libperl.dylib
|
---|
613 | $spitshell >>Makefile <<!NO!SUBS!
|
---|
614 | NAMESPACEFLAGS = -force_flat_namespace
|
---|
615 | !NO!SUBS!
|
---|
616 | ;;
|
---|
617 | esac
|
---|
618 | ;;
|
---|
619 | esac
|
---|
620 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
621 | miniperl$(EXE_EXT): $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT)
|
---|
622 | -@rm -f miniperl.xok
|
---|
623 | $(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o miniperl \
|
---|
624 | miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs)
|
---|
625 | $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
|
---|
626 | !NO!SUBS!
|
---|
627 | ;;
|
---|
628 | *)
|
---|
629 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
630 | miniperl$(EXE_EXT): $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT)
|
---|
631 | -@rm -f miniperl.xok
|
---|
632 | $(LDLIBPTH) $(CC) $(CLDFLAGS) -o miniperl \
|
---|
633 | miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs)
|
---|
634 | $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
|
---|
635 | !NO!SUBS!
|
---|
636 | ;;
|
---|
637 | esac
|
---|
638 |
|
---|
639 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
640 |
|
---|
641 | perl$(EXE_EXT): $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
|
---|
642 | -@rm -f miniperl.xok
|
---|
643 | $(SHRPENV) $(LDLIBPTH) $(CC) -o perl$(PERL_SUFFIX) $(PERL_PROFILE_LDFLAGS) $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
|
---|
644 |
|
---|
645 | # Purify/Quantify Perls.
|
---|
646 |
|
---|
647 | pureperl$(EXE_EXT): $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
|
---|
648 | $(SHRPENV) $(LDLIBPTH) purify $(CC) -o pureperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
|
---|
649 |
|
---|
650 | purecovperl$(EXE_EXT): $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
|
---|
651 | $(SHRPENV) $(LDLIBPTH) purecov $(CC) -o purecovperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
|
---|
652 |
|
---|
653 | quantperl$(EXE_EXT): $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
|
---|
654 | $(SHRPENV) $(LDLIBPTH) quantify $(CC) -o quantperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
|
---|
655 |
|
---|
656 | # Valgrind perl (currently Linux only)
|
---|
657 |
|
---|
658 | perl.valgrind.config: config.sh
|
---|
659 | @echo "To build perl.valgrind you must Configure -Doptimize=-g -Uusemymalloc, checking..."
|
---|
660 | @$(MAKE) perl.config.dashg
|
---|
661 | @echo "Checking usemymalloc='n' in config.sh..."
|
---|
662 | @grep "^usemymalloc=" config.sh
|
---|
663 | @grep "^usemymalloc='n'" config.sh >/dev/null || exit 1
|
---|
664 | @echo "And of course you have to have valgrind..."
|
---|
665 | valgrind ./perl -e 1 2>/dev/null || exit 1
|
---|
666 |
|
---|
667 | # Third Degree Perl (Tru64 only)
|
---|
668 |
|
---|
669 | perl.config.dashg:
|
---|
670 | @echo "Checking optimize='-g' in config.sh..."
|
---|
671 | @grep "^optimize=" config.sh
|
---|
672 | @egrep "^optimize='(-g|.*-g[1-3].*)'" config.sh >/dev/null || exit 1
|
---|
673 |
|
---|
674 | perl.third.config: config.sh
|
---|
675 | @echo "To build perl.third you must Configure -Doptimize=-g -Uusemymalloc, checking..."
|
---|
676 | @$(MAKE) perl.config.dashg
|
---|
677 | @echo "Checking usemymalloc='n' in config.sh..."
|
---|
678 | @grep "^usemymalloc=" config.sh
|
---|
679 | @grep "^usemymalloc='n'" config.sh >/dev/null || exit 1
|
---|
680 |
|
---|
681 | perl.third: /usr/bin/atom perl.third.config perl
|
---|
682 | atom -tool third -L. -all -gp -toolargs="-invalid -uninit heap+stack+copy -min 0" perl
|
---|
683 | @echo "Now you may run perl.third and then study perl.3log."
|
---|
684 |
|
---|
685 | # Pixie Perls (Tru64 and IRIX only)
|
---|
686 |
|
---|
687 | perl.pixie.config: config.sh
|
---|
688 | @echo "To build perl.pixie you must Configure -Doptimize=-g, checking..."
|
---|
689 | @$(MAKE) perl.config.dashg
|
---|
690 |
|
---|
691 | perl.pixie.atom: /usr/bin/atom perl
|
---|
692 | atom -tool pixie -L. -all -toolargs="-quiet" perl
|
---|
693 |
|
---|
694 | perl.pixie.irix: perl
|
---|
695 | pixie perl
|
---|
696 |
|
---|
697 | perl.pixie: /usr/bin/pixie perl.pixie.config perl
|
---|
698 | if test -x /usr/bin/atom; then \
|
---|
699 | $(MAKE) perl.pixie.atom; \
|
---|
700 | else \
|
---|
701 | $(MAKE) perl.pixie.irix; \
|
---|
702 | fi
|
---|
703 | @echo "Now you may run perl.pixie and then run pixie."
|
---|
704 |
|
---|
705 | # Gprof Perl
|
---|
706 |
|
---|
707 | perl.config.dashpg:
|
---|
708 | @echo "Checking optimize='-pg' in config.sh..."
|
---|
709 | @grep "^optimize=" config.sh
|
---|
710 | @grep "^optimize='.*-pg.*'" config.sh >/dev/null || exit 1
|
---|
711 |
|
---|
712 | perl.gprof.config: config.sh
|
---|
713 | @echo "To build perl.gprof you must Configure -Doptimize=-pg, checking..."
|
---|
714 | @$(MAKE) perl.config.dashpg
|
---|
715 |
|
---|
716 | perl.gprof: /usr/bin/gprof perl.gprof.config
|
---|
717 | @-rm -f perl
|
---|
718 | $(MAKE) PERL_SUFFIX=.gprof PERL_PROFILE_LDFLAGS=-pg perl
|
---|
719 | @echo "Now you may run perl.gprof and then run gprof perl.gprof."
|
---|
720 |
|
---|
721 | # Gcov Perl
|
---|
722 |
|
---|
723 | perl.config.gcov:
|
---|
724 | @echo "To build perl.gcov you must use gcc 3.0 or newer, checking..."
|
---|
725 | @echo "Checking gccversion in config.sh..."
|
---|
726 | @grep "^gccversion=" config.sh
|
---|
727 | @grep "^gccversion='[3-9]\." config.sh >/dev/null || exit 1
|
---|
728 | @echo "To build perl.gcov you must Configure -Dccflags=-fprofile-arcs -ftest-coverage, checking..."
|
---|
729 | @echo "Checking ccflags='-fprofile-arcs -ftest-coverage' in config.sh..."
|
---|
730 | @grep "^ccflags=" config.sh
|
---|
731 | @grep "^ccflags='.*-fprofile-arcs -ftest-coverage.*'" config.sh >/dev/null || exit 1
|
---|
732 |
|
---|
733 | perl.gcov: perl.config.gcov
|
---|
734 | @-rm -f perl
|
---|
735 | $(MAKE) PERL_SUFFIX=.gcov PERL_PROFILE_LDFLAGS='' perl
|
---|
736 | @echo "Now you may run perl.gcov and then run gcov some.c."
|
---|
737 |
|
---|
738 | # Microperl. This is just a convenience thing if one happens to
|
---|
739 | # build also the full Perl and therefore the real big Makefile:
|
---|
740 | # usually one should manually explicitly issue the below command.
|
---|
741 |
|
---|
742 | .PHONY: microperl
|
---|
743 | microperl:
|
---|
744 | $(MAKE) -f Makefile.micro
|
---|
745 |
|
---|
746 | # This version, if specified in Configure, does ONLY those scripts which need
|
---|
747 | # set-id emulation. Suidperl must be setuid root. It contains the "taint"
|
---|
748 | # checks as well as the special code to validate that the script in question
|
---|
749 | # has been invoked correctly.
|
---|
750 |
|
---|
751 | suidperl$(EXE_EXT): $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
|
---|
752 | $(SHRPENV) $(LDLIBPTH) $(CC) -o suidperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
|
---|
753 |
|
---|
754 | !NO!SUBS!
|
---|
755 |
|
---|
756 | fi
|
---|
757 |
|
---|
758 | $spitshell >>Makefile <<'!NO!SUBS!'
|
---|
759 |
|
---|
760 | sperl$(OBJ_EXT): perl.c $(h)
|
---|
761 | $(RMS) sperl.c
|
---|
762 | $(LNS) perl.c sperl.c
|
---|
763 | $(CCCMD) -DIAMSUID sperl.c
|
---|
764 | $(RMS) sperl.c
|
---|
765 |
|
---|
766 | # We have to call our ./makedir because Ultrix 4.3 make can't handle the line
|
---|
767 | # test -d lib/auto || mkdir lib/auto
|
---|
768 | # We need to autosplit in two steps because VOS can't handle so many args
|
---|
769 | #
|
---|
770 | .PHONY: preplibrary
|
---|
771 | preplibrary: miniperl$(EXE_EXT) $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL)
|
---|
772 | @sh ./makedir lib/auto
|
---|
773 | @echo " AutoSplitting perl library"
|
---|
774 | $(LDLIBPTH) ./miniperl -Ilib -e 'use AutoSplit; \
|
---|
775 | autosplit_lib_modules(@ARGV)' lib/*.pm
|
---|
776 | $(LDLIBPTH) ./miniperl -Ilib -e 'use AutoSplit; \
|
---|
777 | autosplit_lib_modules(@ARGV)' lib/*/*.pm
|
---|
778 | $(MAKE) lib/re.pm
|
---|
779 |
|
---|
780 | lib/Config.pod: config.sh miniperl$(EXE_EXT) configpm Porting/Glossary
|
---|
781 | $(LDLIBPTH) ./miniperl -Ilib configpm --heavy=lib/Config_heavy.pl lib/Config.pm
|
---|
782 |
|
---|
783 | $(CONFIGPM): lib/Config.pod
|
---|
784 |
|
---|
785 | lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl$(EXE_EXT) minimod.pl $(CONFIGPM)
|
---|
786 | $(LDLIBPTH) ./miniperl minimod.pl > lib/ExtUtils/Miniperl.pm
|
---|
787 |
|
---|
788 | lib/re.pm: ext/re/re.pm
|
---|
789 | cp ext/re/re.pm lib/re.pm
|
---|
790 |
|
---|
791 | $(plextract): miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p
|
---|
792 | @-rm -f $@
|
---|
793 | $(LDLIBPTH) ./miniperl -I`pwd`/lib $@.PL
|
---|
794 |
|
---|
795 | x2p/s2p: miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p.PL
|
---|
796 | cd x2p; $(LDLIBPTH) $(MAKE) s2p
|
---|
797 |
|
---|
798 | lib/lib.pm: miniperl$(EXE_EXT) $(CONFIGPM)
|
---|
799 | @-rm -f $@
|
---|
800 | $(LDLIBPTH) ./miniperl -Ilib lib/lib_pm.PL
|
---|
801 |
|
---|
802 | unidatafiles $(unidatafiles): uni.data
|
---|
803 |
|
---|
804 | uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables
|
---|
805 | cd lib/unicore && $(LDLIBPTH) ../../miniperl -I../../lib mktables -w
|
---|
806 | touch uni.data
|
---|
807 |
|
---|
808 | extra.pods: miniperl$(EXE_EXT)
|
---|
809 | -@test -f extra.pods && rm -f `cat extra.pods`
|
---|
810 | -@rm -f extra.pods
|
---|
811 | -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \
|
---|
812 | nx=`echo $$x | sed -e "s/README\.//"`; \
|
---|
813 | cd pod ; $(LNS) ../$$x "perl"$$nx".pod" ; cd .. ; \
|
---|
814 | echo "pod/perl"$$nx".pod" >> extra.pods ; \
|
---|
815 | done
|
---|
816 | -@rm -f pod/perlvms.pod
|
---|
817 | -@test -f vms/perlvms.pod && cd pod && $(LNS) ../vms/perlvms.pod perlvms.pod && cd .. && echo "pod/perlvms.pod" >> extra.pods
|
---|
818 | -@rm -f pod/perldelta.pod
|
---|
819 | -@test -f pod/perl588delta.pod && cd pod && $(LNS) perl588delta.pod perldelta.pod && cd .. && echo "pod/perldelta.pod" >> extra.pods # See buildtoc
|
---|
820 |
|
---|
821 | extras.make: perl$(EXE_EXT)
|
---|
822 | -@test -s extras.lst && PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(LDLIBPTH) ./perl -Ilib -MCPAN -e '@ARGV&&make(@ARGV)' `cat extras.lst`
|
---|
823 |
|
---|
824 | extras.test: perl$(EXE_EXT)
|
---|
825 | -@test -s extras.lst && PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(LDLIBPTH) ./perl -Ilib -MCPAN -e '@ARGV&&test(@ARGV)' `cat extras.lst`
|
---|
826 |
|
---|
827 | extras.install: perl$(EXE_EXT)
|
---|
828 | -@test -s extras.lst && PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(LDLIBPTH) ./perl -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst`
|
---|
829 |
|
---|
830 | .PHONY: install install-strip install-all install-verbose install-silent \
|
---|
831 | no-install install.perl install.man install.html
|
---|
832 |
|
---|
833 | META.yml: Porting/makemeta Porting/Maintainers.pl Porting/Maintainers.pm
|
---|
834 | $(LDLIBPTH) ./miniperl -Ilib Porting/makemeta
|
---|
835 |
|
---|
836 | install-strip:
|
---|
837 | $(MAKE) STRIPFLAGS=-s install DESTDIR="$(DESTDIR)"
|
---|
838 |
|
---|
839 | install install-all:
|
---|
840 | $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) DESTDIR="$(DESTDIR)"
|
---|
841 |
|
---|
842 | install-verbose:
|
---|
843 | $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-V DESTDIR="$(DESTDIR)"
|
---|
844 |
|
---|
845 | install-silent:
|
---|
846 | $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-S DESTDIR="$(DESTDIR)"
|
---|
847 |
|
---|
848 | no-install:
|
---|
849 | $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-n DESTDIR="$(DESTDIR)"
|
---|
850 |
|
---|
851 | # Set this to an empty string to avoid an attempt of rebuild before install
|
---|
852 | INSTALL_DEPENDENCE = all
|
---|
853 |
|
---|
854 | install.perl: $(INSTALL_DEPENDENCE) installperl
|
---|
855 | if [ -n "$(COMPILE)" ]; \
|
---|
856 | then \
|
---|
857 | cd utils; $(MAKE) compile; \
|
---|
858 | cd ../x2p; $(MAKE) compile; \
|
---|
859 | cd ../pod; $(MAKE) compile; \
|
---|
860 | else :; \
|
---|
861 | fi
|
---|
862 | $(LDLIBPTH) ./perl installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
|
---|
863 | $(MAKE) extras.install
|
---|
864 |
|
---|
865 | install.man: all installman
|
---|
866 | $(LDLIBPTH) ./perl installman --destdir=$(DESTDIR) $(INSTALLFLAGS)
|
---|
867 |
|
---|
868 | # XXX Experimental. Hardwired values, but useful for testing.
|
---|
869 | # Eventually Configure could ask for some of these values.
|
---|
870 | install.html: all installhtml
|
---|
871 | -@test -f README.vms && cd vms && $(LNS) ../README.vms README_vms.pod && cd ..
|
---|
872 | $(LDLIBPTH) ./perl installhtml \
|
---|
873 | --podroot=. --podpath=. --recurse \
|
---|
874 | --htmldir=$(privlib)/html \
|
---|
875 | --htmlroot=$(privlib)/html \
|
---|
876 | --splithead=pod/perlipc \
|
---|
877 | --splititem=pod/perlfunc \
|
---|
878 | --libpods=perlfunc:perlguts:perlvar:perlrun:perlop \
|
---|
879 | --ignore=Porting/Maintainers.pm,Porting/patching.pod,Porting/pumpkin.pod,Porting/repository.pod \
|
---|
880 | --verbose
|
---|
881 |
|
---|
882 |
|
---|
883 | # I now supply perly.c with the kits, so the following section is
|
---|
884 | # used only if you force byacc to run by saying
|
---|
885 | # make run_byacc
|
---|
886 | # Since we patch up the byacc output, the perly.fixer script needs
|
---|
887 | # to run with precisely the same version of byacc as I use. You
|
---|
888 | # normally shouldn't remake perly.[ch].
|
---|
889 |
|
---|
890 | .PHONY: check_byacc run_byacc
|
---|
891 |
|
---|
892 | check_byacc:
|
---|
893 | @$(BYACC) -V 2>&1 | grep 'version 1\.8\.2'
|
---|
894 |
|
---|
895 | run_byacc: FORCE check_byacc
|
---|
896 | $(BYACC) -d perly.y
|
---|
897 | -chmod 664 perly.c perly.h
|
---|
898 | sh $(shellflags) ./perly.fixer y.tab.c perly.c
|
---|
899 | sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
|
---|
900 | -e 's/y\.tab/perly/g' perly.c >perly.tmp && mv perly.tmp perly.c
|
---|
901 | sed -e '/^extern YYSTYPE yy/D' y.tab.h >yh.tmp && mv yh.tmp y.tab.h
|
---|
902 | cmp -s y.tab.h perly.h && rm -f y.tab.h || mv y.tab.h perly.h
|
---|
903 | perl -i.old perlyline.pl perly.c
|
---|
904 | chmod 664 vms/perly_c.vms vms/perly_h.vms
|
---|
905 | perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms
|
---|
906 |
|
---|
907 | # We don't want to regenerate perly.c and perly.h, but they might
|
---|
908 | # appear out-of-date after a patch is applied or a new distribution is
|
---|
909 | # made.
|
---|
910 | perly.c: perly.y
|
---|
911 | -@sh -c true
|
---|
912 |
|
---|
913 | perly.h: perly.y
|
---|
914 | -@sh -c true
|
---|
915 |
|
---|
916 | PERLYVMS = vms/perly_c.vms vms/perly_h.vms
|
---|
917 |
|
---|
918 | $(PERLYVMS): perly.c perly.h vms/vms_yfix.pl
|
---|
919 | perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms
|
---|
920 |
|
---|
921 | # No compat3.sym here since and including the 5.004_50.
|
---|
922 | # No interp.sym since 5.005_03.
|
---|
923 | SYM = global.sym globvar.sym perlio.sym pp.sym
|
---|
924 |
|
---|
925 | SYMH = perlvars.h intrpvar.h thrdvar.h
|
---|
926 |
|
---|
927 | CHMOD_W = chmod +w
|
---|
928 |
|
---|
929 | # The following files are generated automatically
|
---|
930 | # autodoc.pl: pod/perlapi.pod pod/perlintern.pod
|
---|
931 | # bytecode.pl: ext/ByteLoader/byterun.h ext/ByteLoader/byterun.c
|
---|
932 | # ext/B/B/Asmdata.pm
|
---|
933 | # embed.pl: proto.h embed.h embedvar.h global.sym
|
---|
934 | # perlapi.h perlapi.c
|
---|
935 | # [* embed.pl needs pp.sym generated by opcode.pl! *]
|
---|
936 | # keywords.pl: keywords.h
|
---|
937 | # opcode.pl: opcode.h opnames.h pp_proto.h pp.sym
|
---|
938 | # regcomp.pl: regnodes.h
|
---|
939 | # warnings.pl: warnings.h lib/warnings.pm
|
---|
940 | # The correct versions should be already supplied with the perl kit,
|
---|
941 | # in case you don't have perl available.
|
---|
942 | # To force them to be regenerated, run
|
---|
943 | # perl regen.pl
|
---|
944 | # with your existing copy of perl
|
---|
945 | # (make regen_headers is kept for backwards compatibility)
|
---|
946 |
|
---|
947 | AUTOGEN_FILES = keywords.h opcode.h opnames.h pp_proto.h pp.sym proto.h \
|
---|
948 | embed.h embedvar.h global.sym \
|
---|
949 | pod/perlintern.pod pod/perlapi.pod \
|
---|
950 | perlapi.h perlapi.c ext/ByteLoader/byterun.h \
|
---|
951 | ext/ByteLoader/byterun.c ext/B/B/Asmdata.pm regnodes.h \
|
---|
952 | warnings.h lib/warnings.pm
|
---|
953 |
|
---|
954 | .PHONY: regen_headers regen_pods regen_all
|
---|
955 |
|
---|
956 | regen regen_headers: FORCE
|
---|
957 | -perl regen.pl
|
---|
958 |
|
---|
959 | regen_pods: FORCE
|
---|
960 | -cd pod; $(LDLIBPTH) $(MAKE) regen_pods
|
---|
961 |
|
---|
962 | regen_all: $(PERLYVMS) regen regen_pods
|
---|
963 |
|
---|
964 | .PHONY: manisort manicheck
|
---|
965 |
|
---|
966 | manisort: FORCE
|
---|
967 | LC_ALL=C sort -fdc MANIFEST || (echo "WARNING: re-sorting MANIFEST"; \
|
---|
968 | LC_ALL=C sort -fdo MANIFEST MANIFEST)
|
---|
969 |
|
---|
970 | manicheck: FORCE
|
---|
971 | perl Porting/manicheck
|
---|
972 |
|
---|
973 | # Extensions:
|
---|
974 | # Names added to $(dynamic_ext) or $(static_ext) or $(nonxs_ext) will
|
---|
975 | # automatically get built. There should ordinarily be no need to change
|
---|
976 | # any of this part of makefile.
|
---|
977 | #
|
---|
978 | # The dummy dependency is a place holder in case $(dynamic_ext) or
|
---|
979 | # $(static_ext) is empty.
|
---|
980 | #
|
---|
981 | # DynaLoader may be needed for extensions that use Makefile.PL.
|
---|
982 |
|
---|
983 | $(DYNALOADER): miniperl$(EXE_EXT) preplibrary FORCE
|
---|
984 | @$(LDLIBPTH) sh ext/util/make_ext $(STATIC) $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
|
---|
985 |
|
---|
986 | d_dummy $(dynamic_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
|
---|
987 | @$(LDLIBPTH) sh ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
|
---|
988 |
|
---|
989 | s_dummy $(static_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
|
---|
990 | @$(LDLIBPTH) sh ext/util/make_ext $(STATIC) $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
|
---|
991 |
|
---|
992 | n_dummy $(nonxs_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE
|
---|
993 | @$(LDLIBPTH) sh ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
|
---|
994 |
|
---|
995 | .PHONY: clean _tidy _mopup _cleaner1 _cleaner2 \
|
---|
996 | realclean _realcleaner clobber _clobber \
|
---|
997 | distclean veryclean _verycleaner
|
---|
998 |
|
---|
999 | clean: _tidy _mopup
|
---|
1000 |
|
---|
1001 | realclean: _realcleaner _mopup
|
---|
1002 | @echo "Note that '$(MAKE) realclean' does not delete config.sh or Policy.sh"
|
---|
1003 |
|
---|
1004 | _clobber:
|
---|
1005 | -@rm -f Cross/run-* Cross/to-* Cross/from-*
|
---|
1006 | rm -f config.sh cppstdin Policy.sh extras.lst
|
---|
1007 |
|
---|
1008 | clobber: _realcleaner _mopup _clobber
|
---|
1009 |
|
---|
1010 | distclean: clobber
|
---|
1011 |
|
---|
1012 | # Like distclean but also removes emacs backups and *.orig.
|
---|
1013 | veryclean: _verycleaner _mopup _clobber
|
---|
1014 | -@rm -f Obsolete Wanted
|
---|
1015 |
|
---|
1016 | # Do not 'make _mopup' directly.
|
---|
1017 | _mopup:
|
---|
1018 | rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c opmini.c
|
---|
1019 | -rmdir .depending
|
---|
1020 | -@test -f extra.pods && rm -f `cat extra.pods`
|
---|
1021 | -@test -f vms/README_vms.pod && rm -f vms/README_vms.pod
|
---|
1022 | -rm -f perl.exp ext.libs extra.pods uni.data opmini.o
|
---|
1023 | -rm -f perl.export perl.dll perl.libexp perl.map perl.def
|
---|
1024 | -rm -f perl.loadmap miniperl.loadmap perl.prelmap miniperl.prelmap
|
---|
1025 | -rm -f perl.third lib*.so.perl.third perl.3log t/perl.third t/perl.3log
|
---|
1026 | -rm -f perl.pixie lib*.so.perl.pixie lib*.so.Addrs
|
---|
1027 | -rm -f perl.Addrs perl.Counts t/perl.Addrs t/perl.Counts *perl.xok
|
---|
1028 | -rm -f perlld cygwin.c ld2 libperl*.def libperl*.dll cygperl*.dll *.exe.stackdump
|
---|
1029 | -rm -f perl$(EXE_EXT) suidperl$(EXE_EXT) miniperl$(EXE_EXT) $(LIBPERL) libperl.* microperl
|
---|
1030 | -rm -f opcode.h-old opnames.h-old pp.sym-old pp_proto.h-old
|
---|
1031 |
|
---|
1032 | # Do not 'make _tidy' directly.
|
---|
1033 | _tidy:
|
---|
1034 | -cd pod; $(LDLIBPTH) $(MAKE) clean
|
---|
1035 | -cd utils; $(LDLIBPTH) $(MAKE) clean
|
---|
1036 | -cd x2p; $(LDLIBPTH) $(MAKE) clean
|
---|
1037 | -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
|
---|
1038 | $(LDLIBPTH) sh ext/util/make_ext clean $$x MAKE=$(MAKE) ; \
|
---|
1039 | done
|
---|
1040 | rm -f testcompile compilelog
|
---|
1041 |
|
---|
1042 | _cleaner1:
|
---|
1043 | -cd os2; rm -f Makefile
|
---|
1044 | -cd pod; $(LDLIBPTH) $(MAKE) $(CLEAN)
|
---|
1045 | -cd utils; $(LDLIBPTH) $(MAKE) $(CLEAN)
|
---|
1046 | -cd x2p; $(LDLIBPTH) $(MAKE) $(CLEAN)
|
---|
1047 | -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
|
---|
1048 | $(LDLIBPTH) sh ext/util/make_ext $(CLEAN) $$x MAKE=$(MAKE) ; \
|
---|
1049 | done
|
---|
1050 |
|
---|
1051 | # Some systems do not support "?", so keep these files separate.
|
---|
1052 | _cleaner2:
|
---|
1053 | -rm -f core.*perl.*.? t/core.perl.*.? .?*.c
|
---|
1054 | rm -f core *perl.core t/core t/*perl.core core.* t/core.*
|
---|
1055 | rm -f t/misctmp* t/forktmp* t/tmp* t/c t/perl$(EXE_EXT) t/rantests
|
---|
1056 | rm -f so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR)
|
---|
1057 | rm -rf $(addedbyconf)
|
---|
1058 | rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old makefile.old
|
---|
1059 | rm -f $(private)
|
---|
1060 | rm -rf $(unidatafiles) $(unidatadirs)
|
---|
1061 | rm -rf lib/auto
|
---|
1062 | rm -f lib/.exists lib/*/.exists lib/*/*/.exists
|
---|
1063 | rm -f h2ph.man pstruct
|
---|
1064 | rm -rf .config
|
---|
1065 | rm -f preload
|
---|
1066 | rm -f testcompile compilelog
|
---|
1067 | rm -rf lib/Encode
|
---|
1068 | -rmdir lib/B lib/Data
|
---|
1069 | -rmdir lib/Filter/Util lib/IO/Socket lib/IO
|
---|
1070 | -rmdir lib/List lib/MIME lib/Scalar lib/Sys
|
---|
1071 | -rmdir lib/threads lib/XS
|
---|
1072 |
|
---|
1073 | _realcleaner:
|
---|
1074 | @$(LDLIBPTH) $(MAKE) _cleaner1 CLEAN=realclean
|
---|
1075 | @$(LDLIBPTH) $(MAKE) _cleaner2
|
---|
1076 |
|
---|
1077 | _verycleaner:
|
---|
1078 | @$(LDLIBPTH) $(MAKE) _cleaner1 CLEAN=veryclean
|
---|
1079 | @$(LDLIBPTH) $(MAKE) _cleaner2
|
---|
1080 | -rm -f *~ *.orig */*~ */*.orig */*/*~ */*/*.orig
|
---|
1081 |
|
---|
1082 | .PHONY: lint
|
---|
1083 | lint: $(c)
|
---|
1084 | rm -f *.ln
|
---|
1085 | lint $(lintflags) -DPERL_CORE -D_REENTRANT -DDEBUGGING -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(c)
|
---|
1086 |
|
---|
1087 | # Need to unset during recursion to go out of loop.
|
---|
1088 | # The README below ensures that the dependency list is never empty and
|
---|
1089 | # that when MAKEDEPEND is empty $(FIRSTMAKEFILE) doesn't need rebuilding.
|
---|
1090 |
|
---|
1091 | MAKEDEPEND = Makefile makedepend
|
---|
1092 |
|
---|
1093 | $(FIRSTMAKEFILE): README $(MAKEDEPEND)
|
---|
1094 | $(MAKE) depend MAKEDEPEND=
|
---|
1095 |
|
---|
1096 | config.h: config_h.SH config.sh
|
---|
1097 | $(SHELL) config_h.SH
|
---|
1098 |
|
---|
1099 | # When done, touch perlmain.c so that it doesn't get remade each time.
|
---|
1100 | .PHONY: depend
|
---|
1101 | depend: makedepend
|
---|
1102 | sh ./makedepend MAKE=$(MAKE)
|
---|
1103 | - test -s perlmain.c && touch perlmain.c
|
---|
1104 | cd x2p; $(MAKE) depend
|
---|
1105 |
|
---|
1106 | # Cannot postpone this until $firstmakefile is ready ;-)
|
---|
1107 | makedepend: makedepend.SH config.sh
|
---|
1108 | sh ./makedepend.SH
|
---|
1109 |
|
---|
1110 | .PHONY: test check test_prep test_prep_nodll test_prep_pre _test_prep \
|
---|
1111 | test_tty test-tty _test_tty test_notty test-notty _test_notty \
|
---|
1112 | utest ucheck test.utf8 check.utf8 test.torture torturetest \
|
---|
1113 | test.utf16 check.utf16 utest.utf16 ucheck.utf16 \
|
---|
1114 | test.third check.third utest.third ucheck.third test_notty.third \
|
---|
1115 | test.deparse test_notty.deparse test_harness test_harness_notty \
|
---|
1116 | test.bytecompile minitest coretest test.taintwarn
|
---|
1117 |
|
---|
1118 | # Cannot delegate rebuilding of t/perl to make
|
---|
1119 | # to allow interlaced test and minitest
|
---|
1120 |
|
---|
1121 | TESTFILE=TEST
|
---|
1122 |
|
---|
1123 | _test_prep:
|
---|
1124 | cd t && (rm -f $(PERL)$(EXE_EXT); $(LNS) ../$(PERL)$(EXE_EXT) $(PERL)$(EXE_EXT))
|
---|
1125 |
|
---|
1126 | # Architecture-neutral stuff:
|
---|
1127 |
|
---|
1128 | test_prep_pre: preplibrary utilities $(nonxs_ext)
|
---|
1129 |
|
---|
1130 | test_prep: test_prep_pre miniperl$(EXE_EXT) $(unidatafiles) perl$(EXE_EXT) $(dynamic_ext) $(TEST_PERL_DLL)
|
---|
1131 | PERL=./perl $(MAKE) _test_prep
|
---|
1132 |
|
---|
1133 | _test_tty:
|
---|
1134 | cd t && $(PERL_DEBUG) $(LDLIBPTH) $(PERL) $(TESTFILE) $(TEST_ARGS) </dev/tty
|
---|
1135 |
|
---|
1136 | _test_notty:
|
---|
1137 | cd t && $(PERL_DEBUG) PERL_SKIP_TTY_TEST=1 $(LDLIBPTH) $(PERL) $(TESTFILE) $(TEST_ARGS)
|
---|
1138 |
|
---|
1139 | # The second branch is for testing without a tty or controlling terminal,
|
---|
1140 | # see t/op/stat.t
|
---|
1141 | _test:
|
---|
1142 | if (true </dev/tty) >/dev/null 2>&1; then \
|
---|
1143 | $(MAKE) TEST_ARGS=$(TEST_ARGS) TESTFILE=$(TESTFILE) _test_tty ; \
|
---|
1144 | else \
|
---|
1145 | $(MAKE) TEST_ARGS=$(TEST_ARGS) TESTFILE=$(TESTFILE) _test_notty ; \
|
---|
1146 | fi
|
---|
1147 | @echo "Ran tests" > t/rantests
|
---|
1148 |
|
---|
1149 | test check: test_prep
|
---|
1150 | PERL=./perl $(MAKE) _test
|
---|
1151 |
|
---|
1152 | test_tty: test_prep
|
---|
1153 | PERL=./perl $(MAKE) _test_tty
|
---|
1154 |
|
---|
1155 | test_notty: test_prep
|
---|
1156 | PERL=./perl $(MAKE) _test_notty
|
---|
1157 |
|
---|
1158 | utest ucheck test.utf8 check.utf8: test_prep
|
---|
1159 | PERL=./perl TEST_ARGS=-utf8 $(MAKE) _test
|
---|
1160 |
|
---|
1161 | coretest: test_prep
|
---|
1162 | PERL=./perl TEST_ARGS=-core $(MAKE) _test
|
---|
1163 |
|
---|
1164 | test-prep: test_prep
|
---|
1165 |
|
---|
1166 | test-tty: test_tty
|
---|
1167 |
|
---|
1168 | test-notty: test_notty
|
---|
1169 |
|
---|
1170 | # Torture testing
|
---|
1171 |
|
---|
1172 | test.torture torturetest: test_prep
|
---|
1173 | PERL=./perl TEST_ARGS=-torture $(MAKE) _test
|
---|
1174 |
|
---|
1175 | # Targets for UTF16 testing:
|
---|
1176 |
|
---|
1177 | minitest.utf16: minitest.prep
|
---|
1178 | - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
|
---|
1179 | && $(LDLIBPTH) ./perl TEST -minitest -utf16 base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty
|
---|
1180 |
|
---|
1181 | test.utf16 check.utf16: test_prep
|
---|
1182 | PERL=./perl $(MAKE) TEST_ARGS=-utf16 _test
|
---|
1183 |
|
---|
1184 | utest.utf16 ucheck.utf16: test_prep
|
---|
1185 | PERL=./perl $(MAKE) TEST_ARGS="-utf8 -utf16" _test
|
---|
1186 |
|
---|
1187 | # Targets for valgrind testing:
|
---|
1188 |
|
---|
1189 | test_prep.valgrind: test_prep perl.valgrind
|
---|
1190 | PERL=./perl $(MAKE) _test_prep
|
---|
1191 |
|
---|
1192 | test.valgrind check.valgrind: test_prep perl.valgrind.config
|
---|
1193 | PERL=./perl PERL_DEBUG=PERL_VALGRIND=1 $(MAKE) _test
|
---|
1194 |
|
---|
1195 | utest.valgrind ucheck.valgrind: test_prep.valgrind perl.valgrind
|
---|
1196 | PERL=./perl PERL_DEBUG=PERL_VALGRIND=1 TEST_ARGS=-utf8 $(MAKE) _test
|
---|
1197 |
|
---|
1198 | test_notty.valgrind: test_prep.valgrind perl.valgrind
|
---|
1199 | PERL=./perl $(MAKE) PERL_DEBUG=PERL_VALGRIND=1 _test_notty
|
---|
1200 |
|
---|
1201 | # Targets for Third Degree testing.
|
---|
1202 |
|
---|
1203 | test_prep.third: test_prep perl.third
|
---|
1204 | PERL=./perl.third $(MAKE) _test_prep
|
---|
1205 |
|
---|
1206 | test.third check.third: test_prep.third perl.third
|
---|
1207 | PERL=./perl.third PERL_DEBUG=PERL_3LOG=1 $(MAKE) _test
|
---|
1208 |
|
---|
1209 | utest.third ucheck.third: test_prep.third perl.third
|
---|
1210 | PERL=./perl.third PERL_DEBUG=PERL_3LOG=1 TEST_ARGS=-utf8 $(MAKE) _test
|
---|
1211 |
|
---|
1212 | test_notty.third: test_prep.third perl.third
|
---|
1213 | PERL=./perl.third $(MAKE) PERL_DEBUG=PERL_3LOG=1 _test_notty
|
---|
1214 |
|
---|
1215 | # Targets for Bytecode/ByteLoader testing.
|
---|
1216 |
|
---|
1217 | test.bytecompile: test_prep
|
---|
1218 | PERL=./perl TEST_ARGS=-bytecompile $(MAKE) _test
|
---|
1219 |
|
---|
1220 | # Targets for Deparse testing.
|
---|
1221 |
|
---|
1222 | test.deparse: test_prep
|
---|
1223 | PERL=./perl TEST_ARGS=-deparse $(MAKE) _test
|
---|
1224 |
|
---|
1225 | test_notty.deparse: test_prep
|
---|
1226 | PERL=./perl TEST_ARGS=-deparse $(MAKE) _test_notty
|
---|
1227 |
|
---|
1228 | # Targets to run the test suite with -t
|
---|
1229 |
|
---|
1230 | test.taintwarn: test_prep
|
---|
1231 | PERL=./perl TEST_ARGS=-taintwarn $(MAKE) _test
|
---|
1232 |
|
---|
1233 | minitest.prep:
|
---|
1234 | -@test -f lib/lib.pm && test -f lib/Config.pm || \
|
---|
1235 | $(MAKE) lib/Config.pm lib/lib.pm $(unidatafiles)
|
---|
1236 | @echo " "
|
---|
1237 | @echo "You may see some irrelevant test failures if you have been unable"
|
---|
1238 | @echo "to build lib/Config.pm, lib/lib.pm or the Unicode data files."
|
---|
1239 | @echo " "
|
---|
1240 |
|
---|
1241 | # Can't depend on lib/Config.pm because that might be where miniperl
|
---|
1242 | # is crashing.
|
---|
1243 | minitest: miniperl$(EXE_EXT) lib/re.pm minitest.prep
|
---|
1244 | - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
|
---|
1245 | && $(LDLIBPTH) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty
|
---|
1246 |
|
---|
1247 | # Test via harness
|
---|
1248 |
|
---|
1249 | test_harness: test_prep
|
---|
1250 | PERL=./perl $(MAKE) TESTFILE=harness _test
|
---|
1251 |
|
---|
1252 | test_harness_notty: test_prep
|
---|
1253 | PERL=./perl HARNESS_NOTTY=1 $(MAKE) TESTFILE=harness _test
|
---|
1254 |
|
---|
1255 | # Handy way to run perlbug -ok without having to install and run the
|
---|
1256 | # installed perlbug. We don't re-run the tests here - we trust the user.
|
---|
1257 | # Please *don't* use this unless all tests pass.
|
---|
1258 | # If you want to report test failures, use "make nok" instead.
|
---|
1259 |
|
---|
1260 | .PHONY: ok okfile oknack okfilenack nok nokfile noknack nokfilenack
|
---|
1261 |
|
---|
1262 | ok: utilities
|
---|
1263 | $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)'
|
---|
1264 |
|
---|
1265 | okfile: utilities
|
---|
1266 | $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok
|
---|
1267 |
|
---|
1268 | oknack: utilities
|
---|
1269 | $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -A
|
---|
1270 |
|
---|
1271 | okfilenack: utilities
|
---|
1272 | $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok -A
|
---|
1273 |
|
---|
1274 | nok: utilities
|
---|
1275 | $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)'
|
---|
1276 |
|
---|
1277 | nokfile: utilities
|
---|
1278 | $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -F perl.nok
|
---|
1279 |
|
---|
1280 | noknack: utilities
|
---|
1281 | $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -A
|
---|
1282 |
|
---|
1283 | nokfilenack: utilities
|
---|
1284 | $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -F perl.nok -A
|
---|
1285 |
|
---|
1286 | .PHONY: clist hlist shlist pllist
|
---|
1287 |
|
---|
1288 | clist: $(c)
|
---|
1289 | echo $(c) | tr ' ' $(TRNL) >.clist
|
---|
1290 |
|
---|
1291 | hlist: $(h)
|
---|
1292 | echo $(h) | tr ' ' $(TRNL) >.hlist
|
---|
1293 |
|
---|
1294 | shlist: $(sh)
|
---|
1295 | echo $(sh) | tr ' ' $(TRNL) >.shlist
|
---|
1296 |
|
---|
1297 | pllist: $(pl)
|
---|
1298 | echo $(pl) | tr ' ' $(TRNL) >.pllist
|
---|
1299 |
|
---|
1300 | Makefile: Makefile.SH ./config.sh
|
---|
1301 | $(SHELL) Makefile.SH
|
---|
1302 |
|
---|
1303 | .PHONY: distcheck
|
---|
1304 | distcheck: FORCE
|
---|
1305 | perl '-MExtUtils::Manifest=&fullcheck' -e 'fullcheck()'
|
---|
1306 |
|
---|
1307 | .PHONY: elc
|
---|
1308 | elc: emacs/cperl-mode.elc
|
---|
1309 |
|
---|
1310 | emacs/cperl-mode.elc: emacs/cperl-mode.el
|
---|
1311 | -cd emacs; emacs -batch -q -no-site-file -f batch-byte-compile cperl-mode.el
|
---|
1312 |
|
---|
1313 | .PHONY: etags ctags tags
|
---|
1314 |
|
---|
1315 | etags: TAGS
|
---|
1316 |
|
---|
1317 | TAGS: emacs/cperl-mode.elc
|
---|
1318 | sh emacs/ptags
|
---|
1319 |
|
---|
1320 | # Let's hope make will not go into an infinite loop on case-unsensitive systems
|
---|
1321 | # This may also fail if . is in the head of the path, since perl will
|
---|
1322 | # require -Ilib
|
---|
1323 | tags: TAGS
|
---|
1324 | perl emacs/e2ctags.pl TAGS > tags
|
---|
1325 |
|
---|
1326 | ctags:
|
---|
1327 | ctags -f Tags -N --totals --languages=c --langmap=c:+.h *.c *.h
|
---|
1328 |
|
---|
1329 | # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
|
---|
1330 | # If this runs make out of memory, delete /usr/include lines.
|
---|
1331 | !NO!SUBS!
|
---|
1332 |
|
---|
1333 | $eunicefix Makefile
|
---|
1334 | case `pwd` in
|
---|
1335 | *SH)
|
---|
1336 | $rm -f ../Makefile
|
---|
1337 | $ln Makefile ../Makefile
|
---|
1338 | ;;
|
---|
1339 | esac
|
---|
1340 | $rm -f $firstmakefile
|
---|
1341 |
|
---|
1342 | # Now do any special processing required before building.
|
---|
1343 |
|
---|
1344 | case "$ebcdic" in
|
---|
1345 | define)
|
---|
1346 | xxx=''
|
---|
1347 | echo "This is an EBCDIC system, checking if any parser files need regenerating." >&2
|
---|
1348 | case "$osname" in
|
---|
1349 | os390|posix-bc)
|
---|
1350 | rm -f y.tab.c y.tab.h
|
---|
1351 | # yacc must be a reentrant ("pure") Bison in BS2000 Posix!
|
---|
1352 | yacc -d perly.y >/dev/null 2>&1
|
---|
1353 | if cmp -s y.tab.c perly.c; then
|
---|
1354 | rm -f y.tab.c
|
---|
1355 | else
|
---|
1356 | echo "perly.y -> perly.c" >&2
|
---|
1357 | mv -f y.tab.c perly.c
|
---|
1358 | chmod u+w perly.c
|
---|
1359 | sed -e '/^#include "perl\.h"/a\
|
---|
1360 | \
|
---|
1361 | #define yydebug PL_yydebug\
|
---|
1362 | #define yynerrs PL_yynerrs\
|
---|
1363 | #define yyerrflag PL_yyerrflag\
|
---|
1364 | #define yychar PL_yychar\
|
---|
1365 | #define yyval PL_yyval\
|
---|
1366 | #define yylval PL_yylval' \
|
---|
1367 | -e '/YYSTYPE *yyval;/D' \
|
---|
1368 | -e '/YYSTYPE *yylval;/D' \
|
---|
1369 | -e '/int yychar,/,/yynerrs;/D' \
|
---|
1370 | -e 's/int yydebug = 0;/yydebug = 0;/' \
|
---|
1371 | -e 's/[^_]realloc(/PerlMem_realloc(/g' \
|
---|
1372 | -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
|
---|
1373 | -e 's/y\.tab/perly/g' perly.c >perly.tmp && mv perly.tmp perly.c
|
---|
1374 | xxx="$xxx perly.c"
|
---|
1375 | fi
|
---|
1376 | case "$osname:$usethreads" in
|
---|
1377 | os390:define)
|
---|
1378 | sed -e 's@^extern int yychar, yyerrflag;@/* extern int yychar, yyerrflag; */@' perly.c > perly.tmp && mv perly.tmp perly.c
|
---|
1379 | ;;
|
---|
1380 | esac
|
---|
1381 | if cmp -s y.tab.h perly.h; then
|
---|
1382 | rm -f y.tab.h
|
---|
1383 | else
|
---|
1384 | echo "perly.y -> perly.h" >&2
|
---|
1385 | mv -f y.tab.h perly.h
|
---|
1386 | xxx="$xxx perly.h"
|
---|
1387 | fi
|
---|
1388 | if cd x2p
|
---|
1389 | then
|
---|
1390 | rm -f y.tab.c y.tab.h
|
---|
1391 | case "$osname" in
|
---|
1392 | posix-bc)
|
---|
1393 | # we are using two different yaccs in BS2000 Posix!
|
---|
1394 | byacc a2p.y >/dev/null 2>&1
|
---|
1395 | ;;
|
---|
1396 | *) # e.g. os390
|
---|
1397 | yacc a2p.y >/dev/null 2>&1
|
---|
1398 | ;;
|
---|
1399 | esac
|
---|
1400 | if cmp -s y.tab.c a2p.c
|
---|
1401 | then
|
---|
1402 | rm -f y.tab.c
|
---|
1403 | else
|
---|
1404 | echo "a2p.y -> a2p.c" >&2
|
---|
1405 | mv -f y.tab.c a2p.c
|
---|
1406 | chmod u+w a2p.c
|
---|
1407 | sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
|
---|
1408 | -e 's|^static void __YY_YACC_MAIN.*BS2000.*|/*static main deleted*/|' \
|
---|
1409 | -e 's/y\.tab/a2p/g' a2p.c >a2p.tmp && mv a2p.tmp a2p.c
|
---|
1410 | xxx="$xxx a2p.c"
|
---|
1411 | fi
|
---|
1412 | # In case somebody yacc -d:ed the a2p.y.
|
---|
1413 | if test -f y.tab.h
|
---|
1414 | then
|
---|
1415 | if cmp -s y.tab.h a2p.h
|
---|
1416 | then
|
---|
1417 | rm -f y.tab.h
|
---|
1418 | else
|
---|
1419 | echo "a2p.h -> a2p.h" >&2
|
---|
1420 | mv -f y.tab.h a2p.h
|
---|
1421 | xxx="$xxx a2p.h"
|
---|
1422 | fi
|
---|
1423 | fi
|
---|
1424 | cd ..
|
---|
1425 | fi
|
---|
1426 | ;;
|
---|
1427 | vmesa)
|
---|
1428 | # Do nothing in VM/ESA.
|
---|
1429 | ;;
|
---|
1430 | *)
|
---|
1431 | echo "'$osname' is an EBCDIC system I don't know that well." >&4
|
---|
1432 | ;;
|
---|
1433 | esac
|
---|
1434 | case "$xxx" in
|
---|
1435 | '') echo "No parser files were regenerated. That's okay." >&2 ;;
|
---|
1436 | esac
|
---|
1437 | ;;
|
---|
1438 | esac
|
---|
1439 |
|
---|
1440 | # ex: set ts=8 sts=4 sw=4 noet:
|
---|