summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile170
1 files changed, 103 insertions, 67 deletions
diff --git a/Makefile b/Makefile
index 0babdb10ab..8da9eee9b4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,8 @@
-# : Makefile.SH,v 15738Revision: 4.1 15738Date: 92/08/07 17:18:08 $
+# .SH,v $Revision: 4.1 $Date: 92/08/07 17:18:08 $
+# This file is derived from Makefile.SH. Any changes made here will
+# be lost the next time you run Configure.
+# Makefile is used to generate makefile. The only difference
+# is that makefile has the dependencies filled in at the end.
#
# $Log: Makefile.SH,v $
# Revision 4.1 92/08/07 17:18:08 lwall
@@ -36,14 +40,24 @@ mansrc = /usr/local/man/man1
manext = 1
LDFLAGS =
CLDFLAGS =
+
SMALL =
LARGE =
mallocsrc = malloc.c
mallocobj = malloc.o
-dlsrc = dl.c
-dlobj = dl.o
-SLN = ln -s
+dlsrc = dl_sunos.c
+dlobj = dl_sunos.o
+dldir = ext/dl
+LNS = /bin/ln -s
RMS = rm -f
+ranlib = /usr/bin/ranlib
+
+# The following are used to build and install shared libraries for
+# dynamic loading.
+LDDLFLAGS =
+CCDLFLAGS =
+CCCDLFLAGS =
+SHLIBSUFFIX = .so
libs = -ldbm -ldl -lm -lposix
@@ -51,7 +65,7 @@ public = perl
shellflags =
-# To use an alternate make, set in config.sh.
+## To use an alternate make, set in config.sh.
MAKE = make
CCCMD = `sh $(shellflags) cflags $@`
@@ -64,7 +78,7 @@ manpages = perl.man h2ph.man
util =
-sh = Makefile.SH makedepend.SH h2ph.SH
+sh = Makefile.SH cflags.SH embed_h.SH makedepend.SH makedir.SH writemain.SH
h1 = EXTERN.h INTERN.h av.h cop.h config.h embed.h form.h handy.h
h2 = hv.h op.h opcode.h perl.h regcomp.h regexp.h gv.h sv.h util.h
@@ -79,19 +93,19 @@ c1 = av.c scope.c op.c doop.c doio.c dump.c hv.c
c2 = $(mallocsrc) mg.c perly.c pp.c regcomp.c regexec.c
c3 = gv.c sv.c taint.c toke.c util.c deb.c run.c
-c = $(c1) $(c2) $(c3)
+c = $(c1) $(c2) $(c3) $(dlsrc) miniperlmain.c perlmain.c
s1 = av.c scope.c op.c doop.c doio.c dump.c hv.c
-s2 = $(mallocobj) mg.c perly.c pp.c regcomp.c regexec.c
+s2 = $(mallocsrc) mg.c perly.c pp.c regcomp.c regexec.c
s3 = gv.c sv.c taint.c toke.c util.c deb.c run.c perly.c
-saber = $(s1) $(s2) $(s3)
+saber = $(s1) $(s2) $(s3) $(dlsrc)
obj1 = av.o scope.o op.o doop.o doio.o dump.o hv.o
obj2 = $(mallocobj) mg.o perly.o pp.o regcomp.o regexec.o
obj3 = gv.o sv.o taint.o toke.o util.o deb.o run.o
-obj = $(obj1) $(obj2) $(obj3) $(dlobj)
+obj = $(obj1) $(obj2) $(obj3)
lintflags = -hbvxac
@@ -100,85 +114,105 @@ addedbyconf = Makefile.old bsd eunice filexp loc pdp11 usg v7
# grrr
SHELL = /bin/sh
-.SUFFIXES: .x
-
.c.o:
$(CCCMD) $*.c
-.x.c:
- sh writemain $*.x >$*.c
-
all: miniperl perl lib/Config.pm
#all: $(public) $(private) $(util) $(scripts)
# cd x2p; $(MAKE) all
# touch all
+# Phony target to force checking subdirectories.
+FORCE:
+
+
+$(dlsrc): $(dldir)/$(dlsrc)
+ cp $(dldir)/$(dlsrc) $(dlsrc)
+
+$(dlobj): $(dlsrc)
+ $(CCCMD) $(dlsrc)
+
+
# NDBM_File extension
+NDBM_File.o: NDBM_File.c
+ $(CCCMD) $(CCCDLFLAGS) $*.c
+
NDBM_File.c: ext/dbm/NDBM_File.xs ext/xsubpp ext/typemap
test -f miniperl || make miniperl
- ext/xsubpp ext/dbm/NDBM_File.xs >tmp
+ ./miniperl ext/xsubpp ext/dbm/NDBM_File.xs >tmp
mv tmp NDBM_File.c
-NDBM_File.o: NDBM_File.c
+lib/auto/NDBM_File/NDBM_File$(SHLIBSUFFIX): NDBM_File.o
+ test -d lib/auto/NDBM_File || mkdir lib/auto/NDBM_File
+ ld $(LDDLFLAGS) -o $@ NDBM_File.o
# ODBM_File extension
-ODBM_File.c: ext/dbm/ODBM_File.xs ext/xsubpp ext/typemap
- test -f miniperl || make miniperl
- ext/xsubpp ext/dbm/ODBM_File.xs >tmp
- mv tmp ODBM_File.c
-
ODBM_File.o: ODBM_File.c
+ $(CCCMD) $(CCCDLFLAGS) $*.c
-# GDBM_File extension
-GDBM_File.c: ext/dbm/GDBM_File.xs ext/xsubpp ext/typemap
+ODBM_File.c: ext/dbm/ODBM_File.xs ext/xsubpp ext/typemap
test -f miniperl || make miniperl
- ext/xsubpp ext/dbm/GDBM_File.xs >tmp
- mv tmp GDBM_File.c
+ ./miniperl ext/xsubpp ext/dbm/ODBM_File.xs >tmp
+ mv tmp ODBM_File.c
-GDBM_File.o: GDBM_File.c
+lib/auto/ODBM_File/ODBM_File$(SHLIBSUFFIX): ODBM_File.o
+ test -d lib/auto/ODBM_File || mkdir lib/auto/ODBM_File
+ ld $(LDDLFLAGS) -o $@ ODBM_File.o
# SDBM_File extension
+SDBM_File.o: SDBM_File.c
+ $(CCCMD) $(CCCDLFLAGS) $*.c
+
SDBM_File.c: ext/dbm/SDBM_File.xs ext/xsubpp ext/typemap
test -f miniperl || make miniperl
- ext/xsubpp ext/dbm/SDBM_File.xs >tmp
+ ./miniperl ext/xsubpp ext/dbm/SDBM_File.xs >tmp
mv tmp SDBM_File.c
-SDBM_File.o: SDBM_File.c
-
-lib/auto/SDBM_File/SDBM_File.so: SDBM_File.o ext/dbm/sdbm/libsdbm.a
- @- mkdir lib/auto/SDBM_File 2>/dev/null
- ld -o lib/auto/SDBM_File/SDBM_File.so SDBM_File.o ext/dbm/sdbm/libsdbm.a
-
-ext/dbm/sdbm/libsdbm.a: ext/dbm/sdbm/sdbm.c ext/dbm/sdbm/sdbm.h
- cd ext/dbm/sdbm; $(MAKE) sdbm
+lib/auto/SDBM_File/SDBM_File$(SHLIBSUFFIX): SDBM_File.o ext/dbm/sdbm/libsdbm.a
+ test -d lib/auto/SDBM_File || mkdir lib/auto/SDBM_File
+ ld $(LDDLFLAGS) -o $@ SDBM_File.o ext/dbm/sdbm/libsdbm.a
# POSIX extension
+POSIX.o: POSIX.c
+ $(CCCMD) $(CCCDLFLAGS) $*.c
+
POSIX.c: ext/posix/POSIX.xs ext/xsubpp ext/typemap
test -f miniperl || make miniperl
- ext/xsubpp ext/posix/POSIX.xs >tmp
+ ./miniperl ext/xsubpp ext/posix/POSIX.xs >tmp
mv tmp POSIX.c
-POSIX.o: POSIX.c
-lib/auto/POSIX/POSIX.so: POSIX.o ext/dbm/sdbm/libsdbm.a
- @- mkdir lib/auto/POSIX 2>/dev/null
- ld -o lib/auto/POSIX/POSIX.so POSIX.o ext/dbm/sdbm/libsdbm.a
-extobjs= ext/dbm/NDBM_File.xs.o ext/dbm/ODBM_File.xs.o ext/dbm/GDBM_File.xs.o ext/dbm/SDBM_File.xs.o ext/posix/POSIX.xs.o
+lib/auto/POSIX/POSIX$(SHLIBSUFFIX): POSIX.o
+ test -d lib/auto/POSIX || mkdir lib/auto/POSIX
+ ld $(LDDLFLAGS) -o $@ POSIX.o -lm
+
+# List of extensions (used by writemain) to generate perlmain.c
+ext= NDBM_File ODBM_File SDBM_File POSIX
+extsrc= NDBM_File.c ODBM_File.c SDBM_File.c POSIX.c
+# Extension dependencies.
+extdep= lib/auto/NDBM_File/NDBM_File$(SHLIBSUFFIX) lib/auto/ODBM_File/ODBM_File$(SHLIBSUFFIX) lib/auto/SDBM_File/SDBM_File$(SHLIBSUFFIX) lib/auto/POSIX/POSIX$(SHLIBSUFFIX)
+# How to include extensions in linking command
+extobj=
+
+ext/dbm/sdbm/libsdbm.a: ext/dbm/sdbm/sdbm.h ext/dbm/sdbm/sdbm.c
+ cd ext/dbm/sdbm; $(MAKE) -f Makefile libsdbm.a
+
# The $& notation tells Sequent machines that it can do a parallel make,
# and is harmless otherwise.
-miniperlmain.c: miniperlmain.x
-miniperlmain.o: miniperlmain.c
miniperl: $& miniperlmain.o perl.o $(obj)
$(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain.o perl.o $(obj) $(libs)
-perlmain.c: perlmain.x
+perlmain.c: miniperlmain.c
+ sh writemain $(ext) > perlmain.c
+
perlmain.o: perlmain.c
-perl: $& perlmain.o perl.o $(obj) NDBM_File.o ODBM_File.o POSIX.o
- $(CC) $(LARGE) $(CLDFLAGS) -o perl perlmain.o perl.o $(obj) NDBM_File.o ODBM_File.o POSIX.o $(libs)
+
+perl: $& perlmain.o perl.o $(obj) $(dlobj) $(extdep)
+ $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain.o perl.o $(obj) $(dlobj) $(extobj) $(libs)
libperl.rlb: libperl.a
- ranlib libperl.a
+ $(ranlib) libperl.a
touch libperl.rlb
libperl.a: $& perl.o $(obj)
@@ -189,11 +223,11 @@ libperl.a: $& perl.o $(obj)
# checks as well as the special code to validate that the script in question
# has been invoked correctly.
-suidperl: $& sperl.o main.o libperl.rlb
- $(CC) $(LARGE) $(CLDFLAGS) sperl.o main.o libperl.a $(libs) -o suidperl
+suidperl: $& sperl.o perlmain.o libperl.rlb
+ $(CC) $(LARGE) $(CLDFLAGS) sperl.o perlmain.o libperl.a $(libs) -o suidperl
-lib/Config.pm: config.sh
- ./configpm
+lib/Config.pm: config.sh miniperl
+ ./miniperl configpm
saber: $(saber)
# load $(saber)
@@ -201,21 +235,16 @@ saber: $(saber)
sperl.o: perl.c perly.h patchlevel.h $(h)
$(RMS) sperl.c
- $(SLN) perl.c sperl.c
+ $(LNS) perl.c sperl.c
$(CCCMD) -DIAMSUID sperl.c
$(RMS) sperl.c
-dl.o: ext/dl/dl.c
- cp ext/dl/dl.c dl.c
- $(CC) -c dl.c
-
-
perly.h: perly.c
@ echo Dummy dependency for dumb parallel make
touch perly.h
opcode.h: opcode.pl
- - opcode.pl
+ - perl opcode.pl
embed.h: embed_h.SH global.sym interp.sym
sh embed_h.SH
@@ -234,14 +263,21 @@ install: all
./perl installperl
clean:
- rm -f *.o all perl taintperl suidperl miniperl
+ rm -f *.o all perl miniperl
+ rm -f POSIX.c ?DBM_File.c perlmain.c
+ rm -f ext/dbm/sdbm/libsdbm.a
+ cd ext/dbm/sdbm; $(MAKE) -f Makefile clean
cd x2p; $(MAKE) clean
realclean: clean
cd x2p; $(MAKE) realclean
+ cd ext/dbm/sdbm; $(MAKE) -f Makefile realclean
rm -f *.orig */*.orig *~ */*~ core $(addedbyconf) h2ph h2ph.man
- rm -f perly.h t/perl Makefile config.h makedepend makedir
- rm -f makefile x2p/Makefile x2p/makefile cflags x2p/cflags
+ rm -f Makefile cflags embed_h makedepend makedir writemain
+ rm -f config.h t/perl makefile makefile.old cflags
+ rm -rf lib/auto/?DBM_File lib/auto/POSIX
+ rm -f x2p/Makefile x2p/makefile x2p/makefile.old x2p/cflags
+ rm -f lib/Config.pm
rm -f c2ph pstruct
# The following lint has practically everything turned on. Unfortunately,
@@ -258,17 +294,17 @@ depend: makedepend
- test -s perly.h || /bin/rm -f perly.h
cd x2p; $(MAKE) depend
-test: perl
+test: perl lib/Config.pm
- cd t && chmod +x TEST */*.t
- - cd t && (rm -f perl; $(SLN) ../perl perl) && ./perl TEST </dev/tty
+ - cd t && (rm -f perl; $(LNS) ../perl perl) && ./perl TEST </dev/tty
-clist:
+clist: $(c)
echo $(c) | tr ' ' '\012' >.clist
-hlist:
+hlist: $(h)
echo $(h) | tr ' ' '\012' >.hlist
-shlist:
+shlist: $(sh)
echo $(sh) | tr ' ' '\012' >.shlist
# AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE