Commit | Line | Data |
---|---|---|
8d063cd8 LW |
1 | case $CONFIG in |
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 | |
17 | */*) cd `expr X$0 : 'X\(.*\)/'` ;; | |
18 | esac | |
19 | ||
9c8d0b29 AD |
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 LW |
29 | # |
30 | # $Log: Makefile.SH,v $ | |
8d063cd8 LW |
31 | |
32 | CC = $cc | |
9c8d0b29 | 33 | BYACC = $byacc |
8d063cd8 LW |
34 | mansrc = $mansrc |
35 | manext = $manext | |
8d063cd8 LW |
36 | LDFLAGS = $ldflags |
37 | SMALL = $small | |
38 | LARGE = $large $split | |
a1cc2bdc AR |
39 | mallocsrc = $mallocsrc |
40 | mallocobj = $mallocobj | |
bf10efe7 | 41 | shellflags = $shellflags |
8d063cd8 | 42 | |
b6ccd89c | 43 | libs = $libs |
8d063cd8 LW |
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 LW |
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 LW |
65 | |
66 | lintflags = -phbvxac | |
67 | ||
8d063cd8 LW |
68 | # grrr |
69 | SHELL = /bin/sh | |
70 | ||
71 | .c.o: | |
d48672a2 | 72 | $(CCCMD) $*.c |
8d063cd8 LW |
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 AD |
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: |
748a9306 | 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 LW |
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 LW |
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 |
748a9306 | 142 | rm -f malloc.c |
79072805 LW |
143 | sed <../malloc.c >malloc.c \ |
144 | -e 's/"perl.h"/"..\/perl.h"/' \ | |
145 | -e 's/my_exit/exit/' | |
f1ca563b | 146 | |
8d063cd8 LW |
147 | # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE |
148 | $(obj): | |
149 | @ echo "You haven't done a "'"make depend" yet!'; exit 1 | |
a0d0e21e | 150 | makedepend: depend |
8d063cd8 LW |
151 | !NO!SUBS! |
152 | $eunicefix Makefile | |
153 | case `pwd` in | |
154 | *SH) | |
155 | $rm -f ../Makefile | |
156 | ln Makefile ../Makefile | |
157 | ;; | |
158 | esac | |
f1ca563b | 159 | rm -f makefile |