Commit | Line | Data |
8d063cd8 |
1 | case $CONFIG in |
2 | '') |
a0d0e21e |
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 |
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 | */*) cd `expr X$0 : 'X\(.*\)/'` ;; |
18 | esac |
19 | |
9c8d0b29 |
20 | : Configure sets byacc=byacc if byacc is not found. We reset it to '' |
21 | case "$byacc" in |
22 | 'byacc') byacc='';; |
23 | esac |
24 | |
8d063cd8 |
25 | echo "Extracting x2p/Makefile (with variable substitutions)" |
bf10efe7 |
26 | rm -f Makefile |
8d063cd8 |
27 | cat >Makefile <<!GROK!THIS! |
79072805 |
28 | # $RCSfile: Makefile.SH,v $$Revision: 4.1 $$Date: 92/08/07 18:29:07 $ |
8d063cd8 |
29 | # |
30 | # $Log: Makefile.SH,v $ |
8d063cd8 |
31 | |
32 | CC = $cc |
9c8d0b29 |
33 | BYACC = $byacc |
8d063cd8 |
34 | mansrc = $mansrc |
35 | manext = $manext |
8d063cd8 |
36 | LDFLAGS = $ldflags |
37 | SMALL = $small |
38 | LARGE = $large $split |
a1cc2bdc |
39 | mallocsrc = $mallocsrc |
40 | mallocobj = $mallocobj |
bf10efe7 |
41 | shellflags = $shellflags |
8d063cd8 |
42 | |
b6ccd89c |
43 | libs = $libs |
8d063cd8 |
44 | !GROK!THIS! |
45 | |
46 | cat >>Makefile <<'!NO!SUBS!' |
47 | |
bf10efe7 |
48 | CCCMD = `sh $(shellflags) cflags $@` |
d48672a2 |
49 | |
fe14fcc3 |
50 | public = a2p s2p find2perl |
8d063cd8 |
51 | |
52 | private = |
53 | |
54 | manpages = a2p.man s2p.man |
55 | |
56 | util = |
57 | |
a0d0e21e |
58 | sh = Makefile.SH cflags.SH find2perl.SH s2p.SH |
8d063cd8 |
59 | |
bf10efe7 |
60 | h = EXTERN.h INTERN.h ../config.h handy.h hash.h a2p.h str.h util.h |
8d063cd8 |
61 | |
a1cc2bdc |
62 | c = hash.c $(mallocsrc) str.c util.c walk.c |
8d063cd8 |
63 | |
a1cc2bdc |
64 | obj = hash.o $(mallocobj) str.o util.o walk.o |
8d063cd8 |
65 | |
66 | lintflags = -phbvxac |
67 | |
8d063cd8 |
68 | # grrr |
69 | SHELL = /bin/sh |
70 | |
71 | .c.o: |
d48672a2 |
72 | $(CCCMD) $*.c |
8d063cd8 |
73 | |
74 | all: $(public) $(private) $(util) |
75 | touch all |
76 | |
77 | a2p: $(obj) a2p.o |
d48672a2 |
78 | $(CC) $(LDFLAGS) $(obj) a2p.o $(libs) -o a2p |
8d063cd8 |
79 | |
9c8d0b29 |
80 | !NO!SUBS! |
81 | |
82 | : Only print out the rules for running byacc if the user _has_ byacc. |
83 | : Otherwise, comment them out. Users who really know what they are |
84 | : doing can uncomment them and run yacc or bison or whatever. |
85 | : Configure sets byacc=byacc if byacc is not found. |
86 | case "$byacc" in |
87 | '') |
88 | comment1='#' |
89 | comment2='' ;; |
90 | *) comment1='' |
91 | comment2='#' ;; |
92 | esac |
93 | |
94 | $spitshell >>Makefile <<!GROK!THIS! |
95 | |
96 | # I now supply a2p.c with the kits, so the following section is |
97 | # commented out if you don't have byacc. |
98 | |
99 | ${comment1}a2p.c: a2p.y |
100 | ${comment1} @ echo Expect many shift/reduce and reduce/reduce conflicts |
101 | ${comment1} \$(BYACC) a2p.y |
102 | ${comment1} mv y.tab.c a2p.c |
103 | |
104 | # This version is used if you do not have byacc. |
105 | ${comment2}a2p.c: a2p.y |
106 | ${comment2} touch a2p.c |
107 | |
108 | !GROK!THIS! |
109 | cat >>Makefile <<'!NO!SUBS!' |
8d063cd8 |
110 | |
b6ccd89c |
111 | a2p.o: a2p.c a2py.c a2p.h EXTERN.h util.h INTERN.h handy.h ../config.h str.h hash.h |
d48672a2 |
112 | $(CCCMD) $(LARGE) a2p.c |
8d063cd8 |
113 | |
8d063cd8 |
114 | clean: |
9c8d0b29 |
115 | rm -f a2p *.o |
8d063cd8 |
116 | |
b6ccd89c |
117 | realclean: clean |
9c8d0b29 |
118 | rm -f *.orig core $(addedbyconf) all malloc.c |
a0d0e21e |
119 | rm -f Makefile cflags find2perl s2p makefile makefile.old |
8d063cd8 |
120 | |
121 | # The following lint has practically everything turned on. Unfortunately, |
122 | # you have to wade through a lot of mumbo jumbo that can't be suppressed. |
123 | # If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message |
124 | # for that spot. |
125 | |
126 | lint: |
127 | lint $(lintflags) $(defs) $(c) > a2p.fuzz |
128 | |
f1ca563b |
129 | depend: $(mallocsrc) ../makedepend |
8d063cd8 |
130 | ../makedepend |
131 | |
132 | clist: |
133 | echo $(c) | tr ' ' '\012' >.clist |
134 | |
135 | hlist: |
136 | echo $(h) | tr ' ' '\012' >.hlist |
137 | |
138 | shlist: |
139 | echo $(sh) | tr ' ' '\012' >.shlist |
140 | |
f1ca563b |
141 | malloc.c: ../malloc.c |
79072805 |
142 | sed <../malloc.c >malloc.c \ |
143 | -e 's/"perl.h"/"..\/perl.h"/' \ |
144 | -e 's/my_exit/exit/' |
f1ca563b |
145 | |
8d063cd8 |
146 | # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE |
147 | $(obj): |
148 | @ echo "You haven't done a "'"make depend" yet!'; exit 1 |
a0d0e21e |
149 | makedepend: depend |
8d063cd8 |
150 | !NO!SUBS! |
151 | $eunicefix Makefile |
152 | case `pwd` in |
153 | *SH) |
154 | $rm -f ../Makefile |
155 | ln Makefile ../Makefile |
156 | ;; |
157 | esac |
f1ca563b |
158 | rm -f makefile |