| 1 | case $PERL_CONFIG_SH in
|
|---|
| 2 | '')
|
|---|
| 3 | if test -f config.sh; then TOP=.;
|
|---|
| 4 | elif test -f ../config.sh; then TOP=..;
|
|---|
| 5 | elif test -f ../../config.sh; then TOP=../..;
|
|---|
| 6 | elif test -f ../../../config.sh; then TOP=../../..;
|
|---|
| 7 | elif test -f ../../../../config.sh; then TOP=../../../..;
|
|---|
| 8 | else
|
|---|
| 9 | echo "Can't find config.sh."; exit 1
|
|---|
| 10 | fi
|
|---|
| 11 | . $TOP/config.sh
|
|---|
| 12 | ;;
|
|---|
| 13 | esac
|
|---|
| 14 | : This forces SH files to create target in same directory as SH file.
|
|---|
| 15 | : This is so that make depend always knows where to find SH derivatives.
|
|---|
| 16 | case "$0" in
|
|---|
| 17 | */Makefile.SH) cd `expr X$0 : 'X\(.*\)/'` ;;
|
|---|
| 18 | Makefile.SH) ;;
|
|---|
| 19 | *) case `pwd` in
|
|---|
| 20 | */x2p) ;;
|
|---|
| 21 | *) if test -d x2p; then cd x2p
|
|---|
| 22 | else echo "Can't figure out where to write output."; exit 1
|
|---|
| 23 | fi;;
|
|---|
| 24 | esac;;
|
|---|
| 25 | esac
|
|---|
| 26 |
|
|---|
| 27 | echo "Extracting x2p/Makefile (with variable substitutions)"
|
|---|
| 28 | rm -f Makefile
|
|---|
| 29 | cat >Makefile <<!GROK!THIS!
|
|---|
| 30 | # $RCSfile: Makefile.SH,v $$Revision: 4.1 $$Date: 92/08/07 18:29:07 $
|
|---|
| 31 | #
|
|---|
| 32 | # $Log: Makefile.SH,v $
|
|---|
| 33 |
|
|---|
| 34 | CC = $cc
|
|---|
| 35 | BYACC = $byacc
|
|---|
| 36 | LDFLAGS = $ldflags
|
|---|
| 37 | # XXX Perl malloc temporarily unusable (declaration collisions with stdlib.h)
|
|---|
| 38 | #mallocsrc = $mallocsrc
|
|---|
| 39 | #mallocobj = $mallocobj
|
|---|
| 40 | shellflags = $shellflags
|
|---|
| 41 |
|
|---|
| 42 | libs = $perllibs
|
|---|
| 43 |
|
|---|
| 44 | $make_set_make
|
|---|
| 45 | # grrr
|
|---|
| 46 | SHELL = $sh
|
|---|
| 47 |
|
|---|
| 48 | # These variables may need to be manually set for non-Unix systems.
|
|---|
| 49 | AR = $ar
|
|---|
| 50 | EXE_EXT = $_ext
|
|---|
| 51 | LIB_EXT = $_a
|
|---|
| 52 | OBJ_EXT = $_o
|
|---|
| 53 | PATH_SEP = $p_
|
|---|
| 54 |
|
|---|
| 55 | FIRSTMAKEFILE = $firstmakefile
|
|---|
| 56 |
|
|---|
| 57 | # how to tr(anslate) newlines
|
|---|
| 58 |
|
|---|
| 59 | TRNL = '$trnl'
|
|---|
| 60 |
|
|---|
| 61 | OPTIMIZE = $optimize
|
|---|
| 62 |
|
|---|
| 63 | .SUFFIXES: .c \$(OBJ_EXT)
|
|---|
| 64 |
|
|---|
| 65 | !GROK!THIS!
|
|---|
| 66 |
|
|---|
| 67 | cat >>Makefile <<'!NO!SUBS!'
|
|---|
| 68 |
|
|---|
| 69 | REALPERL = ../perl
|
|---|
| 70 | CCCMD = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $@`
|
|---|
| 71 |
|
|---|
| 72 | public = a2p$(EXE_EXT) s2p find2perl
|
|---|
| 73 |
|
|---|
| 74 | private =
|
|---|
| 75 |
|
|---|
| 76 | manpages = a2p.man s2p.man
|
|---|
| 77 |
|
|---|
| 78 | util =
|
|---|
| 79 |
|
|---|
| 80 | sh = Makefile.SH cflags.SH
|
|---|
| 81 | shextract = Makefile cflags
|
|---|
| 82 |
|
|---|
| 83 | pl = find2perl.PL s2p.PL
|
|---|
| 84 | plextract = find2perl s2p
|
|---|
| 85 | plexe = find2perl.exe s2p.exe
|
|---|
| 86 | plc = find2perl.c s2p.c
|
|---|
| 87 | plm = a2p.loadmap
|
|---|
| 88 |
|
|---|
| 89 | addedbyconf = $(shextract) $(plextract)
|
|---|
| 90 |
|
|---|
| 91 | h = EXTERN.h INTERN.h ../config.h ../handy.h hash.h a2p.h str.h util.h
|
|---|
| 92 |
|
|---|
| 93 | c = hash.c $(mallocsrc) str.c util.c walk.c
|
|---|
| 94 |
|
|---|
| 95 | obj = hash$(OBJ_EXT) $(mallocobj) str$(OBJ_EXT) util$(OBJ_EXT) walk$(OBJ_EXT)
|
|---|
| 96 |
|
|---|
| 97 | lintflags = -phbvxac
|
|---|
| 98 |
|
|---|
| 99 |
|
|---|
| 100 | .c$(OBJ_EXT):
|
|---|
| 101 | $(CCCMD) -DPERL_FOR_X2P $*.c
|
|---|
| 102 |
|
|---|
| 103 | all: $(public) $(private) $(util)
|
|---|
| 104 | @echo " "
|
|---|
| 105 |
|
|---|
| 106 | compile: all
|
|---|
| 107 | $(REALPERL) -I../lib ../utils/perlcc -I .. -L .. $(plextract) -v -log ../compilelog;
|
|---|
| 108 |
|
|---|
| 109 | a2p$(EXE_EXT): $(obj) a2p$(OBJ_EXT)
|
|---|
| 110 | $(CC) -o a2p$(EXE_EXT) $(LDFLAGS) $(obj) a2p$(OBJ_EXT) $(libs)
|
|---|
| 111 |
|
|---|
| 112 | # I now supply a2p.c with the kits, so the following section is
|
|---|
| 113 | # used only if you force byacc to run by saying
|
|---|
| 114 | # make run_byacc
|
|---|
| 115 | # byacc 1.8.2 or 1.9 are recommended.
|
|---|
| 116 |
|
|---|
| 117 | run_byacc: FORCE
|
|---|
| 118 | @ echo Expect many shift/reduce and reduce/reduce conflicts
|
|---|
| 119 | $(BYACC) a2p.y
|
|---|
| 120 | rm -f a2p.c
|
|---|
| 121 | sed -e 's/(yyn = yydefred\[yystate\])/((yyn = yydefred[yystate]))/' \
|
|---|
| 122 | -e 's/(yys = getenv("YYDEBUG"))/((yys = getenv("YYDEBUG")))/' \
|
|---|
| 123 | -e 's/^yyerrlab://' \
|
|---|
| 124 | -e 's/^ goto yyerrlab;//' \
|
|---|
| 125 | -e 's/^yynewerror://' \
|
|---|
| 126 | -e 's/^ goto yynewerror;//' \
|
|---|
| 127 | -e 's|^static char yysccsid\(.*\)|/* static char yysccsid\1 */|' \
|
|---|
| 128 | < y.tab.c > a2p.c
|
|---|
| 129 |
|
|---|
| 130 | FORCE:
|
|---|
| 131 |
|
|---|
| 132 | # We don't want to regenerate a2p.c, but it might appear out-of-date
|
|---|
| 133 | # after a patch is applied or a new distribution is made.
|
|---|
| 134 | a2p.c: a2p.y
|
|---|
| 135 | -@sh -c true
|
|---|
| 136 |
|
|---|
| 137 | a2p$(OBJ_EXT): a2p.c a2py.c a2p.h EXTERN.h util.h INTERN.h \
|
|---|
| 138 | ../handy.h ../config.h str.h hash.h
|
|---|
| 139 | $(CCCMD) a2p.c
|
|---|
| 140 |
|
|---|
| 141 | clean:
|
|---|
| 142 | rm -f a2p$(EXE_EXT) psed *$(OBJ_EXT) $(plexe) $(plc) $(plm)
|
|---|
| 143 |
|
|---|
| 144 | realclean: clean
|
|---|
| 145 | -rmdir .depending
|
|---|
| 146 | rm -f core $(addedbyconf) all malloc.c
|
|---|
| 147 | rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old makefile.old
|
|---|
| 148 |
|
|---|
| 149 | veryclean: realclean
|
|---|
| 150 | rm -f *~ *.orig
|
|---|
| 151 |
|
|---|
| 152 | # The following lint has practically everything turned on. Unfortunately,
|
|---|
| 153 | # you have to wade through a lot of mumbo jumbo that can't be suppressed.
|
|---|
| 154 | # If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message
|
|---|
| 155 | # for that spot.
|
|---|
| 156 |
|
|---|
| 157 | lint:
|
|---|
| 158 | lint $(lintflags) $(defs) $(c) > a2p.fuzz
|
|---|
| 159 |
|
|---|
| 160 | depend: $(mallocsrc) ../makedepend
|
|---|
| 161 | sh ../makedepend MAKE=$(MAKE)
|
|---|
| 162 |
|
|---|
| 163 | clist:
|
|---|
| 164 | echo $(c) | tr ' ' $(TRNL) >.clist
|
|---|
| 165 |
|
|---|
| 166 | hlist:
|
|---|
| 167 | echo $(h) | tr ' ' $(TRNL) >.hlist
|
|---|
| 168 |
|
|---|
| 169 | shlist:
|
|---|
| 170 | echo $(sh) | tr ' ' $(TRNL) >.shlist
|
|---|
| 171 |
|
|---|
| 172 | # These should be automatically generated
|
|---|
| 173 |
|
|---|
| 174 | $(plextract):
|
|---|
| 175 | ../miniperl -I../lib $@.PL
|
|---|
| 176 |
|
|---|
| 177 | find2perl: find2perl.PL
|
|---|
| 178 |
|
|---|
| 179 | s2p: s2p.PL
|
|---|
| 180 |
|
|---|
| 181 | malloc.c: ../malloc.c
|
|---|
| 182 | rm -f malloc.c
|
|---|
| 183 | sed <../malloc.c >malloc.c \
|
|---|
| 184 | -e 's/"EXTERN.h"/"..\/EXTERN.h"/' \
|
|---|
| 185 | -e 's/"perl.h"/"..\/perl.h"/' \
|
|---|
| 186 | -e 's/my_exit/exit/' \
|
|---|
| 187 | -e 's/MUTEX_[A-Z_]*(&PL_malloc_mutex);//'
|
|---|
| 188 |
|
|---|
| 189 | # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
|
|---|
| 190 | $(obj):
|
|---|
| 191 | @ echo "You haven't done a "'"make depend" yet!'; exit 1
|
|---|
| 192 | makedepend: depend
|
|---|
| 193 | !NO!SUBS!
|
|---|
| 194 | $eunicefix Makefile
|
|---|
| 195 | case `pwd` in
|
|---|
| 196 | *SH)
|
|---|
| 197 | $rm -f ../Makefile
|
|---|
| 198 | $ln Makefile ../Makefile
|
|---|
| 199 | ;;
|
|---|
| 200 | esac
|
|---|
| 201 | rm -f $firstmakefile
|
|---|