mirror of
https://github.com/python/cpython.git
synced 2026-04-07 04:11:09 +00:00
Forget about the trick to create directories through dependencies -- it's impossible to get it right in the light of parallellizing Make implementations and the inability to specify dependencies between directories (because creating the subdirectory modifies the parent).
213 lines
5.3 KiB
Text
213 lines
5.3 KiB
Text
# META-NOTE: this note is different from the note in the other Makefiles!
|
|
# NOTE: Makefile.pre.in is converted into Makefile.pre by the configure
|
|
# script in the toplevel directory or by ../config.status.
|
|
# Makefile.pre is converted into Makefile by running the makesetup
|
|
# script in the source directory. Once Makefile exists, it can be
|
|
# 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.4
|
|
|
|
# === Variables set by makesetup ===
|
|
|
|
MODOBJS= _MODOBJS_
|
|
MODLIBS= _MODLIBS_
|
|
|
|
# === Variables set by configure ===
|
|
|
|
srcdir= @srcdir@
|
|
VPATH= @srcdir@
|
|
|
|
CC= @CC@
|
|
RANLIB= @RANLIB@
|
|
AR= @AR@
|
|
|
|
OPT= @OPT@
|
|
|
|
DEFS= @DEFS@
|
|
LIBS= @LIBS@
|
|
LIBM= @LIBM@
|
|
LIBC= @LIBC@
|
|
|
|
# Machine-dependent subdirectories
|
|
MACHDEP= @MACHDEP@
|
|
|
|
# Install prefix for architecture-independent files
|
|
prefix= @prefix@
|
|
|
|
# Install prefix for architecture-dependent files
|
|
exec_prefix= @exec_prefix@
|
|
|
|
# Symbols used for using shared libraries
|
|
SO= @SO@
|
|
LDSHARED= @LDSHARED@
|
|
CCSHARED= @CCSHARED@
|
|
LINKFORSHARED= @LINKFORSHARED@
|
|
BINLIBDEST= $(exec_prefix)/lib/python$(VERSION)
|
|
DESTSHARED= $(BINLIBDEST)/$(MACHDEP)
|
|
|
|
# Portable install script (configure doesn't always guess right)
|
|
INSTALL= @srcdir@/../install-sh -c
|
|
INSTALL_PROGRAM=${INSTALL}
|
|
INSTALL_DATA= ${INSTALL} -m 644
|
|
|
|
# === Variables that are customizable by hand or by inclusion in Setup ===
|
|
|
|
LINKCC= $(CC)
|
|
INCLDIR= $(srcdir)/../Include
|
|
CONFIGINCLDIR= ..
|
|
CFLAGS= $(OPT) -I$(INCLDIR) -I$(CONFIGINCLDIR) $(DEFS)
|
|
|
|
MKDEP= mkdep
|
|
SHELL= /bin/sh
|
|
|
|
MAKESETUP= $(srcdir)/makesetup
|
|
|
|
# (The makesetup script inserts all variable definitions found
|
|
# found in the Setup file just below the following line.
|
|
# This means that the Setup file can override any of the definitions
|
|
# given before this point, but not any given below.
|
|
# The script insert the definitions in reverse order,
|
|
# for the benefits of independent extensions.)
|
|
# === Definitions added by makesetup ===
|
|
|
|
# === Fixed definitions ===
|
|
|
|
OBJS= $(MODOBJS)
|
|
|
|
ADDOBJS= main.o config.o getpath.o
|
|
|
|
LIB= libModules.a
|
|
|
|
MYLIBS= $(LIB) \
|
|
../Python/libPython.a \
|
|
../Objects/libObjects.a \
|
|
../Parser/libParser.a
|
|
|
|
SYSLIBS= $(LIBM) $(LIBC)
|
|
|
|
|
|
# === Rules ===
|
|
|
|
all: $(LIB) ../python sharedmods
|
|
|
|
asharedmodule: $(ASHAREDMODULE)$(SO)
|
|
|
|
$(ASHAREDMODULE)$(SO): $(ASHAREDMODULESOBS)
|
|
$(LDSHARED) -o $(ASHAREDMODULE)$(SO) $(ASHAREDMODULESOBS) \
|
|
$(ASHAREDMODULESEXTRA)
|
|
|
|
$(LIB): $& $(OBJS) Makefile
|
|
-rm -f $(LIB)
|
|
$(AR) cr $(LIB) $(OBJS)
|
|
$(RANLIB) $(LIB)
|
|
|
|
../python: $(MYLIBS) $(ADDOBJS) Makefile
|
|
$(LINKCC) $(OPT) $(LINKFORSHARED) $(ADDOBJS) \
|
|
$(MYLIBS) $(MODLIBS) $(LIBS) $(SYSLIBS) -o python
|
|
mv python ../python
|
|
|
|
clean:
|
|
-rm -f *.o python core *~ [@,#]* *.old *.orig *.rej
|
|
|
|
clobber: clean
|
|
-rm -f *.a tags TAGS config.c glmodule.c Makefile.pre
|
|
-rm -f *.so so_locations
|
|
|
|
getpath.o: getpath.c Makefile
|
|
$(CC) -c $(CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
|
|
-DPREFIX='"$(prefix)"' \
|
|
-DEXEC_PREFIX='"$(exec_prefix)"' \
|
|
$(srcdir)/getpath.c
|
|
|
|
config.c Makefile: Makefile.pre config.c.in $(MAKESETUP) Setup
|
|
$(SHELL) $(MAKESETUP) Setup
|
|
|
|
Setup:
|
|
cp $(srcdir)/Setup.in Setup
|
|
|
|
Makefile.pre: Makefile.pre.in ../config.status
|
|
(cd ..; CONFIG_FILES=Modules/Makefile.pre CONFIG_HEADERS= \
|
|
$(SHELL) config.status)
|
|
|
|
depend:
|
|
$(MKDEP) $(CFLAGS) `echo $(OBJS) | tr ' ' '\012' | \
|
|
sed 's|\(.*\)\.o|$(srcdir)/\1.c|'`
|
|
|
|
.PRECIOUS: ../python
|
|
|
|
glmodule.c: $(srcdir)/cgen.py $(srcdir)/cstubs
|
|
python $(srcdir)/cgen.py <$(srcdir)/cstubs >glmodule.c
|
|
|
|
almodule.o: almodule.c
|
|
arraymodule.o: arraymodule.c
|
|
audioop.o: audioop.c
|
|
cdmodule.o: cdmodule.c
|
|
clmodule.o: clmodule.c
|
|
dbmmodule.o: dbmmodule.c
|
|
fcntlmodule.o: fcntlmodule.c
|
|
flmodule.o: flmodule.c
|
|
fmmodule.o: fmmodule.c
|
|
glmodule.o: glmodule.c
|
|
imageop.o: imageop.c
|
|
imgfile.o: imgfile.c
|
|
main.o: main.c
|
|
mathmodule.o: mathmodule.c
|
|
md5c.o: md5c.c
|
|
md5module.o: md5module.c
|
|
mpzmodule.o: mpzmodule.c
|
|
nismodule.o: nismodule.c
|
|
parsermodule.o: parsermodule.c
|
|
posixmodule.o: posixmodule.c
|
|
pwdmodule.o: pwdmodule.c
|
|
regexmodule.o: regexmodule.c
|
|
regexpr.o: regexpr.c
|
|
rgbimgmodule.o: rgbimgmodule.c
|
|
rotormodule.o: rotormodule.c
|
|
selectmodule.o: selectmodule.c
|
|
sgimodule.o: sgimodule.c
|
|
socketmodule.o: socketmodule.c
|
|
stdwinmodule.o: stdwinmodule.c
|
|
stropmodule.o: stropmodule.c
|
|
structmodule.o: structmodule.c
|
|
sunaudiodev.o: sunaudiodev.c
|
|
svmodule.o: svmodule.c
|
|
threadmodule.o: threadmodule.c
|
|
timemodule.o: timemodule.c
|
|
timingmodule.o: timingmodule.c
|
|
xxmodule.o: xxmodule.c
|
|
yuvconvert.o: yuvconvert.c
|
|
|
|
# Rules to build and install all shared modules
|
|
sharedmods: $(SHAREDMODS)
|
|
sharedinstall: $(DESTSHARED) $(SHAREDMODS)
|
|
-for i in X $(SHAREDMODS); do \
|
|
if test $$i != X; \
|
|
then $(INSTALL_DATA) $$i $(DESTSHARED)/$$i; \
|
|
fi; \
|
|
done
|
|
|
|
# Install a shared module from outside of setup
|
|
asharedinstall: $(DESTSHARED) $(ASHAREDMODULE)$(SO)
|
|
-for i in dummy $(ASHAREDMODULE)$(SO); do \
|
|
if test -f $$i; then mv $$i $(DESTSHARED)/$$i; fi; done
|
|
|
|
# This is handy when modules need to know where the destination directory is:
|
|
echodestshared: $(DESTSHARED)
|
|
echo $(DESTSHARED)
|
|
|
|
DESTDIRS= $(exec_prefix) $(exec_prefix)/lib $(BINLIBDEST) $(DESTSHARED)
|
|
|
|
$(DESTSHARED):
|
|
@for i in $(DESTDIRS); \
|
|
do \
|
|
if test ! -d $$i; then \
|
|
echo "Creating directory $$i"; \
|
|
mkdir $$i; \
|
|
chmod 755 $$i; \
|
|
else true; \
|
|
fi; \
|
|
done
|
|
|
|
# Stuff is appended here by makesetup and make depend
|