. $TOP/config.sh
;;
esac
+
+# H.Merijn Brand [17 Feb 2004]
+# This comment is just to ensure that Configure will find variables that
+# are removed/replaced in patches on blead, but are still needed in the
+# 5.8.x, 5.6.x and 5.005.x maintainance tracks.
+# metaconfig -m will scan all .SH files on this level (not deeper), and
+# not in x2p and other subfolders. This file is as good as any .SH
+# patch references
+# #22227 $baserev
+# #22302 $yacc $byacc
+
: This forces SH files to create target in same directory as SH file.
: This is so that make depend always knows where to find SH derivatives.
case "$0" in
nonxs_list="$nonxs_list ext/$f/pm_to_blib"
done
-# Handle the usage of different yaccs in posix-bc (During Configure we
-# us yacc for perly.y and byacc for a2p.y. The makefiles must use the
-# same configuration for run_byacc!):
-case "$osname" in
- posix-bc)
- byacc=$yacc
- ;;
-esac
-
echo "Extracting Makefile (with variable substitutions)"
$spitshell >Makefile <<!GROK!THIS!
# Makefile.SH
# be lost the next time you run Configure.
# Makefile is used to generate $firstmakefile. The only difference
# is that $firstmakefile has the dependencies filled in at the end.
-#
-#
-# I now supply perly.c with the kits, so don't remake perly.c without byacc
-BYACC = $byacc
+
CC = $cc
LD = $ld
addedbyconf = UU $(shextract) $(plextract) lib/lib.pm pstruct
+# Unicode data files generated by mktables
+unidatafiles = lib/unicore/Canonical.pl lib/unicore/Exact.pl \
+ lib/unicore/Properties lib/unicore/Decomposition.pl \
+ lib/unicore/CombiningClass.pl lib/unicore/Name.pl lib/unicore/PVA.pl
+
+# Directories of Unicode data files generated by mktables
+unidatadirs = lib/unicore/To lib/unicore/lib
+
h1 = EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h
h2 = embed.h form.h gv.h handy.h hv.h keywords.h mg.h op.h opcode.h
h3 = pad.h patchlevel.h perl.h perlapi.h perly.h pp.h proto.h regcomp.h
.c.s:
$(CCCMDSRC) -S $*.c
-all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
+all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
@echo " ";
@echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
@-rm -f $@
$(LDLIBPTH) ./miniperl -Ilib lib/lib_pm.PL
+$(unidatafiles): miniperl$(EXE_EXT) lib/Config.pm lib/unicore/mktables
+ cd lib/unicore && ../../miniperl -I../../lib mktables
+
extra.pods: miniperl$(EXE_EXT)
-@test -f extra.pods && rm -f `cat extra.pods`
-@rm -f extra.pods
-@rm -f pod/perlvms.pod
-@test -f vms/perlvms.pod && cd pod && $(LNS) ../vms/perlvms.pod perlvms.pod && cd .. && echo "pod/perlvms.pod" >> extra.pods
-@rm -f pod/perldelta.pod
- -@test -f pod/perl591delta.pod && cd pod && $(LNS) perl591delta.pod perldelta.pod && cd .. && echo "pod/perldelta.pod" >> extra.pods
+ -@test -f pod/perl592delta.pod && cd pod && $(LNS) perl592delta.pod perldelta.pod && cd .. && echo "pod/perldelta.pod" >> extra.pods
extras.make: perl$(EXE_EXT)
-@test -s extras.lst && PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(LDLIBPTH) ./perl -Ilib -MCPAN -e '@ARGV&&make(@ARGV)' `cat extras.lst`
# I now supply perly.c with the kits, so the following section is
-# used only if you force byacc to run by saying
-# make run_byacc
-# Since we patch up the byacc output, the perly.fixer script needs
-# to run with precisely the same version of byacc as I use. You
-# normally shouldn't remake perly.[ch].
-
-.PHONY: check_byacc run_byacc
-
-check_byacc:
- @$(BYACC) -V 2>&1 | grep 'version 1\.8\.2'
-
-run_byacc: FORCE check_byacc
- $(BYACC) -d perly.y
- -chmod 664 perly.c perly.h
- sh $(shellflags) ./perly.fixer y.tab.c perly.c
- sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
- -e 's/y\.tab/perly/g' perly.c >perly.tmp && mv perly.tmp perly.c
- sed -e '/^extern YYSTYPE yy/D' y.tab.h >yh.tmp && mv yh.tmp y.tab.h
- cmp -s y.tab.h perly.h && rm -f y.tab.h || mv y.tab.h perly.h
- perl -i.old perlyline.pl perly.c
- chmod 664 vms/perly_c.vms vms/perly_h.vms
- perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms
+# used only if you force bison to run by saying
+# make regen_perly
+# You normally shouldn't remake perly.[ch].
+
+.PHONY: regen_perly
+
+run_byacc:
+ @echo "run_byacc is obsolete; try 'make regen_perly' instead"
+
+# this outputs perly.act and perly.tab
+regen_perly:
+ perl regen_perly.pl
# We don't want to regenerate perly.c and perly.h, but they might
# appear out-of-date after a patch is applied or a new distribution is
perly.h: perly.y
-@sh -c true
-PERLYVMS = vms/perly_c.vms vms/perly_h.vms
-
-$(PERLYVMS): perly.c perly.h vms/vms_yfix.pl
- perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms
-
# No compat3.sym here since and including the 5.004_50.
# No interp.sym since 5.005_03.
SYM = global.sym globvar.sym perlio.sym pp.sym
regen_pods: FORCE
-cd pod; $(LDLIBPTH) $(MAKE) regen_pods
-regen_all: $(PERLYVMS) regen regen_pods
+regen_all: regen regen_pods
.PHONY: manisort manicheck
rm -rf $(addedbyconf)
rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old makefile.old
rm -f $(private) lib/Config.pod
+ rm -rf $(unidatafiles) $(unidatadirs)
rm -rf lib/auto
rm -f lib/.exists lib/*/.exists lib/*/*/.exists
rm -f h2ph.man pstruct
# is crashing.
minitest: miniperl$(EXE_EXT) lib/re.pm
-@test -f lib/lib.pm && test -f lib/Config.pm || \
- $(MAKE) lib/Config.pm lib/lib.pm
+ $(MAKE) lib/Config.pm lib/lib.pm $(unidatafiles)
@echo " "
@echo "You may see some irrelevant test failures if you have been unable"
- @echo "to build lib/Config.pm or lib/lib.pm."
+ @echo "to build lib/Config.pm, lib/lib.pm or the Unicode data files."
@echo " "
- cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
- && $(LDLIBPTH) ./perl TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty
+ && $(LDLIBPTH) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty
# Test via harness
echo "This is an EBCDIC system, checking if any parser files need regenerating." >&2
case "$osname" in
os390|posix-bc)
- rm -f y.tab.c y.tab.h
- # yacc must be a reentrant ("pure") Bison in BS2000 Posix!
- yacc -d perly.y >/dev/null 2>&1
- if cmp -s y.tab.c perly.c; then
- rm -f y.tab.c
- else
- echo "perly.y -> perly.c" >&2
- mv -f y.tab.c perly.c
- chmod u+w perly.c
- sed -e '/^#include "perl\.h"/a\
-\
-#define yydebug PL_yydebug\
-#define yynerrs PL_yynerrs\
-#define yyerrflag PL_yyerrflag\
-#define yychar PL_yychar\
-#define yyval PL_yyval\
-#define yylval PL_yylval' \
- -e '/YYSTYPE *yyval;/D' \
- -e '/YYSTYPE *yylval;/D' \
- -e '/int yychar,/,/yynerrs;/D' \
- -e 's/int yydebug = 0;/yydebug = 0;/' \
- -e 's/[^_]realloc(/PerlMem_realloc(/g' \
- -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
- -e 's/y\.tab/perly/g' perly.c >perly.tmp && mv perly.tmp perly.c
- xxx="$xxx perly.c"
- fi
- case "$osname:$usethreads" in
- os390:define)
- sed -e 's@^extern int yychar, yyerrflag;@/* extern int yychar, yyerrflag; */@' perly.c > perly.tmp && mv perly.tmp perly.c
- ;;
- esac
- if cmp -s y.tab.h perly.h; then
- rm -f y.tab.h
- else
- echo "perly.y -> perly.h" >&2
- mv -f y.tab.h perly.h
- xxx="$xxx perly.h"
- fi
if cd x2p
then
rm -f y.tab.c y.tab.h