| # 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.local Setup |
| |
| 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 |