Home | History | Annotate | Download | only in config
      1 # Generated automatically from Makefile.pre by makesetup.
      2 # Top-level Makefile for Python
      3 #
      4 # As distributed, this file is called Makefile.pre.in; it is processed
      5 # into the real Makefile by running the script ./configure, which
      6 # replaces things like @spam@ with values appropriate for your system.
      7 # This means that if you edit Makefile, your changes get lost the next
      8 # time you run the configure script.  Ideally, you can do:
      9 #
     10 #	./configure
     11 #	make
     12 #	make test
     13 #	make install
     14 #
     15 # If you have a previous version of Python installed that you don't
     16 # want to overwrite, you can use "make altinstall" instead of "make
     17 # install".  Refer to the "Installing" section in the README file for
     18 # additional details.
     19 #
     20 # See also the section "Build instructions" in the README file.
     21 
     22 # === Variables set by makesetup ===
     23 
     24 MODOBJS=          Modules/posixmodule.o  Modules/threadmodule.o  Modules/signalmodule.o  Modules/errnomodule.o  Modules/_sre.o  Modules/_codecsmodule.o  Modules/_weakref.o  Modules/zipimport.o  Modules/symtablemodule.o  Modules/xxsubtype.o
     25 MODLIBS=        $(LOCALMODLIBS) $(BASEMODLIBS)
     26 
     27 # === Variables set by configure
     28 VERSION=	2.7
     29 srcdir=		/s/ndk-toolchain/src/python/Python-2.7.5
     30 VPATH=		/s/ndk-toolchain/src/python/Python-2.7.5
     31 MSYSVPATH=	/s/ndk-toolchain/src/python/Python-2.7.5
     32 abs_srcdir=	/s/ndk-toolchain/src/python/Python-2.7.5
     33 abs_builddir=	/tmp/ndk-andrewhsieh/buildhost/build-python-linux-x86_64-2.7.5
     34 build=		x86_64-pc-linux-gnu
     35 host=		x86_64-pc-linux-gnu
     36 
     37 CC=		x86_64-linux-gnu-gcc -pthread
     38 CXX=		x86_64-linux-gnu-g++ -pthread
     39 MAINCC=		$(CC)
     40 LINKCC=		$(PURIFY) $(MAINCC)
     41 AR=		x86_64-linux-gnu-ar
     42 RANLIB=		x86_64-linux-gnu-ranlib
     43 SVNVERSION=	svnversion $(srcdir)
     44 HGVERSION=	hg id -i $(srcdir)
     45 HGTAG=		hg id -t $(srcdir)
     46 HGBRANCH=	hg id -b $(srcdir)
     47 
     48 GNULD=          yes
     49 
     50 # Shell used by make (some versions default to the login shell, which is bad)
     51 SHELL=		/bin/sh
     52 
     53 # Use this to make a link between python$(VERSION) and python in $(BINDIR)
     54 LN=		ln
     55 
     56 # Portable install script (configure doesn't always guess right)
     57 INSTALL=	/usr/bin/install -c
     58 INSTALL_PROGRAM=${INSTALL}
     59 INSTALL_SCRIPT= ${INSTALL}
     60 INSTALL_DATA=	${INSTALL} -m 644
     61 # Shared libraries must be installed with executable mode on some systems;
     62 # rather than figuring out exactly which, we always give them executable mode.
     63 # Also, making them read-only seems to be a good idea...
     64 INSTALL_SHARED= ${INSTALL} -m 555
     65 
     66 MKDIR_P=	/bin/mkdir -p
     67 
     68 MAKESETUP=      $(srcdir)/Modules/makesetup
     69 
     70 # Compiler options
     71 OPT=		-DNDEBUG 
     72 BASECFLAGS=	 -fno-strict-aliasing
     73 CFLAGS=		$(BASECFLAGS) -O2 -Os -fomit-frame-pointer -s $(OPT) $(EXTRA_CFLAGS)
     74 # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
     75 # be able to build extension modules using the directories specified in the
     76 # environment variables
     77 CPPFLAGS=	-I. -IInclude -I$(srcdir)/Include 
     78 LDFLAGS=	
     79 LDLAST=		
     80 SGI_ABI=	
     81 CCSHARED=	-fPIC
     82 LINKFORSHARED=	-Xlinker -export-dynamic
     83 ARFLAGS=	rc
     84 # Extra C flags added for building the interpreter object files.
     85 CFLAGSFORSHARED=
     86 # C flags used for building the interpreter object files
     87 PY_CFLAGS=	$(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
     88 
     89 # ; on Windows otherwise :
     90 DELIM=		:
     91 # Machine-dependent subdirectories
     92 MACHDEP=	linux2
     93 
     94 # Multiarch directory (may be empty)
     95 MULTIARCH=	
     96 
     97 # Install prefix for architecture-independent files
     98 prefix=		/tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86_64
     99 
    100 # Install prefix for architecture-dependent files
    101 exec_prefix=	${prefix}
    102 
    103 # Install prefix for data files
    104 datarootdir=    ${prefix}/share
    105 
    106 # Expanded directories
    107 BINDIR=		${exec_prefix}/bin
    108 LIBDIR=		${exec_prefix}/lib
    109 MANDIR=		${datarootdir}/man
    110 INCLUDEDIR=	${prefix}/include
    111 CONFINCLUDEDIR=	$(exec_prefix)/include
    112 SCRIPTDIR=	$(prefix)/lib
    113 
    114 # Detailed destination directories
    115 BINLIBDEST=	$(LIBDIR)/python$(VERSION)
    116 LIBDEST=	$(SCRIPTDIR)/python$(VERSION)
    117 INCLUDEPY=	$(INCLUDEDIR)/python$(VERSION)
    118 CONFINCLUDEPY=	$(CONFINCLUDEDIR)/python$(VERSION)
    119 LIBP=		$(LIBDIR)/python$(VERSION)
    120 
    121 # Symbols used for using shared libraries
    122 SO=		.so
    123 LDSHARED=	x86_64-linux-gnu-gcc -shared  $(LDFLAGS)
    124 BLDSHARED=	x86_64-linux-gnu-gcc -shared  $(LDFLAGS)
    125 LDCXXSHARED=	x86_64-linux-gnu-gcc -shared 
    126 DESTSHARED=	$(BINLIBDEST)/lib-dynload
    127 
    128 # Executable suffix (.exe on Windows and Mac OS X)
    129 EXE=		
    130 BUILDEXE=	
    131 
    132 # Short name and location for Mac OS X Python framework
    133 UNIVERSALSDK=
    134 PYTHONFRAMEWORK=	
    135 PYTHONFRAMEWORKDIR=	no-framework
    136 PYTHONFRAMEWORKPREFIX=	
    137 PYTHONFRAMEWORKINSTALLDIR= 
    138 # Deployment target selected during configure, to be checked
    139 # by distutils. The export statement is needed to ensure that the
    140 # deployment target is active during build.
    141 MACOSX_DEPLOYMENT_TARGET=
    142 #export MACOSX_DEPLOYMENT_TARGET
    143 
    144 # Options to enable prebinding (for fast startup prior to Mac OS X 10.3)
    145 OTHER_LIBTOOL_OPT=
    146 
    147 # Environment to run shared python without installed libraries
    148 RUNSHARED=       
    149 
    150 # Modes for directories, executables and data files created by the
    151 # install process.  Default to user-only-writable for all file types.
    152 DIRMODE=	755
    153 EXEMODE=	755
    154 FILEMODE=	644
    155 
    156 # configure script arguments
    157 CONFIG_ARGS=	 '--prefix=/tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86_64' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='
    158 
    159 
    160 # Subdirectories with code
    161 SRCDIRS= 	Parser Grammar Objects Python Modules Mac
    162 
    163 # Other subdirectories
    164 SUBDIRSTOO=	Include Lib Misc Demo
    165 
    166 # Files and directories to be distributed
    167 CONFIGFILES=	configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in
    168 DISTFILES=	README ChangeLog $(CONFIGFILES)
    169 DISTDIRS=	$(SUBDIRS) $(SUBDIRSTOO) Ext-dummy
    170 DIST=		$(DISTFILES) $(DISTDIRS)
    171 
    172 
    173 LIBRARY=	libpython$(VERSION).a
    174 LDLIBRARY=      libpython$(VERSION).a
    175 BLDLIBRARY=     $(LDLIBRARY)
    176 DLLLIBRARY=	
    177 LDLIBRARYDIR=   
    178 INSTSONAME=	$(LDLIBRARY)
    179 
    180 
    181 LIBS=		-lpthread -ldl  -lutil
    182 LIBM=		-lm
    183 LIBC=		
    184 SYSLIBS=	$(LIBM) $(LIBC)
    185 SHLIBS=		$(LIBS)
    186 
    187 THREADOBJ=	Python/thread.o
    188 DLINCLDIR=	.
    189 DYNLOADFILE=	dynload_shlib.o
    190 MACHDEP_OBJS=	
    191 LIBOBJDIR=	Python/
    192 LIBOBJS=	
    193 UNICODE_OBJS=   Objects/unicodeobject.o Objects/unicodectype.o
    194 
    195 PYTHON=		python$(EXE)
    196 BUILDPYTHON=	python$(BUILDEXE)
    197 
    198 PYTHON_FOR_BUILD=./$(BUILDPYTHON) -E
    199 _PYTHON_HOST_PLATFORM=
    200 HOST_GNU_TYPE=  x86_64-pc-linux-gnu
    201 
    202 # The task to run while instrument when building the profile-opt target
    203 PROFILE_TASK=	$(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
    204 #PROFILE_TASK=	$(srcdir)/Lib/test/regrtest.py
    205 
    206 # === Definitions added by makesetup ===
    207 
    208 LOCALMODLIBS=          
    209 BASEMODLIBS=
    210 GLHACK=-Dclear=__GLclear
    211 PYTHONPATH=$(COREPYTHONPATH)
    212 COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)$(MACHDEPPATH)$(EXTRAMACHDEPPATH)$(TKPATH)$(OLDPATH)
    213 OLDPATH=$(DELIM)lib-old
    214 TKPATH=$(DELIM)lib-tk
    215 EXTRAMACHDEPPATH=
    216 MACHDEPPATH=$(DELIM)plat-$(MACHDEP)
    217 TESTPATH=
    218 SITEPATH=
    219 DESTPATH=
    220 MACHDESTLIB=$(BINLIBDEST)
    221 DESTLIB=$(LIBDEST)
    222 
    223 
    224 
    225 ##########################################################################
    226 # Modules
    227 MODULE_OBJS=	\
    228 		Modules/config.o \
    229 		Modules/getpath.o \
    230 		Modules/main.o \
    231 		Modules/gcmodule.o
    232 
    233 # Used of signalmodule.o is not available
    234 SIGNAL_OBJS=	
    235 
    236 
    237 ##########################################################################
    238 # Grammar
    239 GRAMMAR_H=	Include/graminit.h
    240 GRAMMAR_C=	Python/graminit.c
    241 GRAMMAR_INPUT=	$(srcdir)/Grammar/Grammar
    242 
    243 
    244 LIBFFI_INCLUDEDIR=	
    245 
    246 ##########################################################################
    247 # Parser
    248 PGEN=		Parser/pgen$(EXE)
    249 
    250 PSRCS=		\
    251 		Parser/acceler.c \
    252 		Parser/grammar1.c \
    253 		Parser/listnode.c \
    254 		Parser/node.c \
    255 		Parser/parser.c \
    256 		Parser/parsetok.c \
    257 		Parser/bitset.c \
    258 		Parser/metagrammar.c \
    259 		Parser/firstsets.c \
    260 		Parser/grammar.c \
    261 		Parser/pgen.c
    262 
    263 POBJS=		\
    264 		Parser/acceler.o \
    265 		Parser/grammar1.o \
    266 		Parser/listnode.o \
    267 		Parser/node.o \
    268 		Parser/parser.o \
    269 		Parser/parsetok.o \
    270 		Parser/bitset.o \
    271 		Parser/metagrammar.o \
    272 		Parser/firstsets.o \
    273 		Parser/grammar.o \
    274 		Parser/pgen.o
    275 
    276 PARSER_OBJS=	$(POBJS) Parser/myreadline.o Parser/tokenizer.o
    277 
    278 PGSRCS=		\
    279 		Objects/obmalloc.c \
    280 		Python/mysnprintf.c \
    281 		Python/pyctype.c \
    282 		Parser/tokenizer_pgen.c \
    283 		Parser/printgrammar.c \
    284 		Parser/pgenmain.c
    285 
    286 PGOBJS=		\
    287 		Objects/obmalloc.o \
    288 		Python/mysnprintf.o \
    289 		Python/pyctype.o \
    290 		Parser/tokenizer_pgen.o \
    291 		Parser/printgrammar.o \
    292 		Parser/pgenmain.o
    293 
    294 PARSER_HEADERS= \
    295 		Parser/parser.h \
    296 		Parser/tokenizer.h
    297 
    298 PGENSRCS=	$(PSRCS) $(PGSRCS)
    299 PGENOBJS=	$(POBJS) $(PGOBJS)
    300 
    301 ##########################################################################
    302 # AST
    303 AST_H_DIR=	Include
    304 AST_H=		$(AST_H_DIR)/Python-ast.h
    305 AST_C_DIR=	Python
    306 AST_C=		$(AST_C_DIR)/Python-ast.c
    307 AST_ASDL=	$(srcdir)/Parser/Python.asdl
    308 
    309 ASDLGEN_FILES=	$(srcdir)/Parser/asdl.py $(srcdir)/Parser/asdl_c.py
    310 # XXX Note that a build now requires Python exist before the build starts
    311 ASDLGEN=	$(srcdir)/Parser/asdl_c.py
    312 
    313 ##########################################################################
    314 # Python
    315 PYTHON_OBJS=	\
    316 		Python/_warnings.o \
    317 		Python/Python-ast.o \
    318 		Python/asdl.o \
    319 		Python/ast.o \
    320 		Python/bltinmodule.o \
    321 		Python/ceval.o \
    322 		Python/compile.o \
    323 		Python/codecs.o \
    324 		Python/errors.o \
    325 		Python/frozen.o \
    326 		Python/frozenmain.o \
    327 		Python/future.o \
    328 		Python/getargs.o \
    329 		Python/getcompiler.o \
    330 		Python/getcopyright.o \
    331 		Python/getplatform.o \
    332 		Python/getversion.o \
    333 		Python/graminit.o \
    334 		Python/import.o \
    335 		Python/importdl.o \
    336 		Python/marshal.o \
    337 		Python/modsupport.o \
    338 		Python/mystrtoul.o \
    339 		Python/mysnprintf.o \
    340 		Python/peephole.o \
    341 		Python/pyarena.o \
    342 		Python/pyctype.o \
    343 		Python/pyfpe.o \
    344 		Python/pymath.o \
    345 		Python/pystate.o \
    346 		Python/pythonrun.o \
    347                 Python/random.o \
    348 		Python/structmember.o \
    349 		Python/symtable.o \
    350 		Python/sysmodule.o \
    351 		Python/traceback.o \
    352 		Python/getopt.o \
    353 		Python/pystrcmp.o \
    354 		Python/pystrtod.o \
    355 		Python/dtoa.o \
    356 		Python/formatter_unicode.o \
    357 		Python/formatter_string.o \
    358 		Python/$(DYNLOADFILE) \
    359 		$(LIBOBJS) \
    360 		$(MACHDEP_OBJS) \
    361 		$(THREADOBJ)
    362 
    363 
    364 ##########################################################################
    365 # Objects
    366 OBJECT_OBJS=	\
    367 		Objects/abstract.o \
    368 		Objects/boolobject.o \
    369 		Objects/bufferobject.o \
    370 		Objects/bytes_methods.o \
    371 		Objects/bytearrayobject.o \
    372 		Objects/capsule.o \
    373 		Objects/cellobject.o \
    374 		Objects/classobject.o \
    375 		Objects/cobject.o \
    376 		Objects/codeobject.o \
    377 		Objects/complexobject.o \
    378 		Objects/descrobject.o \
    379 		Objects/enumobject.o \
    380 		Objects/exceptions.o \
    381 		Objects/genobject.o \
    382 		Objects/fileobject.o \
    383 		Objects/floatobject.o \
    384 		Objects/frameobject.o \
    385 		Objects/funcobject.o \
    386 		Objects/intobject.o \
    387 		Objects/iterobject.o \
    388 		Objects/listobject.o \
    389 		Objects/longobject.o \
    390 		Objects/dictobject.o \
    391 		Objects/memoryobject.o \
    392 		Objects/methodobject.o \
    393 		Objects/moduleobject.o \
    394 		Objects/object.o \
    395 		Objects/obmalloc.o \
    396 		Objects/rangeobject.o \
    397 		Objects/setobject.o \
    398 		Objects/sliceobject.o \
    399 		Objects/stringobject.o \
    400 		Objects/structseq.o \
    401 		Objects/tupleobject.o \
    402 		Objects/typeobject.o \
    403 		Objects/weakrefobject.o \
    404 		$(UNICODE_OBJS)
    405 
    406 
    407 ##########################################################################
    408 # objects that get linked into the Python library
    409 LIBRARY_OBJS=	\
    410 		Modules/getbuildinfo.o \
    411 		$(PARSER_OBJS) \
    412 		$(OBJECT_OBJS) \
    413 		$(PYTHON_OBJS) \
    414 		$(MODULE_OBJS) \
    415 		$(SIGNAL_OBJS) \
    416 		$(MODOBJS)
    417 
    418 #########################################################################
    419 # Rules
    420 
    421 # Default target
    422 all:		build_all
    423 build_all:	$(BUILDPYTHON) oldsharedmods sharedmods gdbhooks
    424 
    425 # Compile a binary with gcc profile guided optimization.
    426 profile-opt:
    427 	@echo "Building with support for profile generation:"
    428 	$(MAKE) clean
    429 	$(MAKE) build_all_generate_profile
    430 	@echo "Running benchmark to generate profile data:"
    431 	$(MAKE) profile-removal
    432 	$(MAKE) run_profile_task
    433 	@echo "Rebuilding with profile guided optimizations:"
    434 	$(MAKE) clean
    435 	$(MAKE) build_all_use_profile
    436 
    437 build_all_generate_profile:
    438 	$(MAKE) all CFLAGS="$(CFLAGS) -fprofile-generate" LIBS="$(LIBS) -lgcov"
    439 
    440 run_profile_task:
    441 	: # FIXME: can't run for a cross build
    442 	./$(BUILDPYTHON) $(PROFILE_TASK)
    443 
    444 build_all_use_profile:
    445 	$(MAKE) all CFLAGS="$(CFLAGS) -fprofile-use"
    446 
    447 coverage:
    448 	@echo "Building with support for coverage checking:"
    449 	$(MAKE) clean
    450 	$(MAKE) all CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov"
    451 
    452 
    453 # Build the interpreter
    454 $(BUILDPYTHON):	Modules/python.o $(LIBRARY) $(LDLIBRARY)
    455 		$(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
    456 			Modules/python.o \
    457 			$(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
    458 
    459 platform: $(BUILDPYTHON) pybuilddir.txt
    460 	$(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
    461 
    462 # Create build directory and generate the sysconfig build-time data there.
    463 # pybuilddir.txt contains the name of the build dir and is used for
    464 # sys.path fixup -- see Modules/getpath.c.
    465 pybuilddir.txt: $(BUILDPYTHON)
    466 		$(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars
    467 
    468 # Build the shared modules
    469 # Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
    470 # -s, --silent or --quiet is always the first char.
    471 # Under BSD make, MAKEFLAGS might be " -s -v x=y".
    472 sharedmods: $(BUILDPYTHON) pybuilddir.txt
    473 	@case "$$MAKEFLAGS" in \
    474 	    *\ -s*|s*) quiet="-q";; \
    475 	    *) quiet="";; \
    476 	esac; \
    477 	$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
    478 		$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
    479 
    480 # Build static library
    481 # avoid long command lines, same as LIBRARY_OBJS
    482 $(LIBRARY): $(LIBRARY_OBJS)
    483 	-rm -f $@
    484 	$(AR) $(ARFLAGS) $@ Modules/getbuildinfo.o
    485 	$(AR) $(ARFLAGS) $@ $(PARSER_OBJS)
    486 	$(AR) $(ARFLAGS) $@ $(OBJECT_OBJS)
    487 	$(AR) $(ARFLAGS) $@ $(PYTHON_OBJS)
    488 	$(AR) $(ARFLAGS) $@ $(MODULE_OBJS) $(SIGNAL_OBJS)
    489 	$(AR) $(ARFLAGS) $@ $(MODOBJS)
    490 	$(RANLIB) $@
    491 
    492 libpython$(VERSION).so: $(LIBRARY_OBJS)
    493 	if test $(INSTSONAME) != $(LDLIBRARY); then \
    494 		$(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
    495 		$(LN) -f $(INSTSONAME) $@; \
    496 	else \
    497 		$(BLDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
    498 	fi
    499 
    500 libpython$(VERSION).dylib: $(LIBRARY_OBJS)
    501 	 $(CC) -dynamiclib -Wl,-single_module $(LDFLAGS) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(VERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
    502 
    503 
    504 libpython$(VERSION).sl: $(LIBRARY_OBJS)
    505 	$(LDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST)
    506 
    507 # Copy up the gdb python hooks into a position where they can be automatically
    508 # loaded by gdb during Lib/test/test_gdb.py
    509 #
    510 # Distributors are likely to want to install this somewhere else e.g. relative
    511 # to the stripped DWARF data for the shared library.
    512 gdbhooks: $(BUILDPYTHON)-gdb.py
    513 
    514 SRC_GDB_HOOKS=$(srcdir)/Tools/gdb/libpython.py
    515 $(BUILDPYTHON)-gdb.py: $(SRC_GDB_HOOKS)
    516 	$(INSTALL_DATA) $(SRC_GDB_HOOKS) $(BUILDPYTHON)-gdb.py
    517 
    518 # This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary
    519 # minimal framework (not including the Lib directory and such) in the current
    520 # directory.
    521 RESSRCDIR=Mac/Resources/framework
    522 $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
    523 		$(LIBRARY) \
    524 		$(RESSRCDIR)/Info.plist
    525 	$(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)
    526 	$(CC) -o $(LDLIBRARY) $(LDFLAGS)  -dynamiclib \
    527 		-all_load $(LIBRARY) -Wl,-single_module \
    528 		-install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \
    529 		-compatibility_version $(VERSION) \
    530 		-current_version $(VERSION);
    531 	$(INSTALL) -d -m $(DIRMODE)  \
    532 		$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj
    533 	$(INSTALL_DATA) $(RESSRCDIR)/Info.plist \
    534 		$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/Info.plist
    535 	$(LN) -fsn $(VERSION) $(PYTHONFRAMEWORKDIR)/Versions/Current
    536 	$(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK)
    537 	$(LN) -fsn Versions/Current/Headers $(PYTHONFRAMEWORKDIR)/Headers
    538 	$(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources
    539 
    540 # This rule builds the Cygwin Python DLL and import library if configured
    541 # for a shared core library; otherwise, this rule is a noop.
    542 $(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
    543 	if test -n "$(DLLLIBRARY)"; then \
    544 		$(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
    545 			$(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \
    546 	else true; \
    547 	fi
    548 
    549 
    550 oldsharedmods: $(SHAREDMODS)
    551 
    552 
    553 Makefile Modules/config.c: Makefile.pre \
    554 				$(srcdir)/Modules/config.c.in \
    555 				$(MAKESETUP) \
    556 				Modules/Setup.config \
    557 				Modules/Setup \
    558 				Modules/Setup.local
    559 	$(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \
    560 				-s Modules \
    561 				Modules/Setup.config \
    562 				Modules/Setup.local \
    563 				Modules/Setup
    564 	@mv config.c Modules
    565 	@echo "The Makefile was updated, you may need to re-run make."
    566 
    567 
    568 Modules/Setup: $(srcdir)/Modules/Setup.dist
    569 	@if test -f Modules/Setup; then \
    570 		echo "-----------------------------------------------"; \
    571 		echo "Modules/Setup.dist is newer than Modules/Setup;"; \
    572 		echo "check to make sure you have all the updates you"; \
    573 		echo "need in your Modules/Setup file."; \
    574 		echo "Usually, copying Modules/Setup.dist to Modules/Setup will work."; \
    575 		echo "-----------------------------------------------"; \
    576 	fi
    577 
    578 ############################################################################
    579 # Special rules for object files
    580 
    581 Modules/getbuildinfo.o: $(PARSER_OBJS) \
    582 		$(OBJECT_OBJS) \
    583 		$(PYTHON_OBJS) \
    584 		$(MODULE_OBJS) \
    585 		$(SIGNAL_OBJS) \
    586 		$(MODOBJS) \
    587 		$(srcdir)/Modules/getbuildinfo.c
    588 	$(CC) -c $(PY_CFLAGS) \
    589 	      -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" \
    590 	      -DHGVERSION="\"`LC_ALL=C $(HGVERSION)`\"" \
    591 	      -DHGTAG="\"`LC_ALL=C $(HGTAG)`\"" \
    592 	      -DHGBRANCH="\"`LC_ALL=C $(HGBRANCH)`\"" \
    593 	      -o $@ $(srcdir)/Modules/getbuildinfo.c
    594 
    595 # default sys.path calculations
    596 Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
    597 	$(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
    598 		-DPREFIX='"$(prefix)"' \
    599 		-DEXEC_PREFIX='"$(exec_prefix)"' \
    600 		-DVERSION='"$(VERSION)"' \
    601 		-DVPATH='"$(MSYSVPATH)"' \
    602 		-o $@ $(srcdir)/Modules/getpath.c
    603 
    604 # default sys.path calculations for windows platforms
    605 PC/getpathp.o: $(srcdir)/PC/getpathp.c
    606 	$(CC) -c $(PY_CFLAGS) -o $@ $(srcdir)/PC/getpathp.c
    607 
    608 Modules/python.o: $(srcdir)/Modules/python.c
    609 	$(MAINCC) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/python.c
    610 
    611 Modules/posixmodule.o: $(srcdir)/Modules/posixmodule.c $(srcdir)/Modules/posixmodule.h
    612 
    613 Modules/grpmodule.o: $(srcdir)/Modules/grpmodule.c $(srcdir)/Modules/posixmodule.h
    614 
    615 Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c $(srcdir)/Modules/posixmodule.h
    616 
    617 $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGENSRCS)
    618 		@$(MKDIR_P) Include
    619 		$(MAKE) $(PGEN)
    620 		$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
    621 $(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS)
    622 		$(MAKE) $(GRAMMAR_H)
    623 		touch $(GRAMMAR_C)
    624 
    625 $(PGEN):	$(PGENOBJS)
    626 		$(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
    627 
    628 Parser/grammar.o:	$(srcdir)/Parser/grammar.c \
    629 				$(srcdir)/Include/token.h \
    630 				$(srcdir)/Include/grammar.h
    631 Parser/metagrammar.o:	$(srcdir)/Parser/metagrammar.c
    632 
    633 Parser/tokenizer_pgen.o:	$(srcdir)/Parser/tokenizer.c
    634 
    635 Parser/pgenmain.o:	$(srcdir)/Include/parsetok.h
    636 
    637 $(AST_H): $(AST_ASDL) $(ASDLGEN_FILES)
    638 	$(MKDIR_P) $(AST_H_DIR)
    639 	$(ASDLGEN) -h $(AST_H_DIR) $(AST_ASDL)
    640 
    641 $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES)
    642 	$(MKDIR_P) $(AST_C_DIR)
    643 	$(ASDLGEN) -c $(AST_C_DIR) $(AST_ASDL)
    644 
    645 Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
    646 
    647 Python/getplatform.o: $(srcdir)/Python/getplatform.c
    648 		$(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
    649 
    650 Python/importdl.o: $(srcdir)/Python/importdl.c
    651 		$(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
    652 
    653 Objects/unicodectype.o:	$(srcdir)/Objects/unicodectype.c \
    654 				$(srcdir)/Objects/unicodetype_db.h
    655 
    656 STRINGLIB_HEADERS= \
    657 		$(srcdir)/Include/bytes_methods.h \
    658 		$(srcdir)/Objects/stringlib/count.h \
    659 		$(srcdir)/Objects/stringlib/ctype.h \
    660 		$(srcdir)/Objects/stringlib/fastsearch.h \
    661 		$(srcdir)/Objects/stringlib/find.h \
    662 		$(srcdir)/Objects/stringlib/formatter.h \
    663 		$(srcdir)/Objects/stringlib/partition.h \
    664 		$(srcdir)/Objects/stringlib/split.h \
    665 		$(srcdir)/Objects/stringlib/stringdefs.h \
    666 		$(srcdir)/Objects/stringlib/string_format.h \
    667 		$(srcdir)/Objects/stringlib/transmogrify.h \
    668 		$(srcdir)/Objects/stringlib/unicodedefs.h \
    669 		$(srcdir)/Objects/stringlib/localeutil.h
    670 
    671 Objects/unicodeobject.o: $(srcdir)/Objects/unicodeobject.c \
    672 				$(STRINGLIB_HEADERS)
    673 
    674 Objects/bytearrayobject.o: $(srcdir)/Objects/bytearrayobject.c \
    675 				$(STRINGLIB_HEADERS)
    676 
    677 Objects/stringobject.o: $(srcdir)/Objects/stringobject.c \
    678 				$(STRINGLIB_HEADERS)
    679 
    680 Python/formatter_unicode.o: $(srcdir)/Python/formatter_unicode.c \
    681 				$(STRINGLIB_HEADERS)
    682 
    683 Python/formatter_string.o: $(srcdir)/Python/formatter_string.c \
    684 				$(STRINGLIB_HEADERS)
    685 
    686 ############################################################################
    687 # Header files
    688 
    689 PYTHON_HEADERS= \
    690 		Include/Python-ast.h \
    691 		Include/Python.h \
    692 		Include/abstract.h \
    693 		Include/asdl.h \
    694 		Include/ast.h \
    695 		Include/bitset.h \
    696 		Include/boolobject.h \
    697 		Include/bytearrayobject.h \
    698 		Include/bytes_methods.h \
    699 		Include/bytesobject.h \
    700 		Include/bufferobject.h \
    701 		Include/cellobject.h \
    702 		Include/ceval.h \
    703 		Include/classobject.h \
    704 		Include/cobject.h \
    705 		Include/code.h \
    706 		Include/codecs.h \
    707 		Include/compile.h \
    708 		Include/complexobject.h \
    709 		Include/descrobject.h \
    710 		Include/dictobject.h \
    711 		Include/dtoa.h \
    712 		Include/enumobject.h \
    713 		Include/errcode.h \
    714 		Include/eval.h \
    715 		Include/fileobject.h \
    716 		Include/floatobject.h \
    717 		Include/frameobject.h \
    718 		Include/funcobject.h \
    719 		Include/genobject.h \
    720 		Include/import.h \
    721 		Include/intobject.h \
    722 		Include/intrcheck.h \
    723 		Include/iterobject.h \
    724 		Include/listobject.h \
    725 		Include/longintrepr.h \
    726 		Include/longobject.h \
    727 		Include/marshal.h \
    728 		Include/memoryobject.h \
    729 		Include/metagrammar.h \
    730 		Include/methodobject.h \
    731 		Include/modsupport.h \
    732 		Include/moduleobject.h \
    733 		Include/node.h \
    734 		Include/object.h \
    735 		Include/objimpl.h \
    736 		Include/opcode.h \
    737 		Include/osdefs.h \
    738 		Include/parsetok.h \
    739 		Include/patchlevel.h \
    740 		Include/pgen.h \
    741 		Include/pgenheaders.h \
    742 		Include/pyarena.h \
    743 		Include/pycapsule.h \
    744 		Include/pyctype.h \
    745 		Include/pydebug.h \
    746 		Include/pyerrors.h \
    747 		Include/pyfpe.h \
    748 		Include/pymath.h \
    749 		Include/pygetopt.h \
    750 		Include/pymem.h \
    751 		Include/pyport.h \
    752 		Include/pystate.h \
    753 		Include/pystrcmp.h \
    754 		Include/pystrtod.h \
    755 		Include/pythonrun.h \
    756 		Include/pythread.h \
    757 		Include/rangeobject.h \
    758 		Include/setobject.h \
    759 		Include/sliceobject.h \
    760 		Include/stringobject.h \
    761 		Include/structmember.h \
    762 		Include/structseq.h \
    763 		Include/symtable.h \
    764 		Include/sysmodule.h \
    765 		Include/traceback.h \
    766 		Include/tupleobject.h \
    767 		Include/ucnhash.h \
    768 		Include/unicodeobject.h \
    769 		Include/warnings.h \
    770 		Include/weakrefobject.h \
    771 		pyconfig.h \
    772 		$(PARSER_HEADERS)
    773 
    774 $(LIBRARY_OBJS) $(MODOBJS) Modules/python.o: $(PYTHON_HEADERS)
    775 
    776 
    777 ######################################################################
    778 
    779 # Test the interpreter (twice, once without .pyc files, once with)
    780 # In the past, we've had problems where bugs in the marshalling or
    781 # elsewhere caused bytecode read from .pyc files to behave differently
    782 # than bytecode generated directly from a .py source file.  Sometimes
    783 # the bytecode read from a .pyc file had the bug, sometimes the directly
    784 # generated bytecode.  This is sometimes a very shy bug needing a lot of
    785 # sample data.
    786 
    787 TESTOPTS=	-l $(EXTRATESTOPTS)
    788 TESTPROG=	$(srcdir)/Lib/test/regrtest.py
    789 TESTPYTHON=	$(RUNSHARED) ./$(BUILDPYTHON) -Wd -3 -E -tt $(TESTPYTHONOPTS)
    790 test:		all platform
    791 		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
    792 		-$(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
    793 		$(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
    794 
    795 testall:	all platform
    796 		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
    797 		$(TESTPYTHON) $(srcdir)/Lib/compileall.py
    798 		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
    799 		-$(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS)
    800 		$(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS)
    801 
    802 #  Run the unitests for both architectures in a Universal build on OSX
    803 #  Must be run on an Intel box.
    804 testuniversal:	all platform
    805 		if [ `arch` != 'i386' ];then \
    806 			echo "This can only be used on OSX/i386" ;\
    807 			exit 1 ;\
    808 		fi
    809 		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
    810 		-$(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS)
    811 		$(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS)
    812 		$(RUNSHARED) /usr/libexec/oah/translate ./$(BUILDPYTHON) -E -tt $(TESTPROG) -uall $(TESTOPTS)
    813 
    814 
    815 # Like testall, but with a single pass only
    816 # run an optional script to include some information about the build environment
    817 buildbottest:	all platform
    818 		-@if which pybuildbot.identify >/dev/null 2>&1; then \
    819 			pybuildbot.identify "CC='$(CC)'" "CXX='$(CXX)'"; \
    820 		fi
    821 		$(TESTPYTHON) -R $(TESTPROG) -uall -rwW $(TESTOPTS)
    822 
    823 QUICKTESTOPTS=	$(TESTOPTS) -x test_subprocess test_io test_lib2to3 \
    824 		test_multibytecodec test_urllib2_localnet test_itertools \
    825 		test_multiprocessing test_mailbox test_socket test_poll \
    826 		test_select test_zipfile
    827 quicktest:	all platform
    828 		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
    829 		-$(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS)
    830 		$(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS)
    831 
    832 MEMTESTOPTS=    $(QUICKTESTOPTS) -x test_dl test___all__ test_fork1 \
    833 		test_longexp
    834 memtest:	all platform
    835 		-rm -f $(srcdir)/Lib/test/*.py[co]
    836 		-$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
    837 		$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
    838 
    839 # Install everything
    840 install:	 altinstall bininstall maninstall 
    841 
    842 # Install almost everything without disturbing previous versions
    843 altinstall:	 altbininstall libinstall inclinstall \
    844 				libainstall altmaninstall \
    845                 sharedinstall oldsharedinstall 
    846 
    847 # Install shared libraries enabled by Setup
    848 DESTDIRS=	$(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED)
    849 
    850 oldsharedinstall: $(DESTSHARED) $(SHAREDMODS)
    851 		@for i in X $(SHAREDMODS); do \
    852 		  if test $$i != X; then \
    853 		    echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \
    854 		    $(INSTALL_SHARED) $$i $(DESTDIR)$(DESTSHARED)/`basename $$i`; \
    855 		  fi; \
    856 		done
    857 
    858 $(DESTSHARED):
    859 		@for i in $(DESTDIRS); \
    860 		do \
    861 			if test ! -d $(DESTDIR)$$i; then \
    862 				echo "Creating directory $$i"; \
    863 				$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
    864 			else    true; \
    865 			fi; \
    866 		done
    867 
    868 
    869 # Install the interpreter by creating a symlink chain:
    870 #  $(PYTHON) -> python2 -> python$(VERSION))
    871 # Also create equivalent chains for other installed files
    872 bininstall:	altbininstall
    873 	-if test -f $(DESTDIR)$(BINDIR)/$(PYTHON) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON); \
    874 	then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \
    875 	else true; \
    876 	fi
    877 	-rm -f $(DESTDIR)$(BINDIR)/python2$(EXE)
    878 	(cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python2$(EXE))
    879 	(cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(EXE) $(PYTHON))
    880 	-rm -f $(DESTDIR)$(BINDIR)/python2-config
    881 	(cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python2-config)
    882 	-rm -f $(DESTDIR)$(BINDIR)/python-config
    883 	(cd $(DESTDIR)$(BINDIR); $(LN) -s python2-config python-config)
    884 	-test -d $(DESTDIR)$(LIBPC) || $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC)
    885 	-rm -f $(DESTDIR)$(LIBPC)/python2.pc
    886 	(cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python2.pc)
    887 	-rm -f $(DESTDIR)$(LIBPC)/python.pc
    888 	(cd $(DESTDIR)$(LIBPC); $(LN) -s python2.pc python.pc)
    889 
    890 # Install the interpreter with $(VERSION) affixed
    891 # This goes into $(exec_prefix)
    892 altbininstall:	$(BUILDPYTHON)
    893 	@for i in $(BINDIR) $(LIBDIR); \
    894 	do \
    895 		if test ! -d $(DESTDIR)$$i; then \
    896 			echo "Creating directory $$i"; \
    897 			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
    898 		else	true; \
    899 		fi; \
    900 	done
    901 	$(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE)
    902 	if test -f $(LDLIBRARY); then \
    903 		if test -n "$(DLLLIBRARY)" ; then \
    904 			$(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \
    905 			mkdir -p $(DESTDIR)$(LIBPL); $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBPL); \
    906 		else \
    907 			$(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \
    908 			if test $(LDLIBRARY) != $(INSTSONAME); then \
    909 				(cd $(DESTDIR)$(LIBDIR); $(LN) -sf $(INSTSONAME) $(LDLIBRARY)) \
    910 			fi \
    911 		fi; \
    912 	else	true; \
    913 	fi
    914 
    915 # Install the versioned manual page
    916 altmaninstall:
    917 	@for i in $(MANDIR) $(MANDIR)/man1; \
    918 	do \
    919 		if test ! -d $(DESTDIR)$$i; then \
    920 			echo "Creating directory $$i"; \
    921 			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
    922 		else	true; \
    923 		fi; \
    924 	done
    925 	$(INSTALL_DATA) $(srcdir)/Misc/python.man \
    926 		$(DESTDIR)$(MANDIR)/man1/python$(VERSION).1
    927 
    928 # Install the unversioned manual pages
    929 maninstall:	altmaninstall
    930 	-rm -f $(DESTDIR)$(MANDIR)/man1/python2.1
    931 	(cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python$(VERSION).1 python2.1)
    932 	-rm -f $(DESTDIR)$(MANDIR)/man1/python.1
    933 	(cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python2.1 python.1)
    934 
    935 # Install the library
    936 PLATDIR=	plat-$(MACHDEP)
    937 EXTRAPLATDIR= 
    938 EXTRAMACHDEPPATH=
    939 MACHDEPS=	$(PLATDIR) $(EXTRAPLATDIR)
    940 XMLLIBSUBDIRS=  xml xml/dom xml/etree xml/parsers xml/sax
    941 PLATMACDIRS= plat-mac plat-mac/Carbon plat-mac/lib-scriptpackages \
    942 	plat-mac/lib-scriptpackages/_builtinSuites \
    943 	plat-mac/lib-scriptpackages/CodeWarrior \
    944 	plat-mac/lib-scriptpackages/Explorer \
    945 	plat-mac/lib-scriptpackages/Finder \
    946 	plat-mac/lib-scriptpackages/Netscape \
    947 	plat-mac/lib-scriptpackages/StdSuites \
    948 	plat-mac/lib-scriptpackages/SystemEvents \
    949 	plat-mac/lib-scriptpackages/Terminal
    950 PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages
    951 LIBSUBDIRS=	lib-tk lib-tk/test lib-tk/test/test_tkinter \
    952 		lib-tk/test/test_ttk site-packages test test/data \
    953 		test/cjkencodings test/decimaltestdata test/xmltestdata test/subprocessdata \
    954 		test/tracedmodules \
    955 		encodings compiler hotshot \
    956 		email email/mime email/test email/test/data \
    957 		json json/tests \
    958 		sqlite3 sqlite3/test \
    959 		logging bsddb bsddb/test csv importlib wsgiref \
    960 		lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \
    961 		lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \
    962 		ctypes ctypes/test ctypes/macholib idlelib idlelib/Icons \
    963 		distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \
    964 		multiprocessing multiprocessing/dummy \
    965 		unittest unittest/test \
    966 		lib-old \
    967 		curses pydoc_data $(MACHDEPS)
    968 libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
    969 	@for i in $(SCRIPTDIR) $(LIBDEST); \
    970 	do \
    971 		if test ! -d $(DESTDIR)$$i; then \
    972 			echo "Creating directory $$i"; \
    973 			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
    974 		else	true; \
    975 		fi; \
    976 	done
    977 	@for d in $(LIBSUBDIRS); \
    978 	do \
    979 		a=$(srcdir)/Lib/$$d; \
    980 		if test ! -d $$a; then continue; else true; fi; \
    981 		b=$(LIBDEST)/$$d; \
    982 		if test ! -d $(DESTDIR)$$b; then \
    983 			echo "Creating directory $$b"; \
    984 			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$b; \
    985 		else	true; \
    986 		fi; \
    987 	done
    988 	@for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py $(srcdir)/Lib/*.doc $(srcdir)/Lib/*.egg-info ; \
    989 	do \
    990 		if test -x $$i; then \
    991 			$(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
    992 			echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \
    993 		else \
    994 			$(INSTALL_DATA) $$i $(DESTDIR)$(LIBDEST); \
    995 			echo $(INSTALL_DATA) $$i $(LIBDEST); \
    996 		fi; \
    997 	done
    998 	@for d in $(LIBSUBDIRS); \
    999 	do \
   1000 		a=$(srcdir)/Lib/$$d; \
   1001 		if test ! -d $$a; then continue; else true; fi; \
   1002 		if test `ls $$a | wc -l` -lt 1; then continue; fi; \
   1003 		b=$(LIBDEST)/$$d; \
   1004 		for i in $$a/*; \
   1005 		do \
   1006 			case $$i in \
   1007 			*CVS) ;; \
   1008 			*.py[co]) ;; \
   1009 			*.orig) ;; \
   1010 			*~) ;; \
   1011 			*) \
   1012 				if test -d $$i; then continue; fi; \
   1013 				if test -x $$i; then \
   1014 				    echo $(INSTALL_SCRIPT) $$i $$b; \
   1015 				    $(INSTALL_SCRIPT) $$i $(DESTDIR)$$b; \
   1016 				else \
   1017 				    echo $(INSTALL_DATA) $$i $$b; \
   1018 				    $(INSTALL_DATA) $$i $(DESTDIR)$$b; \
   1019 				fi;; \
   1020 			esac; \
   1021 		done; \
   1022 	done
   1023 	$(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
   1024 	if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \
   1025 		$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
   1026 			$(DESTDIR)$(LIBDEST)/distutils/tests ; \
   1027 	fi
   1028 	PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
   1029 		$(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
   1030 		-d $(LIBDEST) -f \
   1031 		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
   1032 		$(DESTDIR)$(LIBDEST)
   1033 	PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
   1034 		$(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
   1035 		-d $(LIBDEST) -f \
   1036 		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
   1037 		$(DESTDIR)$(LIBDEST)
   1038 	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
   1039 		$(PYTHON_FOR_BUILD) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
   1040 		-d $(LIBDEST)/site-packages -f \
   1041 		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
   1042 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
   1043 		$(PYTHON_FOR_BUILD) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
   1044 		-d $(LIBDEST)/site-packages -f \
   1045 		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
   1046 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
   1047 		$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
   1048 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
   1049 		$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
   1050 
   1051 # Create the PLATDIR source directory, if one wasn't distributed..
   1052 $(srcdir)/Lib/$(PLATDIR):
   1053 	mkdir $(srcdir)/Lib/$(PLATDIR)
   1054 	cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen
   1055 	export PATH; PATH="`pwd`:$$PATH"; \
   1056 	export PYTHONPATH; PYTHONPATH="$(srcdir)/Lib:$(abs_builddir)/`cat pybuilddir.txt`"; \
   1057 	export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \
   1058 	export EXE; EXE="$(BUILDEXE)"; \
   1059 	if [ -n "$(MULTIARCH)" ]; then export MULTIARCH; MULTIARCH=$(MULTIARCH); fi; \
   1060 	export PYTHON_FOR_BUILD; \
   1061 	if [ "$(build)" = "$(host)" ]; then \
   1062 	  PYTHON_FOR_BUILD="$(BUILDPYTHON)"; \
   1063 	else \
   1064 	  PYTHON_FOR_BUILD="$(PYTHON_FOR_BUILD)"; \
   1065 	fi; \
   1066 	cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen "$(CC)"
   1067 
   1068 python-config: $(srcdir)/Misc/python-config.in
   1069 	# Substitution happens here, as the completely-expanded BINDIR
   1070 	# is not available in configure
   1071 	sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config
   1072 	# Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR}
   1073 	sed -e "s,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g" < Misc/python-config.sh >python-config.sh
   1074 
   1075 # Install the include files
   1076 INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY)
   1077 inclinstall:
   1078 	@for i in $(INCLDIRSTOMAKE); \
   1079 	do \
   1080 		if test ! -d $(DESTDIR)$$i; then \
   1081 			echo "Creating directory $$i"; \
   1082 			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
   1083 		else	true; \
   1084 		fi; \
   1085 	done
   1086 	@for i in $(srcdir)/Include/*.h; \
   1087 	do \
   1088 		echo $(INSTALL_DATA) $$i $(INCLUDEPY); \
   1089 		$(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \
   1090 	done
   1091 	$(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
   1092 
   1093 # Install the library and miscellaneous stuff needed for extending/embedding
   1094 # This goes into $(exec_prefix)
   1095 LIBPL=		$(LIBP)/config
   1096 
   1097 # pkgconfig directory
   1098 LIBPC=		$(LIBDIR)/pkgconfig
   1099 
   1100 libainstall:	all python-config
   1101 	@for i in $(LIBDIR) $(LIBP) $(LIBPL) $(LIBPC); \
   1102 	do \
   1103 		if test ! -d $(DESTDIR)$$i; then \
   1104 			echo "Creating directory $$i"; \
   1105 			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
   1106 		else	true; \
   1107 		fi; \
   1108 	done
   1109 	@if test -d $(LIBRARY); then :; else \
   1110 		if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
   1111 			if test "$(SO)" = .dll; then \
   1112 				$(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
   1113 			else \
   1114 				$(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
   1115 				$(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
   1116 			fi; \
   1117 		else \
   1118 			echo Skip install of $(LIBRARY) - use make frameworkinstall; \
   1119 		fi; \
   1120 	fi
   1121 	$(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c
   1122 	$(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o
   1123 	$(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
   1124 	$(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
   1125 	$(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
   1126 	$(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
   1127 	$(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config
   1128 	$(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
   1129 	$(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
   1130 	$(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
   1131 	$(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(VERSION)-config
   1132 	$(INSTALL_SCRIPT) python-config.sh $(DESTDIR)$(BINDIR)/python-config.sh
   1133 	rm python-config
   1134 	@if [ -s Modules/python.exp -a \
   1135 		"`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
   1136 		echo; echo "Installing support files for building shared extension modules on AIX:"; \
   1137 		$(INSTALL_DATA) Modules/python.exp		\
   1138 				$(DESTDIR)$(LIBPL)/python.exp;		\
   1139 		echo; echo "$(LIBPL)/python.exp";		\
   1140 		$(INSTALL_SCRIPT) $(srcdir)/Modules/makexp_aix	\
   1141 				$(DESTDIR)$(LIBPL)/makexp_aix;		\
   1142 		echo "$(LIBPL)/makexp_aix";			\
   1143 		$(INSTALL_SCRIPT) $(srcdir)/Modules/ld_so_aix	\
   1144 				$(DESTDIR)$(LIBPL)/ld_so_aix;		\
   1145 		echo "$(LIBPL)/ld_so_aix";			\
   1146 		echo; echo "See Misc/AIX-NOTES for details.";	\
   1147 	else true; \
   1148 	fi
   1149 	@case "$(MACHDEP)" in beos*) \
   1150 		echo; echo "Installing support files for building shared extension modules on BeOS:"; \
   1151 		$(INSTALL_DATA) Misc/BeOS-NOTES $(DESTDIR)$(LIBPL)/README;	\
   1152 		echo; echo "$(LIBPL)/README";			\
   1153 		$(INSTALL_SCRIPT) Modules/ar_beos $(DESTDIR)$(LIBPL)/ar_beos; \
   1154 		echo "$(LIBPL)/ar_beos";			\
   1155 		$(INSTALL_SCRIPT) Modules/ld_so_beos $(DESTDIR)$(LIBPL)/ld_so_beos; \
   1156 		echo "$(LIBPL)/ld_so_beos";			\
   1157 		echo; echo "See Misc/BeOS-NOTES for details.";	\
   1158 		;; \
   1159 	esac
   1160 
   1161 # Install the dynamically loadable modules
   1162 # This goes into $(exec_prefix)
   1163 sharedinstall: sharedmods
   1164 	$(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
   1165 	   	--prefix=$(prefix) \
   1166 		--install-scripts=$(BINDIR) \
   1167 		--install-platlib=$(DESTSHARED) \
   1168 		--root=$(DESTDIR)/
   1169 	-rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata.py*
   1170 
   1171 # Here are a couple of targets for MacOSX again, to install a full
   1172 # framework-based Python. frameworkinstall installs everything, the
   1173 # subtargets install specific parts. Much of the actual work is offloaded to
   1174 # the Makefile in Mac
   1175 #
   1176 #
   1177 # This target is here for backward compatiblity, previous versions of Python
   1178 # hadn't integrated framework installation in the normal install process.
   1179 frameworkinstall: install
   1180 
   1181 # On install, we re-make the framework
   1182 # structure in the install location, /Library/Frameworks/ or the argument to
   1183 # --enable-framework. If --enable-framework has been specified then we have
   1184 # automatically set prefix to the location deep down in the framework, so we
   1185 # only have to cater for the structural bits of the framework.
   1186 
   1187 frameworkinstallframework: frameworkinstallstructure install frameworkinstallmaclib
   1188 
   1189 frameworkinstallstructure:	$(LDLIBRARY)
   1190 	@if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
   1191 		echo Not configured with --enable-framework; \
   1192 		exit 1; \
   1193 	else true; \
   1194 	fi
   1195 	@for i in $(prefix)/Resources/English.lproj $(prefix)/lib; do\
   1196 		if test ! -d $(DESTDIR)$$i; then \
   1197 			echo "Creating directory $(DESTDIR)$$i"; \
   1198 			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
   1199 		else	true; \
   1200 		fi; \
   1201 	done
   1202 	$(LN) -fsn include/python$(VERSION) $(DESTDIR)$(prefix)/Headers
   1203 	sed 's/%VERSION%/'"`$(RUNSHARED) ./$(BUILDPYTHON) -c 'import platform; print platform.python_version()'`"'/g' < $(RESSRCDIR)/Info.plist > $(DESTDIR)$(prefix)/Resources/Info.plist
   1204 	$(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current
   1205 	$(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/$(PYTHONFRAMEWORK)
   1206 	$(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers
   1207 	$(LN) -fsn Versions/Current/Resources $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Resources
   1208 	$(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY)
   1209 
   1210 # This installs Mac/Lib into the framework
   1211 # Install a number of symlinks to keep software that expects a normal unix
   1212 # install (which includes python-config) happy.
   1213 frameworkinstallmaclib:
   1214 	ln -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/python$(VERSION)/config/libpython$(VERSION).a"
   1215 	ln -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/python$(VERSION)/config/libpython$(VERSION).dylib"
   1216 	ln -fs "../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/libpython$(VERSION).dylib"
   1217 	cd Mac && $(MAKE) installmacsubtree DESTDIR="$(DESTDIR)"
   1218 
   1219 # This installs the IDE, the Launcher and other apps into /Applications
   1220 frameworkinstallapps:
   1221 	cd Mac && $(MAKE) installapps DESTDIR="$(DESTDIR)"
   1222 
   1223 # This install the unix python and pythonw tools in /usr/local/bin
   1224 frameworkinstallunixtools:
   1225 	cd Mac && $(MAKE) installunixtools DESTDIR="$(DESTDIR)"
   1226 
   1227 frameworkaltinstallunixtools:
   1228 	cd Mac && $(MAKE) altinstallunixtools DESTDIR="$(DESTDIR)"
   1229 
   1230 # This installs the Demos and Tools into the applications directory.
   1231 # It is not part of a normal frameworkinstall
   1232 frameworkinstallextras:
   1233 	cd Mac && $(MAKE) installextras DESTDIR="$(DESTDIR)"
   1234 
   1235 # This installs a few of the useful scripts in Tools/scripts
   1236 scriptsinstall:
   1237 	SRCDIR=$(srcdir) $(RUNSHARED) \
   1238 	$(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/setup.py install \
   1239 	--prefix=$(prefix) \
   1240 	--install-scripts=$(BINDIR) \
   1241 	--root=$(DESTDIR)/
   1242 
   1243 # Build the toplevel Makefile
   1244 Makefile.pre: Makefile.pre.in config.status
   1245 	CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status
   1246 	$(MAKE) -f Makefile.pre Makefile
   1247 
   1248 # Run the configure script.
   1249 config.status:	$(srcdir)/configure
   1250 	$(SHELL) $(srcdir)/configure $(CONFIG_ARGS)
   1251 
   1252 .PRECIOUS: config.status $(BUILDPYTHON) Makefile Makefile.pre
   1253 
   1254 # Some make's put the object file in the current directory
   1255 .c.o:
   1256 	$(CC) -c $(PY_CFLAGS) -o $@ $<
   1257 
   1258 # Run reindent on the library
   1259 reindent:
   1260 	./$(BUILDPYTHON) $(srcdir)/Tools/scripts/reindent.py -r $(srcdir)/Lib
   1261 
   1262 # Rerun configure with the same options as it was run last time,
   1263 # provided the config.status script exists
   1264 recheck:
   1265 	$(SHELL) config.status --recheck
   1266 	$(SHELL) config.status
   1267 
   1268 # Rebuild the configure script from configure.ac; also rebuild pyconfig.h.in
   1269 autoconf:
   1270 	(cd $(srcdir); autoconf)
   1271 	(cd $(srcdir); autoheader)
   1272 
   1273 # Create a tags file for vi
   1274 tags::
   1275 	cd $(srcdir); \
   1276 	ctags -w -t Include/*.h; \
   1277 	for i in $(SRCDIRS); do ctags -w -t -a $$i/*.[ch]; \
   1278 	done; \
   1279 	sort -o tags tags
   1280 
   1281 # Create a tags file for GNU Emacs
   1282 TAGS::
   1283 	cd $(srcdir); \
   1284 	etags Include/*.h; \
   1285 	for i in $(SRCDIRS); do etags -a $$i/*.[ch]; done
   1286 
   1287 # Touch generated files
   1288 touch:
   1289 	touch Include/Python-ast.h Python/Python-ast.c
   1290 
   1291 # Sanitation targets -- clean leaves libraries, executables and tags
   1292 # files, which clobber removes as well
   1293 pycremoval:
   1294 	find $(srcdir) -name '*.py[co]' -exec rm -f {} ';'
   1295 
   1296 clean: pycremoval
   1297 	find . -name '*.[oa]' -exec rm -f {} ';'
   1298 	find . -name '*.s[ol]' -exec rm -f {} ';'
   1299 	find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';'
   1300 	find build -name 'fficonfig.h' -exec rm -f {} ';' || true
   1301 	find build -name 'fficonfig.py' -exec rm -f {} ';' || true
   1302 	-rm -f Lib/lib2to3/*Grammar*.pickle
   1303 
   1304 profile-removal:
   1305 	find . -name '*.gc??' -exec rm -f {} ';'
   1306 
   1307 clobber: clean profile-removal
   1308 	-rm -f $(BUILDPYTHON) $(PGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
   1309 		tags TAGS \
   1310 		config.cache config.log pyconfig.h Modules/config.c
   1311 	-rm -rf build platform
   1312 	-rm -rf $(PYTHONFRAMEWORKDIR)
   1313 
   1314 # Make things extra clean, before making a distribution:
   1315 # remove all generated files, even Makefile[.pre]
   1316 # Keep configure and Python-ast.[ch], it's possible they can't be generated
   1317 distclean: clobber
   1318 	for file in Lib/test/data/* ; do \
   1319 	    if test "$$file" != "Lib/test/data/README"; then rm "$$file"; fi; \
   1320 	done
   1321 	-rm -f core Makefile Makefile.pre config.status \
   1322 		Modules/Setup Modules/Setup.local Modules/Setup.config \
   1323 		Modules/ld_so_aix Modules/python.exp Misc/python.pc
   1324 	-rm -f python*-gdb.py
   1325 	-rm -f pybuilddir.txt
   1326 	find $(srcdir) '(' -name '*.fdc' -o -name '*~' \
   1327 			   -o -name '[@,#]*' -o -name '*.old' \
   1328 			   -o -name '*.orig' -o -name '*.rej' \
   1329 			   -o -name '*.bak' ')' \
   1330 			   -exec rm -f {} ';'
   1331 
   1332 # Check for smelly exported symbols (not starting with Py/_Py)
   1333 smelly: all
   1334 	nm -p $(LIBRARY) | \
   1335 		sed -n "/ [TDB] /s/.* //p" | grep -v "^_*Py" | sort -u; \
   1336 
   1337 # Find files with funny names
   1338 funny:
   1339 	find $(SUBDIRS) $(SUBDIRSTOO) -type d \
   1340 		-o -name '*.[chs]' \
   1341 		-o -name '*.py' \
   1342 		-o -name '*.doc' \
   1343 		-o -name '*.sty' \
   1344 		-o -name '*.bib' \
   1345 		-o -name '*.dat' \
   1346 		-o -name '*.el' \
   1347 		-o -name '*.fd' \
   1348 		-o -name '*.in' \
   1349 		-o -name '*.tex' \
   1350 		-o -name '*,[vpt]' \
   1351 		-o -name 'Setup' \
   1352 		-o -name 'Setup.*' \
   1353 		-o -name README \
   1354 		-o -name Makefile \
   1355 		-o -name ChangeLog \
   1356 		-o -name Repository \
   1357 		-o -name Root \
   1358 		-o -name Entries \
   1359 		-o -name Tag \
   1360 		-o -name tags \
   1361 		-o -name TAGS \
   1362 		-o -name .cvsignore \
   1363 		-o -name MANIFEST \
   1364 		-o -print
   1365 
   1366 # Perform some verification checks on any modified files.
   1367 patchcheck:
   1368 	$(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py
   1369 
   1370 # Dependencies
   1371 
   1372 Python/thread.o:  $(srcdir)/Python/thread_atheos.h $(srcdir)/Python/thread_beos.h $(srcdir)/Python/thread_cthread.h $(srcdir)/Python/thread_foobar.h $(srcdir)/Python/thread_lwp.h $(srcdir)/Python/thread_nt.h $(srcdir)/Python/thread_os2.h $(srcdir)/Python/thread_pth.h $(srcdir)/Python/thread_pthread.h $(srcdir)/Python/thread_sgi.h $(srcdir)/Python/thread_solaris.h $(srcdir)/Python/thread_wince.h
   1373 
   1374 # Declare targets that aren't real files
   1375 .PHONY: all build_all sharedmods oldsharedmods test quicktest memtest
   1376 .PHONY: install altinstall oldsharedinstall bininstall altbininstall
   1377 .PHONY: maninstall libinstall inclinstall libainstall sharedinstall
   1378 .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure
   1379 .PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools
   1380 .PHONY: frameworkaltinstallunixtools recheck autoconf clean clobber distclean
   1381 .PHONY: smelly funny patchcheck touch altmaninstall
   1382 .PHONY: gdbhooks
   1383 
   1384 # IF YOU PUT ANYTHING HERE IT WILL GO AWAY
   1385 
   1386 # Rules appended by makedepend
   1387 
   1388 Modules/posixmodule.o: $(srcdir)/Modules/posixmodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/posixmodule.c -o Modules/posixmodule.o
   1389 Modules/posixmodule$(SO):  Modules/posixmodule.o; $(BLDSHARED)  Modules/posixmodule.o   -o Modules/posixmodule$(SO)
   1390 Modules/threadmodule.o: $(srcdir)/Modules/threadmodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/threadmodule.c -o Modules/threadmodule.o
   1391 Modules/threadmodule$(SO):  Modules/threadmodule.o; $(BLDSHARED)  Modules/threadmodule.o   -o Modules/threadmodule$(SO)
   1392 Modules/signalmodule.o: $(srcdir)/Modules/signalmodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/signalmodule.c -o Modules/signalmodule.o
   1393 Modules/signalmodule$(SO):  Modules/signalmodule.o; $(BLDSHARED)  Modules/signalmodule.o   -o Modules/signalmodule$(SO)
   1394 Modules/errnomodule.o: $(srcdir)/Modules/errnomodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/errnomodule.c -o Modules/errnomodule.o
   1395 Modules/errnomodule$(SO):  Modules/errnomodule.o; $(BLDSHARED)  Modules/errnomodule.o   -o Modules/errnomodule$(SO)
   1396 Modules/_sre.o: $(srcdir)/Modules/_sre.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/_sre.c -o Modules/_sre.o
   1397 Modules/_sre$(SO):  Modules/_sre.o; $(BLDSHARED)  Modules/_sre.o   -o Modules/_sre$(SO)
   1398 Modules/_codecsmodule.o: $(srcdir)/Modules/_codecsmodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/_codecsmodule.c -o Modules/_codecsmodule.o
   1399 Modules/_codecsmodule$(SO):  Modules/_codecsmodule.o; $(BLDSHARED)  Modules/_codecsmodule.o   -o Modules/_codecsmodule$(SO)
   1400 Modules/_weakref.o: $(srcdir)/Modules/_weakref.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/_weakref.c -o Modules/_weakref.o
   1401 Modules/_weakref$(SO):  Modules/_weakref.o; $(BLDSHARED)  Modules/_weakref.o   -o Modules/_weakref$(SO)
   1402 Modules/zipimport.o: $(srcdir)/Modules/zipimport.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/zipimport.c -o Modules/zipimport.o
   1403 Modules/zipimport$(SO):  Modules/zipimport.o; $(BLDSHARED)  Modules/zipimport.o   -o Modules/zipimport$(SO)
   1404 Modules/symtablemodule.o: $(srcdir)/Modules/symtablemodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/symtablemodule.c -o Modules/symtablemodule.o
   1405 Modules/_symtablemodule$(SO):  Modules/symtablemodule.o; $(BLDSHARED)  Modules/symtablemodule.o   -o Modules/_symtablemodule$(SO)
   1406 Modules/xxsubtype.o: $(srcdir)/Modules/xxsubtype.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/xxsubtype.c -o Modules/xxsubtype.o
   1407 Modules/xxsubtype$(SO):  Modules/xxsubtype.o; $(BLDSHARED)  Modules/xxsubtype.o   -o Modules/xxsubtype$(SO)
   1408