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 | ||
8d063cd8 | 20 | echo "Extracting x2p/Makefile (with variable substitutions)" |
bf10efe7 | 21 | rm -f Makefile |
8d063cd8 | 22 | cat >Makefile <<!GROK!THIS! |
1aef788c | 23 | # $RCSfile: Makefile.SH,v $$Revision: 4.1 $$Date: 92/08/07 18:29:07 $ |
8d063cd8 | 24 | # |
25 | # $Log: Makefile.SH,v $ | |
8d063cd8 | 26 | |
27 | CC = $cc | |
9c8d0b29 | 28 | BYACC = $byacc |
8d063cd8 | 29 | LDFLAGS = $ldflags |
30 | SMALL = $small | |
31 | LARGE = $large $split | |
a1cc2bdc | 32 | mallocsrc = $mallocsrc |
33 | mallocobj = $mallocobj | |
bf10efe7 | 34 | shellflags = $shellflags |
8d063cd8 | 35 | |
b6ccd89c | 36 | libs = $libs |
cc72480d | 37 | |
1aef788c | 38 | $make_set_make |
39 | # grrr | |
40 | SHELL = $sh | |
41 | ||
cc72480d | 42 | # These variables will be used in a future version to make |
43 | # the make file more portable to non-unix systems. | |
44 | AR = $ar | |
45 | EXE_EXT = $exe_ext | |
46 | LIB_EXT = $lib_ext | |
47 | OBJ_EXT = $obj_ext | |
48 | PATH_SEP = $path_sep | |
49 | ||
50 | FIRSTMAKEFILE = $firstmakefile | |
51 | ||
52 | .SUFFIXES: .c \$(OBJ_EXT) | |
53 | ||
8d063cd8 | 54 | !GROK!THIS! |
55 | ||
56 | cat >>Makefile <<'!NO!SUBS!' | |
57 | ||
bf10efe7 | 58 | CCCMD = `sh $(shellflags) cflags $@` |
d48672a2 | 59 | |
fe14fcc3 | 60 | public = a2p s2p find2perl |
8d063cd8 | 61 | |
62 | private = | |
63 | ||
64 | manpages = a2p.man s2p.man | |
65 | ||
66 | util = | |
67 | ||
4633a7c4 | 68 | sh = Makefile.SH cflags.SH |
69 | shextract = Makefile cflags | |
8d063cd8 | 70 | |
4633a7c4 | 71 | pl = find2perl.PL s2p.PL |
72 | plextract = find2perl s2p | |
73 | ||
74 | addedbyconf = $(shextract) $(plextract) | |
16d20bd9 | 75 | |
bf10efe7 | 76 | h = EXTERN.h INTERN.h ../config.h handy.h hash.h a2p.h str.h util.h |
8d063cd8 | 77 | |
a1cc2bdc | 78 | c = hash.c $(mallocsrc) str.c util.c walk.c |
8d063cd8 | 79 | |
cc72480d | 80 | obj = hash$(OBJ_EXT) $(mallocobj) str$(OBJ_EXT) util$(OBJ_EXT) walk$(OBJ_EXT) |
8d063cd8 | 81 | |
82 | lintflags = -phbvxac | |
83 | ||
1aef788c | 84 | |
cc72480d | 85 | .c$(OBJ_EXT): |
1aef788c | 86 | $(CCCMD) -DPERL_FOR_X2P $*.c |
8d063cd8 | 87 | |
88 | all: $(public) $(private) $(util) | |
89 | touch all | |
90 | ||
cc72480d | 91 | a2p: $(obj) a2p$(OBJ_EXT) |
1aef788c | 92 | $(CC) $(LDFLAGS) $(obj) a2p$(OBJ_EXT) $(libs) -o a2p |
8d063cd8 | 93 | |
9c8d0b29 | 94 | # I now supply a2p.c with the kits, so the following section is |
56febc5e | 95 | # used only if you force byacc to run by saying |
96 | # make run_byacc | |
97 | ||
232e078e | 98 | run_byacc: FORCE |
56febc5e | 99 | @ echo Expect many shift/reduce and reduce/reduce conflicts |
100 | $(BYACC) a2p.y | |
101 | mv y.tab.c a2p.c | |
102 | ||
103 | # We don't want to regenerate a2p.c, but it might appear out-of-date | |
104 | # after a patch is applied or a new distribution is made. | |
105 | a2p.c: a2p.y | |
232e078e | 106 | -@touch a2p.c |
8d063cd8 | 107 | |
cc72480d | 108 | a2p$(OBJ_EXT): a2p.c a2py.c a2p.h EXTERN.h util.h INTERN.h handy.h ../config.h str.h hash.h |
1aef788c | 109 | $(CCCMD) $(LARGE) a2p.c |
8d063cd8 | 110 | |
8d063cd8 | 111 | clean: |
cc72480d | 112 | rm -f a2p *$(OBJ_EXT) |
8d063cd8 | 113 | |
b6ccd89c | 114 | realclean: clean |
9c8d0b29 | 115 | rm -f *.orig core $(addedbyconf) all malloc.c |
cc72480d | 116 | rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old |
8d063cd8 | 117 | |
118 | # The following lint has practically everything turned on. Unfortunately, | |
119 | # you have to wade through a lot of mumbo jumbo that can't be suppressed. | |
120 | # If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message | |
121 | # for that spot. | |
122 | ||
123 | lint: | |
124 | lint $(lintflags) $(defs) $(c) > a2p.fuzz | |
125 | ||
f1ca563b | 126 | depend: $(mallocsrc) ../makedepend |
cc72480d | 127 | sh ../makedepend |
8d063cd8 | 128 | |
129 | clist: | |
130 | echo $(c) | tr ' ' '\012' >.clist | |
131 | ||
132 | hlist: | |
133 | echo $(h) | tr ' ' '\012' >.hlist | |
134 | ||
135 | shlist: | |
136 | echo $(sh) | tr ' ' '\012' >.shlist | |
137 | ||
4633a7c4 | 138 | # These should be automatically generated |
139 | ||
140 | $(plextract): | |
141 | ../miniperl -I../lib $@.PL | |
142 | ||
f1ca563b | 143 | malloc.c: ../malloc.c |
748a9306 | 144 | rm -f malloc.c |
79072805 | 145 | sed <../malloc.c >malloc.c \ |
146 | -e 's/"perl.h"/"..\/perl.h"/' \ | |
147 | -e 's/my_exit/exit/' | |
f1ca563b | 148 | |
8d063cd8 | 149 | # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE |
150 | $(obj): | |
151 | @ echo "You haven't done a "'"make depend" yet!'; exit 1 | |
a0d0e21e | 152 | makedepend: depend |
8d063cd8 | 153 | !NO!SUBS! |
154 | $eunicefix Makefile | |
155 | case `pwd` in | |
156 | *SH) | |
157 | $rm -f ../Makefile | |
cc72480d | 158 | $ln Makefile ../Makefile |
8d063cd8 | 159 | ;; |
160 | esac | |
cc72480d | 161 | rm -f $firstmakefile |