source: trunk/essentials/dev-lang/python/Makefile.pre.in@ 3407

Last change on this file since 3407 was 3406, checked in by bird, 19 years ago

Install the dll and don't symlink the main exe since 4os2 an cmd doesn't grok symlinks yet.

File size: 35.0 KB
Line 
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
23MODOBJS= _MODOBJS_
24MODLIBS= _MODLIBS_
25
26# === Variables set by configure
27VERSION= @VERSION@
28srcdir= @srcdir@
29VPATH= @srcdir@
30
31CC= @CC@
32CXX= @CXX@
33MAINCC= @MAINCC@
34LINKCC= @LINKCC@
35AR= @AR@
36RANLIB= @RANLIB@
37SVNVERSION= @SVNVERSION@
38
39# Shell used by make (some versions default to the login shell, which is bad)
40SHELL= /bin/sh
41
42# Use this to make a link between python$(VERSION) and python in $(BINDIR)
43LN= @LN@
44
45# Portable install script (configure doesn't always guess right)
46INSTALL= @INSTALL@
47INSTALL_PROGRAM=@INSTALL_PROGRAM@
48INSTALL_SCRIPT= @INSTALL_SCRIPT@
49INSTALL_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...
53INSTALL_SHARED= ${INSTALL} -m 555
54
55MAKESETUP= $(srcdir)/Modules/makesetup
56
57# Compiler options
58OPT= @OPT@
59BASECFLAGS= @BASECFLAGS@
60CFLAGS= $(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
64CPPFLAGS= -I. -I$(srcdir)/Include @CPPFLAGS@
65LDFLAGS= @LDFLAGS@
66LDLAST= @LDLAST@
67SGI_ABI= @SGI_ABI@
68CCSHARED= @CCSHARED@
69LINKFORSHARED= @LINKFORSHARED@
70# Extra C flags added for building the interpreter object files.
71CFLAGSFORSHARED=@CFLAGSFORSHARED@
72# C flags used for building the interpreter object files
73PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
74
75
76# Machine-dependent subdirectories
77MACHDEP= @MACHDEP@
78
79# Install prefix for architecture-independent files
80prefix= @prefix@
81
82# Install prefix for architecture-dependent files
83exec_prefix= @exec_prefix@
84
85# Expanded directories
86BINDIR= $(exec_prefix)/bin
87LIBDIR= $(exec_prefix)/lib
88MANDIR= @mandir@
89INCLUDEDIR= @includedir@
90CONFINCLUDEDIR= $(exec_prefix)/include
91SCRIPTDIR= $(prefix)/lib
92
93# Detailed destination directories
94BINLIBDEST= $(LIBDIR)/python$(VERSION)
95LIBDEST= $(SCRIPTDIR)/python$(VERSION)
96INCLUDEPY= $(INCLUDEDIR)/python$(VERSION)
97CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(VERSION)
98LIBP= $(LIBDIR)/python$(VERSION)
99
100# Symbols used for using shared libraries
101SO= @SO@
102LDSHARED= @LDSHARED@
103BLDSHARED= @BLDSHARED@
104DESTSHARED= $(BINLIBDEST)/lib-dynload
105
106# Executable suffix (.exe on Windows and Mac OS X)
107EXE= @EXEEXT@
108BUILDEXE= @BUILDEXEEXT@
109
110# Short name and location for Mac OS X Python framework
111UNIVERSALSDK=@UNIVERSALSDK@
112PYTHONFRAMEWORK= @PYTHONFRAMEWORK@
113PYTHONFRAMEWORKDIR= @PYTHONFRAMEWORKDIR@
114PYTHONFRAMEWORKPREFIX= @PYTHONFRAMEWORKPREFIX@
115PYTHONFRAMEWORKINSTALLDIR= @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.
119MACOSX_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)
123OTHER_LIBTOOL_OPT=@OTHER_LIBTOOL_OPT@
124
125# Environment to run shared python without installed libraries
126RUNSHARED= @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.
130DIRMODE= 755
131EXEMODE= 755
132FILEMODE= 644
133
134# configure script arguments
135CONFIG_ARGS= @CONFIG_ARGS@
136
137
138# Subdirectories with code
139SRCDIRS= @SRCDIRS@
140
141# Other subdirectories
142SUBDIRSTOO= Include Lib Misc Demo
143
144# Files and directories to be distributed
145CONFIGFILES= configure configure.in acconfig.h pyconfig.h.in Makefile.pre.in
146DISTFILES= README ChangeLog $(CONFIGFILES)
147DISTDIRS= $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy
148DIST= $(DISTFILES) $(DISTDIRS)
149
150
151LIBRARY= @LIBRARY@
152LDLIBRARY= @LDLIBRARY@
153BLDLIBRARY= @BLDLIBRARY@
154DLLLIBRARY= @DLLLIBRARY@
155LDLIBRARYDIR= @LDLIBRARYDIR@
156INSTSONAME= @INSTSONAME@
157CONDENSED_VERSION= @CONDENSED_VERSION@
158
159
160LIBS= @LIBS@
161LIBM= @LIBM@
162LIBC= @LIBC@
163SYSLIBS= $(LIBM) $(LIBC)
164SHLIBS= @SHLIBS@
165
166THREADOBJ= @THREADOBJ@
167DLINCLDIR= @DLINCLDIR@
168DYNLOADFILE= @DYNLOADFILE@
169MACHDEP_OBJS= @MACHDEP_OBJS@
170UNICODE_OBJS= @UNICODE_OBJS@
171
172PYTHON= python$(EXE)
173BUILDPYTHON= python$(BUILDEXE)
174
175# === Definitions added by makesetup ===
176
177
178##########################################################################
179# Modules
180MODULE_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
187SIGNAL_OBJS= @SIGNAL_OBJS@
188
189
190##########################################################################
191# Grammar
192GRAMMAR_H= $(srcdir)/Include/graminit.h
193GRAMMAR_C= $(srcdir)/Python/graminit.c
194GRAMMAR_INPUT= $(srcdir)/Grammar/Grammar
195
196
197##########################################################################
198# Parser
199PGEN= Parser/pgen$(EXE)
200
201POBJS= \
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
214PARSER_OBJS= $(POBJS) Parser/myreadline.o Parser/tokenizer.o
215
216PGOBJS= \
217 Objects/obmalloc.o \
218 Python/mysnprintf.o \
219 Parser/tokenizer_pgen.o \
220 Parser/printgrammar.o \
221 Parser/pgenmain.o
222
223PGENOBJS= $(PGENMAIN) $(POBJS) $(PGOBJS)
224
225##########################################################################
226# AST
227AST_H_DIR= $(srcdir)/Include
228AST_H= $(AST_H_DIR)/Python-ast.h
229AST_C_DIR= $(srcdir)/Python
230AST_C= $(AST_C_DIR)/Python-ast.c
231AST_ASDL= $(srcdir)/Parser/Python.asdl
232
233ASDLGEN_FILES= $(srcdir)/Parser/asdl.py $(srcdir)/Parser/asdl_c.py
234# XXX Note that a build now requires Python exist before the build starts
235ASDLGEN= $(srcdir)/Parser/asdl_c.py
236
237##########################################################################
238# Python
239PYTHON_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
281OBJECT_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
320LIBRARY_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
334all: $(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
342platform: $(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
347sharedmods: $(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
366libpython$(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
374libpython$(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.
380RESSRCDIR=$(srcdir)/Mac/Resources/framework
381$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
382 $(LIBRARY) \
383 $(RESSRCDIR)/Info.plist \
384 $(RESSRCDIR)/version.plist \