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

Revision 17035, 4.1 KB checked in by zacheiss, 23 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r17034, 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.4 $$Date: 2002-02-07 21:12:25 $
31#
32# $Log: not supported by cvs2svn $
33
34CC = $cc
35BYACC = $byacc
36LDFLAGS = $ldflags
37# XXX Perl malloc temporarily unusable (declaration collisions with stdlib.h)
38#mallocsrc = $mallocsrc
39#mallocobj = $mallocobj
40shellflags = $shellflags
41
42libs = $libs
43
44$make_set_make
45# grrr
46SHELL = $sh
47
48# These variables may need to be manually set for non-Unix systems.
49AR = $ar
50EXE_EXT = $_ext
51LIB_EXT = $_a
52OBJ_EXT = $_o
53PATH_SEP = $p_
54
55FIRSTMAKEFILE = $firstmakefile
56
57# how to tr(anslate) newlines
58
59TRNL = '$trnl'
60
61.SUFFIXES: .c \$(OBJ_EXT)
62
63!GROK!THIS!
64
65cat >>Makefile <<'!NO!SUBS!'
66
67REALPERL = ../perl
68CCCMD = `sh $(shellflags) cflags $@`
69
70public = a2p s2p find2perl
71
72private =
73
74manpages = a2p.man s2p.man
75
76util =
77
78sh = Makefile.SH cflags.SH
79shextract = Makefile cflags
80
81pl = find2perl.PL s2p.PL
82plextract = find2perl s2p
83plexe = find2perl.exe s2p.exe
84plc   = find2perl.c s2p.c
85plm   = a2p.loadmap
86
87addedbyconf = $(shextract) $(plextract)
88
89h = EXTERN.h INTERN.h ../config.h ../handy.h hash.h a2p.h str.h util.h
90
91c = hash.c $(mallocsrc) str.c util.c walk.c
92
93obj = hash$(OBJ_EXT) $(mallocobj) str$(OBJ_EXT) util$(OBJ_EXT) walk$(OBJ_EXT)
94
95lintflags = -phbvxac
96
97
98.c$(OBJ_EXT):
99        $(CCCMD) -DPERL_FOR_X2P $*.c
100
101all: $(public) $(private) $(util)
102        @echo " "
103
104compile: all
105        $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' $(plextract) -prog -verbose dcf -log ../compilelog; 
106
107a2p: $(obj) a2p$(OBJ_EXT)
108        $(CC) -o a2p $(LDFLAGS) $(obj) a2p$(OBJ_EXT) $(libs)
109
110# I now supply a2p.c with the kits, so the following section is
111# used only if you force byacc to run by saying
112# make  run_byacc
113
114run_byacc:      FORCE
115        @ echo Expect many shift/reduce and reduce/reduce conflicts
116        $(BYACC) a2p.y
117        rm -f a2p.c
118        mv y.tab.c a2p.c
119
120FORCE:
121
122# We don't want to regenerate a2p.c, but it might appear out-of-date
123# after a patch is applied or a new distribution is made.
124a2p.c: a2p.y
125        -@sh -c true
126
127a2p$(OBJ_EXT): a2p.c a2py.c a2p.h EXTERN.h util.h INTERN.h \
128                ../handy.h ../config.h str.h hash.h
129        $(CCCMD) a2p.c
130
131clean:
132        rm -f a2p *$(OBJ_EXT) $(plexe) $(plc) $(plm)
133
134realclean: clean
135        rm -f core $(addedbyconf) all malloc.c
136        rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old
137
138veryclean: realclean
139        rm -f *~ *.orig
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.