]> git.saurik.com Git - wxWidgets.git/blobdiff - build/bakefiles/regenMakefile.py
Override CocoaSetEnabled() to call -[NSControl setEnabled:]
[wxWidgets.git] / build / bakefiles / regenMakefile.py
index 32d039abccfec930ca879a71b47e75bcdc457619..5ecc47351ad8ab44b04e9dcf083c2992db82de07 100755 (executable)
@@ -7,7 +7,18 @@
 # $Id$
 #
 
-import string, os.path
+import string, os.path, copy
+
+# list of files that should _not_ be generated even thought we could do it:
+DONT_GENERATE = [
+    '../../samples/Makefile.in',
+    '../../samples/samples.dsw',
+    '../../demos/demos.dsw',
+    '../../samples/html/html_samples.dsw',
+    '../../samples/opengl/opengl_samples.dsw',
+    '../../samples/mobile/mobile_samples.dsw',
+    '../../utils/utils.dsw',
+]
 
 file = open('Makefile', 'wt')
 file.write("""
@@ -18,21 +29,32 @@ BAKEFILE = bakefile -v
 
 CDEPS = config.bkl common.bkl common_contrib.bkl
 SDEPS = config.bkl common.bkl common_samples.bkl
-MDEPS = common.bkl config.bkl files.bkl monolithic.bkl multilib.bkl wxwin.py
+MDEPS = common.bkl config.bkl files.bkl monolithic.bkl multilib.bkl opengl.bkl wxwin.py
+
+DSWFLAGS = -DRUNTIME_LIBS=dynamic -DOFFICIAL_BUILD=0 -DUSE_HTML=1 \\
+           -DUSE_OPENGL=1 -DUSE_ODBC=1 -DMONOLITHIC=0 -DUSE_GUI=1 \\
+           -DDEBUG_INFO=default -DDEBUG_FLAG=default -DMSLU=0
+
+COMPAT_TARGETS = ../../src/wxWindows.dsp
+
 """)
 
-lines = []
+lines = {}
 all = {}
-all['autoconf'] = ['../../configure']
+all['autoconf'] = []
+
+linesCur = None
 
 def addMakefile(bake, makedirs, deps=[], args={}):
     """Adds rules to regenerate native makefile in directory 'makedir' from
        bakefiles 'bake'. 'deps' contains additional dependencies (bakefiles
        other than 'bake'."""
     print 'adding %s...' % bake
-    lines.append('')
+    global linesCur
+    linesCur = ['\n']
 
     def add(bake, makedirs, make, dep, format, args={}):
+        global linesCur
         a = ''
         if 'all' in args: a += ' %s' % args['all']
         if format in args: a += ' %s' % args[format]
@@ -43,9 +65,12 @@ def addMakefile(bake, makedirs, deps=[], args={}):
         else:
             makedir = makedirs['all']
         tfile = '%s/%s' % (makedir, make)
-        lines.append('%s: %s' % (tfile, dep))
-        lines.append('\t$(BAKEFILE) -f%s -o$@ %s' % (format, bake))
-        lines.append('\ttouch $@')
+
+        if tfile in DONT_GENERATE: return
+        
+        linesCur.append('%s: %s' % (tfile, dep))
+        linesCur.append('\t$(BAKEFILE) -f%s -o$@ %s %s' % (format, a, bake))
+        linesCur.append('\ttouch $@')
         if format not in all: all[format] = []
         all[format].append(tfile)
 
@@ -56,6 +81,11 @@ def addMakefile(bake, makedirs, deps=[], args={}):
     add(bake, makedirs, 'makefile.vc', dep, 'msvc', args)
     add(bake, makedirs, 'makefile.gcc', dep, 'mingw', args)
     add(bake, makedirs, 'makefile.wat', dep, 'watcom', args)
+    add(bake, makedirs,
+        (bake[1+bake.rfind('/'):]).replace('.bkl','.dsw'),
+        dep, 'msvc6prj', args)
+    
+    lines[bake] = linesCur
 
 
 
@@ -64,11 +94,40 @@ def addMakefile(bake, makedirs, deps=[], args={}):
 # -----------------------------------------------
 
 # main makefile:
