--- Lib/plat-aix4/regen +++ Lib/plat-aix4/regen @@ -5,4 +5,4 @@ exit 1;; esac set -v -h2py.py -i '(u_long)' /usr/include/netinet/in.h +python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h --- Lib/plat-linux/regen +++ Lib/plat-linux/regen @@ -5,4 +5,4 @@ exit 1;; esac set -v -h2py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/dlfcn.h +python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/dlfcn.h /usr/include/linux/cdrom.h --- Lib/plat-sunos5/regen +++ Lib/plat-sunos5/regen @@ -5,5 +5,4 @@ exit 1;; esac set -v -h2py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/sys/stropts.h /usr/include/dlfcn.h - +python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/sys/stropts.h /usr/include/dlfcn.h --- Lib/plat-unixware7/regen +++ Lib/plat-unixware7/regen @@ -5,5 +5,5 @@ exit 1;; esac set -v -h2py -i '(u_long)' /usr/include/netinet/in.h -h2py /usr/include/sys/stropts.h +python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h +python$EXE ../../Tools/scripts/h2py.py /usr/include/sys/stropts.h --- Makefile.pre.in +++ Makefile.pre.in @@ -396,7 +396,7 @@ # Default target all: build_all -build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks Modules/_testembed +build_all: $(BUILDPYTHON) oldsharedmods sharedmods platformspecificmods gdbhooks Modules/_testembed # Compile a binary with gcc profile guided optimization. profile-opt: @@ -439,6 +439,26 @@ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ esac +# Build the platform-specific modules +platformspecificmods: $(BUILDPYTHON) sharedmods + @PLATDIR=$(PLATDIR); \ + if test ! -f $(srcdir)/Lib/$(PLATDIR)/regen; then \ + $(INSTALL) -d $(srcdir)/Lib/$(PLATDIR); \ + if test -f $(srcdir)/Lib/$${PLATDIR%?}/regen; then \ + cp $(srcdir)/Lib/$${PLATDIR%?}/regen $(srcdir)/Lib/$(PLATDIR)/regen; \ + else \ + cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen; \ + fi \ + fi + @EXE="$(BUILDEXE)"; export EXE; \ + PATH="`pwd`:$$PATH"; export PATH; \ + PYTHONPATH="`pwd`/Lib"; export PYTHONPATH; \ + cd $(srcdir)/Lib/$(PLATDIR); \ + $(RUNSHARED) ./regen || exit 1; \ + for module in *.py; do \ + $(RUNSHARED) $(BUILDPYTHON) -c "import py_compile; py_compile.compile('$$module', cfile='/dev/null', doraise=True)" || exit 1; \ + done + # Build static library # avoid long command lines, same as LIBRARY_OBJS $(LIBRARY): $(LIBRARY_OBJS) @@ -993,7 +1013,7 @@ multiprocessing multiprocessing/dummy \ unittest unittest/test \ curses pydoc_data $(MACHDEPS) -libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c +libinstall: build_all $(srcdir)/Modules/xxmodule.c @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ if test ! -d $(DESTDIR)$$i; then \ @@ -1078,16 +1098,6 @@ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ ./$(BUILDPYTHON) -Wi -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" -# Create the PLATDIR source directory, if one wasn't distributed.. -$(srcdir)/Lib/$(PLATDIR): - mkdir $(srcdir)/Lib/$(PLATDIR) - cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen - export PATH; PATH="`pwd`:$$PATH"; \ - export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \ - export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \ - export EXE; EXE="$(BUILDEXE)"; \ - cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen - python-config: $(srcdir)/Misc/python-config.in # Substitution happens here, as the completely-expanded BINDIR # is not available in configure @@ -1379,7 +1389,7 @@ Python/thread.o: @THREADHEADERS@ # Declare targets that aren't real files -.PHONY: all build_all sharedmods oldsharedmods test quicktest +.PHONY: all build_all sharedmods oldsharedmods platformspecificmods test quicktest .PHONY: install altinstall oldsharedinstall bininstall altbininstall .PHONY: maninstall libinstall inclinstall libainstall sharedinstall .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure