1 | case $CONFIGDOTSH 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: 1.1.1.3 $$Date: 2000-04-07 20:47:40 $ |
---|
31 | # |
---|
32 | # $Log: not supported by cvs2svn $ |
---|
33 | |
---|
34 | CC = $cc |
---|
35 | BYACC = $byacc |
---|
36 | LDFLAGS = $ldflags |
---|
37 | SMALL = $small |
---|
38 | LARGE = $large $split |
---|
39 | # XXX Perl malloc temporarily unusable (declaration collisions with |
---|
40 | # stdlib.h) |
---|
41 | #mallocsrc = $mallocsrc |
---|
42 | #mallocobj = $mallocobj |
---|
43 | shellflags = $shellflags |
---|
44 | |
---|
45 | libs = $libs |
---|
46 | |
---|
47 | $make_set_make |
---|
48 | # grrr |
---|
49 | SHELL = $sh |
---|
50 | |
---|
51 | # These variables may need to be manually set for non-Unix systems. |
---|
52 | AR = $ar |
---|
53 | EXE_EXT = $_ext |
---|
54 | LIB_EXT = $_a |
---|
55 | OBJ_EXT = $_o |
---|
56 | PATH_SEP = $p_ |
---|
57 | |
---|
58 | FIRSTMAKEFILE = $firstmakefile |
---|
59 | |
---|
60 | # how to tr(anslate) newlines |
---|
61 | |
---|
62 | TRNL = '$trnl' |
---|
63 | |
---|
64 | .SUFFIXES: .c \$(OBJ_EXT) |
---|
65 | |
---|
66 | !GROK!THIS! |
---|
67 | |
---|
68 | cat >>Makefile <<'!NO!SUBS!' |
---|
69 | |
---|
70 | REALPERL = ../perl |
---|
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 | |
---|
81 | sh = Makefile.SH cflags.SH |
---|
82 | shextract = Makefile cflags |
---|
83 | |
---|
84 | pl = find2perl.PL s2p.PL |
---|
85 | plextract = find2perl s2p |
---|
86 | plexe = find2perl.exe s2p.exe |
---|
87 | plc = find2perl.c s2p.c |
---|
88 | plm = a2p.loadmap |
---|
89 | |
---|
90 | addedbyconf = $(shextract) $(plextract) |
---|
91 | |
---|
92 | h = EXTERN.h INTERN.h ../config.h ../handy.h hash.h a2p.h str.h util.h |
---|
93 | |
---|
94 | c = hash.c $(mallocsrc) str.c util.c walk.c |
---|
95 | |
---|
96 | obj = hash$(OBJ_EXT) $(mallocobj) str$(OBJ_EXT) util$(OBJ_EXT) walk$(OBJ_EXT) |
---|
97 | |
---|
98 | lintflags = -phbvxac |
---|
99 | |
---|
100 | |
---|
101 | .c$(OBJ_EXT): |
---|
102 | $(CCCMD) -DPERL_FOR_X2P $*.c |
---|
103 | |
---|
104 | all: $(public) $(private) $(util) |
---|
105 | @echo " " |
---|
106 | |
---|
107 | compile: all |
---|
108 | $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' $(plextract) -prog -verbose dcf -log ../compilelog; |
---|
109 | |
---|
110 | a2p: $(obj) a2p$(OBJ_EXT) |
---|
111 | $(CC) -o a2p $(LDFLAGS) $(obj) a2p$(OBJ_EXT) $(libs) |
---|
112 | |
---|
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 |
---|
120 | rm -f a2p.c |
---|
121 | mv y.tab.c a2p.c |
---|
122 | |
---|
123 | FORCE: |
---|
124 | |
---|
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 |
---|
128 | -@sh -c true |
---|
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 |
---|
132 | $(CCCMD) $(LARGE) a2p.c |
---|
133 | |
---|
134 | clean: |
---|
135 | rm -f a2p *$(OBJ_EXT) $(plexe) $(plc) $(plm) |
---|
136 | |
---|
137 | realclean: clean |
---|
138 | rm -f *.orig core $(addedbyconf) all malloc.c |
---|
139 | rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old |
---|
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 |
---|
150 | sh ../makedepend MAKE=$(MAKE) |
---|
151 | |
---|
152 | clist: |
---|
153 | echo $(c) | tr ' ' $(TRNL) >.clist |
---|
154 | |
---|
155 | hlist: |
---|
156 | echo $(h) | tr ' ' $(TRNL) >.hlist |
---|
157 | |
---|
158 | shlist: |
---|
159 | echo $(sh) | tr ' ' $(TRNL) >.shlist |
---|
160 | |
---|
161 | # These should be automatically generated |
---|
162 | |
---|
163 | $(plextract): |
---|
164 | ../miniperl -I../lib $@.PL |
---|
165 | |
---|
166 | malloc.c: ../malloc.c |
---|
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"/' \ |
---|
171 | -e 's/my_exit/exit/' \ |
---|
172 | -e 's/MUTEX_[A-Z_]*(&PL_malloc_mutex);//' |
---|
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 |
---|
177 | makedepend: depend |
---|
178 | !NO!SUBS! |
---|
179 | $eunicefix Makefile |
---|
180 | case `pwd` in |
---|
181 | *SH) |
---|
182 | $rm -f ../Makefile |
---|
183 | $ln Makefile ../Makefile |
---|
184 | ;; |
---|
185 | esac |
---|
186 | rm -f $firstmakefile |
---|