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

Revision 14545, 4.1 KB checked in by ghudson, 25 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.
RevLine 
[14544]1case $CONFIGDOTSH in
[9008]2'')
[10723]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        ;;
[9008]13esac
[10723]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
[9008]27echo "Extracting x2p/Makefile (with variable substitutions)"
28rm -f Makefile
29cat >Makefile <<!GROK!THIS!
[14544]30# $RCSfile: Makefile.SH,v $$Revision: 1.1.1.3 $$Date: 2000-04-07 20:47:40 $
[9008]31#
32# $Log: not supported by cvs2svn $
33
34CC = $cc
[10723]35BYACC = $byacc
[9008]36LDFLAGS = $ldflags
37SMALL = $small
38LARGE = $large $split
[14544]39# XXX Perl malloc temporarily unusable (declaration collisions with
40# stdlib.h)
41#mallocsrc = $mallocsrc
42#mallocobj = $mallocobj
[9008]43shellflags = $shellflags
44
45libs = $libs
[10723]46
47$make_set_make
48# grrr
49SHELL = $sh
50
[14544]51# These variables may need to be manually set for non-Unix systems.
[10723]52AR = $ar
[14544]53EXE_EXT = $_ext
54LIB_EXT = $_a
55OBJ_EXT = $_o
56PATH_SEP = $p_
[10723]57
58FIRSTMAKEFILE = $firstmakefile
59
[14544]60# how to tr(anslate) newlines
61
62TRNL = '$trnl'
63
[10723]64.SUFFIXES: .c \$(OBJ_EXT)
65
[9008]66!GROK!THIS!
67
68cat >>Makefile <<'!NO!SUBS!'
69
[14544]70REALPERL = ../perl
[9008]71CCCMD = `sh $(shellflags) cflags $@`
72
73public = a2p s2p find2perl
74
75private =
76
77manpages = a2p.man s2p.man
78
79util =
80
[10723]81sh = Makefile.SH cflags.SH
82shextract = Makefile cflags
[9008]83
[10723]84pl = find2perl.PL s2p.PL
85plextract = find2perl s2p
[14544]86plexe = find2perl.exe s2p.exe
87plc   = find2perl.c s2p.c
88plm   = a2p.loadmap
[9008]89
[10723]90addedbyconf = $(shextract) $(plextract)
91
92h = EXTERN.h INTERN.h ../config.h ../handy.h hash.h a2p.h str.h util.h
93
[9008]94c = hash.c $(mallocsrc) str.c util.c walk.c
95
[10723]96obj = hash$(OBJ_EXT) $(mallocobj) str$(OBJ_EXT) util$(OBJ_EXT) walk$(OBJ_EXT)
[9008]97
98lintflags = -phbvxac
99
100
[10723]101.c$(OBJ_EXT):
102        $(CCCMD) -DPERL_FOR_X2P $*.c
[9008]103
104all: $(public) $(private) $(util)
[14544]105        @echo " "
[9008]106
[14544]107compile: all
108        $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' $(plextract) -prog -verbose dcf -log ../compilelog; 
109
[10723]110a2p: $(obj) a2p$(OBJ_EXT)
[14544]111        $(CC) -o a2p $(LDFLAGS) $(obj) a2p$(OBJ_EXT) $(libs)
[9008]112
[10723]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
[14544]120        rm -f a2p.c
[9008]121        mv y.tab.c a2p.c
122
[14544]123FORCE:
124
[10723]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
[14544]128        -@sh -c true
[10723]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
[9008]132        $(CCCMD) $(LARGE) a2p.c
133
134clean:
[14544]135        rm -f a2p *$(OBJ_EXT) $(plexe) $(plc) $(plm)
[9008]136
137realclean: clean
[10723]138        rm -f *.orig core $(addedbyconf) all malloc.c
139        rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old
[9008]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
[10723]150        sh ../makedepend MAKE=$(MAKE)
[9008]151
152clist:
[14544]153        echo $(c) | tr ' ' $(TRNL) >.clist
[9008]154
155hlist:
[14544]156        echo $(h) | tr ' ' $(TRNL) >.hlist
[9008]157
158shlist:
[14544]159        echo $(sh) | tr ' ' $(TRNL) >.shlist
[9008]160
[10723]161# These should be automatically generated
[9008]162
[10723]163$(plextract):
164        ../miniperl -I../lib $@.PL
165
[9008]166malloc.c: ../malloc.c
[10723]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"/' \
[14544]171            -e 's/my_exit/exit/' \
172            -e 's/MUTEX_[A-Z_]*(&PL_malloc_mutex);//'
[9008]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
[10723]177makedepend: depend
[9008]178!NO!SUBS!
179$eunicefix Makefile
180case `pwd` in
181*SH)
182    $rm -f ../Makefile
[10723]183    $ln Makefile ../Makefile
[9008]184    ;;
185esac
[10723]186rm -f $firstmakefile
Note: See TracBrowser for help on using the repository browser.