#---------------------------------------------------------------------------- # Name: makefile.nt # Purpose: Win32, VC++ 5/6 makefile for wxPython # # Author: Robin Dunn # # Created: 3/27/97 # RCS-ID: $Id$ # Copyright: (c) 1998 by Total Control Software # Licence: wxWindows license #---------------------------------------------------------------------------- VERSION=2.0b6 # Set WXDIR to the root wxWindows directory for your system WXDIR = $(WXWIN) # Set this to the root of the Python installation PYTHONDIR=e:\Tools\Python15 # Set this to 1 for a non-debug, optimised compile FINAL=0 # Set this to where you want the stuff installed at. It should # be a directory contained in a PYTHONPATH directory, and should be # named wxPython TARGETDIR=.. # Set this to 1 for make to pre-compile the Python modules, 0 to # just copy the sources and let Python compile them at the first # runtime. COMPILEPY=0 # If your wxWindows is built as a DLL, set this to 1. Using 0 means # that wxWindows will be staticaly linked with wxPython. WXUSINGDLL=1 # (experimental) SEPARATE=0 #---------------------------------------------------------------------- NOPCH=1 THISDIR=$(WXDIR)\utils\wxPython EXTRALIBS=$(PYTHONDIR)\libs\python15.lib EXTRAINC=-I$(PYTHONDIR)\include -I. EXTRAFLAGS=/Fpwxp.pch /YXhelpers.h -DSWIG_GLOBAL -DHAVE_CONFIG_H OVERRIDEFLAGS=/GX- /DwxUSE_GLOBAL_MEMORY_OPERATORS=0 $(OTHERCFLAGS) SWIGFLAGS=-c++ -shadow -python -dnone -D__WXMSW__ $(OTHERSWIGFLAGS) GENCODEDIR=msw !include $(WXDIR)\src\ntwxwin.mak #---------------------------------------------------------------------- TARGET = wxc OBJECTS = wx.obj helpers.obj windows.obj events.obj \ misc.obj gdi.obj mdi.obj controls.obj \ controls2.obj windows2.obj cmndlgs.obj stattool.obj \ frames.obj windows3.obj \ !if "$(SEPARATE)" == "0" utils.obj !else OTHERCFLAGS=-DSEPARATE=1 OTHERSWIGFLAGS=-DSEPARATE TARGET2 = utilsc OBJECTS2 = utils.obj target2=$(TARGETDIR)\$(TARGET2).pyd !endif PYMODULES = $(TARGETDIR)\wx.py $(TARGETDIR)\events.py \ $(TARGETDIR)\windows.py $(TARGETDIR)\misc.py \ $(TARGETDIR)\gdi.py $(TARGETDIR)\mdi.py \ $(TARGETDIR)\controls.py $(TARGETDIR)\controls2.py \ $(TARGETDIR)\windows2.py $(TARGETDIR)\cmndlgs.py \ $(TARGETDIR)\stattool.py $(TARGETDIR)\frames.py \ $(TARGETDIR)\utils.py $(TARGETDIR)\windows3.py \ $(TARGETDIR)\__init__.py #---------------------------------------------------------------------- !if "$(FINAL)" == "0" DEBUGLFLAGS = /DEBUG /INCREMENTAL:YES !else DEBUGLFLAGS = /INCREMENTAL:NO !endif LFLAGS= $(DEBUGLFLAGS) /DLL /def:$(TARGET).def /subsystem:windows,3.50 \ /machine:I386 /implib:./$(TARGET).lib /nologo LFLAGS2=$(DEBUGLFLAGS) /DLL /def:$(TARGET2).def /subsystem:windows,3.50 \ /machine:I386 /implib:./$(TARGET2).lib /nologo #---------------------------------------------------------------------- default: $(TARGETDIR)\$(TARGET).pyd $(target2) pycfiles all: wx $(TARGET) $(TARGET2) wx: cd $(WXDIR)\src\msw nmake -f makefile.nt FINAL=$(FINAL) cd $(THISDIR) wxclean: cd $(WXDIR)\src\msw nmake -f makefile.nt clean cd $(THISDIR) pycfiles : $(PYMODULES) !if "$(COMPILEPY)" == "1" $(PYTHONDIR)\python $(PYTHONDIR)\Lib\compileall.py -l $(TARGETDIR) $(PYTHONDIR)\python -O $(PYTHONDIR)\Lib\compileall.py -l $(TARGETDIR) !endif #---------------------------------------------------------------------- $(TARGETDIR)\$(TARGET).pyd : $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(TARGET).res $(link) @<< /out:$@ /dll $(LFLAGS) $(DUMMYOBJ) $(OBJECTS) $(TARGET).res $(LIBS) << $(TARGETDIR)\$(TARGET2).pyd : $(DUMMYOBJ) $(WXLIB) $(OBJECTS2) $(link) @<< /out:$@ /dll $(LFLAGS2) $(DUMMYOBJ) $(OBJECTS2) $(LIBS) << $(TARGET).res : $(TARGET).rc $(WXDIR)\include\wx\msw\wx.rc $(rc) -r /i$(WXDIR)\include -fo$@ $(TARGET).rc # implicit rule for compiling .cpp files {}.cpp{}.obj: $(cc) @<< $(CPPFLAGS) /c /Tp $< << {$(GENCODEDIR)}.cpp{}.obj: $(cc) @<< $(CPPFLAGS) /c /Tp $< << clean: -erase *.obj -erase *.exe -erase *.res -erase *.map -erase *.sbr -erase *.pdb -erase *.pch -erase $(TARGET).exp -erase $(TARGET).lib -erase $(TARGETDIR)\$(TARGET).* !if "$(SEPARATE)" != "0" -erase $(TARGET2).exp -erase $(TARGET2).lib -erase $(TARGETDIR)\$(TARGET2).* !endif -erase $(TARGETDIR)\$(TARGET).pyd -erase $(TARGETDIR)\*.py -erase $(TARGETDIR)\*.pyc -erase $(TARGETDIR)\*.pyo showflags: @echo $(CPPFLAGS) #------------------------------------------------------------------------ .SUFFIXES : .i .py # Implicit rules to run SWIG {}.i{$(GENCODEDIR)}.cpp: swig $(SWIGFLAGS) -c -o $@ $< {}.i{$(GENCODEDIR)}.py: swig $(SWIGFLAGS) -c -o $@ $< {$(GENCODEDIR)}.py{$(TARGETDIR)}.py: copy $< $@ {}.py{$(TARGETDIR)}.py: copy $< $@ #{}.py{$(TARGETDIR)}.$(PYEXT): # $(PYTHON) -c "import py_compile; py_compile.compile('$<', '$@')" # This one must leave out the -c flag so we define the whole rule $(GENCODEDIR)\wx.cpp $(GENCODEDIR)\wx.py : wx.i my_typemaps.i _defs.i _extras.py swig $(SWIGFLAGS) -o $(GENCODEDIR)/wx.cpp wx.i # Define some dependencies. These MUST use forward slashes so SWIG # will write the shadow file to the right directory. $(GENCODEDIR)/windows.cpp $(GENCODEDIR)/windows.py : windows.i my_typemaps.i _defs.i $(GENCODEDIR)/windows2.cpp $(GENCODEDIR)/windows2.py : windows2.i my_typemaps.i _defs.i $(GENCODEDIR)/windows3.cpp $(GENCODEDIR)/windows3.py : windows3.i my_typemaps.i _defs.i $(GENCODEDIR)/events.cpp $(GENCODEDIR)/events.py : events.i my_typemaps.i _defs.i $(GENCODEDIR)/misc.cpp $(GENCODEDIR)/misc.py : misc.i my_typemaps.i _defs.i $(GENCODEDIR)/gdi.cpp $(GENCODEDIR)/gdi.py : gdi.i my_typemaps.i _defs.i $(GENCODEDIR)/mdi.cpp $(GENCODEDIR)/mdi.py : mdi.i my_typemaps.i _defs.i $(GENCODEDIR)/controls.cpp $(GENCODEDIR)/controls.py : controls.i my_typemaps.i _defs.i $(GENCODEDIR)/controls2.cpp $(GENCODEDIR)/controls2.py : controls2.i my_typemaps.i _defs.i $(GENCODEDIR)/cmndlgs.cpp $(GENCODEDIR)/cmndlgs.py : cmndlgs.i my_typemaps.i _defs.i $(GENCODEDIR)/stattool.cpp $(GENCODEDIR)/stattool.py : stattool.i my_typemaps.i _defs.i $(GENCODEDIR)/frames.cpp $(GENCODEDIR)/frames.py : frames.i my_typemaps.i _defs.i !if "$(SEPARATE)" == "1" $(GENCODEDIR)\utils.cpp $(GENCODEDIR)\utils.py : utils.i my_typemaps.i swig $(SWIGFLAGS) -o $(GENCODEDIR)/utils.cpp utils.i !else $(GENCODEDIR)/utils.cpp $(GENCODEDIR)/utils.py : utils.i my_typemaps.i _defs.i !endif $(TARGETDIR)\wx.py : $(GENCODEDIR)\wx.py $(TARGETDIR)\windows.py : $(GENCODEDIR)\windows.py $(TARGETDIR)\windows2.py : $(GENCODEDIR)\windows2.py $(TARGETDIR)\windows3.py : $(GENCODEDIR)\windows3.py $(TARGETDIR)\events.py : $(GENCODEDIR)\events.py $(TARGETDIR)\misc.py : $(GENCODEDIR)\misc.py $(TARGETDIR)\gdi.py : $(GENCODEDIR)\gdi.py $(TARGETDIR)\mdi.py : $(GENCODEDIR)\mdi.py $(TARGETDIR)\controls.py : $(GENCODEDIR)\controls.py $(TARGETDIR)\controls2.py : $(GENCODEDIR)\controls2.py $(TARGETDIR)\cmndlgs.py : $(GENCODEDIR)\cmndlgs.py $(TARGETDIR)\frames.py : $(GENCODEDIR)\frames.py $(TARGETDIR)\stattool.py : $(GENCODEDIR)\stattool.py $(TARGETDIR)\utils.py : $(GENCODEDIR)\utils.py $(TARGETDIR)\__init__.py : __init__.py SOURCES = $(GENCODEDIR)\wx.cpp $(GENCODEDIR)\wx.py \ $(GENCODEDIR)/windows.cpp $(GENCODEDIR)/windows.py \ $(GENCODEDIR)/windows2.cpp $(GENCODEDIR)/windows2.py \ $(GENCODEDIR)/windows3.cpp $(GENCODEDIR)/windows3.py \ $(GENCODEDIR)/events.cpp $(GENCODEDIR)/events.py \ $(GENCODEDIR)/misc.cpp $(GENCODEDIR)/misc.py \ $(GENCODEDIR)/gdi.cpp $(GENCODEDIR)/gdi.py \ $(GENCODEDIR)/mdi.cpp $(GENCODEDIR)/mdi.py \ $(GENCODEDIR)/controls.cpp $(GENCODEDIR)/controls.py \ $(GENCODEDIR)/controls2.cpp $(GENCODEDIR)/controls2.py\ $(GENCODEDIR)/cmndlgs.cpp $(GENCODEDIR)/cmndlgs.py \ $(GENCODEDIR)/stattool.cpp $(GENCODEDIR)/stattool.py \ $(GENCODEDIR)/frames.cpp $(GENCODEDIR)/frames.py \ $(GENCODEDIR)/utils.cpp $(GENCODEDIR)/utils.py \ sources : $(SOURCES) dist: cd ..\.. wxPython\distrib\zipit.bat $(VERSION) #------------------------------------------------------------------------ # # $Log$ # Revision 1.4 1999/03/05 07:22:30 RD # Minor wxPython changes for wxWin 2.0 # # Revision 1.3 1999/02/25 07:08:33 RD # # wxPython version 2.0b5 # # Revision 1.2 1999/02/20 09:03:00 RD # Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a # window handle. If you can get the window handle into the python code, # it should just work... More news on this later. # # Added wxImageList, wxToolTip. # # Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the # wxRegConfig class. # # As usual, some bug fixes, tweaks, etc. # # Revision 1.1 1999/02/06 23:47:03 RD # # Changing makefile.nt to makefile.vc as in rest of wxWindows # # Revision 1.10 1999/02/01 00:10:40 RD # # Added the missing EVT_LIST_ITEM_SELECTED and friends. # # Revision 1.9 1999/01/30 07:30:13 RD # # Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. # # Various cleanup, tweaks, minor additions, etc. to maintain # compatibility with the current wxWindows. # # Revision 1.8 1998/12/21 19:58:06 RD # # Now compiles with /GX- on MSW. # # Revision 1.7 1998/12/15 20:41:20 RD # Changed the import semantics from "from wxPython import *" to "from # wxPython.wx import *" This is for people who are worried about # namespace pollution, they can use "from wxPython import wx" and then # prefix all the wxPython identifiers with "wx." # # Added wxTaskbarIcon for wxMSW. # # Made the events work for wxGrid. # # Added wxConfig. # # Added wxMiniFrame for wxGTK, (untested.) # # Changed many of the args and return values that were pointers to gdi # objects to references to reflect changes in the wxWindows API. # # Other assorted fixes and additions. # # Revision 1.6 1998/10/02 06:40:41 RD # # Version 0.4 of wxPython for MSW. # # Revision 1.5 1998/08/19 00:38:23 RD # # A few tweaks # # Revision 1.4 1998/08/18 21:55:10 RD # # New build directory structure # # Revision 1.3 1998/08/15 07:36:37 RD # - Moved the header in the .i files out of the code that gets put into # the .cpp files. It caused CVS conflicts because of the RCS ID being # different each time. # # - A few minor fixes. # # Revision 1.2 1998/08/14 03:34:23 RD # made pre-compiling the python files optional # # Revision 1.1 1998/08/09 08:25:51 RD # Initial version #