+++ /dev/null
-#!/usr/bin/env python
-#----------------------------------------------------------------------------
-# Name: build.py
-# Purpose: This script is used to build wxPython. It reads a build
-# configuration file in the requested project directory and
-# based on the contents of the file can build Makefiles for
-# unix or win32, and can execute make with various options
-# potentially automating the entire build/install/clean process
-# from a single command.
-#
-# Author: Robin Dunn
-#
-# Created: 18-Aug-1999
-# RCS-ID: $Id$
-# Copyright: (c) 1999 by Total Control Software
-# Licence: wxWindows license
-#----------------------------------------------------------------------------
-"""
-build.py
-
- This script is used to build wxPython. It reads a build configuration
- file in the requested project directory and based on the contents of
- the file can build Makefiles for unix or win32, and can execute make
- with various options potentially automating the entire
- build/install/clean process from a single command.
-
- The default action is to build the Makefile and exit.
-
-Options
- -C dir CD to dir before doing anything
- -B file Use file as the build configuration (default ./build.cfg)
- -M file Use file as the name of the makefile to create
- (default Makefile)
-
- -b Build the module (runs make)
- -i Install the module (runs make install)
- -c Cleanup (runs make clean)
- -u Uninstall (runs make uninstall)
-
- -h Show help and exit
-
-
-Configuration Files
-
- The build configuration file lists targets, source files and options
- for the the build process. The contents of the build.cfg are used to
- dynamically generate the Makefile.
-
- To prevent you from getting screwed when the default build.cfg is
- updated, you can override the values in build.cfg by putting your
- custom definitions in a file named build.local. You can also place a
- build.local file in the parent directory, or even in the grandparent
- directory for project-wide overrides. Finally, command-line arguments
- of the form NAME=VALUE can also be used to override simple configuration
- values. The order of evaluation is:
-
- 0. comman-line flags (-M, -b, etc.)
- 1. ./build.cfg
- 2. ../../build.local (if present)
- 3. ../build.local (if present)
- 4. ./build.local (if present)
- 5. command-line NAME=VALUEs
-
- The config files are actually just Python files that get exec'ed in a
- separate namespace which is then used later as a configuration object.
- This keeps the build script simple in that it doesn't have to parse
- anything, and the config files can be much more than just names and
- values as pretty much any python code can be executed. The global
- variables set in the config namespace are what are used later as
- configuation values.
-
-
-Configuration Options
-
- The following variables can be set in the config files. Only a few are
- required, the rest will either have suitable defaults or will be
- calculated from your current Python runtime environment.
-
- MODULE The name of the extension module to produce
- SWIGFILES A list of files that should be run through SWIG
- SWIGFLAGS Flags for SWIG
- SOURCES Other C/C++ sources that should be part of the module
- PYFILES Other Python files that should be installed with the module
- CFLAGS Flags to be used by the compiler
- LFLAGS Flags to be used at the link step
- LIBS Libraries to be linked with
-
- OTHERCFLAGS Extra flags to append to CFLAGS
- OTHERLFLAGS Extra flags to append to LFLAGS
- OTHERSWIGFLAGS Extra flags to append to SWIGFLAGS
- OTHERLIBS Other libraries to be linked with, in addition to LIBS
- OTHERTARGETS Other targets to be placed on the default rule line
- OTHERINSTALLTARGETS
- Other targets to be placed on the install rule line
- OTHERRULES This text is placed at the end of the makefile and
- will typically be used for adding rules and such
- DEFAULTRULE Text to be used for the default rule in the makefile
-
- TARGETDIR Destination for the install step
-
- MAKE The make program to use
- MAKEFILE The name of the makefile
-
- runBuild Setting this to 1 is eqivalent to the -b flag
- runInstall Setting this to 1 is eqivalent to the -i flag
- runClean Setting this to 1 is eqivalent to the -c flag
- runUninstall Setting this to 1 is eqivalent to the -u flag
-
- PYVERSION Version number of Python used in pathnames
- PYPREFIX The root of the Python install
- EXECPREFIX The root of the Python install for binary files
- PYTHONLIB The Python link library
-
-"""
-
-import sys, os, string, getopt
-
-#----------------------------------------------------------------------------
-# This is really the wxPython version number, and will be placed in the
-# Makefiles for use with the distribution related targets.
-
-__version__ = '2.1b3'
-
-#----------------------------------------------------------------------------
-
-def main(args):
- try:
- opts, args = getopt.getopt(args[1:], 'C:B:M:bicu')
- except getopt.error:
- usage()
- sys.exit(1)
-
- if not os.environ.has_key('WXWIN'):
- print "WARNING: WXWIN is not set in the environment. WXDIR may not\n"\
- " be set properly in the makefile, you will have to \n"\
- " set the environment variable or override in build.local."
-
- bldCfg = 'build.cfg'
- bldCfgLocal = 'build.local'
- MAKEFILE = 'Makefile'
- runBuild = 0
- runInstall = 0
- runClean = 0
- runUninstall = 0
-
- for flag, value in opts:
- if flag == '-C': os.chdir(value)
- elif flag == '-B': bldCfgFile = value
- elif flag == '-M': makefile = value
- elif flag == '-b': runBuild = 1
- elif flag == '-c': runClean = 1
- elif flag == '-i': runInstall = 1
- elif flag == '-u': runUninstall = 1
-
- elif flag == '-h': usage(); sys.exit(1)
- else: usage(); sys.exit(1)
-
- config = BuildConfig(bldCfg = bldCfg,
- bldCfgLocal = bldCfgLocal,
- MAKEFILE = MAKEFILE,
- runBuild = runBuild,
- runInstall = runInstall,
- runClean = runClean,
- runUninstall = runUninstall)
-
- if config.readConfigFiles(args):
- config.doFixups()
- config.makeMakefile()
- err = 0
-
- if config.runBuild:
- cmd = "%s -f %s" % (config.MAKE, config.MAKEFILE)
- print "Running:", cmd
- err = os.system(cmd)
-
- if not err and config.runInstall:
- cmd = "%s -f %s install" % (config.MAKE, config.MAKEFILE)
- print "Running:", cmd
- err = os.system(cmd)
-
-
- if not err and config.runClean:
- cmd = "%s -f %s clean" % (config.MAKE, config.MAKEFILE)
- print "Running:", cmd
- err = os.system(cmd)
-
- if not err and config.runUninstall:
- cmd = "%s -f %s uninstall" % (config.MAKE, config.MAKEFILE)
- print "Running:", cmd
- err = os.system(cmd)
-
-
-
-#----------------------------------------------------------------------------
-
-def usage():
- print __doc__
-
-#----------------------------------------------------------------------------
-
-def swapslash(st):
- if sys.platform != 'win32':
- st = string.join(string.split(st, '\\'), '/')
- return st
-
-#----------------------------------------------------------------------------
-
-def splitlines(st):
- return string.join(string.split(string.strip(st), ' '), ' \\\n\t')
-
-#----------------------------------------------------------------------------
-
-class BuildConfig:
- def __init__(self, **kw):
- self.__dict__.update(kw)
- self.setDefaults()
-
- #------------------------------------------------------------
- def setDefaults(self):
- self.VERSION = __version__
- self.MODULE = ''
- self.SWIGFILES = []
- self.SWIGFLAGS = '-c++ -shadow -python -dnone -I$(WXPSRCDIR)'
- self.SOURCES = []
- self.PYFILES = []
- self.LFLAGS = ''
- self.OTHERCFLAGS = ''
- self.OTHERLFLAGS = ''
- self.OTHERSWIGFLAGS = ''
- self.OTHERLIBS = ''
- self.OTHERTARGETS = ''
- self.OTHERINSTALLTARGETS = ''
- self.OTHERRULES = ''
- self.DEFAULTRULE = 'default: $(GENCODEDIR) $(TARGET)'
- self.PYVERSION = sys.version[:3]
- self.PYPREFIX = sys.prefix
- self.EXECPREFIX = sys.exec_prefix
- self.WXDIR = '$(WXWIN)'
- self.FINAL = '0'
- self.WXP_USE_THREAD = '1'
- self.WXUSINGDLL = '1'
- self.OTHERDEP = ''
- self.WXPSRCDIR = '$(WXDIR)/utils/wxPython/src'
-
-
- if sys.platform == 'win32':
- self.MAKE = 'nmake'
- self.PYTHONLIB = '$(PYPREFIX)\\libs\\python15.lib'
- self.TARGETDIR = '$(PYPREFIX)\\wxPython'
- self.LIBS = '$(PYTHONLIB) $(WXPSRCDIR)\wxc.lib'
- self.GENCODEDIR = 'msw'
- self.SWIGTOOLKITFLAG = '-D__WXMSW__'
- self.OBJEXT = '.obj'
- self.TARGET = '$(MODULE).pyd'
- self.CFLAGS = '-I$(PYPREFIX)\include -I$(WXPSRCDIR) -I. /Fp$(MODULE).pch /YXhelpers.h -DSWIG_GLOBAL -DHAVE_CONFIG_H $(THREAD) '
- self.LFLAGS = '$(DEBUGLFLAGS) /DLL /subsystem:windows,3.50 /machine:I386 /nologo'
- self.RESFILE = ''
- self.RESRULE = ''
- self.OVERRIDEFLAGS = '/GX-'
-
- else:
- self.MAKE = 'make'
- self.PYLIB = '$(EXECPREFIX)/lib/python$(PYVERSION)'
- self.LIBPL = '$(PYLIB)/config'
- self.PYTHONLIB = '$(LIBPL)/libpython$(PYVERSION).a'
- self.TARGETDIR = '$(EXECPREFIX)/lib/python$(PYVERSION)/site-packages/wxPython'
- self.TARGET = '$(MODULE)module$(SO)'
- self.OBJEXT = '.o'
- self.HELPERLIB = 'wxPyHelpers'
- self.HELPERLIBDIR = '/usr/local/lib'
- self.CFLAGS = '-DSWIG_GLOBAL -DHAVE_CONFIG_H $(THREAD) -I. '\
- '`wx-config --cflags` -I$(PYINCLUDE) -I$(EXECINCLUDE) '\
- '-I$(WXPSRCDIR)'
- self.LFLAGS = '-L$(WXPSRCDIR) `wx-config --libs`'
- self.LIBS = '-l$(HELPERLIB)'
-
- # **** What to do when I start supporting Motif, etc.???
- self.GENCODEDIR = 'gtk'
- self.SWIGTOOLKITFLAG = '-D__WXGTK__'
-
- # Extract a few things from Python's Makefile...
- try:
- filename = os.path.join(self.EXECPREFIX,
- 'lib/python'+self.PYVERSION,
- 'config/Makefile')
- mfText = string.split(open(filename, 'r').read(), '\n')
- except IOError:
- raise SystemExit, "Python development files not found"
-
- self.CCC = self.findMFValue(mfText, 'CCC')
- self.CC = self.findMFValue(mfText, 'CC')
- self.OPT = self.findMFValue(mfText, 'OPT')
- self.SO = self.findMFValue(mfText, 'SO')
- self.LDSHARED = self.findMFValue(mfText, 'LDSHARED')
- self.CCSHARED = self.findMFValue(mfText, 'CCSHARED')
- #self.LINKFORSHARED = self.findMFValue(mfText, 'LINKFORSHARED')
- #self. = self.findMFValue(mfText, '')
- #self. = self.findMFValue(mfText, '')
-
-
- # The majority of cases will require LDSHARED to be
- # modified to use the C++ driver instead of the C driver
- # for linking. We'll try to do it here and if we goof up
- # then the user can correct it in their build.local file.
- self.LDSHARED = string.join(['$(CCC)'] +
- string.split(self.LDSHARED, ' ')[1:],
- ' ')
-
-
- #------------------------------------------------------------
- def doFixups(self):
- # This is called after the config files have been evaluated
- # so we can do some sanity checking...
- if sys.platform != 'win32':
- if not self.CCC:
- print "Warning: C++ compiler not specified (CCC). Assuming c++"
- self.CCC = 'c++'
- if not self.CC:
- print "Warning: C compiler not specified (CC). Assuming cc"
- self.CC = 'cc'
-
- #------------------------------------------------------------
- def findMFValue(self, mfText, st):
- # Find line begining with st= and return the value
- # Regex would probably be to cooler way to do this, but
- # I think this is the most understandable.
- for line in mfText:
- if string.find(line, st+'=') == 0:
- st = string.strip(line[len(st)+1:])
- return st
- return None
-
- #------------------------------------------------------------
- def makeMakefile(self):
-
- # make a list of object file names
- objects = ""
- for name in self.SWIGFILES:
- objects = objects + os.path.splitext(name)[0] + self.OBJEXT + ' '
- for name in self.SOURCES:
- obj = os.path.basename(name)
- objects = objects + os.path.splitext(obj)[0] + self.OBJEXT + ' '
- self.OBJECTS = splitlines(objects)
-
-
- # now build the text for the dependencies
- depends = ""
- for name in self.SWIGFILES:
- text = '$(GENCODEDIR)/%s.cpp $(GENCODEDIR)/%s.py : %s.i\n' \
- '$(TARGETDIR)\\%s.py : $(GENCODEDIR)\\%s.py\n' % \
- tuple([os.path.splitext(name)[0]] * 5)
- depends = depends + text
- for name in self.PYFILES:
- text = '$(TARGETDIR)\\%s.py : %s.py\n' % \
- tuple([os.path.splitext(name)[0]] * 2)
- depends = depends + text
- self.DEPENDS = swapslash(depends)
-
-
- # and the list of .py files
- pymodules = ""
- for name in self.SWIGFILES:
- pymodules = pymodules + '$(TARGETDIR)\\%s.py ' % os.path.splitext(name)[0]
- for name in self.PYFILES:
- pymodules = pymodules + '$(TARGETDIR)\\%s.py ' % os.path.splitext(name)[0]
- self.PYMODULES = splitlines(swapslash(pymodules))
-
-
-
- # finally, build the makefile
- if sys.platform == 'win32':
- if self.RESFILE:
- self.RESFILE = '$(MODULE).res'
- self.RESRULE = '$(MODULE).res : $(MODULE).rc $(WXDIR)\\include\\wx\\msw\\wx.rc\n\t'\
- '$(rc) -r /i$(WXDIR)\\include -fo$@ $(MODULE).rc'
- text = win32Template % self.__dict__
- else:
- text = unixTemplate % self.__dict__
- f = open(self.MAKEFILE, 'w')
- f.write(text)
- f.close()
-
- print "Makefile created: ", self.MAKEFILE
-
-
- #------------------------------------------------------------
- def readConfigFiles(self, args):
- return self.processFile(self.bldCfg, 1) and \
- self.processFile(os.path.join('../..', self.bldCfgLocal)) and \
- self.processFile(os.path.join('..', self.bldCfgLocal)) and \
- self.processFile(os.path.join('.', self.bldCfgLocal)) and \
- self.processArgs(args)
-
- #------------------------------------------------------------
- def processFile(self, filename, required=0):
- try:
- text = open(filename, 'r').read()
- except IOError:
- if required:
- print "Unable to open %s" % filename
- return 0
- else:
- return 1
-
- try:
- exec(text, self.__dict__)
- except:
- print "Error evaluating %s" % filename
- import traceback
- traceback.print_exc()
- return 0
- return 1
-
-
- #------------------------------------------------------------
- def processArgs(self, args):
- try:
- for st in args:
- pair = string.split(st, '=')
- name = pair[0]
- value = pair[1]
- self.__dict__[name] = value
- except:
- print "Error parsing command-line: %s" % st
- return 0
-
- return 1
-
-
- #------------------------------------------------------------
-
-
-
-
-
-#----------------------------------------------------------------------------
-#----------------------------------------------------------------------------
-
-win32Template = '''
-#----------------------------------------------------------------------
-# This makefile was autogenerated from build.py. Your changes will be
-# lost if the generator is run again. You have been warned.
-#----------------------------------------------------------------------
-
-WXDIR = %(WXDIR)s
-VERSION = %(VERSION)s
-MODULE = %(MODULE)s
-SWIGFLAGS = %(SWIGFLAGS)s %(SWIGTOOLKITFLAG)s %(OTHERSWIGFLAGS)s
-CFLAGS = %(CFLAGS)s %(OTHERCFLAGS)s
-LFLAGS = %(LFLAGS)s %(OTHERLFLAGS)s
-PYVERSION = %(PYVERSION)s
-PYPREFIX = %(PYPREFIX)s
-EXECPREFIX = %(EXECPREFIX)s
-PYTHONLIB = %(PYTHONLIB)s
-FINAL = %(FINAL)s
-WXP_USE_THREAD = %(WXP_USE_THREAD)s
-WXUSINGDLL = %(WXUSINGDLL)s
-GENCODEDIR = %(GENCODEDIR)s
-RESFILE = %(RESFILE)s
-WXPSRCDIR = %(WXPSRCDIR)s
-
-
-TARGETDIR = %(TARGETDIR)s
-
-OBJECTS = %(OBJECTS)s
-PYMODULES = %(PYMODULES)s
-TARGET = %(TARGET)s
-
-
-
-
-!if "$(FINAL)" == "0"
-DEBUGLFLAGS = /DEBUG /INCREMENTAL:YES
-!else
-DEBUGLFLAGS = /INCREMENTAL:NO
-!endif
-!if "$(WXP_USE_THREAD)" == "1"
-THREAD=-DWXP_USE_THREAD=1
-!endif
-
-
-
-
-NOPCH=1
-OVERRIDEFLAGS=%(OVERRIDEFLAGS)s %(OTHERCFLAGS)s
-EXTRAFLAGS = %(CFLAGS)s
-
-LFLAGS = %(LFLAGS)s %(OTHERLFLAGS)s
-EXTRALIBS = %(LIBS)s %(OTHERLIBS)s
-
-#----------------------------------------------------------------------
-
-!include $(WXDIR)\\src\\makevc.env
-
-#----------------------------------------------------------------------
-
-%(DEFAULTRULE)s %(OTHERTARGETS)s
-
-
-
-install: $(TARGETDIR) $(TARGETDIR)\\$(TARGET) pycfiles %(OTHERINSTALLTARGETS)s
-
-clean:
- -erase *.obj
- -erase *.exe
- -erase *.res
- -erase *.map
- -erase *.sbr
- -erase *.pdb
- -erase *.pch
- -erase $(MODULE).exp
- -erase $(MODULE).lib
- -erase $(MODULE).ilk
- -erase $(TARGET)
-
-
-uninstall:
- -erase $(TARGETDIR)\\$(TARGET)
- -erase $(PYMODULES)
-
-#----------------------------------------------------------------------
-# implicit rule for compiling .cpp and .c files
-{}.cpp{}.obj:
- $(cc) @<<
-$(CPPFLAGS) /c /Tp $<
-<<
-
-{$(GENCODEDIR)}.cpp{}.obj:
- $(cc) @<<
-$(CPPFLAGS) /c /Tp $<
-<<
-
-{}.c{}.obj:
- $(cc) @<<
-$(CPPFLAGS) /c $<
-<<
-
-.SUFFIXES : .i .py
-
-# Implicit rules to run SWIG
-{}.i{$(GENCODEDIR)}.cpp:
- swig $(SWIGFLAGS) -c -o $@ $<
-
-{}.i{$(GENCODEDIR)}.py:
- swig $(SWIGFLAGS) -c -o $(GENCODEDIR)\\tmp_wrap.cpp $<
- -erase $(GENCODEDIR)\\tmp_wrap.cpp
-
-
-{$(GENCODEDIR)}.py{$(TARGETDIR)}.py:
- copy $< $@
-
-{}.py{$(TARGETDIR)}.py:
- copy $< $@
-
-#----------------------------------------------------------------------
-
-$(TARGET) : $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(RESFILE)
- $(link) @<<
-/out:$@
-$(LFLAGS) /def:$(MODULE).def /implib:./$(MODULE).lib
-$(DUMMYOBJ) $(OBJECTS) $(RESFILE)
-$(LIBS)
-<<
-
-
-%(RESRULE)s
-
-
-$(TARGETDIR)\\$(TARGET) : $(TARGET)
- copy $(TARGET) $@
-
-
-pycfiles : $(PYMODULES)
- $(EXECPREFIX)\\python $(PYPREFIX)\\Lib\\compileall.py -l $(TARGETDIR)
- $(EXECPREFIX)\\python -O $(PYPREFIX)\Lib\\compileall.py -l $(TARGETDIR)
-
-
-$(TARGETDIR) :
- mkdir $(TARGETDIR)
-
-$(GENCODEDIR):
- mkdir $(GENCODEDIR)
-
-#----------------------------------------------------------------------
-
-%(DEPENDS)s
-
-#----------------------------------------------------------------------
-
-
-%(OTHERRULES)s
-'''
-
-#----------------------------------------------------------------------------
-#----------------------------------------------------------------------------
-#----------------------------------------------------------------------------
-
-unixTemplate = '''
-#----------------------------------------------------------------------
-# This makefile was autogenerated from build.py. Your changes will be
-# lost if the generator is run again. You have been warned.
-#----------------------------------------------------------------------
-
-
-
-WXDIR = %(WXDIR)s
-VERSION = %(VERSION)s
-MODULE = %(MODULE)s
-SWIGFLAGS = %(SWIGFLAGS)s %(SWIGTOOLKITFLAG)s %(OTHERSWIGFLAGS)s
-CFLAGS = %(CFLAGS)s %(OTHERCFLAGS)s
-LFLAGS = %(LFLAGS)s %(OTHERLFLAGS)s
-LIBS = %(LIBS)s %(OTHERLIBS)s
-PYVERSION = %(PYVERSION)s
-PYPREFIX = %(PYPREFIX)s
-EXECPREFIX = %(EXECPREFIX)s
-PYINCLUDE = $(PYPREFIX)/include/python$(PYVERSION)
-EXECINCLUDE = $(EXECPREFIX)/include/python$(PYVERSION)
-PYLIB = %(PYLIB)s
-LIBPL = %(LIBPL)s
-PYTHONLIB = %(PYTHONLIB)s
-FINAL = %(FINAL)s
-WXP_USE_THREAD = %(WXP_USE_THREAD)s
-GENCODEDIR = %(GENCODEDIR)s
-WXPSRCDIR = %(WXPSRCDIR)s
-HELPERLIB = %(HELPERLIB)s
-HELPERLIBDIR = %(HELPERLIBDIR)s
-
-TARGETDIR = %(TARGETDIR)s
-
-
-CCC = %(CCC)s
-CC = %(CC)s
-OPT = %(OPT)s
-SO = %(SO)s
-LDSHARED = %(LDSHARED)s
-CCSHARED = %(CCSHARED)s
-
-
-OBJECTS = %(OBJECTS)s
-PYMODULES = %(PYMODULES)s
-TARGET = %(TARGET)s
-
-
-ifeq ($(WXP_USE_THREAD), 1)
-THREAD=-DWXP_USE_THREAD
-endif
-
-#----------------------------------------------------------------------
-
-%(DEFAULTRULE)s %(OTHERTARGETS)s
-
-install: $(TARGETDIR) $(TARGETDIR)/$(TARGET) pycfiles %(OTHERINSTALLTARGETS)s
-
-clean:
- -rm -f *.o *.so *~
- -rm -f $(TARGET)
-
-uninstall:
- -rm -f $(TARGETDIR)/$(TARGET)
- -rm -f $(PYMODULES)
-
-
-#----------------------------------------------------------------------
-
-%%.o : %%.cpp
- $(CCC) $(CCSHARED) $(CFLAGS) $(OTHERCFLAGS) -c $<
-
-%%.o : $(GENCODEDIR)/%%.cpp
- $(CCC) $(CCSHARED) $(CFLAGS) $(OTHERCFLAGS) -c $<
-
-%%.o : %%.c
- $(CC) $(CCSHARED) $(CFLAGS) $(OTHERCFLAGS) -c $<
-
-%%.o : $(GENCODEDIR)/%%.c
- $(CC) $(CCSHARED) $(CFLAGS) $(OTHERCFLAGS) -c $<
-
-$(GENCODEDIR)/%%.cpp : %%.i
- swig $(SWIGFLAGS) -c -o $@ $<
-
-$(GENCODEDIR)/%%.py : %%.i
- swig $(SWIGFLAGS) -c -o $(GENCODEDIR)/tmp_wrap.cpp $<
- rm $(GENCODEDIR)/tmp_wrap.cpp
-
-$(TARGETDIR)/%% : %%
- cp -f $< $@
-
-$(TARGETDIR)/%% : $(GENCODEDIR)/%%
- cp -f $< $@
-
-#----------------------------------------------------------------------
-
-%(DEPENDS)s
-
-#----------------------------------------------------------------------
-
-$(TARGET) : $(OBJECTS)
- $(LDSHARED) $(OBJECTS) $(LFLAGS) $(LIBS) $(OTHERLIBS) -o $(TARGET)
-
-
-
-pycfiles : $(PYMODULES)
- $(EXECPREFIX)/bin/python $(PYLIB)/compileall.py -l $(TARGETDIR)
- $(EXECPREFIX)/bin/python -O $(PYLIB)/compileall.py -l $(TARGETDIR)
-
-
-$(TARGETDIR) :
- mkdir $(TARGETDIR)
-
-$(GENCODEDIR):
- mkdir $(GENCODEDIR)
-
-#----------------------------------------------------------------------
-
-
-%(OTHERRULES)s
-
-
-
-'''
-
-
-#----------------------------------------------------------------------------
-
-if __name__ == '__main__':
- main(sys.argv)
-
-#----------------------------------------------------------------------------
-
-
-
-
-
-
-
-