+# -*- makefile -*-
# Universal Unix Makefile for Python extensions
# =============================================
# Also, making them read-only seems to be a good idea...
INSTALL_SHARED= ${INSTALL} -m 555
+#---------------------------------------------------
+# Possibly change some definintions for C++
+ifdef MY_LDSHARED
+LDSHARED=$(MY_LDSHARED)
+endif
+ifdef MY_LINKCC
+LINKCC=$(MY_LINKCC)
+endif
+
+
# === Fixed rules ===
# Default target. This builds shared libraries only
-default: sharedmods
+default: $(HELPERLIB) sharedmods
# Build everything
all: static sharedmods
#------------------------------------------------------------------------
#------------------------------------------------------------------------
-# This is a defaul version of the install target for wxPython. It just
+# This is a default version of the install target for wxPython. It just
# redirects to wxInstall below...
install: wxInstall
# Setup is copied from Setup.in *only* if it doesn't yet exist
Setup:
- cp $(srcdir)/Setup.in Setup
+ cp Setup.in Setup
# Make the intermediate Makefile.pre from Makefile.pre.in
Makefile.pre: Makefile.pre.in sedscript
- sed -f sedscript $(srcdir)/Makefile.pre.in >Makefile.pre
+ sed -f sedscript Makefile.pre.in >Makefile.pre
# Shortcuts to make the sed arguments on one line
P=prefix
VERSION=`$(PYTHON) -c "import sys; print sys.version[:3]"`; \
installdir=`$(PYTHON) -c "import sys; print sys.prefix"`; \
exec_installdir=`$(PYTHON) -c "import sys; print sys.exec_prefix"`; \
- $(MAKE) -f $(srcdir)/Makefile.pre.in VPATH=$(VPATH) srcdir=$(srcdir) \
+ $(MAKE) -f Makefile.pre.in VPATH=$(VPATH) srcdir=$(srcdir) \
VERSION=$$VERSION \
installdir=$$installdir \
exec_installdir=$$exec_installdir \
# Custom rules and dependencies added for wxPython
#
-SWIGFLAGS=-c++ -shadow -python -dnone
+WXP_VERSION=2.1b2
-ifndef FINAL
-PYEXT=pyc
-PYTHON=python
-else
-PYEXT=pyo
-PYTHON=python -O
-endif
+SWIGFLAGS=-c++ -shadow -python -dnone -D__WXGTK__ $(SEPARATE)
-PYMODULES = wxp.py events.py windows.py misc.py \
- gdi.py mdi.py controls.py controls2.py \
- windows2.py cmndlgs.py __init__.py
+PYMODULES = $(GENCODEDIR)/wx.py $(GENCODEDIR)/events.py \
+ $(GENCODEDIR)/windows.py $(GENCODEDIR)/misc.py \
+ $(GENCODEDIR)/gdi.py $(GENCODEDIR)/mdi.py \
+ $(GENCODEDIR)/controls.py $(GENCODEDIR)/controls2.py \
+ $(GENCODEDIR)/windows2.py $(GENCODEDIR)/cmndlgs.py \
+ $(GENCODEDIR)/stattool.py $(GENCODEDIR)/frames.py \
+ $(GENCODEDIR)/windows3.py __init__.py \
+ $(GENCODEDIR)/utils.py $(GENCODEDIR)/image.py \
+ $(GENCODEDIR)/printfw.py $(GENCODEDIR)/misc2.py \
+ $(GENCODEDIR)/glcanvas.py
# Implicit rules to run SWIG
-%.cpp : %.i
- swig $(SWIGFLAGS) -c -o $*.cpp $*.i
-
-$(TARGETDIR)/%.py : %.py
- cp $< $@
+$(GENCODEDIR)/%.cpp : %.i
+ swig $(SWIGFLAGS) -c -o $@ $<
-$(TARGETDIR)/%.$(PYEXT) : %.py
- $(PYTHON) -c "import py_compile; py_compile.compile('$<', '$@')"
-
-%.py : %.i
- swig $(SWIGFLAGS) -c -o $*.cpp $*.i
+$(GENCODEDIR)/%.py : %.i
+ swig $(SWIGFLAGS) -c -o $@ $<
# This one must leave out the -c flag so we define the whole rule
-wxp.cpp wxp.py : wxp.i my_typemaps.i _defs.i _extras.py
- swig $(SWIGFLAGS) -o wxp.cpp wxp.i
+#$(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
-windows.cpp windows.py : windows.i my_typemaps.i _defs.i
-windows2.cpp windows2.py : windows2.i my_typemaps.i _defs.i
-events.cpp events.py : events.i my_typemaps.i _defs.i
-misc.cpp misc.py : misc.i my_typemaps.i _defs.i
-gdi.cpp gdi.py : gdi.i my_typemaps.i _defs.i
-mdi.cpp mdi.py : mdi.i my_typemaps.i _defs.i
-controls.cpp controls.py : controls.i my_typemaps.i _defs.i
-controls2.cpp controls2.py : controls2.i my_typemaps.i _defs.i
-cmndlgs.cpp cmndlgs.py : cmndlgs.i my_typemaps.i _defs.i
-
-
-
-wxInstall : sharedmods $(PYMODULES)
+$(GENCODEDIR)/wx.cpp $(GENCODEDIR)/wx.py : wx.i my_typemaps.i _defs.i _extras.py
+$(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)/misc2.cpp $(GENCODEDIR)/misc2.py : misc2.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)/frames.cpp $(GENCODEDIR)/frames.py : frames.i my_typemaps.i _defs.i
+$(GENCODEDIR)/stattool.cpp $(GENCODEDIR)/stattool.py : stattool.i my_typemaps.i _defs.i
+$(GENCODEDIR)/image.cpp $(GENCODEDIR)/image.py : image.i my_typemaps.i _defs.i
+$(GENCODEDIR)/utils.cpp $(GENCODEDIR)/utils.py : utils.i my_typemaps.i _defs.i
+$(GENCODEDIR)/printfw.cpp $(GENCODEDIR)/printfw.py : printfw.i my_typemaps.i _defs.i
+$(GENCODEDIR)/glcanvas.cpp $(GENCODEDIR)/glcanvas.py : glcanvas.i my_typemaps.i _defs.i
+
+$(GENCODEDIR)/helpers.cpp:
+ ln -s `pwd`/helpers.cpp $@
+
+$(GENCODEDIR)/libpy.c:
+ ln -s `pwd`/libpy.c $@
+
+$(GENCODEDIR)/libptr.c:
+ ln -s `pwd`/libptr.c $@
+
+$(GENCODEDIR)/_glcanvas.cpp:
+ -cp $(WXWIN)/utils/glcanvas/$(GENCODEDIR)/glcanvas.cpp $@
+ -cp $(WXWIN)/utils/glcanvas/$(GENCODEDIR)/glcanvas.h ./glcanvas.h
+
+
+wxInstall : $(HELPERLIB) sharedmods $(PYMODULES)
if test ! -d $(TARGETDIR) ; then \
mkdir $(TARGETDIR) ; else true ; fi
- -for i in $(SHAREDMODS); do \
- $(INSTALL_SHARED) $$i $(TARGETDIR)/$$i; \
- done
+ if [ "$(SHAREDMODS)" != "" ]; then \
+ chmod 755 $(SHAREDMODS); \
+ cp $(SHAREDMODS) $(TARGETDIR); fi
-for i in $(PYMODULES); do \
- $(INSTALL) $$i $(TARGETDIR)/$$i; \
+ cp $$i $(TARGETDIR); \
done
- python $(LIBDEST)/compileall.py -l $(TARGETDIR)
- python -O $(LIBDEST)/compileall.py -l $(TARGETDIR)
+ if [ "$(TARGETDIR)" != ".." ]; then \
+ mkdir $(TARGETDIR)/lib; \
+ mkdir $(TARGETDIR)/lib/sizers; \
+ mkdir $(TARGETDIR)/demo; \
+ mkdir $(TARGETDIR)/demo/bitmaps; \
+ cp ../lib/*.py $(TARGETDIR)/lib; \
+ cp ../lib/sizers/*.py $(TARGETDIR)/lib/sizers; \
+ cp ../demo/*.py $(TARGETDIR)/demo; \
+ cp ../lib/*.txt $(TARGETDIR)/lib; \
+ cp ../lib/sizers/*.txt $(TARGETDIR)/lib/sizers; \
+ cp ../demo/*.txt $(TARGETDIR)/demo; \
+ cp ../demo/bitmaps/[a-z]* $(TARGETDIR)/demo/bitmaps; \
+ fi
+ if [ "$(TARGETDIR)" != ".." ]; then \
+ python $(LIBDEST)/compileall.py $(TARGETDIR); \
+ python -O $(LIBDEST)/compileall.py $(TARGETDIR); \
+ else \
+ python $(LIBDEST)/compileall.py -l $(TARGETDIR); \
+ python -O $(LIBDEST)/compileall.py -l $(TARGETDIR);\
+ fi
+ifdef HELPERLIB
+ cp lib$(WXPYLIB)$(SO) $(WXPYLIBDIR)
+ @echo ---------------------------------------------------------
+ @echo You may have to run ldconfig, or set an environment
+ @echo variable in order for $(WXPYLIBDIR)/lib$(WXPYLIB)$(SO)
+ @echo to be found at runtime. See your man pages for ld.so or
+ @echo equivalent.
+ @echo ---------------------------------------------------------
+endif
+
+ifdef HELPERLIB
+helpers.o: $(srcdir)/helpers.cpp; $(CCC) $(CCSHARED) $(C_DEFINES) $(C_FLAGS) $(CFLAGS) -c $(srcdir)/helpers.cpp
+libpy.o: $(srcdir)/libpy.c; $(CC) $(CCSHARED) $(C_DEFINES) $(C_FLAGS) $(CFLAGS) -c $(srcdir)/libpy.c
+libptr.o: $(srcdir)/libptr.c; $(CC) $(CCSHARED) $(C_DEFINES) $(C_FLAGS) $(CFLAGS) -c $(srcdir)/libptr.c
+
+$(HELPERLIB) : helpers.o libpy.o libptr.o
+ $(LDSHARED) helpers.o libpy.o libptr.o $(C_DEFINES) $(C_FLAGS) -Xlinker $(WX_CONFIG_LIBS) -o $@
+endif
+
+
+lib : libwxPython.a
+
+libwxPython.a : lib.a
+ cp $< $@
+
+dist: tgz rpm
+
+tgz:
+ cd ../..; wxPython/distrib/maketgz $(WXP_VERSION)
+
+rpm:
+ cd ../distrib; ./makerpm $(WXP_VERSION)
+
+