cpython/Modules/Makefile.pre.in
Guido van Rossum d14c06819e Add unsupported variable EXE which can be set to .exe on systems where
the executable must have that suffix.  Note that there is no
corresponding support in the top-level Makefile because I'm not sure
that the install targets there make sense under these circumstances.
1997-08-22 20:53:47 +00:00

251 lines
6.8 KiB
Makefile

# 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= @LINKCC@
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)
# 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+intrcheck.o, we remove the latter two if we have the former.
add2lib: $(OBJS)
-for i in $(OBJS); do \
if test "$$i" = "signalmodule.o"; then \
ar d $(LIBRARY) sigcheck.o intrcheck.o 2>/dev/null; \
break; \
fi; \
done
$(AR) cr $(LIBRARY) $(OBJS)
touch add2lib
# Use ``EXE=.exe'' for Unix emulations on DOS/Windows
EXE=
# 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$(EXE) ../python$(EXE)
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