| 1 | # Top-level Makefile for Python
|
|---|
| 2 | #
|
|---|
| 3 | # As distributed, this file is called Makefile.pre.in; it is processed
|
|---|
| 4 | # into the real Makefile by running the script ./configure, which
|
|---|
| 5 | # replaces things like @spam@ with values appropriate for your system.
|
|---|
| 6 | # This means that if you edit Makefile, your changes get lost the next
|
|---|
| 7 | # time you run the configure script. Ideally, you can do:
|
|---|
| 8 | #
|
|---|
| 9 | # ./configure
|
|---|
| 10 | # make
|
|---|
| 11 | # make test
|
|---|
| 12 | # make install
|
|---|
| 13 | #
|
|---|
| 14 | # If you have a previous version of Python installed that you don't
|
|---|
| 15 | # want to overwrite, you can use "make altinstall" instead of "make
|
|---|
| 16 | # install". Refer to the "Installing" section in the README file for
|
|---|
| 17 | # additional details.
|
|---|
| 18 | #
|
|---|
| 19 | # See also the section "Build instructions" in the README file.
|
|---|
| 20 |
|
|---|
| 21 | # === Variables set by makesetup ===
|
|---|
| 22 |
|
|---|
| 23 | MODOBJS= _MODOBJS_
|
|---|
| 24 | MODLIBS= _MODLIBS_
|
|---|
| 25 |
|
|---|
| 26 | # === Variables set by configure
|
|---|
| 27 | VERSION= @VERSION@
|
|---|
| 28 | srcdir= @srcdir@
|
|---|
| 29 | VPATH= @srcdir@
|
|---|
| 30 |
|
|---|
| 31 | CC= @CC@
|
|---|
| 32 | CXX= @CXX@
|
|---|
| 33 | MAINCC= @MAINCC@
|
|---|
| 34 | LINKCC= @LINKCC@
|
|---|
| 35 | AR= @AR@
|
|---|
| 36 | RANLIB= @RANLIB@
|
|---|
| 37 | SVNVERSION= @SVNVERSION@
|
|---|
| 38 |
|
|---|
| 39 | # Shell used by make (some versions default to the login shell, which is bad)
|
|---|
| 40 | SHELL= /bin/sh
|
|---|
| 41 |
|
|---|
| 42 | # Use this to make a link between python$(VERSION) and python in $(BINDIR)
|
|---|
| 43 | LN= @LN@
|
|---|
| 44 |
|
|---|
| 45 | # Portable install script (configure doesn't always guess right)
|
|---|
| 46 | INSTALL= @INSTALL@
|
|---|
| 47 | INSTALL_PROGRAM=@INSTALL_PROGRAM@
|
|---|
| 48 | INSTALL_SCRIPT= @INSTALL_SCRIPT@
|
|---|
| 49 | INSTALL_DATA= @INSTALL_DATA@
|
|---|
| 50 | # Shared libraries must be installed with executable mode on some systems;
|
|---|
| 51 | # rather than figuring out exactly which, we always give them executable mode.
|
|---|
| 52 | # Also, making them read-only seems to be a good idea...
|
|---|
| 53 | INSTALL_SHARED= ${INSTALL} -m 555
|
|---|
| 54 |
|
|---|
| 55 | MAKESETUP= $(srcdir)/Modules/makesetup
|
|---|
| 56 |
|
|---|
| 57 | # Compiler options
|
|---|
| 58 | OPT= @OPT@
|
|---|
| 59 | BASECFLAGS= @BASECFLAGS@
|
|---|
| 60 | CFLAGS= $(BASECFLAGS) $(OPT) $(EXTRA_CFLAGS)
|
|---|
| 61 | # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
|
|---|
| 62 | # be able to build extension modules using the directories specified in the
|
|---|
| 63 | # environment variables
|
|---|
| 64 | CPPFLAGS= -I. -I$(srcdir)/Include @CPPFLAGS@
|
|---|
| 65 | LDFLAGS= @LDFLAGS@
|
|---|
| 66 | LDLAST= @LDLAST@
|
|---|
| 67 | SGI_ABI= @SGI_ABI@
|
|---|
| 68 | CCSHARED= @CCSHARED@
|
|---|
| 69 | LINKFORSHARED= @LINKFORSHARED@
|
|---|
| 70 | # Extra C flags added for building the interpreter object files.
|
|---|
| 71 | CFLAGSFORSHARED=@CFLAGSFORSHARED@
|
|---|
| 72 | # C flags used for building the interpreter object files
|
|---|
| 73 | PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
|
|---|
| 74 |
|
|---|
| 75 |
|
|---|
| 76 | # Machine-dependent subdirectories
|
|---|
| 77 | MACHDEP= @MACHDEP@
|
|---|
| 78 |
|
|---|
| 79 | # Install prefix for architecture-independent files
|
|---|
| 80 | prefix= @prefix@
|
|---|
| 81 |
|
|---|
| 82 | # Install prefix for architecture-dependent files
|
|---|
| 83 | exec_prefix= @exec_prefix@
|
|---|
| 84 |
|
|---|
| 85 | # Expanded directories
|
|---|
| 86 | BINDIR= $(exec_prefix)/bin
|
|---|
| 87 | LIBDIR= $(exec_prefix)/lib
|
|---|
| 88 | MANDIR= @mandir@
|
|---|
| 89 | INCLUDEDIR= @includedir@
|
|---|
| 90 | CONFINCLUDEDIR= $(exec_prefix)/include
|
|---|
| 91 | SCRIPTDIR= $(prefix)/lib
|
|---|
| 92 |
|
|---|
| 93 | # Detailed destination directories
|
|---|
| 94 | BINLIBDEST= $(LIBDIR)/python$(VERSION)
|
|---|
| 95 | LIBDEST= $(SCRIPTDIR)/python$(VERSION)
|
|---|
| 96 | INCLUDEPY= $(INCLUDEDIR)/python$(VERSION)
|
|---|
| 97 | CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(VERSION)
|
|---|
| 98 | LIBP= $(LIBDIR)/python$(VERSION)
|
|---|
| 99 |
|
|---|
| 100 | # Symbols used for using shared libraries
|
|---|
| 101 | SO= @SO@
|
|---|
| 102 | LDSHARED= @LDSHARED@
|
|---|
| 103 | BLDSHARED= @BLDSHARED@
|
|---|
| 104 | DESTSHARED= $(BINLIBDEST)/lib-dynload
|
|---|
| 105 |
|
|---|
| 106 | # Executable suffix (.exe on Windows and Mac OS X)
|
|---|
| 107 | EXE= @EXEEXT@
|
|---|
| 108 | BUILDEXE= @BUILDEXEEXT@
|
|---|
| 109 |
|
|---|
| 110 | # Short name and location for Mac OS X Python framework
|
|---|
| 111 | UNIVERSALSDK=@UNIVERSALSDK@
|
|---|
| 112 | PYTHONFRAMEWORK= @PYTHONFRAMEWORK@
|
|---|
| 113 | PYTHONFRAMEWORKDIR= @PYTHONFRAMEWORKDIR@
|
|---|
| 114 | PYTHONFRAMEWORKPREFIX= @PYTHONFRAMEWORKPREFIX@
|
|---|
| 115 | PYTHONFRAMEWORKINSTALLDIR= @PYTHONFRAMEWORKINSTALLDIR@
|
|---|
| 116 | # Deployment target selected during configure, to be checked
|
|---|
| 117 | # by distutils. The export statement is needed to ensure that the
|
|---|
| 118 | # deployment target is active during build.
|
|---|
| 119 | MACOSX_DEPLOYMENT_TARGET=@CONFIGURE_MACOSX_DEPLOYMENT_TARGET@
|
|---|
| 120 | @EXPORT_MACOSX_DEPLOYMENT_TARGET@export MACOSX_DEPLOYMENT_TARGET
|
|---|
| 121 |
|
|---|
| 122 | # Options to enable prebinding (for fast startup prior to Mac OS X 10.3)
|
|---|
| 123 | OTHER_LIBTOOL_OPT=@OTHER_LIBTOOL_OPT@
|
|---|
| 124 |
|
|---|
| 125 | # Environment to run shared python without installed libraries
|
|---|
| 126 | RUNSHARED= @RUNSHARED@
|
|---|
| 127 |
|
|---|
| 128 | # Modes for directories, executables and data files created by the
|
|---|
| 129 | # install process. Default to user-only-writable for all file types.
|
|---|
| 130 | DIRMODE= 755
|
|---|
| 131 | EXEMODE= 755
|
|---|
| 132 | FILEMODE= 644
|
|---|
| 133 |
|
|---|
| 134 | # configure script arguments
|
|---|
| 135 | CONFIG_ARGS= @CONFIG_ARGS@
|
|---|
| 136 |
|
|---|
| 137 |
|
|---|
| 138 | # Subdirectories with code
|
|---|
| 139 | SRCDIRS= @SRCDIRS@
|
|---|
| 140 |
|
|---|
| 141 | # Other subdirectories
|
|---|
| 142 | SUBDIRSTOO= Include Lib Misc Demo
|
|---|
| 143 |
|
|---|
| 144 | # Files and directories to be distributed
|
|---|
| 145 | CONFIGFILES= configure configure.in acconfig.h pyconfig.h.in Makefile.pre.in
|
|---|
| 146 | DISTFILES= README ChangeLog $(CONFIGFILES)
|
|---|
| 147 | DISTDIRS= $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy
|
|---|
| 148 | DIST= $(DISTFILES) $(DISTDIRS)
|
|---|
| 149 |
|
|---|
| 150 |
|
|---|
| 151 | LIBRARY= @LIBRARY@
|
|---|
| 152 | LDLIBRARY= @LDLIBRARY@
|
|---|
| 153 | BLDLIBRARY= @BLDLIBRARY@
|
|---|
| 154 | DLLLIBRARY= @DLLLIBRARY@
|
|---|
| 155 | LDLIBRARYDIR= @LDLIBRARYDIR@
|
|---|
| 156 | INSTSONAME= @INSTSONAME@
|
|---|
| 157 | CONDENSED_VERSION= @CONDENSED_VERSION@
|
|---|
| 158 |
|
|---|
| 159 |
|
|---|
| 160 | LIBS= @LIBS@
|
|---|
| 161 | LIBM= @LIBM@
|
|---|
| 162 | LIBC= @LIBC@
|
|---|
| 163 | SYSLIBS= $(LIBM) $(LIBC)
|
|---|
| 164 | SHLIBS= @SHLIBS@
|
|---|
| 165 |
|
|---|
| 166 | THREADOBJ= @THREADOBJ@
|
|---|
| 167 | DLINCLDIR= @DLINCLDIR@
|
|---|
| 168 | DYNLOADFILE= @DYNLOADFILE@
|
|---|
| 169 | MACHDEP_OBJS= @MACHDEP_OBJS@
|
|---|
| 170 | UNICODE_OBJS= @UNICODE_OBJS@
|
|---|
| 171 |
|
|---|
| 172 | PYTHON= python$(EXE)
|
|---|
| 173 | BUILDPYTHON= python$(BUILDEXE)
|
|---|
| 174 |
|
|---|
| 175 | # === Definitions added by makesetup ===
|
|---|
| 176 |
|
|---|
| 177 |
|
|---|
| 178 | ##########################################################################
|
|---|
| 179 | # Modules
|
|---|
| 180 | MODULE_OBJS= \
|
|---|
| 181 | Modules/config.o \
|
|---|
| 182 | Modules/getpath.o \
|
|---|
| 183 | Modules/main.o \
|
|---|
| 184 | Modules/gcmodule.o
|
|---|
| 185 |
|
|---|
| 186 | # Used of signalmodule.o is not available
|
|---|
| 187 | SIGNAL_OBJS= @SIGNAL_OBJS@
|
|---|
| 188 |
|
|---|
| 189 |
|
|---|
| 190 | ##########################################################################
|
|---|
| 191 | # Grammar
|
|---|
| 192 | GRAMMAR_H= $(srcdir)/Include/graminit.h
|
|---|
| 193 | GRAMMAR_C= $(srcdir)/Python/graminit.c
|
|---|
| 194 | GRAMMAR_INPUT= $(srcdir)/Grammar/Grammar
|
|---|
| 195 |
|
|---|
| 196 |
|
|---|
| 197 | ##########################################################################
|
|---|
| 198 | # Parser
|
|---|
| 199 | PGEN= Parser/pgen$(EXE)
|
|---|
| 200 |
|
|---|
| 201 | POBJS= \
|
|---|
| 202 | Parser/acceler.o \
|
|---|
| 203 | Parser/grammar1.o \
|
|---|
| 204 | Parser/listnode.o \
|
|---|
| 205 | Parser/node.o \
|
|---|
| 206 | Parser/parser.o \
|
|---|
| 207 | Parser/parsetok.o \
|
|---|
| 208 | Parser/bitset.o \
|
|---|
| 209 | Parser/metagrammar.o \
|
|---|
| 210 | Parser/firstsets.o \
|
|---|
| 211 | Parser/grammar.o \
|
|---|
| 212 | Parser/pgen.o
|
|---|
| 213 |
|
|---|
| 214 | PARSER_OBJS= $(POBJS) Parser/myreadline.o Parser/tokenizer.o
|
|---|
| 215 |
|
|---|
| 216 | PGOBJS= \
|
|---|
| 217 | Objects/obmalloc.o \
|
|---|
| 218 | Python/mysnprintf.o \
|
|---|
| 219 | Parser/tokenizer_pgen.o \
|
|---|
| 220 | Parser/printgrammar.o \
|
|---|
| 221 | Parser/pgenmain.o
|
|---|
| 222 |
|
|---|
| 223 | PGENOBJS= $(PGENMAIN) $(POBJS) $(PGOBJS)
|
|---|
| 224 |
|
|---|
| 225 | ##########################################################################
|
|---|
| 226 | # AST
|
|---|
| 227 | AST_H_DIR= $(srcdir)/Include
|
|---|
| 228 | AST_H= $(AST_H_DIR)/Python-ast.h
|
|---|
| 229 | AST_C_DIR= $(srcdir)/Python
|
|---|
| 230 | AST_C= $(AST_C_DIR)/Python-ast.c
|
|---|
| 231 | AST_ASDL= $(srcdir)/Parser/Python.asdl
|
|---|
| 232 |
|
|---|
| 233 | ASDLGEN_FILES= $(srcdir)/Parser/asdl.py $(srcdir)/Parser/asdl_c.py
|
|---|
| 234 | # XXX Note that a build now requires Python exist before the build starts
|
|---|
| 235 | ASDLGEN= $(srcdir)/Parser/asdl_c.py
|
|---|
| 236 |
|
|---|
| 237 | ##########################################################################
|
|---|
| 238 | # Python
|
|---|
| 239 | PYTHON_OBJS= \
|
|---|
| 240 | Python/Python-ast.o \
|
|---|
| 241 | Python/asdl.o \
|
|---|
| 242 | Python/ast.o \
|
|---|
| 243 | Python/bltinmodule.o \
|
|---|
| 244 | Python/ceval.o \
|
|---|
| 245 | Python/compile.o \
|
|---|
| 246 | Python/codecs.o \
|
|---|
| 247 | Python/errors.o \
|
|---|
| 248 | Python/frozen.o \
|
|---|
| 249 | Python/frozenmain.o \
|
|---|
| 250 | Python/future.o \
|
|---|
| 251 | Python/getargs.o \
|
|---|
| 252 | Python/getcompiler.o \
|
|---|
| 253 | Python/getcopyright.o \
|
|---|
| 254 | Python/getmtime.o \
|
|---|
| 255 | Python/getplatform.o \
|
|---|
| 256 | Python/getversion.o \
|
|---|
| 257 | Python/graminit.o \
|
|---|
| 258 | Python/import.o \
|
|---|
| 259 | Python/importdl.o \
|
|---|
| 260 | Python/marshal.o \
|
|---|
| 261 | Python/modsupport.o \
|
|---|
| 262 | Python/mystrtoul.o \
|
|---|
| 263 | Python/mysnprintf.o \
|
|---|
| 264 | Python/pyarena.o \
|
|---|
| 265 | Python/pyfpe.o \
|
|---|
| 266 | Python/pystate.o \
|
|---|
| 267 | Python/pythonrun.o \
|
|---|
| 268 | Python/structmember.o \
|
|---|
| 269 | Python/symtable.o \
|
|---|
| 270 | Python/sysmodule.o \
|
|---|
| 271 | Python/traceback.o \
|
|---|
| 272 | Python/getopt.o \
|
|---|
| 273 | Python/pystrtod.o \
|
|---|
| 274 | Python/$(DYNLOADFILE) \
|
|---|
| 275 | $(MACHDEP_OBJS) \
|
|---|
| 276 | $(THREADOBJ)
|
|---|
| 277 |
|
|---|
| 278 |
|
|---|
| 279 | ##########################################################################
|
|---|
| 280 | # Objects
|
|---|
| 281 | OBJECT_OBJS= \
|
|---|
| 282 | Objects/abstract.o \
|
|---|
| 283 | Objects/boolobject.o \
|
|---|
| 284 | Objects/bufferobject.o \
|
|---|
| 285 | Objects/cellobject.o \
|
|---|
| 286 | Objects/classobject.o \
|
|---|
| 287 | Objects/cobject.o \
|
|---|
| 288 | Objects/codeobject.o \
|
|---|
| 289 | Objects/complexobject.o \
|
|---|
| 290 | Objects/descrobject.o \
|
|---|
| 291 | Objects/enumobject.o \
|
|---|
| 292 | Objects/exceptions.o \
|
|---|
| 293 | Objects/genobject.o \
|
|---|
| 294 | Objects/fileobject.o \
|
|---|
| 295 | Objects/floatobject.o \
|
|---|
| 296 | Objects/frameobject.o \
|
|---|
| 297 | Objects/funcobject.o \
|
|---|
| 298 | Objects/intobject.o \
|
|---|
| 299 | Objects/iterobject.o \
|
|---|
| 300 | Objects/listobject.o \
|
|---|
| 301 | Objects/longobject.o \
|
|---|
| 302 | Objects/dictobject.o \
|
|---|
| 303 | Objects/methodobject.o \
|
|---|
| 304 | Objects/moduleobject.o \
|
|---|
| 305 | Objects/object.o \
|
|---|
| 306 | Objects/obmalloc.o \
|
|---|
| 307 | Objects/rangeobject.o \
|
|---|
| 308 | Objects/setobject.o \
|
|---|
| 309 | Objects/sliceobject.o \
|
|---|
| 310 | Objects/stringobject.o \
|
|---|
| 311 | Objects/structseq.o \
|
|---|
| 312 | Objects/tupleobject.o \
|
|---|
| 313 | Objects/typeobject.o \
|
|---|
| 314 | Objects/weakrefobject.o \
|
|---|
| 315 | $(UNICODE_OBJS)
|
|---|
| 316 |
|
|---|
| 317 |
|
|---|
| 318 | ##########################################################################
|
|---|
| 319 | # objects that get linked into the Python library
|
|---|
| 320 | LIBRARY_OBJS= \
|
|---|
| 321 | Modules/_typesmodule.o \
|
|---|
| 322 | Modules/getbuildinfo.o \
|
|---|
| 323 | $(PARSER_OBJS) \
|
|---|
| 324 | $(OBJECT_OBJS) \
|
|---|
| 325 | $(PYTHON_OBJS) \
|
|---|
| 326 | $(MODULE_OBJS) \
|
|---|
| 327 | $(SIGNAL_OBJS) \
|
|---|
| 328 | $(MODOBJS)
|
|---|
| 329 |
|
|---|
| 330 | #########################################################################
|
|---|
| 331 | # Rules
|
|---|
| 332 |
|
|---|
| 333 | # Default target
|
|---|
| 334 | all: $(BUILDPYTHON) oldsharedmods sharedmods
|
|---|
| 335 |
|
|---|
| 336 | # Build the interpreter
|
|---|
| 337 | $(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY)
|
|---|
| 338 | $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
|
|---|
| 339 | Modules/python.o \
|
|---|
| 340 | $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
|
|---|
| 341 |
|
|---|
| 342 | platform: $(BUILDPYTHON)
|
|---|
| 343 | $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
|
|---|
| 344 |
|
|---|
| 345 |
|
|---|
| 346 | # Build the shared modules
|
|---|
| 347 | sharedmods: $(BUILDPYTHON)
|
|---|
| 348 | case $$MAKEFLAGS in \
|
|---|
| 349 | *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
|
|---|
| 350 | *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
|
|---|
| 351 | esac
|
|---|
| 352 |
|
|---|
| 353 | # Build static library
|
|---|
| 354 | # avoid long command lines, same as LIBRARY_OBJS
|
|---|
| 355 | $(LIBRARY): $(LIBRARY_OBJS)
|
|---|
| 356 | -rm -f $@
|
|---|
| 357 | $(AR) cr $@ Modules/getbuildinfo.o
|
|---|
| 358 | $(AR) cr $@ Modules/_typesmodule.o
|
|---|
| 359 | $(AR) cr $@ $(PARSER_OBJS)
|
|---|
| 360 | $(AR) cr $@ $(OBJECT_OBJS)
|
|---|
| 361 | $(AR) cr $@ $(PYTHON_OBJS)
|
|---|
| 362 | $(AR) cr $@ $(MODULE_OBJS) $(SIGNAL_OBJS)
|
|---|
| 363 | $(AR) cr $@ $(MODOBJS)
|
|---|
| 364 | $(RANLIB) $@
|
|---|
| 365 |
|
|---|
| 366 | libpython$(VERSION).so: $(LIBRARY_OBJS)
|
|---|
| 367 | if test $(INSTSONAME) != $(LDLIBRARY); then \
|
|---|
| 368 | $(LDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
|
|---|
| 369 | $(LN) -f $(INSTSONAME) $@; \
|
|---|
| 370 | else\
|
|---|
| 371 | $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
|
|---|
| 372 | fi
|
|---|
| 373 |
|
|---|
| 374 | libpython$(VERSION).sl: $(LIBRARY_OBJS)
|
|---|
| 375 | $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM)
|
|---|
| 376 |
|
|---|
| 377 | # This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary
|
|---|
| 378 | # minimal framework (not including the Lib directory and such) in the current
|
|---|
| 379 | # directory.
|
|---|
| 380 | RESSRCDIR=$(srcdir)/Mac/Resources/framework
|
|---|
| 381 | $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
|
|---|
| 382 | $(LIBRARY) \
|
|---|
| 383 | $(RESSRCDIR)/Info.plist \
|
|---|
| 384 | $(RESSRCDIR)/version.plist \
|
|---|
|
|---|