Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 1 | #####################==================---------------- |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 2 | # |
Andrew MacIntyre | 378d3c0 | 2004-07-07 13:55:25 +0000 | [diff] [blame] | 3 | # Top-Level Makefile for Building Python 2.4 for OS/2 using GCC/EMX |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 4 | # Originally written by Andrew Zabolotny, <bit@eltech.ru> for Python 1.5.2 |
Andrew MacIntyre | bb45037 | 2006-07-23 12:57:02 +0000 | [diff] [blame] | 5 | # Modified by Andrew MacIntyre, <andymac@pcug.org.au> for Python 2.5 |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 6 | # |
| 7 | # This makefile was developed for use with [P]GCC/EMX compiler any |
| 8 | # version and GNU Make. |
| 9 | # |
Andrew MacIntyre | bb45037 | 2006-07-23 12:57:02 +0000 | [diff] [blame] | 10 | # The output of the build is a largish Python25.DLL containing the |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 11 | # essential modules of Python and a small Python.exe program to start |
| 12 | # the interpreter. When embedding Python within another program, only |
Andrew MacIntyre | bb45037 | 2006-07-23 12:57:02 +0000 | [diff] [blame] | 13 | # Python25.DLL is needed. We also build python_s.a static library (which |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 14 | # can be converted into OMF (.lib) format using emxomf tool) and both |
| 15 | # python.a and python.lib import libraries. Then the optional |
| 16 | # extension modules, which are OS/2 DLLs renamed with a PYD file extension. |
| 17 | # |
| 18 | # Recommended build order: |
| 19 | # make depend (if you have makedep) |
| 20 | # make all |
| 21 | # make lx (if you have lxlite) |
| 22 | # make test (optional) |
| 23 | # |
Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 24 | #####################==================---------------- |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 25 | |
| 26 | # === Compilation mode: debug or release === |
| 27 | MODE= optimize |
| 28 | #MODE= debug |
| 29 | # === Assert() enabled === |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 30 | ASSERTIONS=no |
| 31 | #ASSERTIONS=yes |
| 32 | # === Hard-wire installation location === |
| 33 | FIXED_PYHOME=no |
| 34 | #FIXED_PYHOME=yes |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 35 | |
| 36 | # === Optional modules === |
| 37 | # Do you have the InfoZip compression library installed? |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 38 | HAVE_ZLIB= no |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 39 | # Do you have the Ultra Fast Crypt (UFC) library installed? |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 40 | HAVE_UFC= no |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 41 | # Do you have the Tcl/Tk library installed? |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 42 | HAVE_TCLTK= no |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 43 | # Do you have the GNU readline library installed? |
| 44 | # NOTE: I'm using a modified version of Kai Uwe Rommel's port that |
| 45 | # - is compiled with multithreading enabled |
| 46 | # - is linked statically |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 47 | # I have had no success trying to use a DLL version, even when |
| 48 | # compiled with multithreading enabled. |
| 49 | HAVE_GREADLINE= no |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 50 | # Do you have the BSD DB library (v1.85) as included in the EMXBSD package? |
| 51 | # NOTE: this library needs to be recompiled with a structure member |
| 52 | # renamed to avoid problems with the multithreaded errno support |
| 53 | # (there is a structure member called errno, used for shadowing the |
| 54 | # real errno, which conflicts with the errno redefinition of -Zmt) |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 55 | HAVE_BSDDB= no |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 56 | # Do you have the ncurses library installed? EMX's BSD curses aren't enough! |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 57 | HAVE_NCURSES= no |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 58 | # Do you have the GDBM library installed? |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 59 | HAVE_GDBM= no |
Andrew MacIntyre | 978697b | 2002-12-31 11:18:08 +0000 | [diff] [blame] | 60 | # Do you have the BZ2 compression library installed? |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 61 | HAVE_BZ2= no |
Andrew MacIntyre | 744b313 | 2005-02-17 12:44:51 +0000 | [diff] [blame] | 62 | # Do you have the OpenSSL libraries installed |
| 63 | HAVE_OPENSSL= no |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 64 | |
| 65 | # === install locations === |
| 66 | # default value of PYTHONHOME |
Andrew MacIntyre | bb45037 | 2006-07-23 12:57:02 +0000 | [diff] [blame] | 67 | LIB_DIR=C:/Python25 |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 68 | # default is to have everything in or under PYTHONHOME |
| 69 | EXE_DIR=$(LIB_DIR) |
| 70 | DLL_DIR=$(EXE_DIR) |
| 71 | |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 72 | |
| 73 | # === The Tools === |
| 74 | CC= gcc |
| 75 | CFLAGS= -Zmt -Wall $(INCLUDE) |
| 76 | CFLAGS.LIB= $(CFLAGS) |
| 77 | LD= gcc |
| 78 | LDFLAGS= -Zmt -Zcrtdll -L. -lgcc |
| 79 | LDFLAGS.EXE= $(LDFLAGS) |
| 80 | LDFLAGS.DLL= $(LDFLAGS) -Zdll |
| 81 | LDFLAGS.A= $(LDFLAGS) $(LIBS) |
| 82 | ARFLAGS= crs |
| 83 | IMPLIB= emximp |
| 84 | EXPLIB= emxexp |
Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 85 | EXEOPT= emxbind |
Andrew MacIntyre | 4ee893f | 2003-07-13 13:41:59 +0000 | [diff] [blame] | 86 | PY_DEF= -DPy_BUILD_CORE |
Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 87 | |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 88 | |
| 89 | # adjust C compiler settings based on build options |
| 90 | ifeq ($(MODE),debug) |
| 91 | CFLAGS+= -g -O |
| 92 | LDFLAGS+= -g |
| 93 | else |
Andrew MacIntyre | 51578ae | 2003-12-02 12:21:20 +0000 | [diff] [blame] | 94 | CFLAGS+= -s -O3 -fomit-frame-pointer -mprobe |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 95 | LDFLAGS+= -s |
| 96 | endif |
Andrew MacIntyre | 4ee893f | 2003-07-13 13:41:59 +0000 | [diff] [blame] | 97 | CFLAGS+= $(PY_DEF) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 98 | ifeq ($(ASSERTIONS),no) |
| 99 | CFLAGS+= -DNDEBUG |
| 100 | endif |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 101 | ifeq ($(FIXED_PYHOME),yes) |
| 102 | CFLAGS+= -DPREFIX=$(DQUOTE)$(LIB_DIR)$(DQUOTE) |
| 103 | endif |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 104 | |
| 105 | # We're using the OMF format since EMX's ld has a obscure bug |
| 106 | # because of which it sometimes fails to build relocations |
| 107 | # in .data segment that point to another .data locations |
| 108 | # (except for the final linking if the .EXEs) |
| 109 | OMF= yes |
| 110 | |
| 111 | # if fork() support is required, the main executable must be linked with ld |
| 112 | EXEOMF= no |
| 113 | |
| 114 | # File extensions |
| 115 | MODULE.EXT= .pyd |
Andrew MacIntyre | 51578ae | 2003-12-02 12:21:20 +0000 | [diff] [blame] | 116 | MODLIB.EXT= .dll |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 117 | ifeq ($(OMF),yes) |
| 118 | O= .obj |
| 119 | A= .lib |
| 120 | AR= emxomfar |
| 121 | CFLAGS+= -Zomf |
| 122 | LDFLAGS+= -Zomf |
| 123 | ifeq ($(MODE),debug) |
| 124 | ARFLAGS= -p64 crs |
| 125 | else |
| 126 | ARFLAGS= -p32 crs |
| 127 | endif |
| 128 | else |
| 129 | O= .o |
| 130 | A= .a |
| 131 | AR= ar |
| 132 | endif |
| 133 | |
Andrew MacIntyre | ff59f3c | 2005-01-17 12:18:12 +0000 | [diff] [blame] | 134 | |
| 135 | # === Build time resource settings === |
| 136 | |
Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 137 | # EMX's default number of file handles is 40, which is sometimes insufficient |
| 138 | # (the tempfile regression test tries to create 100 temporary files) |
| 139 | NFILES=250 |
| 140 | |
Andrew MacIntyre | ff59f3c | 2005-01-17 12:18:12 +0000 | [diff] [blame] | 141 | # The default stack size for child threads is 64k bytes, which is |
| 142 | # insufficient for some applications which do a lot of work in threads |
| 143 | # (such as Zope, especially in conjunction with Plone). |
| 144 | # Note that this setting is distinct from the stack size for the main |
| 145 | # thread, which is set via the %.def rule below. |
| 146 | # EMX documents that the thread stack size should be at least 32768 bytes; |
| 147 | # for Zope/Plone at least 128k bytes is recommended. |
| 148 | # Uncomment & adjust the next line to override the default stack size: |
| 149 | #CFLAGS+= -DTHREAD_STACK_SIZE=0x20000 |
| 150 | |
| 151 | |
| 152 | # === The environment === |
| 153 | |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 154 | # Source file paths |
| 155 | SRCPATH=.;../../Python;../../Parser;../../Objects;../../Include;../../Modules |
| 156 | # Python contains the central core, containing the builtins and interpreter. |
| 157 | # Parser contains Python's Internal Parser and |
| 158 | # Standalone Parser Generator Program (Shares Some of Python's Modules) |
| 159 | # Objects contains Python Object Types |
| 160 | # Modules contains extension Modules (Built-In or as Separate DLLs) |
| 161 | |
| 162 | # Unix shells tend to use "$" as delimiter for variable names. |
| 163 | # Test for this behaviour and set $(BUCK) variable correspondigly ... |
| 164 | __TMP__:=$(shell echo $$$$) |
| 165 | ifeq ($(__TMP__),$$$$) |
| 166 | BUCK= $$ |
| 167 | BRO= ( |
| 168 | BRC= ) |
| 169 | else |
| 170 | BUCK= \$$ |
| 171 | BRO= \( |
| 172 | BRC= \) |
| 173 | endif |
| 174 | # Compute the "double quote" variable |
| 175 | __TMP__:=$(shell echo "") |
| 176 | ifeq ($(__TMP__),"") |
| 177 | DQUOTE= " |
| 178 | else |
| 179 | DQUOTE= \" |
| 180 | endif |
| 181 | |
| 182 | # Include paths |
| 183 | #INCLUDE= -I$(subst ;, -I, $(SRCPATH)) |
| 184 | INCLUDE= -I. -I../../Include |
| 185 | |
| 186 | # Path to search for .c files |
| 187 | vpath %.c .;..;$(SRCPATH) |
| 188 | |
| 189 | # Top of the package tree |
| 190 | TOP= ../../ |
| 191 | |
| 192 | # Directory for output files |
| 193 | OUTBASE= out/ |
| 194 | OUT= $(OUTBASE)$(MODE)/ |
| 195 | |
| 196 | # Additional libraries |
| 197 | LIBS= -lsocket |
| 198 | |
| 199 | # Utility macro: replacement for $^ |
| 200 | ^^= $(filter-out %$A,$^) |
| 201 | # Use $(L^) to link with all libraries specified as dependencies |
| 202 | L^= $(addprefix -l,$(basename $(notdir $(filter %$A,$+)))) |
| 203 | |
| 204 | # Build rules |
| 205 | $(OUT)%$O: %.c |
| 206 | $(CC) $(CFLAGS.LIB) -c $< -o $@ |
| 207 | |
| 208 | %.a: |
| 209 | $(LD) $(LDFLAGS.A) -o $@ $(^^) $(L^) |
| 210 | |
| 211 | %.dll: |
| 212 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) |
| 213 | |
| 214 | %.pyd: $(OUT)%module$O $(OUT)%_m.def |
| 215 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(PYTHON.IMPLIB) $(LIBS) |
| 216 | |
| 217 | %.exe: |
| 218 | $(LD) $(LDFLAGS.EXE) -o $@ $(^^) $(L^) |
| 219 | |
| 220 | %_m.def: |
| 221 | @echo Creating .DEF file: $@ |
| 222 | @echo LIBRARY $(notdir $*) INITINSTANCE TERMINSTANCE >$@ |
| 223 | ifeq ($(DESCRIPTION.$(notdir $*)$(MODULE.EXT)),) |
| 224 | @echo DESCRIPTION $(DQUOTE)Python standard module $(notdir $*)$(DQUOTE) >>$@ |
| 225 | else |
| 226 | @echo DESCRIPTION $(DQUOTE)$(DESCRIPTION.$(notdir $*)$(MODULE.EXT))$(DQUOTE) >>$@ |
| 227 | endif |
| 228 | @echo DATA MULTIPLE NONSHARED >>$@ |
| 229 | @echo EXPORTS >>$@ |
| 230 | @echo init$(notdir $*) >>$@ |
| 231 | |
| 232 | %.def: |
| 233 | @echo Creating .DEF file: $@ |
| 234 | @echo NAME $(notdir $*) $(EXETYPE.$(notdir $*).exe) >$@ |
| 235 | @echo DESCRIPTION $(DQUOTE)$(DESCRIPTION.$(notdir $*).exe)$(DQUOTE) >>$@ |
Andrew MacIntyre | ff59f3c | 2005-01-17 12:18:12 +0000 | [diff] [blame] | 236 | @echo STACKSIZE 2097152 >>$@ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 237 | |
| 238 | # Output file names |
Andrew MacIntyre | bb45037 | 2006-07-23 12:57:02 +0000 | [diff] [blame] | 239 | PYTHON_VER= 2.5 |
| 240 | PYTHON_LIB= python25 |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 241 | PYTHON.LIB= $(PYTHON_LIB)_s$A |
| 242 | PYTHON.IMPLIB= $(PYTHON_LIB)$A |
| 243 | ifeq ($(EXEOMF),yes) |
| 244 | PYTHON.EXEIMP= $(PYTHON.IMPLIB) |
| 245 | LDMODE.EXE= -Zomf |
| 246 | else |
| 247 | PYTHON.EXEIMP= $(PYTHON_LIB).a |
| 248 | LDMODE.EXE = |
| 249 | endif |
| 250 | PYTHON.DLL= $(PYTHON_LIB).dll |
| 251 | PYTHON.DEF= $(PYTHON_LIB).def |
| 252 | PYTHON.EXE= python.exe |
| 253 | PYTHONPM.EXE= pythonpm.exe |
| 254 | PGEN.EXE= pgen.exe |
| 255 | LIBRARY= $(PYTHON.LIB) |
| 256 | LD_LIBRARY= $(PYTHON.IMPLIB) |
| 257 | |
| 258 | # Additional executable parameters |
| 259 | EXETYPE.$(PYTHON.EXE)= WINDOWCOMPAT |
| 260 | EXETYPE.$(PYTHONPM.EXE)= WINDOWAPI |
| 261 | EXETYPE.$(PGEN.EXE)= WINDOWCOMPAT |
| 262 | DESCRIPTION.$(PYTHON.EXE)= Python object-oriented programming language interpreter for OS/2 |
| 263 | DESCRIPTION.$(PYTHONPM.EXE)= $(DESCRIPTION.$(PYTHON.EXE)) |
| 264 | DESCRIPTION.$(PGEN.EXE)= Python object-oriented programming language parser generator for OS/2 |
| 265 | |
| 266 | # Module descriptions |
| 267 | DESCRIPTION.zlib$(MODULE.EXT)= Python Extension DLL for accessing the InfoZip compression library |
| 268 | DESCRIPTION.crypt$(MODULE.EXT)= Python Extension DLL implementing the crypt$(BRO)$(BRC) function |
| 269 | DESCRIPTION._tkinter$(MODULE.EXT)= Python Extension DLL for access to Tcl/Tk Environment |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 270 | DESCRIPTION.readline$(MODULE.EXT)= Python Extension DLL for access to GNU ReadLine library |
Andrew MacIntyre | e7a8cad | 2002-12-04 12:37:17 +0000 | [diff] [blame] | 271 | DESCRIPTION.bsddb185$(MODULE.EXT)= Python Extension DLL for access to BSD DB (v1.85) library |
Andrew MacIntyre | 51578ae | 2003-12-02 12:21:20 +0000 | [diff] [blame] | 272 | DESCRIPTION._curses$(MODLIB.EXT)= Python Extension DLL for access to ncurses library |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 273 | DESCRIPTION.pyexpat$(MODULE.EXT)= Python Extension DLL for access to expat library |
Andrew MacIntyre | 978697b | 2002-12-31 11:18:08 +0000 | [diff] [blame] | 274 | DESCRIPTION.bz2$(MODULE.EXT)= Python Extension DLL for accessing the bz2 compression library |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 275 | |
| 276 | # Source files |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 277 | SRC.OS2EMX= config.c dlfcn.c getpathp.c |
| 278 | SRC.MAIN= $(addprefix $(TOP), \ |
| 279 | Modules/getbuildinfo.c \ |
| 280 | Modules/main.c) |
| 281 | SRC.MODULES= $(addprefix $(TOP), \ |
| 282 | Modules/gcmodule.c \ |
| 283 | Modules/signalmodule.c \ |
| 284 | Modules/posixmodule.c \ |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 285 | Modules/threadmodule.c \ |
| 286 | Modules/arraymodule.c \ |
| 287 | Modules/binascii.c \ |
| 288 | Modules/cmathmodule.c \ |
| 289 | Modules/_codecsmodule.c \ |
Andrew MacIntyre | 378d3c0 | 2004-07-07 13:55:25 +0000 | [diff] [blame] | 290 | Modules/collectionsmodule.c \ |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 291 | Modules/cPickle.c \ |
| 292 | Modules/cStringIO.c \ |
| 293 | Modules/_csv.c \ |
| 294 | Modules/datetimemodule.c \ |
| 295 | Modules/dlmodule.c \ |
| 296 | Modules/errnomodule.c \ |
| 297 | Modules/fcntlmodule.c \ |
Andrew MacIntyre | bb45037 | 2006-07-23 12:57:02 +0000 | [diff] [blame] | 298 | Modules/_functoolsmodule.c \ |
Andrew MacIntyre | 378d3c0 | 2004-07-07 13:55:25 +0000 | [diff] [blame] | 299 | Modules/_heapqmodule.c \ |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 300 | Modules/imageop.c \ |
| 301 | Modules/itertoolsmodule.c \ |
| 302 | Modules/_localemodule.c \ |
| 303 | Modules/mathmodule.c \ |
Andrew MacIntyre | bb45037 | 2006-07-23 12:57:02 +0000 | [diff] [blame] | 304 | Modules/md5.c \ |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 305 | Modules/md5module.c \ |
| 306 | Modules/operator.c \ |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 307 | Modules/_randommodule.c \ |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 308 | Modules/rgbimgmodule.c \ |
| 309 | Modules/shamodule.c \ |
Andrew MacIntyre | bb45037 | 2006-07-23 12:57:02 +0000 | [diff] [blame] | 310 | Modules/sha256module.c \ |
| 311 | Modules/sha512module.c \ |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 312 | Modules/_sre.c \ |
| 313 | Modules/stropmodule.c \ |
Andrew MacIntyre | bb45037 | 2006-07-23 12:57:02 +0000 | [diff] [blame] | 314 | Modules/_struct.c \ |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 315 | Modules/symtablemodule.c \ |
| 316 | Modules/termios.c \ |
| 317 | Modules/timemodule.c \ |
| 318 | Modules/timingmodule.c \ |
| 319 | Modules/_weakref.c \ |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 320 | Modules/xxsubtype.c \ |
| 321 | Modules/zipimport.c) |
Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 322 | SRC.PARSE1= $(addprefix $(TOP), \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 323 | Parser/acceler.c \ |
| 324 | Parser/grammar1.c \ |
| 325 | Parser/listnode.c \ |
| 326 | Parser/node.c \ |
| 327 | Parser/parser.c \ |
| 328 | Parser/parsetok.c \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 329 | Parser/bitset.c \ |
Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 330 | Parser/metagrammar.c) |
| 331 | SRC.PARSE2= $(addprefix $(TOP), \ |
| 332 | Parser/tokenizer.c \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 333 | Parser/myreadline.c) |
Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 334 | SRC.PARSER= $(SRC.PARSE1) \ |
| 335 | $(SRC.PARSE2) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 336 | SRC.PYTHON= $(addprefix $(TOP), \ |
Andrew MacIntyre | bb45037 | 2006-07-23 12:57:02 +0000 | [diff] [blame] | 337 | Python/Python-ast.c \ |
| 338 | Python/asdl.c \ |
| 339 | Python/ast.c \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 340 | Python/bltinmodule.c \ |
| 341 | Python/exceptions.c \ |
| 342 | Python/ceval.c \ |
| 343 | Python/compile.c \ |
| 344 | Python/codecs.c \ |
| 345 | Python/errors.c \ |
| 346 | Python/frozen.c \ |
| 347 | Python/frozenmain.c \ |
| 348 | Python/future.c \ |
| 349 | Python/getargs.c \ |
| 350 | Python/getcompiler.c \ |
| 351 | Python/getcopyright.c \ |
| 352 | Python/getmtime.c \ |
| 353 | Python/getplatform.c \ |
| 354 | Python/getversion.c \ |
| 355 | Python/graminit.c \ |
| 356 | Python/import.c \ |
| 357 | Python/importdl.c \ |
| 358 | Python/marshal.c \ |
| 359 | Python/modsupport.c \ |
| 360 | Python/mysnprintf.c \ |
| 361 | Python/mystrtoul.c \ |
Andrew MacIntyre | bb45037 | 2006-07-23 12:57:02 +0000 | [diff] [blame] | 362 | Python/pyarena.c \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 363 | Python/pyfpe.c \ |
| 364 | Python/pystate.c \ |
Andrew MacIntyre | 378d3c0 | 2004-07-07 13:55:25 +0000 | [diff] [blame] | 365 | Python/pystrtod.c \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 366 | Python/pythonrun.c \ |
| 367 | Python/structmember.c \ |
| 368 | Python/symtable.c \ |
| 369 | Python/sysmodule.c \ |
| 370 | Python/traceback.c \ |
| 371 | Python/getopt.c \ |
| 372 | Python/dynload_shlib.c \ |
| 373 | Python/thread.c) |
| 374 | SRC.OBJECT= $(addprefix $(TOP), \ |
| 375 | Objects/abstract.c \ |
Andrew MacIntyre | 6c65531 | 2002-04-15 12:09:45 +0000 | [diff] [blame] | 376 | Objects/boolobject.c \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 377 | Objects/bufferobject.c \ |
| 378 | Objects/cellobject.c \ |
| 379 | Objects/classobject.c \ |
| 380 | Objects/cobject.c \ |
Andrew MacIntyre | bb45037 | 2006-07-23 12:57:02 +0000 | [diff] [blame] | 381 | Objects/codeobject.c \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 382 | Objects/complexobject.c \ |
| 383 | Objects/descrobject.c \ |
| 384 | Objects/dictobject.c \ |
Andrew MacIntyre | 07c639f | 2002-04-30 13:06:32 +0000 | [diff] [blame] | 385 | Objects/enumobject.c \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 386 | Objects/fileobject.c \ |
| 387 | Objects/floatobject.c \ |
| 388 | Objects/frameobject.c \ |
| 389 | Objects/funcobject.c \ |
Andrew MacIntyre | 378d3c0 | 2004-07-07 13:55:25 +0000 | [diff] [blame] | 390 | Objects/genobject.c \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 391 | Objects/intobject.c \ |
| 392 | Objects/iterobject.c \ |
| 393 | Objects/listobject.c \ |
| 394 | Objects/longobject.c \ |
| 395 | Objects/methodobject.c \ |
| 396 | Objects/moduleobject.c \ |
| 397 | Objects/object.c \ |
Andrew MacIntyre | 6c65531 | 2002-04-15 12:09:45 +0000 | [diff] [blame] | 398 | Objects/obmalloc.c \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 399 | Objects/rangeobject.c \ |
Andrew MacIntyre | 378d3c0 | 2004-07-07 13:55:25 +0000 | [diff] [blame] | 400 | Objects/setobject.c \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 401 | Objects/sliceobject.c \ |
| 402 | Objects/stringobject.c \ |
| 403 | Objects/structseq.c \ |
| 404 | Objects/tupleobject.c \ |
| 405 | Objects/typeobject.c \ |
| 406 | Objects/unicodeobject.c \ |
| 407 | Objects/unicodectype.c \ |
| 408 | Objects/weakrefobject.c) |
| 409 | |
| 410 | SRC.LIB= $(SRC.OS2EMX) \ |
| 411 | $(SRC.MAIN) \ |
| 412 | $(SRC.PARSER) \ |
| 413 | $(SRC.OBJECT) \ |
| 414 | $(SRC.PYTHON) \ |
| 415 | $(SRC.MODULES) |
| 416 | OBJ.LIB= $(addprefix $(OUT),$(notdir $(SRC.LIB:.c=$O))) |
| 417 | |
Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 418 | SRC.PGEN= $(SRC.PARSE1) \ |
| 419 | $(addprefix $(TOP), \ |
| 420 | Objects/obmalloc.c) \ |
| 421 | $(addprefix $(TOP), \ |
| 422 | Python/mysnprintf.c) \ |
| 423 | $(addprefix $(TOP), \ |
| 424 | Parser/tokenizer_pgen.c \ |
| 425 | Parser/pgenmain.c \ |
| 426 | Parser/pgen.c \ |
| 427 | Parser/printgrammar.c \ |
| 428 | Parser/grammar.c \ |
| 429 | Parser/firstsets.c) \ |
| 430 | |
| 431 | OBJ.PGEN= $(addprefix $(OUT),$(notdir $(SRC.PGEN:.c=$O))) |
| 432 | |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 433 | SRC.EXE= $(TOP)Modules/python.c |
| 434 | SRC.PMEXE= pythonpm.c |
| 435 | |
| 436 | # Python modules to be dynamically loaded that: |
| 437 | # 1) have only single source file and require no extra libs |
| 438 | # 2) use the standard module naming convention |
| 439 | # (the 'module' in ?????module.c is assumed) |
| 440 | # - these can be built with implicit rules |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 441 | EASYEXTMODULES= fpectl \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 442 | fpetest \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 443 | parser \ |
| 444 | pwd \ |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 445 | select |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 446 | |
| 447 | # Python modules to be dynamically loaded that need explicit build rules |
| 448 | # (either multiple source files and/or non-standard module naming) |
| 449 | # (NOTE: use shortened names for modules affected by 8 char name limit) |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 450 | HARDEXTMODULES= _hotshot \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 451 | _socket \ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 452 | _testcap \ |
Andrew MacIntyre | 631e87f | 2003-04-21 14:33:04 +0000 | [diff] [blame] | 453 | unicoded |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 454 | |
Andrew MacIntyre | 51578ae | 2003-12-02 12:21:20 +0000 | [diff] [blame] | 455 | # Python modules that are used as libraries and therefore must use |
| 456 | # a .DLL extension |
| 457 | LIBEXTMODULES= |
| 458 | |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 459 | # Python external ($(MODULE.EXT)) modules - can be EASY or HARD |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 460 | ifeq ($(HAVE_ZLIB),yes) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 461 | HARDEXTMODULES+= zlib |
| 462 | endif |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 463 | ifeq ($(HAVE_UFC),yes) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 464 | HARDEXTMODULES+= crypt |
| 465 | endif |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 466 | ifeq ($(HAVE_TCLTK),yes) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 467 | HARDEXTMODULES+= _tkinter |
| 468 | CFLAGS+= -DHAS_DIRENT -I/TclTk80/include |
| 469 | TK_LIBS+= -L/TclTk80/lib -ltcl80 -ltk80 |
| 470 | endif |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 471 | ifeq ($(HAVE_GREADLINE),yes) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 472 | HARDEXTMODULES+= readline |
| 473 | endif |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 474 | ifeq ($(HAVE_BSDDB),yes) |
Andrew MacIntyre | e7a8cad | 2002-12-04 12:37:17 +0000 | [diff] [blame] | 475 | HARDEXTMODULES+= bsddb185 |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 476 | endif |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 477 | ifeq ($(HAVE_NCURSES),yes) |
Andrew MacIntyre | 51578ae | 2003-12-02 12:21:20 +0000 | [diff] [blame] | 478 | LIBEXTMODULES+= _curses |
| 479 | HARDEXTMODULES+= _curses_ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 480 | endif |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 481 | ifeq ($(HAVE_GDBM),yes) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 482 | HARDEXTMODULES+= gdbm dbm |
| 483 | endif |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 484 | ifeq ($(HAVE_BZ2),yes) |
Andrew MacIntyre | 978697b | 2002-12-31 11:18:08 +0000 | [diff] [blame] | 485 | HARDEXTMODULES+= bz2 |
| 486 | endif |
Andrew MacIntyre | 744b313 | 2005-02-17 12:44:51 +0000 | [diff] [blame] | 487 | ifeq ($(HAVE_OPENSSL),yes) |
| 488 | HARDEXTMODULES+= _ssl |
| 489 | endif |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 490 | |
Andrew MacIntyre | 978697b | 2002-12-31 11:18:08 +0000 | [diff] [blame] | 491 | # Expat is now distributed with the Python source |
| 492 | HARDEXTMODULES+= pyexpat |
| 493 | EXPAT.INC= -I../../Modules/expat |
| 494 | EXPAT.DEF= -DHAVE_EXPAT_H -DXML_NS=1 -DXML_DTD=1 -DXML_BYTE_ORDER=12 \ |
Andrew MacIntyre | 4d04639 | 2003-12-25 13:25:20 +0000 | [diff] [blame] | 495 | -DXML_CONTENT_BYTES=1024 -DHAVE_MEMMOVE=1 -DHAVE_BCOPY=1 |
Andrew MacIntyre | 978697b | 2002-12-31 11:18:08 +0000 | [diff] [blame] | 496 | EXPAT.SRC= $(addprefix ../../Modules/expat/, \ |
| 497 | xmlparse.c \ |
| 498 | xmlrole.c \ |
| 499 | xmltok.c) |
| 500 | |
| 501 | # all the external modules |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 502 | EXTERNDLLS= $(addsuffix $(MODULE.EXT),$(patsubst %module,%,$(EASYEXTMODULES))) |
| 503 | EXTERNDLLS+= $(addsuffix $(MODULE.EXT),$(patsubst %module,%,$(HARDEXTMODULES))) |
Andrew MacIntyre | 51578ae | 2003-12-02 12:21:20 +0000 | [diff] [blame] | 504 | EXTERNDLLS+= $(addsuffix $(MODLIB.EXT),$(patsubst %module,%,$(LIBEXTMODULES))) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 505 | |
| 506 | # Targets |
| 507 | all: $(OUT) $(PYTHON.LIB) $(PYTHON.DEF) $(PYTHON.IMPLIB) $(PYTHON.DLL) \ |
Andrew MacIntyre | 4ee893f | 2003-07-13 13:41:59 +0000 | [diff] [blame] | 508 | python_noncore |
| 509 | |
| 510 | python_noncore: |
| 511 | make PY_DEF= $(PYTHON.EXE) $(PYTHONPM.EXE) $(PGEN.EXE) $(EXTERNDLLS) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 512 | |
| 513 | clean: |
| 514 | rm -f $(OUT)* |
| 515 | rm -f $(PYTHON.LIB) $(PYTHON.IMPLIB) $(PYTHON.EXEIMP) $(PYTHON.DLL) \ |
Andrew MacIntyre | 378d3c0 | 2004-07-07 13:55:25 +0000 | [diff] [blame] | 516 | $(PYTHON.EXE) $(PYTHONPM.EXE) $(PGEN.EXE) *$(MODULE.EXT) *.dll |
Andrew MacIntyre | 4ee893f | 2003-07-13 13:41:59 +0000 | [diff] [blame] | 517 | find ../../Lib -name "*.py[co]" -exec rm {} ";" |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 518 | |
| 519 | lx: |
| 520 | @echo Packing everything with lxLite... |
| 521 | lxlite $(PYTHON.DLL) $(PYTHON.EXE) $(PYTHONPM.EXE) $(PGEN.EXE) |
| 522 | |
| 523 | depend: $(OUTBASE) |
| 524 | makedep -f $(OUTBASE)python.dep -o $(BUCK)O -p $(BUCK)\(OUT\) \ |
| 525 | -r -c $(INCLUDE) $(SRC.LIB) $(SRC.PGEN) |
| 526 | |
| 527 | $(OUT): $(OUTBASE) |
| 528 | |
| 529 | $(OUT) $(OUTBASE): |
| 530 | mkdir.exe $@ |
| 531 | |
| 532 | $(PYTHON.LIB): $(OBJ.LIB) |
| 533 | rm.exe -f $@ |
| 534 | $(AR) $(ARFLAGS) $@ $^ |
| 535 | |
Andrew MacIntyre | 4ee893f | 2003-07-13 13:41:59 +0000 | [diff] [blame] | 536 | # the Python core DLL .def file needs to have a number of non-static |
| 537 | # symbols that aren't part of the Python C API removed (commented out) |
| 538 | # from the DLL export list. |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 539 | $(PYTHON.DEF): $(PYTHON.LIB) |
| 540 | @echo Creating .DEF file: $@ |
| 541 | @echo LIBRARY $(PYTHON_LIB) INITINSTANCE TERMINSTANCE >$@ |
| 542 | @echo DESCRIPTION $(DQUOTE)Python $(PYTHON_VER) Core DLL$(DQUOTE) >>$@ |
| 543 | @echo PROTMODE >>$@ |
| 544 | @echo DATA MULTIPLE NONSHARED >>$@ |
| 545 | @echo EXPORTS >>$@ |
Andrew MacIntyre | 4ee893f | 2003-07-13 13:41:59 +0000 | [diff] [blame] | 546 | $(EXPLIB) -u $(PYTHON.LIB) |\ |
Andrew MacIntyre | bac1ea9 | 2003-07-16 13:31:11 +0000 | [diff] [blame] | 547 | sed -e "/^ .init.*/s/^ /; /" \ |
| 548 | -e "/^ .pcre_.*/s/^ /; /" \ |
| 549 | -e "/^ .array_methods/s/^ /; /" \ |
| 550 | -e "/^ .fast_save_leave/s/^ /; /" \ |
| 551 | -e "/^ .dlopen/s/^ /; /" \ |
| 552 | -e "/^ .dlsym/s/^ /; /" \ |
| 553 | -e "/^ .dlclose/s/^ /; /" \ |
| 554 | -e "/^ .dlerror/s/^ /; /" \ |
| 555 | -e "/^ ._Py_re_.*/s/^ /; /" \ |
| 556 | -e "/^ ._Py_MD5.*/s/^ /; /" >>$@ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 557 | |
| 558 | $(PYTHON.IMPLIB): $(PYTHON.DEF) |
| 559 | $(IMPLIB) -o $@ $^ |
| 560 | |
| 561 | $(PYTHON.EXEIMP): $(PYTHON.DEF) |
| 562 | $(IMPLIB) -o $@ $^ |
| 563 | |
| 564 | $(PYTHON.DLL): $(OUT)dllentry$O $(PYTHON.LIB) $(PYTHON.DEF) |
| 565 | |
| 566 | # Explicit make targets for the .EXEs to be able to use LD to link |
| 567 | # (so that fork() will work if required) |
| 568 | |
| 569 | $(PYTHON.EXE): $(SRC.EXE) $(PYTHON.EXEIMP) $(OUT)python.def |
| 570 | $(CC) -Zmt $(LDMODE.EXE) -Zcrtdll -Wall $(INCLUDE) -L. -lgcc -o $@ $(SRC.EXE) $(PYTHON.EXEIMP) $(LIBS) $(OUT)python.def |
Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 571 | $(EXEOPT) -aq $(PYTHON.EXE) -h$(NFILES) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 572 | |
| 573 | $(PYTHONPM.EXE): $(SRC.PMEXE) $(PYTHON.EXEIMP) $(OUT)pythonpm.def |
| 574 | $(CC) -Zmt $(LDMODE.EXE) -Zcrtdll -Wall $(INCLUDE) -L. -lgcc -o $@ $(SRC.PMEXE) $(PYTHON.EXEIMP) $(LIBS) $(OUT)pythonpm.def |
Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 575 | $(EXEOPT) -aq $(PYTHONPM.EXE) -h$(NFILES) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 576 | |
Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 577 | $(PGEN.EXE): $(OBJ.PGEN) $(OUT)pgen.def |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 578 | |
| 579 | # Explicit building instructions for those external modules that require |
| 580 | # awkward handling (due e.g. to non-std naming, or multiple source files) |
| 581 | # - standard modules |
Andrew MacIntyre | d4c9b16 | 2003-04-21 14:28:01 +0000 | [diff] [blame] | 582 | |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 583 | _hotshot$(MODULE.EXT): $(OUT)_hotshot$O $(OUT)_hotshot_m.def $(PYTHON.IMPLIB) |
| 584 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) |
| 585 | |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 586 | _socket$(MODULE.EXT): $(OUT)socketmodule$O $(OUT)_socket_m.def $(PYTHON.IMPLIB) |
| 587 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) |
| 588 | |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 589 | # _testcapi needs to be renamed to be useful |
| 590 | _testcapi$(MODULE.EXT): $(OUT)_testcapimodule$O $(OUT)_testcapi_m.def $(PYTHON.IMPLIB) |
| 591 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) |
| 592 | |
| 593 | _testcap$(MODULE.EXT): _testcapi$(MODULE.EXT) |
| 594 | cp $^ $@ |
| 595 | |
| 596 | # unicodedata needs to be renamed to be useful |
| 597 | unicodedata$(MODULE.EXT): $(OUT)unicodedata$O $(OUT)unicodedata_m.def $(PYTHON.IMPLIB) |
| 598 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) $(MODULE_LIBS) |
| 599 | |
| 600 | unicoded$(MODULE.EXT): unicodedata$(MODULE.EXT) |
| 601 | cp $^ $@ |
| 602 | |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 603 | # - optional modules (requiring other software to be installed) |
Andrew MacIntyre | e7a8cad | 2002-12-04 12:37:17 +0000 | [diff] [blame] | 604 | bsddb185$(MODULE.EXT): $(OUT)bsddbmodule$O $(OUT)bsddb185_m.def $(PYTHON.IMPLIB) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 605 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) -ldb $(LIBS) |
| 606 | |
| 607 | crypt$(MODULE.EXT): $(OUT)cryptmodule$O $(OUT)crypt_m.def $(PYTHON.IMPLIB) |
| 608 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) -lufc $(LIBS) |
| 609 | |
| 610 | # The _curses_panel module requires a couple of ncurses library entry |
| 611 | # points, which are best exposed as exports from the _curses module DLL |
| 612 | $(OUT)_curses_m.def: |
| 613 | @echo Creating .DEF file: $@ |
| 614 | @echo LIBRARY $(notdir $*) INITINSTANCE TERMINSTANCE >$@ |
Andrew MacIntyre | 51578ae | 2003-12-02 12:21:20 +0000 | [diff] [blame] | 615 | @echo DESCRIPTION $(DQUOTE)$(DESCRIPTION.$(notdir $*)$(MODLIB.EXT))$(DQUOTE) >>$@ |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 616 | @echo DATA MULTIPLE NONSHARED >>$@ |
| 617 | @echo EXPORTS >>$@ |
| 618 | @echo init_curses >>$@ |
| 619 | @echo wnoutrefresh >>$@ |
| 620 | @echo _nc_panelhook >>$@ |
| 621 | @echo is_linetouched >>$@ |
| 622 | @echo mvwin >>$@ |
| 623 | @echo stdscr >>$@ |
| 624 | @echo wtouchln >>$@ |
| 625 | |
| 626 | $(OUT)_curses_panel_m.def: |
| 627 | @echo Creating .DEF file: $@ |
| 628 | @echo LIBRARY $(notdir $*) INITINSTANCE TERMINSTANCE >$@ |
| 629 | @echo DESCRIPTION $(DQUOTE)Python standard module $(notdir $*)$(DQUOTE) >>$@ |
| 630 | @echo DATA MULTIPLE NONSHARED >>$@ |
| 631 | @echo IMPORTS >>$@ |
| 632 | @echo _curses.wnoutrefresh >>$@ |
| 633 | @echo _curses._nc_panelhook >>$@ |
| 634 | @echo _curses.is_linetouched >>$@ |
| 635 | @echo _curses.mvwin >>$@ |
| 636 | @echo _curses.stdscr >>$@ |
| 637 | @echo _curses.wtouchln >>$@ |
| 638 | @echo EXPORTS >>$@ |
| 639 | @echo init_curses_panel >>$@ |
| 640 | |
Andrew MacIntyre | 51578ae | 2003-12-02 12:21:20 +0000 | [diff] [blame] | 641 | _curses$(MODLIB.EXT): $(OUT)_cursesmodule$O $(OUT)_curses_m.def $(PYTHON.IMPLIB) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 642 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) -lncurses |
| 643 | |
| 644 | # curses_panel needs to be renamed to be useful |
| 645 | _curses_panel$(MODULE.EXT): $(OUT)_curses_panel$O $(OUT)_curses_panel_m.def $(PYTHON.IMPLIB) |
| 646 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) -lpanel |
| 647 | |
| 648 | _curses_$(MODULE.EXT): _curses_panel$(MODULE.EXT) |
| 649 | cp $^ $@ |
| 650 | |
| 651 | dbm$(MODULE.EXT): $(OUT)dbmmodule$O $(OUT)dbm_m.def $(PYTHON.IMPLIB) |
| 652 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) -lgdbm |
| 653 | |
| 654 | gdbm$(MODULE.EXT): $(OUT)gdbmmodule$O $(OUT)gdbm_m.def $(PYTHON.IMPLIB) |
| 655 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) -lgdbm |
| 656 | |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 657 | |
Andrew MacIntyre | 978697b | 2002-12-31 11:18:08 +0000 | [diff] [blame] | 658 | # Expat is now distributed with Python, so use the included version |
| 659 | $(OUT)pyexpat$O: ../../Modules/pyexpat.c |
| 660 | $(CC) $(CFLAGS) $(EXPAT.INC) -c -o $@ $^ |
| 661 | $(OUT)xmlparse$O: ../../Modules/expat/xmlparse.c |
| 662 | $(CC) $(CFLAGS) $(EXPAT.INC) $(EXPAT.DEF) -c -o $@ $^ |
| 663 | $(OUT)xmlrole$O: ../../Modules/expat/xmlrole.c |
| 664 | $(CC) $(CFLAGS) $(EXPAT.INC) $(EXPAT.DEF) -c -o $@ $^ |
| 665 | $(OUT)xmltok$O: ../../Modules/expat/xmltok.c |
| 666 | $(CC) $(CFLAGS) $(EXPAT.INC) $(EXPAT.DEF) -c -o $@ $^ |
| 667 | pyexpat$(MODULE.EXT): $(OUT)pyexpat$O $(OUT)xmlparse$O $(OUT)xmlrole$O \ |
| 668 | $(OUT)xmltok$O $(OUT)pyexpat_m.def $(PYTHON.IMPLIB) |
| 669 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 670 | |
| 671 | readline$(MODULE.EXT): $(OUT)readline$O $(OUT)readline_m.def $(PYTHON.IMPLIB) |
| 672 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) -lreadline -lncurses |
| 673 | |
| 674 | #_tkinter$(MODULE.EXT): $(OUT)_tkinter$O $(OUT)tclNotify$O $(OUT)tkappinit$O |
| 675 | _tkinter$(MODULE.EXT): $(OUT)_tkinter$O $(OUT)tclNotify$O \ |
Andrew MacIntyre | 4ee893f | 2003-07-13 13:41:59 +0000 | [diff] [blame] | 676 | $(OUT)_tkinter_m.def $(PYTHON.IMPLIB) |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 677 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) $(TK_LIBS) |
| 678 | |
| 679 | zlib$(MODULE.EXT): $(OUT)zlibmodule$O $(OUT)zlib_m.def $(PYTHON.IMPLIB) |
| 680 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) -lz |
| 681 | |
Andrew MacIntyre | 978697b | 2002-12-31 11:18:08 +0000 | [diff] [blame] | 682 | bz2$(MODULE.EXT): $(OUT)bz2module$O $(OUT)bz2_m.def $(PYTHON.IMPLIB) |
| 683 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) -lbz2 |
| 684 | |
Andrew MacIntyre | 744b313 | 2005-02-17 12:44:51 +0000 | [diff] [blame] | 685 | _ssl$(MODULE.EXT): $(OUT)_ssl$O $(OUT)_ssl_m.def $(PYTHON.IMPLIB) |
| 686 | $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) -lssl -lcrypto |
| 687 | |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 688 | # the test target |
| 689 | test: |
Andrew MacIntyre | 978697b | 2002-12-31 11:18:08 +0000 | [diff] [blame] | 690 | -find ../../Lib -name "*.py[co]" -exec rm {} ";" |
| 691 | -./python -E -tt ../../lib/test/regrtest.py -l -u "network" |
Andrew MacIntyre | 4fffdff | 2002-08-18 06:26:33 +0000 | [diff] [blame] | 692 | ./python -E -tt ../../lib/test/regrtest.py -l -u "network" |
Andrew MacIntyre | 41d97d6 | 2002-02-17 05:23:30 +0000 | [diff] [blame] | 693 | |
| 694 | -include $(OUTBASE)python.dep |