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