mirror of
https://github.com/python/cpython.git
synced 2026-02-18 05:12:16 +00:00
PURIFY (e.g. in the Setup file or on the make command line) to point to the purify command, to run purify.
244 lines
6.7 KiB
Text
244 lines
6.7 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.)
|
|
|
|
# === Variables set by makesetup ===
|
|
|
|
MODOBJS= _MODOBJS_
|
|
MODLIBS= _MODLIBS_
|
|
|
|
# === Variables set by configure ===
|
|
|
|
VERSION= @VERSION@
|
|
srcdir= @srcdir@
|
|
VPATH= @srcdir@
|
|
|
|
CC= @CC@
|
|
RANLIB= @RANLIB@
|
|
AR= @AR@
|
|
|
|
OPT= @OPT@
|
|
LDFLAGS= @LDFLAGS@
|
|
LDLAST= @LDLAST@
|
|
|
|
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@
|
|
|
|
# Expanded directories
|
|
BINDIR= $(exec_prefix)/bin
|
|
LIBDIR= $(exec_prefix)/lib
|
|
MANDIR= $(prefix)/man
|
|
INCLUDEDIR= $(prefix)/include
|
|
SCRIPTDIR= $(prefix)/lib
|
|
|
|
# Detailed destination directories
|
|
BINLIBDEST= $(LIBDIR)/python$(VERSION)
|
|
LIBDEST= $(SCRIPTDIR)/python$(VERSION)
|
|
INCLUDEPY= $(INCLUDEDIR)/python$(VERSION)
|
|
LIBP= $(LIBDIR)/python$(VERSION)
|
|
|
|
# Symbols used for using shared libraries
|
|
SO= @SO@
|
|
LDSHARED= @LDSHARED@
|
|
CCSHARED= @CCSHARED@
|
|
LINKFORSHARED= @LINKFORSHARED@
|
|
DESTSHARED= $(BINLIBDEST)/sharedmodules
|
|
|
|
# Portable install script (configure doesn't always guess right)
|
|
INSTALL= @srcdir@/../install-sh -c
|
|
INSTALL_PROGRAM=${INSTALL} -m 755
|
|
INSTALL_DATA= ${INSTALL} -m 644
|
|
# Shared libraries must be installed with executable mode on some systems;
|
|
# rather than figuring out exactly which, we always give them executable mode.
|
|
# Also, making them read-only seems to be a good idea...
|
|
INSTALL_SHARED= ${INSTALL} -m 555
|
|
|
|
# === Variables that are customizable by hand or by inclusion in Setup ===
|
|
|
|
LINKCC= $(PURIFY) $(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 ===
|
|
|
|
FIXOBJS= config.o getpath.o main.o getbuildinfo.o
|
|
OBJS= $(MODOBJS) $(FIXOBJS)
|
|
|
|
MAINOBJ= python.o
|
|
|
|
SYSLIBS= $(LIBM) $(LIBC)
|
|
|
|
LIBRARY= ../libpython$(VERSION).a
|
|
|
|
# === Rules ===
|
|
|
|
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)
|
|
|
|
# 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)
|
|
$(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
|
|
|
|
clean:
|
|
-rm -f *.o python core *~ [@,#]* *.old *.orig *.rej add2lib
|
|
|
|
clobber: clean
|
|
-rm -f *.a tags TAGS config.c glmodule.c Makefile.pre
|
|
-rm -f *.so *.sl so_locations
|
|
|
|
getpath.o: getpath.c Makefile
|
|
$(CC) -c $(CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
|
|
-DPREFIX='"$(prefix)"' \
|
|
-DEXEC_PREFIX='"$(exec_prefix)"' \
|
|
-DVERSION='"$(VERSION)"' \
|
|
-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:
|
|
cp $(srcdir)/Setup.in Setup
|
|
|
|
Setup.local:
|
|
echo "# Edit this file for local setup changes" >Setup.local
|
|
|
|
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
|
|
cgensupport.o: cgensupport.c
|
|
clmodule.o: clmodule.c
|
|
dbmmodule.o: dbmmodule.c
|
|
errnomodule.o: errnomodule.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
|
|
operator.o: operator.c
|
|
parsermodule.o: parsermodule.c
|
|
posixmodule.o: posixmodule.c
|
|
pwdmodule.o: pwdmodule.c
|
|
regexmodule.o: regexmodule.c
|
|
regexpr.o: regexpr.c
|
|
resource.o: resource.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_SHARED) $$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) $(LIBDIR) $(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
|