source: trunk/third/perl/x2p/Makefile.SH @ 14545

Revision 14545, 4.1 KB checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r14544, which included commits to RCS files with non-trunk default branches.
Line 
1case $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        ;;
13esac
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.
16case "$0" in
17*/Makefile.SH) cd `expr X$0 : 'X\(.*\)/'` ;;
18Makefile.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;;
25esac
26
27echo "Extracting x2p/Makefile (with variable substitutions)"
28rm -f Makefile
29cat >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
34CC = $cc
35BYACC = $byacc
36LDFLAGS = $ldflags
37SMALL = $small
38LARGE = $large $split
39# XXX Perl malloc temporarily unusable (declaration collisions with
40# stdlib.h)
41#mallocsrc = $mallocsrc
42#mallocobj = $mallocobj
43shellflags = $shellflags
44
45libs = $libs
46
47$make_set_make
48# grrr
49SHELL = $sh
50
51# These variables may need to be manually set for non-Unix systems.
52AR = $ar
53EXE_EXT = $_ext
54LIB_EXT = $_a
55OBJ_EXT = $_o
56PATH_SEP = $p_
57
58FIRSTMAKEFILE = $firstmakefile
59
60# how to tr(anslate) newlines
61
62TRNL = '$trnl'
63
64.SUFFIXES: .c \$(OBJ_EXT)
65
66!GROK!THIS!
67
68cat >>Makefile <<'!NO!SUBS!'
69
70REALPERL = ../perl
71CCCMD = `sh $(shellflags) cflags $@`
72
73public = a2p s2p find2perl
74
75private =
76
77manpages = a2p.man s2p.man
78
79util =
80
81sh = Makefile.SH cflags.SH
82shextract = Makefile cflags
83
84pl = find2perl.PL s2p.PL
85plextract = find2perl s2p
86plexe = find2perl.exe s2p.exe
87plc   = find2perl.c s2p.c
88plm   = a2p.loadmap
89
90addedbyconf = $(shextract) $(plextract)
91
92h = EXTERN.h INTERN.h ../config.h ../handy.h hash.h a2p.h str.h util.h
93
94c = hash.c $(mallocsrc) str.c util.c walk.c
95
96obj = hash$(OBJ_EXT) $(mallocobj) str$(OBJ_EXT) util$(OBJ_EXT) walk$(OBJ_EXT)
97
98lintflags = -phbvxac
99
100
101.c$(OBJ_EXT):
102        $(CCCMD) -DPERL_FOR_X2P $*.c
103
104all: $(public) $(private) $(util)
105        @echo " "
106
107compile: all
108        $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' $(plextract) -prog -verbose dcf -log ../compilelog; 
109
110a2p: $(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
117run_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
123FORCE:
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.
127a2p.c: a2p.y
128        -@sh -c true
129
130a2p$(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
134clean:
135        rm -f a2p *$(OBJ_EXT) $(plexe) $(plc) $(plm)
136
137realclean: 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
146lint:
147        lint $(lintflags) $(defs) $(c) > a2p.fuzz
148
149depend: $(mallocsrc) ../makedepend
150        sh ../makedepend MAKE=$(MAKE)
151
152clist:
153        echo $(c) | tr ' ' $(TRNL) >.clist
154
155hlist:
156        echo $(h) | tr ' ' $(TRNL) >.hlist
157
158shlist:
159        echo $(sh) | tr ' ' $(TRNL) >.shlist
160
161# These should be automatically generated
162
163$(plextract):
164        ../miniperl -I../lib $@.PL
165
166malloc.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
177makedepend: depend
178!NO!SUBS!
179$eunicefix Makefile
180case `pwd` in
181*SH)
182    $rm -f ../Makefile
183    $ln Makefile ../Makefile
184    ;;
185esac
186rm -f $firstmakefile
Note: See TracBrowser for help on using the repository browser.