[14544] | 1 | case $CONFIGDOTSH in |
---|
[9008] | 2 | '') |
---|
[10723] | 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 | ;; |
---|
[9008] | 13 | esac |
---|
[10723] | 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 | |
---|
[9008] | 27 | echo "Extracting x2p/Makefile (with variable substitutions)" |
---|
| 28 | rm -f Makefile |
---|
| 29 | cat >Makefile <<!GROK!THIS! |
---|
[14544] | 30 | # $RCSfile: Makefile.SH,v $$Revision: 1.1.1.3 $$Date: 2000-04-07 20:47:40 $ |
---|
[9008] | 31 | # |
---|
| 32 | # $Log: not supported by cvs2svn $ |
---|
| 33 | |
---|
| 34 | CC = $cc |
---|
[10723] | 35 | BYACC = $byacc |
---|
[9008] | 36 | LDFLAGS = $ldflags |
---|
| 37 | SMALL = $small |
---|
| 38 | LARGE = $large $split |
---|
[14544] | 39 | # XXX Perl malloc temporarily unusable (declaration collisions with |
---|
| 40 | # stdlib.h) |
---|
| 41 | #mallocsrc = $mallocsrc |
---|
| 42 | #mallocobj = $mallocobj |
---|
[9008] | 43 | shellflags = $shellflags |
---|
| 44 | |
---|
| 45 | libs = $libs |
---|
[10723] | 46 | |
---|
| 47 | $make_set_make |
---|
| 48 | # grrr |
---|
| 49 | SHELL = $sh |
---|
| 50 | |
---|
[14544] | 51 | # These variables may need to be manually set for non-Unix systems. |
---|
[10723] | 52 | AR = $ar |
---|
[14544] | 53 | EXE_EXT = $_ext |
---|
| 54 | LIB_EXT = $_a |
---|
| 55 | OBJ_EXT = $_o |
---|
| 56 | PATH_SEP = $p_ |
---|
[10723] | 57 | |
---|
| 58 | FIRSTMAKEFILE = $firstmakefile |
---|
| 59 | |
---|
[14544] | 60 | # how to tr(anslate) newlines |
---|
| 61 | |
---|
| 62 | TRNL = '$trnl' |
---|
| 63 | |
---|
[10723] | 64 | .SUFFIXES: .c \$(OBJ_EXT) |
---|
| 65 | |
---|
[9008] | 66 | !GROK!THIS! |
---|
| 67 | |
---|
| 68 | cat >>Makefile <<'!NO!SUBS!' |
---|
| 69 | |
---|
[14544] | 70 | REALPERL = ../perl |
---|
[9008] | 71 | CCCMD = `sh $(shellflags) cflags $@` |
---|
| 72 | |
---|
| 73 | public = a2p s2p find2perl |
---|
| 74 | |
---|
| 75 | private = |
---|
| 76 | |
---|
| 77 | manpages = a2p.man s2p.man |
---|
| 78 | |
---|
| 79 | util = |
---|
| 80 | |
---|
[10723] | 81 | sh = Makefile.SH cflags.SH |
---|
| 82 | shextract = Makefile cflags |
---|
[9008] | 83 | |
---|
[10723] | 84 | pl = find2perl.PL s2p.PL |
---|
| 85 | plextract = find2perl s2p |
---|
[14544] | 86 | plexe = find2perl.exe s2p.exe |
---|
| 87 | plc = find2perl.c s2p.c |
---|
| 88 | plm = a2p.loadmap |
---|
[9008] | 89 | |
---|
[10723] | 90 | addedbyconf = $(shextract) $(plextract) |
---|
| 91 | |
---|
| 92 | h = EXTERN.h INTERN.h ../config.h ../handy.h hash.h a2p.h str.h util.h |
---|
| 93 | |
---|
[9008] | 94 | c = hash.c $(mallocsrc) str.c util.c walk.c |
---|
| 95 | |
---|
[10723] | 96 | obj = hash$(OBJ_EXT) $(mallocobj) str$(OBJ_EXT) util$(OBJ_EXT) walk$(OBJ_EXT) |
---|
[9008] | 97 | |
---|
| 98 | lintflags = -phbvxac |
---|
| 99 | |
---|
| 100 | |
---|
[10723] | 101 | .c$(OBJ_EXT): |
---|
| 102 | $(CCCMD) -DPERL_FOR_X2P $*.c |
---|
[9008] | 103 | |
---|
| 104 | all: $(public) $(private) $(util) |
---|
[14544] | 105 | @echo " " |
---|
[9008] | 106 | |
---|
[14544] | 107 | compile: all |
---|
| 108 | $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' $(plextract) -prog -verbose dcf -log ../compilelog; |
---|
| 109 | |
---|
[10723] | 110 | a2p: $(obj) a2p$(OBJ_EXT) |
---|
[14544] | 111 | $(CC) -o a2p $(LDFLAGS) $(obj) a2p$(OBJ_EXT) $(libs) |
---|
[9008] | 112 | |
---|
[10723] | 113 | # I now supply a2p.c with the kits, so the following section is |
---|
| 114 | # used only if you force byacc to run by saying |
---|
| 115 | # make run_byacc |
---|
| 116 | |
---|
| 117 | run_byacc: FORCE |
---|
| 118 | @ echo Expect many shift/reduce and reduce/reduce conflicts |
---|
| 119 | $(BYACC) a2p.y |
---|
[14544] | 120 | rm -f a2p.c |
---|
[9008] | 121 | mv y.tab.c a2p.c |
---|
| 122 | |
---|
[14544] | 123 | FORCE: |
---|
| 124 | |
---|
[10723] | 125 | # We don't want to regenerate a2p.c, but it might appear out-of-date |
---|
| 126 | # after a patch is applied or a new distribution is made. |
---|
| 127 | a2p.c: a2p.y |
---|
[14544] | 128 | -@sh -c true |
---|
[10723] | 129 | |
---|
| 130 | a2p$(OBJ_EXT): a2p.c a2py.c a2p.h EXTERN.h util.h INTERN.h \ |
---|
| 131 | ../handy.h ../config.h str.h hash.h |
---|
[9008] | 132 | $(CCCMD) $(LARGE) a2p.c |
---|
| 133 | |
---|
| 134 | clean: |
---|
[14544] | 135 | rm -f a2p *$(OBJ_EXT) $(plexe) $(plc) $(plm) |
---|
[9008] | 136 | |
---|
| 137 | realclean: clean |
---|
[10723] | 138 | rm -f *.orig core $(addedbyconf) all malloc.c |
---|
| 139 | rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old |
---|
[9008] | 140 | |
---|
| 141 | # The following lint has practically everything turned on. Unfortunately, |
---|
| 142 | # you have to wade through a lot of mumbo jumbo that can't be suppressed. |
---|
| 143 | # If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message |
---|
| 144 | # for that spot. |
---|
| 145 | |
---|
| 146 | lint: |
---|
| 147 | lint $(lintflags) $(defs) $(c) > a2p.fuzz |
---|
| 148 | |
---|
| 149 | depend: $(mallocsrc) ../makedepend |
---|
[10723] | 150 | sh ../makedepend MAKE=$(MAKE) |
---|
[9008] | 151 | |
---|
| 152 | clist: |
---|
[14544] | 153 | echo $(c) | tr ' ' $(TRNL) >.clist |
---|
[9008] | 154 | |
---|
| 155 | hlist: |
---|
[14544] | 156 | echo $(h) | tr ' ' $(TRNL) >.hlist |
---|
[9008] | 157 | |
---|
| 158 | shlist: |
---|
[14544] | 159 | echo $(sh) | tr ' ' $(TRNL) >.shlist |
---|
[9008] | 160 | |
---|
[10723] | 161 | # These should be automatically generated |
---|
[9008] | 162 | |
---|
[10723] | 163 | $(plextract): |
---|
| 164 | ../miniperl -I../lib $@.PL |
---|
| 165 | |
---|
[9008] | 166 | malloc.c: ../malloc.c |
---|
[10723] | 167 | rm -f malloc.c |
---|
| 168 | sed <../malloc.c >malloc.c \ |
---|
| 169 | -e 's/"EXTERN.h"/"..\/EXTERN.h"/' \ |
---|
| 170 | -e 's/"perl.h"/"..\/perl.h"/' \ |
---|
[14544] | 171 | -e 's/my_exit/exit/' \ |
---|
| 172 | -e 's/MUTEX_[A-Z_]*(&PL_malloc_mutex);//' |
---|
[9008] | 173 | |
---|
| 174 | # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE |
---|
| 175 | $(obj): |
---|
| 176 | @ echo "You haven't done a "'"make depend" yet!'; exit 1 |
---|
[10723] | 177 | makedepend: depend |
---|
[9008] | 178 | !NO!SUBS! |
---|
| 179 | $eunicefix Makefile |
---|
| 180 | case `pwd` in |
---|
| 181 | *SH) |
---|
| 182 | $rm -f ../Makefile |
---|
[10723] | 183 | $ln Makefile ../Makefile |
---|
[9008] | 184 | ;; |
---|
| 185 | esac |
---|
[10723] | 186 | rm -f $firstmakefile |
---|