summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-07-19 19:39:57 (GMT)
committerGuido van Rossum <guido@python.org>1997-07-19 19:39:57 (GMT)
commitf6ca6aa8696ff232d2c755fb97cf9264c753d036 (patch)
tree12c6a607a0bc7474fe6f1427fb3de8826026f706
parent914fbd9ae67fd86cfe99e5e5139f2af82deb44e3 (diff)
downloadcpython-f6ca6aa8696ff232d2c755fb97cf9264c753d036.zip
cpython-f6ca6aa8696ff232d2c755fb97cf9264c753d036.tar.gz
cpython-f6ca6aa8696ff232d2c755fb97cf9264c753d036.tar.bz2
New build procedure.
-rw-r--r--Modules/Makefile.pre.in54
-rw-r--r--Objects/Makefile.in17
-rw-r--r--Parser/Makefile.in35
-rw-r--r--Python/Makefile.in18
4 files changed, 66 insertions, 58 deletions
diff --git a/Modules/Makefile.pre.in b/Modules/Makefile.pre.in
index 6a3e5e5..4c6b315 100644
--- a/Modules/Makefile.pre.in
+++ b/Modules/Makefile.pre.in
@@ -6,9 +6,6 @@
# brought up to date by running "make Makefile". (The makesetup also
# creates config.c from config.c.in in the source directory.)
-# Interpreter version number, for library destination pathnames
-VERSION= 1.5
-
# === Variables set by makesetup ===
MODOBJS= _MODOBJS_
@@ -16,6 +13,7 @@ MODLIBS= _MODLIBS_
# === Variables set by configure ===
+VERSION= @VERSION@
srcdir= @srcdir@
VPATH= @srcdir@
@@ -92,51 +90,51 @@ MAKESETUP= $(srcdir)/makesetup
# === Fixed definitions ===
-OBJS= $(MODOBJS)
-
-# XXX Should getpath.o (and may be others) be added to OBJS?
-
-ADDOBJS= main.o config.o getpath.o getbuildinfo.o
+FIXOBJS= config.o getpath.o main.o getbuildinfo.o
+OBJS= $(MODOBJS) $(FIXOBJS)
-LIB= libModules.a
-
-MYLIBS= $(LIB) \
- ../Python/libPython.a \
- ../Objects/libObjects.a \
- ../Parser/libParser.a
+MAINOBJ= python.o
SYSLIBS= $(LIBM) $(LIBC)
+LIBRARY= ../libpython$(VERSION).a
# === Rules ===
-all: $(LIB) ../python sharedmods
+all: $(OBJS) sharedmods
+# Targets for Jim Fulton's extension Makefiles -- are these still needed?
asharedmodule: $(ASHAREDMODULE)$(SO)
$(ASHAREDMODULE)$(SO): $(ASHAREDMODULESOBS)
$(LDSHARED) $(LDFLAGS) -o $(ASHAREDMODULE)$(SO) $(ASHAREDMODULESOBS) \
$(ASHAREDMODULESEXTRA)
-$(LIB): $& $(OBJS) Makefile
- -rm -f $(LIB)
- $(AR) cr $(LIB) $(OBJS)
- $(RANLIB) $(LIB)
-
-../python: $(MYLIBS) $(ADDOBJS) Makefile buildno
+# This target is used by the master Makefile to add the objects to the library.
+# To deal with the conflict between signalmodule.o and sigcheck.o,
+# we remove the latter if we have the former.
+add2lib: $(OBJS) buildno
expr `cat buildno` + 1 >@buildno
mv @buildno buildno
- $(CC) -c $(CFLAGS) -DBUILD=`cat buildno` $(srcdir)/getbuildinfo.c
- $(AR) r $(LIB) getbuildinfo.o
- $(LINKCC) $(LDFLAGS) $(OPT) $(LINKFORSHARED) $(ADDOBJS) \
- $(MYLIBS) $(MODLIBS) $(LIBS) $(SYSLIBS) -o python $(LDLAST)
+ $(CC) -c $(CFLAGS) -DBUILD=`cat buildno` \
+ $(srcdir)/getbuildinfo.c
+ $(AR) cr $(LIBRARY) $(OBJS)
+ -if ar x $(LIBRARY) signalmodule.o 2>/dev/null; \
+ then ar d $(LIBRARY) sigcheck.o 2>/dev/null; true; \
+ else true; fi
+ touch add2lib
+
+# This target is used by the master Makefile to link the final binary.
+link: $(MAINOBJ)
+ $(LINKCC) $(LDFLAGS) $(OPT) $(LINKFORSHARED) $(MAINOBJ) \
+ $(LIBRARY) $(MODLIBS) $(LIBS) $(SYSLIBS) -o python $(LDLAST)
mv python ../python
buildno:
echo 0 >buildno
clean:
- -rm -f *.o python core *~ [@,#]* *.old *.orig *.rej
+ -rm -f *.o python core *~ [@,#]* *.old *.orig *.rej add2lib
clobber: clean
-rm -f *.a tags TAGS config.c glmodule.c Makefile.pre
@@ -150,7 +148,11 @@ getpath.o: getpath.c Makefile
-DVPATH='"$(VPATH)"' \
$(srcdir)/getpath.c
+# When the configuration changes, we remove the library, so that it
+# gets remade from scratch; this ensures to remove modules that are no
+# longer pertinent (but that were in a previous configuration).
config.c Makefile: Makefile.pre config.c.in $(MAKESETUP) Setup Setup.local
+ -rm -f $(LIBRARY)
$(SHELL) $(MAKESETUP) Setup Setup.local
Setup:
diff --git a/Objects/Makefile.in b/Objects/Makefile.in
index 2d6c087..e2dee62 100644
--- a/Objects/Makefile.in
+++ b/Objects/Makefile.in
@@ -4,6 +4,8 @@
# === Variables set by config.stat ===
+VERSION= @VERSION@
+
srcdir= @srcdir@
VPATH= @srcdir@
@@ -44,20 +46,19 @@ SRCS= abstract.c \
sliceobject.c stringobject.c \
tupleobject.c typeobject.c
-LIB= libObjects.a
-
+LIBRARY= ../libpython$(VERSION).a
# === Rules ===
-all: $(LIB)
+all: $(OBJS)
-$(LIB): $& $(OBJS)
- -rm -f $(LIB)
- $(AR) cr $(LIB) $(OBJS)
- $(RANLIB) $(LIB)
+# This target is used by the master Makefile to add the objects to the library
+add2lib: $(OBJS)
+ $(AR) cr $(LIBRARY) $(OBJS)
+ touch add2lib
clean:
- -rm -f *.o core *~ [@,#]* *.old *.orig *.rej
+ -rm -f *.o core *~ [@,#]* *.old *.orig *.rej add2lib
clobber: clean
-rm -f *.a tags TAGS
diff --git a/Parser/Makefile.in b/Parser/Makefile.in
index 1b8f1f8..48bfebc 100644
--- a/Parser/Makefile.in
+++ b/Parser/Makefile.in
@@ -4,6 +4,8 @@
# === Variables set by config.stat ===
+VERSION= @VERSION@
+
srcdir= @srcdir@
VPATH= @srcdir@
@@ -26,35 +28,38 @@ SHELL= /bin/sh
# === Fixed definitions ===
-PARSEROBJS= acceler.o grammar1.o \
- intrcheck.o listnode.o myreadline.o node.o parser.o \
+POBJS= acceler.o grammar1.o \
+ listnode.o node.o parser.o \
parsetok.o tokenizer.o bitset.o \
firstsets.o grammar.o metagrammar.o pgen.o \
printgrammar.o
-PGENOBJS= pgenmain.o
+OBJS= $(POBJS) intrcheck.o myreadline.o
-OBJS= $(PGENOBJS) $(PARSEROBJS)
+PGENMAIN= pgenmain.o
-PGEN= pgen
+PGENOBJS= $(PGENMAIN) $(POBJS)
-LIB= libParser.a
+DOBJS= $(PGENMAIN) $(OBJS)
+
+PGEN= pgen
+LIBRARY= ../libpython$(VERSION).a
# === Rules ===
-all: $(LIB) $(PGEN)
+all: $(PGEN) $(OBJS)
-$(LIB): $& $(PARSEROBJS)
- -rm -f $(LIB)
- $(AR) cr $(LIB) $(PARSEROBJS)
- $(RANLIB) $(LIB)
+# This target is used by the master Makefile to add the objects to the library
+add2lib: $(OBJS)
+ $(AR) cr $(LIBRARY) $(OBJS)
+ touch add2lib
-$(PGEN): $(PGENOBJS) $(LIB)
- $(CC) $(OPT) $(PGENOBJS) $(LIB) -o $(PGEN)
+$(PGEN): $(PGENOBJS)
+ $(CC) $(OPT) $(PGENOBJS) -o $(PGEN)
clean:
- -rm -f *.o core *~ [@,#]* *.old *.orig *.rej
+ -rm -f *.o core *~ [@,#]* *.old *.orig *.rej add2lib
clobber: clean
-rm -f $(PGEN) *.a tags TAGS
@@ -64,7 +69,7 @@ Makefile: $(srcdir)/Makefile.in ../config.status
$(SHELL) config.status)
depend:
- $(MKDEP) $(CFLAGS) `echo $(OBJS) | tr ' ' '\012' | \
+ $(MKDEP) $(CFLAGS) `echo $(DOBJS) | tr ' ' '\012' | \
sed 's|\(.*\)\.o|$(srcdir)/\1.c|'`
.PRECIOUS: Makefile
diff --git a/Python/Makefile.in b/Python/Makefile.in
index 9fc2de6..de28c23 100644
--- a/Python/Makefile.in
+++ b/Python/Makefile.in
@@ -4,6 +4,8 @@
# === Variables set by config.stat ===
+VERSION= @VERSION@
+
srcdir= @srcdir@
VPATH= @srcdir@
@@ -46,22 +48,20 @@ OBJS= \
traceback.o \
$(LIBOBJS)
-LIB= libPython.a
-
-SYSLIBS= -lm
+LIBRARY= ../libpython$(VERSION).a
# === Rules ===
-all: $(LIB)
+all: $(OBJS)
-$(LIB): $& $(OBJS)
- -rm -f $(LIB)
- $(AR) cr $(LIB) $(OBJS)
- $(RANLIB) $(LIB)
+# This target is used by the master Makefile to add the objects to the library
+add2lib: $(OBJS)
+ $(AR) cr $(LIBRARY) $(OBJS)
+ touch add2lib
clean:
- -rm -f *.o core *~ [@,#]* *.old *.orig *.rej
+ -rm -f *.o core *~ [@,#]* *.old *.orig *.rej add2lib
clobber: clean
-rm -f *.a tags TAGS