14adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Generated automatically from Makefile.pre by makesetup.
24adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Top-level Makefile for Python
34adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#
44adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# As distributed, this file is called Makefile.pre.in; it is processed
54adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# into the real Makefile by running the script ./configure, which
64adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# replaces things like @spam@ with values appropriate for your system.
74adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# This means that if you edit Makefile, your changes get lost the next
84adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# time you run the configure script.  Ideally, you can do:
94adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#
104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#	./configure
114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#	make
124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#	make test
134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#	make install
144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#
154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# If you have a previous version of Python installed that you don't
164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# want to overwrite, you can use "make altinstall" instead of "make
174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# install".  Refer to the "Installing" section in the README file for
184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# additional details.
194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#
204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# See also the section "Build instructions" in the README file.
214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# === Variables set by makesetup ===
234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
244adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMODOBJS=          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
254adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMODLIBS=        $(LOCALMODLIBS) $(BASEMODLIBS)
264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# === Variables set by configure
284adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoVERSION=	2.7
294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaosrcdir=		/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
304adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoVPATH=		/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
314adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMSYSVPATH=	/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoabs_srcdir=	/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoabs_builddir=	/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/build-python-linux-x86_64-2.7.5
344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaobuild=		x86_64-pc-linux-gnu
354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaohost=		x86_64-pc-linux-gnu
364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
374adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoCC=		x86_64-linux-gnu-gcc -pthread
384adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoCXX=		x86_64-linux-gnu-g++ -pthread
394adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMAINCC=		$(CC)
404adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLINKCC=		$(PURIFY) $(MAINCC)
414adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoAR=		x86_64-linux-gnu-ar
424adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoRANLIB=		x86_64-linux-gnu-ranlib
434adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSVNVERSION=	echo Unversioned directory
444adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoHGVERSION=	
454adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoHGTAG=		
464adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoHGBRANCH=	
474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
484adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoGNULD=          yes
494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
504adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Shell used by make (some versions default to the login shell, which is bad)
514adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSHELL=		/bin/sh
524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
534adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Use this to make a link between python$(VERSION) and python in $(BINDIR)
544adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLN=		ln
554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Portable install script (configure doesn't always guess right)
574adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoINSTALL=	/usr/bin/install -c
584adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoINSTALL_PROGRAM=${INSTALL}
594adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoINSTALL_SCRIPT= ${INSTALL}
604adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoINSTALL_DATA=	${INSTALL} -m 644
614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Shared libraries must be installed with executable mode on some systems;
624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# rather than figuring out exactly which, we always give them executable mode.
634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Also, making them read-only seems to be a good idea...
644adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoINSTALL_SHARED= ${INSTALL} -m 555
654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
664adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMKDIR_P=	/bin/mkdir -p
674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
684adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMAKESETUP=      $(srcdir)/Modules/makesetup
694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Compiler options
714adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoOPT=		-DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes
724adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoBASECFLAGS=	 -fno-strict-aliasing
734adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoCFLAGS=		$(BASECFLAGS) -O2 -Os -fomit-frame-pointer -s $(OPT) $(EXTRA_CFLAGS)
744adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# be able to build extension modules using the directories specified in the
764adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# environment variables
774adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoCPPFLAGS=	-I. -IInclude -I$(srcdir)/Include 
784adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLDFLAGS=	
794adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLDLAST=		
804adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSGI_ABI=	
814adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoCCSHARED=	-fPIC
824adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLINKFORSHARED=	-Xlinker -export-dynamic
834adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoARFLAGS=	rc
844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Extra C flags added for building the interpreter object files.
854adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoCFLAGSFORSHARED=
864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# C flags used for building the interpreter object files
874adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPY_CFLAGS=	$(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
884adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
894adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# ; on Windows otherwise :
904adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoDELIM=		:
914adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Machine-dependent subdirectories
924adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMACHDEP=	linux2
934adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
944adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Multiarch directory (may be empty)
954adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMULTIARCH=	x86_64-linux-gnu
964adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install prefix for architecture-independent files
984adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoprefix=		/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools
994adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1004adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install prefix for architecture-dependent files
1014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoexec_prefix=	${prefix}
1024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1034adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install prefix for data files
1044adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaodatarootdir=    ${prefix}/share
1054adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1064adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Expanded directories
1074adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoBINDIR=		${exec_prefix}/bin
1084adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBDIR=		${exec_prefix}/lib
1094adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMANDIR=		${datarootdir}/man
1104adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoINCLUDEDIR=	${prefix}/include
1114adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoCONFINCLUDEDIR=	$(exec_prefix)/include
1124adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSCRIPTDIR=	$(prefix)/lib
1134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Detailed destination directories
1154adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoBINLIBDEST=	$(LIBDIR)/python$(VERSION)
1164adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBDEST=	$(SCRIPTDIR)/python$(VERSION)
1174adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoINCLUDEPY=	$(INCLUDEDIR)/python$(VERSION)
1184adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoCONFINCLUDEPY=	$(CONFINCLUDEDIR)/python$(VERSION)
1194adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBP=		$(LIBDIR)/python$(VERSION)
1204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Symbols used for using shared libraries
1224adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSO=		.so
1234adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLDSHARED=	x86_64-linux-gnu-gcc -shared  $(LDFLAGS)
1244adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoBLDSHARED=	x86_64-linux-gnu-gcc -shared  $(LDFLAGS)
1254adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLDCXXSHARED=	x86_64-linux-gnu-gcc -shared 
1264adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoDESTSHARED=	$(BINLIBDEST)/lib-dynload
1274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Executable suffix (.exe on Windows and Mac OS X)
1294adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoEXE=		
1304adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoBUILDEXE=	
1314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Short name and location for Mac OS X Python framework
1334adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoUNIVERSALSDK=
1344adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPYTHONFRAMEWORK=	
1354adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPYTHONFRAMEWORKDIR=	no-framework
1364adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPYTHONFRAMEWORKPREFIX=	
1374adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPYTHONFRAMEWORKINSTALLDIR= 
1384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Deployment target selected during configure, to be checked
1394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# by distutils. The export statement is needed to ensure that the
1404adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# deployment target is active during build.
1414adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMACOSX_DEPLOYMENT_TARGET=
1424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#export MACOSX_DEPLOYMENT_TARGET
1434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1444adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Options to enable prebinding (for fast startup prior to Mac OS X 10.3)
1454adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoOTHER_LIBTOOL_OPT=
1464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Environment to run shared python without installed libraries
1484adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoRUNSHARED=       
1494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1504adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Modes for directories, executables and data files created by the
1514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# install process.  Default to user-only-writable for all file types.
1524adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoDIRMODE=	755
1534adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoEXEMODE=	755
1544adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoFILEMODE=	644
1554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# configure script arguments
1574adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoCONFIG_ARGS=	 '--prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools' '--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='
1584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Subdirectories with code
1614adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSRCDIRS= 	Parser Grammar Objects Python Modules Mac
1624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Other subdirectories
1644adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSUBDIRSTOO=	Include Lib Misc Demo
1654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1664adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Files and directories to be distributed
1674adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoCONFIGFILES=	configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in
1684adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoDISTFILES=	README ChangeLog $(CONFIGFILES)
1694adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoDISTDIRS=	$(SUBDIRS) $(SUBDIRSTOO) Ext-dummy
1704adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoDIST=		$(DISTFILES) $(DISTDIRS)
1714adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1724adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1734adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBRARY=	libpython$(VERSION).a
1744adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLDLIBRARY=      libpython$(VERSION).a
1754adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoBLDLIBRARY=     $(LDLIBRARY)
1764adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoDLLLIBRARY=	
1774adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLDLIBRARYDIR=   
1784adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoINSTSONAME=	$(LDLIBRARY)
1794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1804adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1814adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBS=		-lpthread -ldl  -lutil
1824adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBM=		-lm
1834adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBC=		
1844adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSYSLIBS=	$(LIBM) $(LIBC)
1854adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSHLIBS=		$(LIBS)
1864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1874adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoTHREADOBJ=	Python/thread.o
1884adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoDLINCLDIR=	.
1894adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoDYNLOADFILE=	dynload_shlib.o
1904adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMACHDEP_OBJS=	
1914adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBOBJDIR=	Python/
1924adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBOBJS=	
1934adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoUNICODE_OBJS=   Objects/unicodeobject.o Objects/unicodectype.o
1944adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1954adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPYTHON=		python$(EXE)
1964adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoBUILDPYTHON=	python$(BUILDEXE)
1974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
1984adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPYTHON_FOR_BUILD=./$(BUILDPYTHON) -E
1994adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao_PYTHON_HOST_PLATFORM=
2004adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoHOST_GNU_TYPE=  x86_64-pc-linux-gnu
2014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# The task to run while instrument when building the profile-opt target
2034adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPROFILE_TASK=	$(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
2044adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#PROFILE_TASK=	$(srcdir)/Lib/test/regrtest.py
2054adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2064adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# === Definitions added by makesetup ===
2074adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2084adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLOCALMODLIBS=          
2094adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoBASEMODLIBS=
2104adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoGLHACK=-Dclear=__GLclear
2114adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPYTHONPATH=$(COREPYTHONPATH)
2124adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoCOREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)$(MACHDEPPATH)$(EXTRAMACHDEPPATH)$(TKPATH)$(OLDPATH)
2134adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoOLDPATH=$(DELIM)lib-old
2144adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoTKPATH=$(DELIM)lib-tk
2154adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoEXTRAMACHDEPPATH=
2164adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMACHDEPPATH=$(DELIM)plat-$(MACHDEP)
2174adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoTESTPATH=
2184adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSITEPATH=
2194adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoDESTPATH=
2204adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMACHDESTLIB=$(BINLIBDEST)
2214adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoDESTLIB=$(LIBDEST)
2224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao##########################################################################
2264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Modules
2274adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMODULE_OBJS=	\
2284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Modules/config.o \
2294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Modules/getpath.o \
2304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Modules/main.o \
2314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Modules/gcmodule.o
2324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Used of signalmodule.o is not available
2344adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSIGNAL_OBJS=	
2354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2374adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao##########################################################################
2384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Grammar
2394adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoGRAMMAR_H=	Include/graminit.h
2404adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoGRAMMAR_C=	Python/graminit.c
2414adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoGRAMMAR_INPUT=	$(srcdir)/Grammar/Grammar
2424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2444adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBFFI_INCLUDEDIR=	
2454adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao##########################################################################
2474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Parser
2484adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPGEN=		Parser/pgen$(EXE)
2494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2504adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPSRCS=		\
2514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/acceler.c \
2524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/grammar1.c \
2534adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/listnode.c \
2544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/node.c \
2554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/parser.c \
2564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/parsetok.c \
2574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/bitset.c \
2584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/metagrammar.c \
2594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/firstsets.c \
2604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/grammar.c \
2614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/pgen.c
2624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2634adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPOBJS=		\
2644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/acceler.o \
2654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/grammar1.o \
2664adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/listnode.o \
2674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/node.o \
2684adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/parser.o \
2694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/parsetok.o \
2704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/bitset.o \
2714adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/metagrammar.o \
2724adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/firstsets.o \
2734adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/grammar.o \
2744adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/pgen.o
2754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2764adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPARSER_OBJS=	$(POBJS) Parser/myreadline.o Parser/tokenizer.o
2774adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2784adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPGSRCS=		\
2794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/obmalloc.c \
2804adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/mysnprintf.c \
2814adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/pyctype.c \
2824adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/tokenizer_pgen.c \
2834adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/printgrammar.c \
2844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/pgenmain.c
2854adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2864adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPGOBJS=		\
2874adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/obmalloc.o \
2884adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/mysnprintf.o \
2894adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/pyctype.o \
2904adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/tokenizer_pgen.o \
2914adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/printgrammar.o \
2924adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/pgenmain.o
2934adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2944adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPARSER_HEADERS= \
2954adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/parser.h \
2964adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Parser/tokenizer.h
2974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
2984adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPGENSRCS=	$(PSRCS) $(PGSRCS)
2994adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPGENOBJS=	$(POBJS) $(PGOBJS)
3004adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
3014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao##########################################################################
3024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# AST
3034adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoAST_H_DIR=	Include
3044adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoAST_H=		$(AST_H_DIR)/Python-ast.h
3054adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoAST_C_DIR=	Python
3064adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoAST_C=		$(AST_C_DIR)/Python-ast.c
3074adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoAST_ASDL=	$(srcdir)/Parser/Python.asdl
3084adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
3094adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoASDLGEN_FILES=	$(srcdir)/Parser/asdl.py $(srcdir)/Parser/asdl_c.py
3104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# XXX Note that a build now requires Python exist before the build starts
3114adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoASDLGEN=	$(srcdir)/Parser/asdl_c.py
3124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
3134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao##########################################################################
3144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Python
3154adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPYTHON_OBJS=	\
3164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/_warnings.o \
3174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/Python-ast.o \
3184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/asdl.o \
3194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/ast.o \
3204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/bltinmodule.o \
3214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/ceval.o \
3224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/compile.o \
3234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/codecs.o \
3244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/errors.o \
3254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/frozen.o \
3264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/frozenmain.o \
3274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/future.o \
3284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/getargs.o \
3294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/getcompiler.o \
3304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/getcopyright.o \
3314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/getplatform.o \
3324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/getversion.o \
3334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/graminit.o \
3344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/import.o \
3354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/importdl.o \
3364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/marshal.o \
3374adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/modsupport.o \
3384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/mystrtoul.o \
3394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/mysnprintf.o \
3404adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/peephole.o \
3414adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/pyarena.o \
3424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/pyctype.o \
3434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/pyfpe.o \
3444adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/pymath.o \
3454adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/pystate.o \
3464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/pythonrun.o \
3474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao                Python/random.o \
3484adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/structmember.o \
3494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/symtable.o \
3504adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/sysmodule.o \
3514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/traceback.o \
3524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/getopt.o \
3534adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/pystrcmp.o \
3544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/pystrtod.o \
3554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/dtoa.o \
3564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/formatter_unicode.o \
3574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/formatter_string.o \
3584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Python/$(DYNLOADFILE) \
3594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(LIBOBJS) \
3604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(MACHDEP_OBJS) \
3614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(THREADOBJ)
3624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
3634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
3644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao##########################################################################
3654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Objects
3664adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoOBJECT_OBJS=	\
3674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/abstract.o \
3684adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/boolobject.o \
3694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/bufferobject.o \
3704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/bytes_methods.o \
3714adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/bytearrayobject.o \
3724adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/capsule.o \
3734adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/cellobject.o \
3744adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/classobject.o \
3754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/cobject.o \
3764adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/codeobject.o \
3774adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/complexobject.o \
3784adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/descrobject.o \
3794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/enumobject.o \
3804adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/exceptions.o \
3814adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/genobject.o \
3824adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/fileobject.o \
3834adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/floatobject.o \
3844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/frameobject.o \
3854adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/funcobject.o \
3864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/intobject.o \
3874adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/iterobject.o \
3884adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/listobject.o \
3894adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/longobject.o \
3904adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/dictobject.o \
3914adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/memoryobject.o \
3924adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/methodobject.o \
3934adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/moduleobject.o \
3944adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/object.o \
3954adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/obmalloc.o \
3964adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/rangeobject.o \
3974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/setobject.o \
3984adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/sliceobject.o \
3994adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/stringobject.o \
4004adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/structseq.o \
4014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/tupleobject.o \
4024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/typeobject.o \
4034adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Objects/weakrefobject.o \
4044adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(UNICODE_OBJS)
4054adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4064adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4074adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao##########################################################################
4084adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# objects that get linked into the Python library
4094adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBRARY_OBJS=	\
4104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Modules/getbuildinfo.o \
4114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PARSER_OBJS) \
4124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(OBJECT_OBJS) \
4134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PYTHON_OBJS) \
4144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(MODULE_OBJS) \
4154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(SIGNAL_OBJS) \
4164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(MODOBJS)
4174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#########################################################################
4194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Rules
4204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Default target
4224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoall:		build_all
4234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaobuild_all:	$(BUILDPYTHON) oldsharedmods sharedmods gdbhooks
4244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Compile a binary with gcc profile guided optimization.
4264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoprofile-opt:
4274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@echo "Building with support for profile generation:"
4284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MAKE) clean
4294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MAKE) build_all_generate_profile
4304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@echo "Running benchmark to generate profile data:"
4314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MAKE) profile-removal
4324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MAKE) run_profile_task
4334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@echo "Rebuilding with profile guided optimizations:"
4344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MAKE) clean
4354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MAKE) build_all_use_profile
4364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4374adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaobuild_all_generate_profile:
4384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MAKE) all CFLAGS="$(CFLAGS) -fprofile-generate" LIBS="$(LIBS) -lgcov"
4394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4404adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaorun_profile_task:
4414adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	: # FIXME: can't run for a cross build
4424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	./$(BUILDPYTHON) $(PROFILE_TASK)
4434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4444adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaobuild_all_use_profile:
4454adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MAKE) all CFLAGS="$(CFLAGS) -fprofile-use"
4464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaocoverage:
4484adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@echo "Building with support for coverage checking:"
4494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MAKE) clean
4504adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MAKE) all CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov"
4514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4534adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Build the interpreter
4544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(BUILDPYTHON):	Modules/python.o $(LIBRARY) $(LDLIBRARY)
4554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
4564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			Modules/python.o \
4574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
4584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoplatform: $(BUILDPYTHON) pybuilddir.txt
4604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
4614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Create build directory and generate the sysconfig build-time data there.
4634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# pybuilddir.txt contains the name of the build dir and is used for
4644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# sys.path fixup -- see Modules/getpath.c.
4654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaopybuilddir.txt: $(BUILDPYTHON)
4664adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars
4674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4684adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Build the shared modules
4694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
4704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# -s, --silent or --quiet is always the first char.
4714adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Under BSD make, MAKEFLAGS might be " -s -v x=y".
4724adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaosharedmods: $(BUILDPYTHON) pybuilddir.txt
4734adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@case "$$MAKEFLAGS" in \
4744adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	    *\ -s*|s*) quiet="-q";; \
4754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	    *) quiet="";; \
4764adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	esac; \
4774adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
4784adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
4794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4804adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Build static library
4814adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# avoid long command lines, same as LIBRARY_OBJS
4824adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(LIBRARY): $(LIBRARY_OBJS)
4834adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f $@
4844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(AR) $(ARFLAGS) $@ Modules/getbuildinfo.o
4854adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(AR) $(ARFLAGS) $@ $(PARSER_OBJS)
4864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(AR) $(ARFLAGS) $@ $(OBJECT_OBJS)
4874adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(AR) $(ARFLAGS) $@ $(PYTHON_OBJS)
4884adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(AR) $(ARFLAGS) $@ $(MODULE_OBJS) $(SIGNAL_OBJS)
4894adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(AR) $(ARFLAGS) $@ $(MODOBJS)
4904adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(RANLIB) $@
4914adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
4924adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaolibpython$(VERSION).so: $(LIBRARY_OBJS)
4934adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	if test $(INSTSONAME) != $(LDLIBRARY); then \
4944adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
4954adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(LN) -f $(INSTSONAME) $@; \
4964adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	else \
4974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(BLDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
4984adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	fi
4994adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5004adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaolibpython$(VERSION).dylib: $(LIBRARY_OBJS)
5014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	 $(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); \
5024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5034adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5044adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaolibpython$(VERSION).sl: $(LIBRARY_OBJS)
5054adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(LDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST)
5064adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5074adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Copy up the gdb python hooks into a position where they can be automatically
5084adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# loaded by gdb during Lib/test/test_gdb.py
5094adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#
5104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Distributors are likely to want to install this somewhere else e.g. relative
5114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# to the stripped DWARF data for the shared library.
5124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaogdbhooks: $(BUILDPYTHON)-gdb.py
5134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5144adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSRC_GDB_HOOKS=$(srcdir)/Tools/gdb/libpython.py
5154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(BUILDPYTHON)-gdb.py: $(SRC_GDB_HOOKS)
5164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) $(SRC_GDB_HOOKS) $(BUILDPYTHON)-gdb.py
5174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary
5194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# minimal framework (not including the Lib directory and such) in the current
5204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# directory.
5214adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoRESSRCDIR=Mac/Resources/framework
5224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
5234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(LIBRARY) \
5244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(RESSRCDIR)/Info.plist
5254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)
5264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(CC) -o $(LDLIBRARY) $(LDFLAGS)  -dynamiclib \
5274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-all_load $(LIBRARY) -Wl,-single_module \
5284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \
5294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-compatibility_version $(VERSION) \
5304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-current_version $(VERSION);
5314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL) -d -m $(DIRMODE)  \
5324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj
5334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) $(RESSRCDIR)/Info.plist \
5344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/Info.plist
5354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(LN) -fsn $(VERSION) $(PYTHONFRAMEWORKDIR)/Versions/Current
5364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK)
5374adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(LN) -fsn Versions/Current/Headers $(PYTHONFRAMEWORKDIR)/Headers
5384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources
5394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5404adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# This rule builds the Cygwin Python DLL and import library if configured
5414adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# for a shared core library; otherwise, this rule is a noop.
5424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
5434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	if test -n "$(DLLLIBRARY)"; then \
5444adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) -static-libgcc $^ \
5454adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \
5464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	else true; \
5474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	fi
5484adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5504adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaooldsharedmods: $(SHAREDMODS)
5514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5534adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMakefile Modules/config.c: Makefile.pre \
5544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(srcdir)/Modules/config.c.in \
5554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(MAKESETUP) \
5564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				Modules/Setup.config \
5574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				Modules/Setup \
5584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				Modules/Setup.local
5594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \
5604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				-s Modules \
5614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				Modules/Setup.config \
5624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				Modules/Setup.local \
5634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				Modules/Setup
5644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@mv config.c Modules
5654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@echo "The Makefile was updated, you may need to re-run make."
5664adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5684adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/Setup: $(srcdir)/Modules/Setup.dist
5694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@if test -f Modules/Setup; then \
5704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo "-----------------------------------------------"; \
5714adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo "Modules/Setup.dist is newer than Modules/Setup;"; \
5724adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo "check to make sure you have all the updates you"; \
5734adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo "need in your Modules/Setup file."; \
5744adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo "Usually, copying Modules/Setup.dist to Modules/Setup will work."; \
5754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo "-----------------------------------------------"; \
5764adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	fi
5774adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5784adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao############################################################################
5794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Special rules for object files
5804adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5814adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/getbuildinfo.o: $(PARSER_OBJS) \
5824adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(OBJECT_OBJS) \
5834adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PYTHON_OBJS) \
5844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(MODULE_OBJS) \
5854adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(SIGNAL_OBJS) \
5864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(MODOBJS) \
5874adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Modules/getbuildinfo.c
5884adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(CC) -c $(PY_CFLAGS) \
5894adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	      -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" \
5904adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	      -DHGVERSION="\"`LC_ALL=C $(HGVERSION)`\"" \
5914adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	      -DHGTAG="\"`LC_ALL=C $(HGTAG)`\"" \
5924adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	      -DHGBRANCH="\"`LC_ALL=C $(HGBRANCH)`\"" \
5934adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	      -o $@ $(srcdir)/Modules/getbuildinfo.c
5944adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
5954adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# default sys.path calculations
5964adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
5974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
5984adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-DPREFIX='"$(prefix)"' \
5994adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-DEXEC_PREFIX='"$(exec_prefix)"' \
6004adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-DVERSION='"$(VERSION)"' \
6014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-DVPATH='"$(MSYSVPATH)"' \
6024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o $@ $(srcdir)/Modules/getpath.c
6034adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6044adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# default sys.path calculations for windows platforms
6054adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPC/getpathp.o: $(srcdir)/PC/getpathp.c
6064adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(CC) -c $(PY_CFLAGS) -o $@ $(srcdir)/PC/getpathp.c
6074adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6084adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/python.o: $(srcdir)/Modules/python.c
6094adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MAINCC) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/python.c
6104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6114adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/posixmodule.o: $(srcdir)/Modules/posixmodule.c $(srcdir)/Modules/posixmodule.h
6124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6134adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/grpmodule.o: $(srcdir)/Modules/grpmodule.c $(srcdir)/Modules/posixmodule.h
6144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6154adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c $(srcdir)/Modules/posixmodule.h
6164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGENSRCS)
6184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		@$(MKDIR_P) Include
6194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(MAKE) $(PGEN)
6204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
6214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS)
6224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(MAKE) $(GRAMMAR_H)
6234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		touch $(GRAMMAR_C)
6244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(PGEN):	$(PGENOBJS)
6264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
6274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6284adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoParser/grammar.o:	$(srcdir)/Parser/grammar.c \
6294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(srcdir)/Include/token.h \
6304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(srcdir)/Include/grammar.h
6314adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoParser/metagrammar.o:	$(srcdir)/Parser/metagrammar.c
6324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6334adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoParser/tokenizer_pgen.o:	$(srcdir)/Parser/tokenizer.c
6344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6354adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoParser/pgenmain.o:	$(srcdir)/Include/parsetok.h
6364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6374adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(AST_H): $(AST_ASDL) $(ASDLGEN_FILES)
6384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MKDIR_P) $(AST_H_DIR)
6394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(ASDLGEN) -h $(AST_H_DIR) $(AST_ASDL)
6404adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6414adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(AST_C): $(AST_ASDL) $(ASDLGEN_FILES)
6424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MKDIR_P) $(AST_C_DIR)
6434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(ASDLGEN) -c $(AST_C_DIR) $(AST_ASDL)
6444adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6454adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPython/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
6464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6474adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPython/getplatform.o: $(srcdir)/Python/getplatform.c
6484adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
6494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6504adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPython/importdl.o: $(srcdir)/Python/importdl.c
6514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
6524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6534adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoObjects/unicodectype.o:	$(srcdir)/Objects/unicodectype.c \
6544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(srcdir)/Objects/unicodetype_db.h
6554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6564adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoSTRINGLIB_HEADERS= \
6574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Include/bytes_methods.h \
6584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Objects/stringlib/count.h \
6594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Objects/stringlib/ctype.h \
6604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Objects/stringlib/fastsearch.h \
6614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Objects/stringlib/find.h \
6624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Objects/stringlib/formatter.h \
6634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Objects/stringlib/partition.h \
6644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Objects/stringlib/split.h \
6654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Objects/stringlib/stringdefs.h \
6664adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Objects/stringlib/string_format.h \
6674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Objects/stringlib/transmogrify.h \
6684adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Objects/stringlib/unicodedefs.h \
6694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(srcdir)/Objects/stringlib/localeutil.h
6704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6714adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoObjects/unicodeobject.o: $(srcdir)/Objects/unicodeobject.c \
6724adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(STRINGLIB_HEADERS)
6734adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6744adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoObjects/bytearrayobject.o: $(srcdir)/Objects/bytearrayobject.c \
6754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(STRINGLIB_HEADERS)
6764adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6774adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoObjects/stringobject.o: $(srcdir)/Objects/stringobject.c \
6784adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(STRINGLIB_HEADERS)
6794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6804adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPython/formatter_unicode.o: $(srcdir)/Python/formatter_unicode.c \
6814adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(STRINGLIB_HEADERS)
6824adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6834adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPython/formatter_string.o: $(srcdir)/Python/formatter_string.c \
6844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(STRINGLIB_HEADERS)
6854adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao############################################################################
6874adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Header files
6884adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
6894adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPYTHON_HEADERS= \
6904adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/Python-ast.h \
6914adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/Python.h \
6924adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/abstract.h \
6934adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/asdl.h \
6944adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/ast.h \
6954adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/bitset.h \
6964adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/boolobject.h \
6974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/bytearrayobject.h \
6984adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/bytes_methods.h \
6994adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/bytesobject.h \
7004adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/bufferobject.h \
7014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/cellobject.h \
7024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/ceval.h \
7034adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/classobject.h \
7044adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/cobject.h \
7054adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/code.h \
7064adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/codecs.h \
7074adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/compile.h \
7084adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/complexobject.h \
7094adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/descrobject.h \
7104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/dictobject.h \
7114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/dtoa.h \
7124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/enumobject.h \
7134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/errcode.h \
7144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/eval.h \
7154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/fileobject.h \
7164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/floatobject.h \
7174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/frameobject.h \
7184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/funcobject.h \
7194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/genobject.h \
7204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/import.h \
7214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/intobject.h \
7224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/intrcheck.h \
7234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/iterobject.h \
7244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/listobject.h \
7254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/longintrepr.h \
7264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/longobject.h \
7274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/marshal.h \
7284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/memoryobject.h \
7294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/metagrammar.h \
7304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/methodobject.h \
7314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/modsupport.h \
7324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/moduleobject.h \
7334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/node.h \
7344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/object.h \
7354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/objimpl.h \
7364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/opcode.h \
7374adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/osdefs.h \
7384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/parsetok.h \
7394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/patchlevel.h \
7404adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pgen.h \
7414adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pgenheaders.h \
7424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pyarena.h \
7434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pycapsule.h \
7444adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pyctype.h \
7454adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pydebug.h \
7464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pyerrors.h \
7474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pyfpe.h \
7484adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pymath.h \
7494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pygetopt.h \
7504adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pymem.h \
7514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pyport.h \
7524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pystate.h \
7534adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pystrcmp.h \
7544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pystrtod.h \
7554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pythonrun.h \
7564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/pythread.h \
7574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/rangeobject.h \
7584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/setobject.h \
7594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/sliceobject.h \
7604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/stringobject.h \
7614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/structmember.h \
7624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/structseq.h \
7634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/symtable.h \
7644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/sysmodule.h \
7654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/traceback.h \
7664adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/tupleobject.h \
7674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/ucnhash.h \
7684adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/unicodeobject.h \
7694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/warnings.h \
7704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Include/weakrefobject.h \
7714adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		pyconfig.h \
7724adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PARSER_HEADERS)
7734adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
7744adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(LIBRARY_OBJS) $(MODOBJS) Modules/python.o: $(PYTHON_HEADERS)
7754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
7764adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
7774adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao######################################################################
7784adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
7794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Test the interpreter (twice, once without .pyc files, once with)
7804adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# In the past, we've had problems where bugs in the marshalling or
7814adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# elsewhere caused bytecode read from .pyc files to behave differently
7824adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# than bytecode generated directly from a .py source file.  Sometimes
7834adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# the bytecode read from a .pyc file had the bug, sometimes the directly
7844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# generated bytecode.  This is sometimes a very shy bug needing a lot of
7854adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# sample data.
7864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
7874adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoTESTOPTS=	-l $(EXTRATESTOPTS)
7884adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoTESTPROG=	$(srcdir)/Lib/test/regrtest.py
7894adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoTESTPYTHON=	$(RUNSHARED) ./$(BUILDPYTHON) -Wd -3 -E -tt $(TESTPYTHONOPTS)
7904adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaotest:		all platform
7914adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
7924adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-$(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
7934adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
7944adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
7954adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaotestall:	all platform
7964adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
7974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(TESTPYTHON) $(srcdir)/Lib/compileall.py
7984adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
7994adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-$(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS)
8004adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS)
8014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#  Run the unitests for both architectures in a Universal build on OSX
8034adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#  Must be run on an Intel box.
8044adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaotestuniversal:	all platform
8054adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if [ `arch` != 'i386' ];then \
8064adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			echo "This can only be used on OSX/i386" ;\
8074adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			exit 1 ;\
8084adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		fi
8094adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
8104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-$(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS)
8114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS)
8124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(RUNSHARED) /usr/libexec/oah/translate ./$(BUILDPYTHON) -E -tt $(TESTPROG) -uall $(TESTOPTS)
8134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Like testall, but with a single pass only
8164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# run an optional script to include some information about the build environment
8174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaobuildbottest:	all platform
8184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-@if which pybuildbot.identify >/dev/null 2>&1; then \
8194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			pybuildbot.identify "CC='$(CC)'" "CXX='$(CXX)'"; \
8204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		fi
8214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(TESTPYTHON) -R $(TESTPROG) -uall -rwW $(TESTOPTS)
8224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8234adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoQUICKTESTOPTS=	$(TESTOPTS) -x test_subprocess test_io test_lib2to3 \
8244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		test_multibytecodec test_urllib2_localnet test_itertools \
8254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		test_multiprocessing test_mailbox test_socket test_poll \
8264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		test_select test_zipfile
8274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoquicktest:	all platform
8284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
8294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-$(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS)
8304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS)
8314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8324adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMEMTESTOPTS=    $(QUICKTESTOPTS) -x test_dl test___all__ test_fork1 \
8334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		test_longexp
8344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaomemtest:	all platform
8354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-rm -f $(srcdir)/Lib/test/*.py[co]
8364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
8374adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
8384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install everything
8404adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoinstall:	 altinstall bininstall maninstall 
8414adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install almost everything without disturbing previous versions
8434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoaltinstall:	 altbininstall libinstall inclinstall \
8444adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				libainstall altmaninstall \
8454adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao                sharedinstall oldsharedinstall 
8464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install shared libraries enabled by Setup
8484adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoDESTDIRS=	$(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED)
8494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8504adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaooldsharedinstall: $(DESTSHARED) $(SHAREDMODS)
8514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		@for i in X $(SHAREDMODS); do \
8524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		  if test $$i != X; then \
8534adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		    echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \
8544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		    $(INSTALL_SHARED) $$i $(DESTDIR)$(DESTSHARED)/`basename $$i`; \
8554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		  fi; \
8564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		done
8574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(DESTSHARED):
8594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		@for i in $(DESTDIRS); \
8604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		do \
8614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			if test ! -d $(DESTDIR)$$i; then \
8624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				echo "Creating directory $$i"; \
8634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
8644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			else    true; \
8654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			fi; \
8664adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		done
8674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8684adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install the interpreter by creating a symlink chain:
8704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#  $(PYTHON) -> python2 -> python$(VERSION))
8714adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Also create equivalent chains for other installed files
8724adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaobininstall:	altbininstall
8734adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-if test -f $(DESTDIR)$(BINDIR)/$(PYTHON) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON); \
8744adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \
8754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	else true; \
8764adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	fi
8774adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f $(DESTDIR)$(BINDIR)/python2$(EXE)
8784adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	(cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python2$(EXE))
8794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	(cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(EXE) $(PYTHON))
8804adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f $(DESTDIR)$(BINDIR)/python2-config
8814adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	(cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python2-config)
8824adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f $(DESTDIR)$(BINDIR)/python-config
8834adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	(cd $(DESTDIR)$(BINDIR); $(LN) -s python2-config python-config)
8844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-test -d $(DESTDIR)$(LIBPC) || $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC)
8854adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f $(DESTDIR)$(LIBPC)/python2.pc
8864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	(cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python2.pc)
8874adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f $(DESTDIR)$(LIBPC)/python.pc
8884adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	(cd $(DESTDIR)$(LIBPC); $(LN) -s python2.pc python.pc)
8894adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
8904adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install the interpreter with $(VERSION) affixed
8914adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# This goes into $(exec_prefix)
8924adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoaltbininstall:	$(BUILDPYTHON)
8934adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@for i in $(BINDIR) $(LIBDIR); \
8944adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	do \
8954adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test ! -d $(DESTDIR)$$i; then \
8964adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			echo "Creating directory $$i"; \
8974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
8984adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		else	true; \
8994adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		fi; \
9004adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	done
9014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE)
9024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	if test -f $(LDLIBRARY); then \
9034adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test -n "$(DLLLIBRARY)" ; then \
9044adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \
9054adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			mkdir -p $(DESTDIR)$(LIBPL); $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBPL); \
9064adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		else \
9074adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \
9084adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			if test $(LDLIBRARY) != $(INSTSONAME); then \
9094adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				(cd $(DESTDIR)$(LIBDIR); $(LN) -sf $(INSTSONAME) $(LDLIBRARY)) \
9104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			fi \
9114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		fi; \
9124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	else	true; \
9134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	fi
9144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
9154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install the versioned manual page
9164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoaltmaninstall:
9174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@for i in $(MANDIR) $(MANDIR)/man1; \
9184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	do \
9194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test ! -d $(DESTDIR)$$i; then \
9204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			echo "Creating directory $$i"; \
9214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
9224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		else	true; \
9234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		fi; \
9244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	done
9254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) $(srcdir)/Misc/python.man \
9264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(DESTDIR)$(MANDIR)/man1/python$(VERSION).1
9274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
9284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install the unversioned manual pages
9294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaomaninstall:	altmaninstall
9304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f $(DESTDIR)$(MANDIR)/man1/python2.1
9314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	(cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python$(VERSION).1 python2.1)
9324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f $(DESTDIR)$(MANDIR)/man1/python.1
9334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	(cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python2.1 python.1)
9344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
9354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install the library
9364adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPLATDIR=	plat-$(MACHDEP)
9374adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoEXTRAPLATDIR= 
9384adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoEXTRAMACHDEPPATH=
9394adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMACHDEPS=	$(PLATDIR) $(EXTRAPLATDIR)
9404adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoXMLLIBSUBDIRS=  xml xml/dom xml/etree xml/parsers xml/sax
9414adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPLATMACDIRS= plat-mac plat-mac/Carbon plat-mac/lib-scriptpackages \
9424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	plat-mac/lib-scriptpackages/_builtinSuites \
9434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	plat-mac/lib-scriptpackages/CodeWarrior \
9444adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	plat-mac/lib-scriptpackages/Explorer \
9454adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	plat-mac/lib-scriptpackages/Finder \
9464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	plat-mac/lib-scriptpackages/Netscape \
9474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	plat-mac/lib-scriptpackages/StdSuites \
9484adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	plat-mac/lib-scriptpackages/SystemEvents \
9494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	plat-mac/lib-scriptpackages/Terminal
9504adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages
9514adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBSUBDIRS=	lib-tk lib-tk/test lib-tk/test/test_tkinter \
9524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		lib-tk/test/test_ttk site-packages test test/data \
9534adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		test/cjkencodings test/decimaltestdata test/xmltestdata test/subprocessdata \
9544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		test/tracedmodules \
9554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		encodings compiler hotshot \
9564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		email email/mime email/test email/test/data \
9574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		json json/tests \
9584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		sqlite3 sqlite3/test \
9594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		logging bsddb bsddb/test csv importlib wsgiref \
9604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \
9614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \
9624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		ctypes ctypes/test ctypes/macholib idlelib idlelib/Icons \
9634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \
9644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		multiprocessing multiprocessing/dummy \
9654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		unittest unittest/test \
9664adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		lib-old \
9674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		curses pydoc_data $(MACHDEPS)
9684adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaolibinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
9694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@for i in $(SCRIPTDIR) $(LIBDEST); \
9704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	do \
9714adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test ! -d $(DESTDIR)$$i; then \
9724adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			echo "Creating directory $$i"; \
9734adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
9744adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		else	true; \
9754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		fi; \
9764adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	done
9774adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@for d in $(LIBSUBDIRS); \
9784adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	do \
9794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		a=$(srcdir)/Lib/$$d; \
9804adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test ! -d $$a; then continue; else true; fi; \
9814adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		b=$(LIBDEST)/$$d; \
9824adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test ! -d $(DESTDIR)$$b; then \
9834adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			echo "Creating directory $$b"; \
9844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$b; \
9854adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		else	true; \
9864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		fi; \
9874adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	done
9884adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py $(srcdir)/Lib/*.doc $(srcdir)/Lib/*.egg-info ; \
9894adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	do \
9904adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test -x $$i; then \
9914adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
9924adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \
9934adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		else \
9944adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(INSTALL_DATA) $$i $(DESTDIR)$(LIBDEST); \
9954adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			echo $(INSTALL_DATA) $$i $(LIBDEST); \
9964adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		fi; \
9974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	done
9984adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@for d in $(LIBSUBDIRS); \
9994adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	do \
10004adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		a=$(srcdir)/Lib/$$d; \
10014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test ! -d $$a; then continue; else true; fi; \
10024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test `ls $$a | wc -l` -lt 1; then continue; fi; \
10034adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		b=$(LIBDEST)/$$d; \
10044adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		for i in $$a/*; \
10054adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		do \
10064adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			case $$i in \
10074adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			*CVS) ;; \
10084adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			*.py[co]) ;; \
10094adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			*.orig) ;; \
10104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			*~) ;; \
10114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			*) \
10124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				if test -d $$i; then continue; fi; \
10134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				if test -x $$i; then \
10144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				    echo $(INSTALL_SCRIPT) $$i $$b; \
10154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				    $(INSTALL_SCRIPT) $$i $(DESTDIR)$$b; \
10164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				else \
10174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				    echo $(INSTALL_DATA) $$i $$b; \
10184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				    $(INSTALL_DATA) $$i $(DESTDIR)$$b; \
10194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				fi;; \
10204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			esac; \
10214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		done; \
10224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	done
10234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
10244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \
10254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
10264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(DESTDIR)$(LIBDEST)/distutils/tests ; \
10274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	fi
10284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
10294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
10304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-d $(LIBDEST) -f \
10314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
10324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(DESTDIR)$(LIBDEST)
10334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
10344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
10354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-d $(LIBDEST) -f \
10364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
10374adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(DESTDIR)$(LIBDEST)
10384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
10394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PYTHON_FOR_BUILD) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
10404adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-d $(LIBDEST)/site-packages -f \
10414adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
10424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
10434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PYTHON_FOR_BUILD) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
10444adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-d $(LIBDEST)/site-packages -f \
10454adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
10464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
10474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
10484adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
10494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
10504adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
10514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Create the PLATDIR source directory, if one wasn't distributed..
10524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao$(srcdir)/Lib/$(PLATDIR):
10534adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	mkdir $(srcdir)/Lib/$(PLATDIR)
10544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen
10554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	export PATH; PATH="`pwd`:$$PATH"; \
10564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	export PYTHONPATH; PYTHONPATH="$(srcdir)/Lib:$(abs_builddir)/`cat pybuilddir.txt`"; \
10574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \
10584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	export EXE; EXE="$(BUILDEXE)"; \
10594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	if [ -n "$(MULTIARCH)" ]; then export MULTIARCH; MULTIARCH=$(MULTIARCH); fi; \
10604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	export PYTHON_FOR_BUILD; \
10614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	if [ "$(build)" = "$(host)" ]; then \
10624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	  PYTHON_FOR_BUILD="$(BUILDPYTHON)"; \
10634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	else \
10644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	  PYTHON_FOR_BUILD="$(PYTHON_FOR_BUILD)"; \
10654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	fi; \
10664adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen "$(CC)"
10674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
10684adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaopython-config: $(srcdir)/Misc/python-config.in
10694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	# Substitution happens here, as the completely-expanded BINDIR
10704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	# is not available in configure
10714adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config
10724adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	# Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR}
10734adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	sed -e "s,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g" < Misc/python-config.sh >python-config.sh
10744adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
10754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install the include files
10764adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoINCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY)
10774adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoinclinstall:
10784adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@for i in $(INCLDIRSTOMAKE); \
10794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	do \
10804adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test ! -d $(DESTDIR)$$i; then \
10814adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			echo "Creating directory $$i"; \
10824adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
10834adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		else	true; \
10844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		fi; \
10854adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	done
10864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@for i in $(srcdir)/Include/*.h; \
10874adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	do \
10884adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo $(INSTALL_DATA) $$i $(INCLUDEPY); \
10894adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \
10904adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	done
10914adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
10924adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
10934adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install the library and miscellaneous stuff needed for extending/embedding
10944adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# This goes into $(exec_prefix)
10954adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBPL=		$(LIBP)/config
10964adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
10974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# pkgconfig directory
10984adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoLIBPC=		$(LIBDIR)/pkgconfig
10994adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
11004adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaolibainstall:	all python-config
11014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@for i in $(LIBDIR) $(LIBP) $(LIBPL) $(LIBPC); \
11024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	do \
11034adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test ! -d $(DESTDIR)$$i; then \
11044adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			echo "Creating directory $$i"; \
11054adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
11064adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		else	true; \
11074adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		fi; \
11084adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	done
11094adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@if test -d $(LIBRARY); then :; else \
11104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
11114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			if test "$(SO)" = .dll; then \
11124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
11134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			else \
11144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
11154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
11164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			fi; \
11174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		else \
11184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			echo Skip install of $(LIBRARY) - use make frameworkinstall; \
11194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		fi; \
11204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	fi
11214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c
11224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o
11234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
11244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
11254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
11264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
11274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config
11284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
11294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
11304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
11314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(VERSION)-config
11324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_SCRIPT) python-config.sh $(DESTDIR)$(BINDIR)/python-config.sh
11334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	rm python-config
11344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@if [ -s Modules/python.exp -a \
11354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		"`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
11364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo; echo "Installing support files for building shared extension modules on AIX:"; \
11374adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(INSTALL_DATA) Modules/python.exp		\
11384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(DESTDIR)$(LIBPL)/python.exp;		\
11394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo; echo "$(LIBPL)/python.exp";		\
11404adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(INSTALL_SCRIPT) $(srcdir)/Modules/makexp_aix	\
11414adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(DESTDIR)$(LIBPL)/makexp_aix;		\
11424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo "$(LIBPL)/makexp_aix";			\
11434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(INSTALL_SCRIPT) $(srcdir)/Modules/ld_so_aix	\
11444adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao				$(DESTDIR)$(LIBPL)/ld_so_aix;		\
11454adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo "$(LIBPL)/ld_so_aix";			\
11464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo; echo "See Misc/AIX-NOTES for details.";	\
11474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	else true; \
11484adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	fi
11494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@case "$(MACHDEP)" in beos*) \
11504adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo; echo "Installing support files for building shared extension modules on BeOS:"; \
11514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(INSTALL_DATA) Misc/BeOS-NOTES $(DESTDIR)$(LIBPL)/README;	\
11524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo; echo "$(LIBPL)/README";			\
11534adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(INSTALL_SCRIPT) Modules/ar_beos $(DESTDIR)$(LIBPL)/ar_beos; \
11544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo "$(LIBPL)/ar_beos";			\
11554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		$(INSTALL_SCRIPT) Modules/ld_so_beos $(DESTDIR)$(LIBPL)/ld_so_beos; \
11564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo "$(LIBPL)/ld_so_beos";			\
11574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo; echo "See Misc/BeOS-NOTES for details.";	\
11584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		;; \
11594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	esac
11604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
11614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install the dynamically loadable modules
11624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# This goes into $(exec_prefix)
11634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaosharedinstall: sharedmods
11644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
11654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	   	--prefix=$(prefix) \
11664adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		--install-scripts=$(BINDIR) \
11674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		--install-platlib=$(DESTSHARED) \
11684adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		--root=$(DESTDIR)/
11694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata.py*
11704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
11714adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Here are a couple of targets for MacOSX again, to install a full
11724adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# framework-based Python. frameworkinstall installs everything, the
11734adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# subtargets install specific parts. Much of the actual work is offloaded to
11744adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# the Makefile in Mac
11754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#
11764adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#
11774adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# This target is here for backward compatiblity, previous versions of Python
11784adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# hadn't integrated framework installation in the normal install process.
11794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoframeworkinstall: install
11804adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
11814adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# On install, we re-make the framework
11824adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# structure in the install location, /Library/Frameworks/ or the argument to
11834adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# --enable-framework. If --enable-framework has been specified then we have
11844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# automatically set prefix to the location deep down in the framework, so we
11854adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# only have to cater for the structural bits of the framework.
11864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
11874adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoframeworkinstallframework: frameworkinstallstructure install frameworkinstallmaclib
11884adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
11894adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoframeworkinstallstructure:	$(LDLIBRARY)
11904adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
11914adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		echo Not configured with --enable-framework; \
11924adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		exit 1; \
11934adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	else true; \
11944adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	fi
11954adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	@for i in $(prefix)/Resources/English.lproj $(prefix)/lib; do\
11964adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		if test ! -d $(DESTDIR)$$i; then \
11974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			echo "Creating directory $(DESTDIR)$$i"; \
11984adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
11994adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		else	true; \
12004adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		fi; \
12014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	done
12024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(LN) -fsn include/python$(VERSION) $(DESTDIR)$(prefix)/Headers
12034adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	sed 's/%VERSION%/'"`$(RUNSHARED) ./$(BUILDPYTHON) -c 'import platform; print platform.python_version()'`"'/g' < $(RESSRCDIR)/Info.plist > $(DESTDIR)$(prefix)/Resources/Info.plist
12044adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current
12054adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/$(PYTHONFRAMEWORK)
12064adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers
12074adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(LN) -fsn Versions/Current/Resources $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Resources
12084adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY)
12094adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# This installs Mac/Lib into the framework
12114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Install a number of symlinks to keep software that expects a normal unix
12124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# install (which includes python-config) happy.
12134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoframeworkinstallmaclib:
12144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	ln -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/python$(VERSION)/config/libpython$(VERSION).a"
12154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	ln -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/python$(VERSION)/config/libpython$(VERSION).dylib"
12164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	ln -fs "../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/libpython$(VERSION).dylib"
12174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	cd Mac && $(MAKE) installmacsubtree DESTDIR="$(DESTDIR)"
12184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# This installs the IDE, the Launcher and other apps into /Applications
12204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoframeworkinstallapps:
12214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	cd Mac && $(MAKE) installapps DESTDIR="$(DESTDIR)"
12224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# This install the unix python and pythonw tools in /usr/local/bin
12244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoframeworkinstallunixtools:
12254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	cd Mac && $(MAKE) installunixtools DESTDIR="$(DESTDIR)"
12264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoframeworkaltinstallunixtools:
12284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	cd Mac && $(MAKE) altinstallunixtools DESTDIR="$(DESTDIR)"
12294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# This installs the Demos and Tools into the applications directory.
12314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# It is not part of a normal frameworkinstall
12324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoframeworkinstallextras:
12334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	cd Mac && $(MAKE) installextras DESTDIR="$(DESTDIR)"
12344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# This installs a few of the useful scripts in Tools/scripts
12364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoscriptsinstall:
12374adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	SRCDIR=$(srcdir) $(RUNSHARED) \
12384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/setup.py install \
12394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	--prefix=$(prefix) \
12404adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	--install-scripts=$(BINDIR) \
12414adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	--root=$(DESTDIR)/
12424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Build the toplevel Makefile
12444adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoMakefile.pre: Makefile.pre.in config.status
12454adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status
12464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(MAKE) -f Makefile.pre Makefile
12474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12484adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Run the configure script.
12494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoconfig.status:	$(srcdir)/configure
12504adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(SHELL) $(srcdir)/configure $(CONFIG_ARGS)
12514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao.PRECIOUS: config.status $(BUILDPYTHON) Makefile Makefile.pre
12534adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Some make's put the object file in the current directory
12554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao.c.o:
12564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(CC) -c $(PY_CFLAGS) -o $@ $<
12574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Run reindent on the library
12594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoreindent:
12604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	./$(BUILDPYTHON) $(srcdir)/Tools/scripts/reindent.py -r $(srcdir)/Lib
12614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Rerun configure with the same options as it was run last time,
12634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# provided the config.status script exists
12644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaorecheck:
12654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(SHELL) config.status --recheck
12664adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(SHELL) config.status
12674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12684adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Rebuild the configure script from configure.ac; also rebuild pyconfig.h.in
12694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoautoconf:
12704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	(cd $(srcdir); autoconf)
12714adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	(cd $(srcdir); autoheader)
12724adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12734adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Create a tags file for vi
12744adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaotags::
12754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	cd $(srcdir); \
12764adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	ctags -w -t Include/*.h; \
12774adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	for i in $(SRCDIRS); do ctags -w -t -a $$i/*.[ch]; \
12784adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	done; \
12794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	sort -o tags tags
12804adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12814adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Create a tags file for GNU Emacs
12824adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoTAGS::
12834adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	cd $(srcdir); \
12844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	etags Include/*.h; \
12854adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	for i in $(SRCDIRS); do etags -a $$i/*.[ch]; done
12864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12874adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Touch generated files
12884adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaotouch:
12894adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	touch Include/Python-ast.h Python/Python-ast.c
12904adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12914adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Sanitation targets -- clean leaves libraries, executables and tags
12924adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# files, which clobber removes as well
12934adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaopycremoval:
12944adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	find $(srcdir) -name '*.py[co]' -exec rm -f {} ';'
12954adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
12964adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoclean: pycremoval
12974adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	find . -name '*.[oa]' -exec rm -f {} ';'
12984adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	find . -name '*.s[ol]' -exec rm -f {} ';'
12994adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';'
13004adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	find build -name 'fficonfig.h' -exec rm -f {} ';' || true
13014adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	find build -name 'fficonfig.py' -exec rm -f {} ';' || true
13024adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f Lib/lib2to3/*Grammar*.pickle
13034adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
13044adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoprofile-removal:
13054adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	find . -name '*.gc??' -exec rm -f {} ';'
13064adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
13074adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoclobber: clean profile-removal
13084adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f $(BUILDPYTHON) $(PGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
13094adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		tags TAGS \
13104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		config.cache config.log pyconfig.h Modules/config.c
13114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -rf build platform
13124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -rf $(PYTHONFRAMEWORKDIR)
13134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
13144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Make things extra clean, before making a distribution:
13154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# remove all generated files, even Makefile[.pre]
13164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Keep configure and Python-ast.[ch], it's possible they can't be generated
13174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaodistclean: clobber
13184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	for file in Lib/test/data/* ; do \
13194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	    if test "$$file" != "Lib/test/data/README"; then rm "$$file"; fi; \
13204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	done
13214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f core Makefile Makefile.pre config.status \
13224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Modules/Setup Modules/Setup.local Modules/Setup.config \
13234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		Modules/ld_so_aix Modules/python.exp Misc/python.pc
13244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f python*-gdb.py
13254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	-rm -f pybuilddir.txt
13264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	find $(srcdir) '(' -name '*.fdc' -o -name '*~' \
13274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			   -o -name '[@,#]*' -o -name '*.old' \
13284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			   -o -name '*.orig' -o -name '*.rej' \
13294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			   -o -name '*.bak' ')' \
13304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao			   -exec rm -f {} ';'
13314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
13324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Check for smelly exported symbols (not starting with Py/_Py)
13334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaosmelly: all
13344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	nm -p $(LIBRARY) | \
13354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		sed -n "/ [TDB] /s/.* //p" | grep -v "^_*Py" | sort -u; \
13364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
13374adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Find files with funny names
13384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaofunny:
13394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	find $(SUBDIRS) $(SUBDIRSTOO) -type d \
13404adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name '*.[chs]' \
13414adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name '*.py' \
13424adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name '*.doc' \
13434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name '*.sty' \
13444adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name '*.bib' \
13454adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name '*.dat' \
13464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name '*.el' \
13474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name '*.fd' \
13484adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name '*.in' \
13494adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name '*.tex' \
13504adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name '*,[vpt]' \
13514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name 'Setup' \
13524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name 'Setup.*' \
13534adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name README \
13544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name Makefile \
13554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name ChangeLog \
13564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name Repository \
13574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name Root \
13584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name Entries \
13594adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name Tag \
13604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name tags \
13614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name TAGS \
13624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name .cvsignore \
13634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -name MANIFEST \
13644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao		-o -print
13654adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
13664adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Perform some verification checks on any modified files.
13674adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaopatchcheck:
13684adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao	$(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py
13694adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
13704adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Dependencies
13714adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
13724adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPython/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
13734adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
13744adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Declare targets that aren't real files
13754adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao.PHONY: all build_all sharedmods oldsharedmods test quicktest memtest
13764adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao.PHONY: install altinstall oldsharedinstall bininstall altbininstall
13774adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao.PHONY: maninstall libinstall inclinstall libainstall sharedinstall
13784adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao.PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure
13794adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao.PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools
13804adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao.PHONY: frameworkaltinstallunixtools recheck autoconf clean clobber distclean
13814adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao.PHONY: smelly funny patchcheck touch altmaninstall
13824adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao.PHONY: gdbhooks
13834adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
13844adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
13854adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
13864adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Rules appended by makedepend
13874adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
13884adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/posixmodule.o: $(srcdir)/Modules/posixmodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/posixmodule.c -o Modules/posixmodule.o
13894adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/posixmodule$(SO):  Modules/posixmodule.o; $(BLDSHARED)  Modules/posixmodule.o   -o Modules/posixmodule$(SO)
13904adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/threadmodule.o: $(srcdir)/Modules/threadmodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/threadmodule.c -o Modules/threadmodule.o
13914adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/threadmodule$(SO):  Modules/threadmodule.o; $(BLDSHARED)  Modules/threadmodule.o   -o Modules/threadmodule$(SO)
13924adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/signalmodule.o: $(srcdir)/Modules/signalmodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/signalmodule.c -o Modules/signalmodule.o
13934adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/signalmodule$(SO):  Modules/signalmodule.o; $(BLDSHARED)  Modules/signalmodule.o   -o Modules/signalmodule$(SO)
13944adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/errnomodule.o: $(srcdir)/Modules/errnomodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/errnomodule.c -o Modules/errnomodule.o
13954adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/errnomodule$(SO):  Modules/errnomodule.o; $(BLDSHARED)  Modules/errnomodule.o   -o Modules/errnomodule$(SO)
13964adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/_sre.o: $(srcdir)/Modules/_sre.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/_sre.c -o Modules/_sre.o
13974adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/_sre$(SO):  Modules/_sre.o; $(BLDSHARED)  Modules/_sre.o   -o Modules/_sre$(SO)
13984adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/_codecsmodule.o: $(srcdir)/Modules/_codecsmodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/_codecsmodule.c -o Modules/_codecsmodule.o
13994adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/_codecsmodule$(SO):  Modules/_codecsmodule.o; $(BLDSHARED)  Modules/_codecsmodule.o   -o Modules/_codecsmodule$(SO)
14004adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/_weakref.o: $(srcdir)/Modules/_weakref.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/_weakref.c -o Modules/_weakref.o
14014adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/_weakref$(SO):  Modules/_weakref.o; $(BLDSHARED)  Modules/_weakref.o   -o Modules/_weakref$(SO)
14024adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/zipimport.o: $(srcdir)/Modules/zipimport.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/zipimport.c -o Modules/zipimport.o
14034adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/zipimport$(SO):  Modules/zipimport.o; $(BLDSHARED)  Modules/zipimport.o   -o Modules/zipimport$(SO)
14044adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/symtablemodule.o: $(srcdir)/Modules/symtablemodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/symtablemodule.c -o Modules/symtablemodule.o
14054adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/_symtablemodule$(SO):  Modules/symtablemodule.o; $(BLDSHARED)  Modules/symtablemodule.o   -o Modules/_symtablemodule$(SO)
14064adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/xxsubtype.o: $(srcdir)/Modules/xxsubtype.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/xxsubtype.c -o Modules/xxsubtype.o
14074adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoModules/xxsubtype$(SO):  Modules/xxsubtype.o; $(BLDSHARED)  Modules/xxsubtype.o   -o Modules/xxsubtype$(SO)
1408