-addMakefile('wx.bkl', {'all':'..','autoconf':'../..'}, [ '$(MDEPS)' ])
+addMakefile('wx.bkl', {'all':'../msw','autoconf':'../..'}, [ '$(MDEPS)' ],
+            args={
+                'borland':'-DOPTIONS_FILE=config.bcc',
+                'msvc':'-DOPTIONS_FILE=config.vc',
+                'mingw':'-DOPTIONS_FILE=config.gcc',
+                'watcom':'-DOPTIONS_FILE=config.wat',
+                'msvc6prj':'$(DSWFLAGS)',
+            })
 
 # samples main makefile:
 addMakefile('../../samples/samples.bkl', {'all':'../../samples'},
-            args={'autoconf':'-DAUTOCONF_MACROS_FILE=../../autoconf_inc.m4'})
+            args={
+            'autoconf':'-DAUTOCONF_MACROS_FILE=../../autoconf_inc.m4',
+            'borland':'-DOPTIONS_FILE=../build/msw/config.bcc -DWRITE_OPTIONS_FILE=0',
+            'msvc':'-DOPTIONS_FILE=../build/msw/config.vc -DWRITE_OPTIONS_FILE=0',
+            'mingw':'-DOPTIONS_FILE=../build/msw/config.gcc -DWRITE_OPTIONS_FILE=0',
+            'watcom':'-DOPTIONS_FILE=../build/msw/config.wat -DWRITE_OPTIONS_FILE=0',
+            })
+addMakefile('../../demos/demos.bkl', {'all':'../../demos'},
+            args={
+            'autoconf':'-DAUTOCONF_MACROS_FILE=../../autoconf_inc.m4',
+            'borland':'-DOPTIONS_FILE=../build/msw/config.bcc -DWRITE_OPTIONS_FILE=0',
+            'msvc':'-DOPTIONS_FILE=../build/msw/config.vc -DWRITE_OPTIONS_FILE=0',
+            'mingw':'-DOPTIONS_FILE=../build/msw/config.gcc -DWRITE_OPTIONS_FILE=0',
+            'watcom':'-DOPTIONS_FILE=../build/msw/config.wat -DWRITE_OPTIONS_FILE=0',
+            })
+addMakefile('../../utils/utils.bkl', {'all':'../../utils'},
+            args={
+            'autoconf':'-DAUTOCONF_MACROS_FILE=../../autoconf_inc.m4',
+            'borland':'-DOPTIONS_FILE=../build/msw/config.bcc -DWRITE_OPTIONS_FILE=0',
+            'msvc':'-DOPTIONS_FILE=../build/msw/config.vc -DWRITE_OPTIONS_FILE=0',
+            'mingw':'-DOPTIONS_FILE=../build/msw/config.gcc -DWRITE_OPTIONS_FILE=0',
+            'watcom':'-DOPTIONS_FILE=../build/msw/config.wat -DWRITE_OPTIONS_FILE=0',
+            })
 
 
 CONTRIB_DIR = 1
@@ -77,22 +136,32 @@ SAMPLES_DIR = 2
 def onSubmakefile(type, dirname, names):
     bakes = [x for x in names if x.endswith('.bkl')]
     if len(bakes) == 0: return
+    bakes.sort()
     dirname = dirname.replace(os.sep, '/')
     depth = dirname.count('/') - 2
     if depth <= 0: return
     
     if type==SAMPLES_DIR:
         prefix = ''.join(['../' for i in range(0,depth)])
-        dirflags = '-DWXTOPDIR=%s../' % prefix
+        topdirflags = '-DWXTOPDIR=%s../' % prefix
+        srcdirflags = ''
+        cfgbase = '%s../build/msw/config.' % prefix
     elif type==CONTRIB_DIR:
