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