]> git.saurik.com Git - wxWidgets.git/blobdiff - build/bakefiles/regenMakefile.py
wx-lib must work on loadable modules, too
[wxWidgets.git] / build / bakefiles / regenMakefile.py
index 7b42b99a528f1ccbf1d2a4279e0b009971825665..39f1adc85d6dad061800825f56a1ba2550c0faed 100755 (executable)
@@ -7,7 +7,7 @@
 # $Id$
 #
 
-import string, os.path
+import string, os.path, copy
 
 file = open('Makefile', 'wt')
 file.write("""
@@ -19,20 +19,31 @@ 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 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
+
+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 +54,9 @@ 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 %s' % (format, a, bake))
-        lines.append('\ttouch $@')
+        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)
 
@@ -57,6 +68,13 @@ def addMakefile(bake, makedirs, deps=[], args={}):
     add(bake, makedirs, 'makefile.gcc', dep, 'mingw', args)
     add(bake, makedirs, 'makefile.wat', dep, 'watcom', args)
 
+    if 'msvc6prj' in args and args['msvc6prj'] != None:
+        add(bake, makedirs,
+            (bake[1+bake.rfind('/'):]).replace('.bkl','.dsw'),
+            dep, 'msvc6prj', args)
+    
+    lines[bake] = linesCur
+
 
 
 # -----------------------------------------------
@@ -70,6 +88,7 @@ addMakefile('wx.bkl', {'all':'..','autoconf':'../..'}, [ '$(MDEPS)' ],
                 'msvc':'-DOPTIONS_FILE=config.vc',
                 'mingw':'-DOPTIONS_FILE=config.gcc',
                 'watcom':'-DOPTIONS_FILE=config.wat',
+                'msvc6prj':'$(DSWFLAGS)',
             })
 
 # samples main makefile:
@@ -80,6 +99,7 @@ addMakefile('../../samples/samples.bkl', {'all':'../../samples'},
             'msvc':'-DOPTIONS_FILE=../build/config.vc -DWRITE_OPTIONS_FILE=0',
             'mingw':'-DOPTIONS_FILE=../build/config.gcc -DWRITE_OPTIONS_FILE=0',
             'watcom':'-DOPTIONS_FILE=../build/config.wat -DWRITE_OPTIONS_FILE=0',
+            'msvc6prj':None,
             })
 
 
@@ -89,6 +109,7 @@ 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
@@ -109,9 +130,12 @@ def onSubmakefile(type, dirname, names):
         '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 bake.endswith('_samples.bkl'):
+            args['msvc6prj'] = None
         if type==CONTRIB_DIR:
             acdir = '../../contrib/src/%s' % dirname.split('/')[-1]
             ruledep = '$(CDEPS)'
@@ -124,36 +148,53 @@ 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('..','..','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 ../makefile.bcc ../makefile.vc ../makefile.wat ../makefile.gcc
+
 ../../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
@@ -164,6 +205,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()