-        dirflags = '-DSRCDIR=../../src/%s' % dirname.split('/')[-1]
-        dirflags += ' -DWXTOPDIR=../../../'
+        srcdirflags = '-DSRCDIR=../../src/%s' % dirname.split('/')[-1]
+        topdirflags = ' -DWXTOPDIR=../../../'
+        cfgbase = '../../../build/msw/config.'
 
     args = {
-        'not_autoconf':dirflags,
+        'all':topdirflags,
+        'not_autoconf':srcdirflags,
         'autoconf':'-DAUTOCONF_MACROS_FILE=../../autoconf_inc.m4',
+        'msvc':'-DOPTIONS_FILE='+cfgbase+'vc -DWRITE_OPTIONS_FILE=0',
+        'mingw':'-DOPTIONS_FILE='+cfgbase+'gcc -DWRITE_OPTIONS_FILE=0',
+        'borland':'-DOPTIONS_FILE='+cfgbase+'bcc -DWRITE_OPTIONS_FILE=0',
+        'watcom':'-DOPTIONS_FILE='+cfgbase+'wat -DWRITE_OPTIONS_FILE=0',
+        'msvc6prj':'$(DSWFLAGS)',
     }
-    
+
     for bake in bakes:
         if type==CONTRIB_DIR:
             acdir = '../../contrib/src/%s' % dirname.split('/')[-1]
@@ -106,34 +175,61 @@ def onSubmakefile(type, dirname, names):
 
 os.path.walk(os.path.join('..','..','samples'),
              onSubmakefile, SAMPLES_DIR)
+os.path.walk(os.path.join('..','..','demos'),
+             onSubmakefile, SAMPLES_DIR)
+os.path.walk(os.path.join('..','..','utils'),
+             onSubmakefile, SAMPLES_DIR)
 os.path.walk(os.path.join('..','..','contrib','build'),
              onSubmakefile, CONTRIB_DIR)
+os.path.walk(os.path.join('..','..','contrib','samples'),
+             onSubmakefile, SAMPLES_DIR)
+os.path.walk(os.path.join('..','..','contrib','utils'),
+             onSubmakefile, SAMPLES_DIR)
 
 
 cleanCmds = ''
-for f in all:
+allK = all.keys()
+allK.sort()
+cleanList = []
+
+for f in allK:
+    all[f].sort()
+
+for f in allK:
     for i in all[f]:
-        cleanCmds += '\trm -f %s\n' % i
+        cleanList.append('\trm -f %s\n' % i)
+    cleanCmds = ''.join(cleanList)
 
-for f in all:
+for f in allK:
     var = '%s_ALL' % f.upper()
-    file.write('%s = %s\n' % (var,' '.join(all[f])))
+    file.write('%s = \\\n\t%s\n' % (var,' \\\n\t'.join(all[f])))
 
-file.write('all:')
-for f in all:
+file.write('\nall: $(COMPAT_TARGETS)')
+for f in allK:
     file.write(' %s' % f)
 file.write('\n\n')
-for f in all:
+for f in allK:
     file.write('%s: $(%s_ALL)\n' % (f, f.upper()))
 
 file.write("""
 clean:
 \trm -f ../../autoconf_inc.m4
+\trm -f $(COMPAT_TARGETS)
 %s
 
+library: ../../Makefile.in\\
+         ../msw/makefile.bcc\\
+         ../msw/makefile.vc\\
+         ../msw/makefile.wat\\
+         ../msw/makefile.gcc\\
+         ../msw/wx.dsw\\
+         ../../src/wxWindows.dsp
+
 ../../autoconf_inc.m4: ../../Makefile.in
-../../configure: ../../autoconf_inc.m4
-\t(cd ../.. ; aclocal && autoconf)
+
+../../src/wxWindows.dsp: monolithic.bkl files.bkl
+\t$(BAKEFILE) -Icompat -fwx24dsp -DUSE_GUI=1 -DWXUNIV=0 -o$@ wx.bkl
+\ttouch $@
 
 Makefile: regenMakefile.py
 \t./regenMakefile.py
@@ -144,6 +240,9 @@ Makefile: regenMakefile.py
 \t@echo
 \t@exit 1
 """ % cleanCmds)
-for l in lines:
-    file.write('%s\n' % l)
+linesK = lines.keys()
+linesK.sort()
+for lk in linesK:
+    for l in lines[lk]:
+        file.write('%s\n' % l)
 file.close()