]> git.saurik.com Git - wxWidgets.git/blobdiff - distrib/msw/tmake/vc.t
Added makefile for making documentation
[wxWidgets.git] / distrib / msw / tmake / vc.t
index eb36fee89d33d5c0078036d4060fc508e1e42f10..5791eddd07cbdf8e19998bec417607221085644a 100644 (file)
@@ -13,6 +13,8 @@
 
     #! now transform these hashes into $project tags
     foreach $file (sort keys %wxGeneric) {
+        next if $wxGeneric{$file} =~ /\bU\b/;
+
         my $tag = "";
         if ( $wxGeneric{$file} =~ /\b(PS|G|16|U)\b/ ) {
             $tag = "WXNONESSENTIALOBJS";
         }
 
         $file =~ s/cp?p?$/obj/;
-        $project{$tag} .= "..\\generic\\\$D\\" . $file . " "
+        $project{$tag} .= "\$(GENDIR)\\\$D\\" . $file . " "
     }
 
     foreach $file (sort keys %wxCommon) {
-        next if $wxCommon{$file} =~ /\b16\b/;
+        next if $wxCommon{$file} =~ /\b(16|U)\b/;
 
         $file =~ s/cp?p?$/obj/;
-        $project{"WXCOMMONOBJS"} .= "..\\common\\\$D\\" . $file . " "
+        $project{"WXCOMMONOBJS"} .= "\$(COMMDIR)\\\$D\\" . $file . " "
     }
 
     foreach $file (sort keys %wxMSW) {
         next if $wxMSW{$file} =~ /\b16\b/;
 
         #! OLE files live in a subdir
-        $project{"WXMSWOBJS"} .= '..\msw\\';
-        $project{"WXMSWOBJS"} .= 'ole\\' if $wxMSW{$file} =~ /\bO\b/;
+        if( $wxMSW{$file} =~ /\bO\b/ ) {
+            $project{"WXMSWOBJS"} .= '$(OLEDIR)';
+        } else {
+            $project{"WXMSWOBJS"} .= '$(MSWDIR)';
+        }
         $file =~ s/cp?p?$/obj/;
-        $project{"WXMSWOBJS"} .= '$D\\' . $file . " ";
+        $project{"WXMSWOBJS"} .= '\\$D\\' . $file . " ";
     }
+
+    foreach $file (sort keys %wxHTML) {
+        next if $wxHTML{$file} =~ /\b16\b/;
+
+        $file =~ s/cp?p?$/obj/;
+        $project{"WXHTMLOBJS"} .= "\$(HTMLDIR)\\\$D\\" . $file . " "
+    }
+
 #$}
-# This file was automatically generated by tmake at #$ Now()
+# This file was automatically generated by tmake
 # DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE VC.T!
 
 # File:     makefile.vc
@@ -65,15 +78,10 @@ THISDIR=$(WXWIN)\src\msw
 
 !if "$(WXMAKINGDLL)" == "1"
 LIBTARGET=$(WXDIR)\lib\$(WXLIBNAME).dll
-DUMMYOBJ=$D\dummydll.obj
 !else
 LIBTARGET=$(WXLIB)
-DUMMYOBJ=$D\dummy.obj
 !endif
 
-# Please set these according to the settings in setup.h, so we can include
-# the appropriate libraries in wx.lib
-
 # This one overrides the others, to be consistent with the settings in setup.h
 MINIMAL_WXWINDOWS_SETUP=0
 
@@ -81,6 +89,12 @@ PERIPH_LIBS=
 PERIPH_TARGET=
 PERIPH_CLEAN_TARGET=
 
+# Set to 0 if not using GLCanvas (only affects DLL build)
+USE_GLCANVAS=1
+
+# Set to 1 if you are using MSVC 5
+USE_MSVC_5=0
+
 # These are absolute paths, so that the compiler
 # generates correct __FILE__ symbols for debugging.
 # Otherwise you don't be able to double-click on a memory
@@ -91,33 +105,42 @@ OLEDIR=ole
 MSWDIR=$(WXDIR)\src\msw
 DOCDIR = $(WXDIR)\docs
 HTMLDIR = $(WXDIR)\src\html
+JPEGDIR = $(WXDIR)\src\jpeg
+TIFFDIR = $(WXDIR)\src\tiff
+REGEXDIR = $(WXDIR)\src\regex
+
 
-{..\generic}.cpp{..\generic\$D}.obj:
+{$(GENDIR)}.cpp{$(GENDIR)\$D}.obj:
        cl @<<
 $(CPPFLAGS) /Fo$@ /c /Tp $<
 <<
 
-{..\common}.cpp{..\common\$D}.obj:
+{$(COMMDIR)}.cpp{$(COMMDIR)\$D}.obj:
        cl @<<
 $(CPPFLAGS) /Fo$@ /c /Tp $<
 <<
 
-{..\common}.c{..\common\$D}.obj:
+{$(COMMDIR)}.c{$(COMMDIR)\$D}.obj:
        cl @<<
 $(CPPFLAGS2) /Fo$@ /c /Tc $<
 <<
 
-{..\msw}.cpp{..\msw\$D}.obj:
+{$(MSWDIR)}.cpp{$(MSWDIR)\$D}.obj:
        cl @<<
 $(CPPFLAGS) /Fo$@ /c /Tp $<
 <<
 
-{..\msw\ole}.cpp{..\msw\ole\$D}.obj:
+{$(MSWDIR)}.c{$(MSWDIR)\$D}.obj:
+       cl @<<
+$(CPPFLAGS2) /Fo$@ /c /Tc $<
+<<
+
+{$(OLEDIR)}.cpp{$(OLEDIR)\$D}.obj:
        cl @<<
 $(CPPFLAGS) /Fo$@ /c /Tp $<
 <<
 
-{..\html}.cpp{..\html\$D}.obj:
+{$(HTMLDIR)}.cpp{$(HTMLDIR)\$D}.obj:
        cl @<<
 $(CPPFLAGS) /Fo$@ /c /Tp $<
 <<
@@ -129,42 +152,36 @@ GENERICOBJS= #$ ExpandList("WXGENERICOBJS");
 NONESSENTIALOBJS= #$ ExpandList("WXNONESSENTIALOBJS");
 
 COMMONOBJS = \
-               ..\common\$D\y_tab.obj \
                #$ ExpandList("WXCOMMONOBJS");
 
 MSWOBJS = #$ ExpandList("WXMSWOBJS");
 
-HTMLOBJS = \
-  ..\html\$D\htmlcell.obj \
-  ..\html\$D\htmlfilter.obj \
-  ..\html\$D\htmlhelp.obj \
-  ..\html\$D\htmlhelp_io.obj \
-  ..\html\$D\htmlparser.obj \
-  ..\html\$D\htmltag.obj \
-  ..\html\$D\htmlwin.obj \
-  ..\html\$D\htmlwinparser.obj \
-  ..\html\$D\mod_fonts.obj \
-  ..\html\$D\mod_hline.obj \
-  ..\html\$D\mod_image.obj \
-  ..\html\$D\mod_layout.obj \
-  ..\html\$D\mod_links.obj \
-  ..\html\$D\mod_list.obj \
-  ..\html\$D\mod_pre.obj \
-  ..\html\$D\mod_tables.obj \
-  ..\html\$D\search.obj
+HTMLOBJS = #$ ExpandList("WXHTMLOBJS");
+
 
 # Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc.
 # Add $(HTMLOBJS) if wanting wxHTML classes
-OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS)
+OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) $(HTMLOBJS)
+
+ARCHINCDIR=$(WXDIR)\lib\$(_WXINC_BUILD)$(_WXINC_DLLSUFFIX)$(_WXINC_SUFFIX)$(LIBEXT)
+SETUP_H=$(ARCHINCDIR)\wx\setup.h
 
 # Normal, static library
-all:    dirs $(DUMMYOBJ) $(OBJECTS) $(PERIPH_TARGET) png zlib xpm jpeg $(LIBTARGET)
+all:    dirs $(SETUP_H) $(DUMMYOBJ) $(OBJECTS) $(PERIPH_TARGET) png zlib jpeg tiff regex $(LIBTARGET)
 
-dirs: $(MSWDIR)\$D $(COMMDIR)\$D $(GENDIR)\$D $(OLEDIR)\$D $(HTMLDIR)\$D
+$(ARCHINCDIR)\wx:
+    mkdir $(ARCHINCDIR)
+    mkdir $(ARCHINCDIR)\wx
 
+$(WXDIR)\include\wx\msw\setup.h:
+    cd $(WXDIR)\include\wx\msw
+    if not exist setup.h copy setup0.h setup.h
+    cd $(WXDIR)\src\msw
+
+$(SETUP_H): $(WXDIR)\include\wx\msw\setup.h
+    copy $(WXDIR)\include\wx\msw\setup.h $@
 
-test:   $(MSWDIR)\$D\wave.obj
-test2:  ..\common\Debug\config.obj
+dirs: $(MSWDIR)\$D $(COMMDIR)\$D $(GENDIR)\$D $(OLEDIR)\$D $(HTMLDIR)\$D $(JPEGDIR)\$D $(TIFFDIR)\$D $(REGEXDIR)\$D $(ARCHINCDIR)\wx $(WXDIR)\$D
 
 $D:
     mkdir $D
@@ -184,20 +201,33 @@ $(OLEDIR)\$D:
 $(HTMLDIR)\$D:
     mkdir $(HTMLDIR)\$D
 
+$(JPEGDIR)\$D:
+    mkdir $(JPEGDIR)\$D
+
+$(TIFFDIR)\$D:
+    mkdir $(TIFFDIR)\$D
+
+$(REGEXDIR)\$D:
+    mkdir $(REGEXDIR)\$D
+
+$(WXDIR)\$D:
+    mkdir $(WXDIR)\$D
+
+
 # wxWindows library as DLL
 dll:
-        nmake -f makefile.vc all FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME)
+        nmake -f makefile.vc all FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME) UNICODE=$(UNICODE) MSLU=$(MSLU)
 
 cleandll:
-        nmake -f makefile.vc clean FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME)
+        nmake -f makefile.vc clean FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME) UNICODE=$(UNICODE) MSLU=$(MSLU)
 
 # wxWindows + app as DLL. Only affects main.cpp.
 dllapp:
-        nmake -f makefile.vc all FINAL=$(FINAL) DLL=1
+        nmake -f makefile.vc all FINAL=$(FINAL) DLL=1 UNICODE=$(UNICODE) MSLU=$(MSLU)
 
 # wxWindows + app as DLL, for Netscape plugin - remove DllMain.
 dllnp:
-        nmake -f makefile.vc all NOMAIN=1 FINAL=$(FINAL) DLL=1
+        nmake -f makefile.vc all NOMAIN=1 FINAL=$(FINAL) DLL=1 UNICODE=$(UNICODE) MSLU=$(MSLU)
 
 # Use this to make dummy.obj and generate a PCH.
 # You might use the dll target, then the pch target, in order to
@@ -219,12 +249,12 @@ pch1:   dirs $(DUMMYOBJ)
 
 ### Static library
 
-$(WXDIR)\lib\$(WXLIBNAME).lib:      $D\dummy.obj $(OBJECTS) $(PERIPH_LIBS)
+$(WXDIR)\lib\$(WXLIBNAME).lib:      $(DUMMYOBJ) $(OBJECTS) $(PERIPH_LIBS)
        -erase $(LIBTARGET)
        $(implib) @<<
 -out:$@
 -machine:$(CPU)
-$(OBJECTS) $(PERIPH_LIBS)
+$(OBJECTS) $(DUMMYOBJ) $(PERIPH_LIBS)
 <<
 
 !else
@@ -239,52 +269,116 @@ $(WXDIR)\lib\$(WXLIBNAME).lib: $(DUMMYOBJ) $(OBJECTS)
     -out:$(WXDIR)\lib\$(WXLIBNAME).lib
 <<
 
+!if "$(USE_GLCANVAS)" == "1"
+GL_LIBS=opengl32.lib glu32.lib
+# GL_LIBS_DELAY=/delayload:opengl32.dll
+!endif
+
+!if "$(USE_MSVC_5)" == "1"
+# we are too big
+INCREMENTAL=/INCREMENTAL:NO
+DELAY_LOAD=
+!else
+INCREMENTAL=
+DELAY_LOAD=delayimp.lib \
+       /delayload:ws2_32.dll /delayload:advapi32.dll /delayload:user32.dll \
+        /delayload:gdi32.dll \
+       /delayload:comdlg32.dll /delayload:shell32.dll /delayload:comctl32.dll \
+        /delayload:ole32.dll \
+       /delayload:oleaut32.dll /delayload:rpcrt4.dll $(GL_LIBS_DELAY)
+!endif
+
 # Update the dynamic link library
-$(WXDIR)\lib\$(WXLIBNAME).dll: $(DUMMYOBJ) $(OBJECTS) $(WXDIR)\lib\$(WXLIBNAME).lib
+$(WXDIR)\lib\$(WXLIBNAME).dll: $(DUMMYOBJ) $(OBJECTS)
     $(link) @<<
-    $(LINKFLAGS)
+    $(LINKFLAGS) $(INCREMENTAL)
     -out:$(WXDIR)\lib\$(WXLIBNAME).dll
-    $(DUMMYOBJ) $(OBJECTS) $(guilibsdll) shell32.lib comctl32.lib ctl3d32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib odbc32.lib advapi32.lib winmm.lib $(WXDIR)\lib\winpng.lib $(WXDIR)\lib\zlib.lib $(WXDIR)\lib\xpm.lib $(WXDIR)\lib\jpeg.lib
+    $(DUMMYOBJ) $(OBJECTS) $(MSLU_LIBS) $(guilibsdll) shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib odbc32.lib advapi32.lib winmm.lib $(GL_LIBS) $(WXDIR)\lib\png$(LIBEXT).lib $(WXDIR)\lib\zlib$(LIBEXT).lib $(WXDIR)\lib\jpeg$(LIBEXT).lib $(WXDIR)\lib\tiff$(LIBEXT).lib $(WXDIR)\lib\regex$(LIBEXT).lib $(DELAY_LOAD)
 <<
 
 !endif
 
+# /delayload:winmm.dll # Removed because it can cause a crash for some people
 
 ########################################################
 # Windows-specific objects
 
-$D\dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(WXDIR)\include\wx\msw\setup.h
-        cl $(CPPFLAGS) $(MAKEPRECOMP) /Fo$D\dummy.obj /c /Tp dummy.cpp
+$(DUMMYOBJ): $(DUMMY).$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(SETUP_H)
+        cl $(CPPFLAGS) $(MAKEPRECOMP) /Fo$(DUMMYOBJ) /c /Tp $(DUMMY).cpp
 
-$D\dummydll.obj: dummydll.$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(WXDIR)\include\wx\msw\setup.h
-        cl @<<
-$(CPPFLAGS) $(MAKEPRECOMP) /Fo$D\dummydll.obj /c /Tp dummydll.cpp
+# Compile certain files with no optimization (some files cause a
+# compiler crash for buggy versions of VC++, e.g. 4.0).
+# Don't forget to put FINAL=1 on the command line.
+noopt:
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(COMMDIR)\$D\datetime.obj /c /Tp $(COMMDIR)\datetime.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(COMMDIR)\$D\encconv.obj /c /Tp $(COMMDIR)\encconv.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(COMMDIR)\$D\fileconf.obj /c /Tp $(COMMDIR)\fileconf.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(COMMDIR)\$D\hash.obj /c /Tp $(COMMDIR)\hash.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(COMMDIR)\$D\textfile.obj /c /Tp $(COMMDIR)\textfile.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(GENDIR)\$D\choicdgg.obj /c /Tp $(GENDIR)\choicdgg.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(GENDIR)\$D\grid.obj /c /Tp $(GENDIR)\grid.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(GENDIR)\$D\gridsel.obj /c /Tp $(GENDIR)\gridsel.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(GENDIR)\$D\logg.obj /c /Tp $(GENDIR)\logg.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(MSWDIR)\$D\clipbrd.obj /c /Tp $(MSWDIR)\clipbrd.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(MSWDIR)\$D\control.obj /c /Tp $(MSWDIR)\control.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(MSWDIR)\$D\listbox.obj /c /Tp $(MSWDIR)\listbox.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(MSWDIR)\$D\mdi.obj /c /Tp $(MSWDIR)\mdi.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(MSWDIR)\$D\menu.obj /c /Tp $(MSWDIR)\menu.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(MSWDIR)\$D\notebook.obj /c /Tp $(MSWDIR)\notebook.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(MSWDIR)\$D\tbar95.obj /c /Tp $(MSWDIR)\tbar95.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(MSWDIR)\$D\treectrl.obj /c /Tp $(MSWDIR)\treectrl.cpp
+<<
+       cl @<<
+$(CPPFLAGS2) /Od /Fo$(HTMLDIR)\$D\helpfrm.obj /c /Tp $(HTMLDIR)\helpfrm.cpp
 <<
 
-# If taking wxWindows from CVS, setup.h doesn't exist yet.
-# Actually the 'if not exist setup.h' test doesn't work
-# (copies the file anyway)
-# we'll have to comment this rule out.
-
-# $(WXDIR)\include\wx\msw\setup.h: $(WXDIR)\include\wx\msw\setup0.h
-#    cd "$(WXDIR)"\include\wx\msw
-#    if not exist setup.h copy setup0.h setup.h
-#    cd "$(WXDIR)"\src\msw
-
-..\common\$D\y_tab.obj:     ..\common\y_tab.c ..\common\lex_yy.c
+$(COMMDIR)\$D\y_tab.obj:     $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
         cl @<<
-$(CPPFLAGS2) /c ..\common\y_tab.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@
+$(CPPFLAGS2) /c $(COMMDIR)\y_tab.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@
 <<
 
-..\common\y_tab.c:     ..\common\dosyacc.c
-        copy "..\common"\dosyacc.c "..\common"\y_tab.c
+$(COMMDIR)\y_tab.c:     $(COMMDIR)\dosyacc.c
+        copy "$(COMMDIR)"\dosyacc.c "$(COMMDIR)"\y_tab.c
 
-..\common\lex_yy.c:    ..\common\doslex.c
-    copy "..\common"\doslex.c "..\common"\lex_yy.c
+$(COMMDIR)\lex_yy.c:    $(COMMDIR)\doslex.c
+    copy "$(COMMDIR)"\doslex.c "$(COMMDIR)"\lex_yy.c
 
-$(OBJECTS):    $(WXDIR)/include/wx/setup.h
+$(OBJECTS):    $(SETUP_H)
 
-..\common\$D\unzip.obj:     ..\common\unzip.c
+$(COMMDIR)\$D\unzip.obj:     $(COMMDIR)\unzip.c
         cl @<<
 $(CPPFLAGS2) /c $(COMMDIR)\unzip.c /Fo$@
 <<
@@ -293,7 +387,7 @@ $(CPPFLAGS2) /c $(COMMDIR)\unzip.c /Fo$@
 
 png:
     cd $(WXDIR)\src\png
-    nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL)
+    nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG) UNICODE=0
     cd $(WXDIR)\src\msw
 
 clean_png:
@@ -303,7 +397,7 @@ clean_png:
 
 zlib:
     cd $(WXDIR)\src\zlib
-    nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL)
+    nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG) UNICODE=0
     cd $(WXDIR)\src\msw
 
 clean_zlib:
@@ -313,7 +407,7 @@ clean_zlib:
 
 jpeg:
     cd $(WXDIR)\src\jpeg
-    nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) all
+    nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL)  CRTFLAG=$(CRTFLAG) UNICODE=0 all
     cd $(WXDIR)\src\msw
 
 clean_jpeg:
@@ -321,13 +415,23 @@ clean_jpeg:
     nmake -f makefile.vc clean
     cd $(WXDIR)\src\msw
 
-xpm:
-    cd $(WXDIR)\src\xpm
-    nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL)
+tiff:
+    cd $(WXDIR)\src\tiff
+    nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL)  CRTFLAG=$(CRTFLAG) UNICODE=0 all
+    cd $(WXDIR)\src\msw
+
+clean_tiff:
+    cd $(WXDIR)\src\tiff
+    nmake -f makefile.vc clean
+    cd $(WXDIR)\src\msw
+
+regex:
+    cd $(WXDIR)\src\regex
+    nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG) UNICODE=0 all
     cd $(WXDIR)\src\msw
 
-clean_xpm:
-    cd $(WXDIR)\src\xpm
+clean_regex:
+    cd $(WXDIR)\src\regex
     nmake -f makefile.vc clean
     cd $(WXDIR)\src\msw
 
@@ -336,240 +440,178 @@ rcparser:
     nmake -f makefile.vc FINAL=$(FINAL)
     cd $(WXDIR)\src\msw
 
-clean: $(PERIPH_CLEAN_TARGET) clean_png clean_zlib clean_jpeg clean_xpm
+cleanall: clean clean_png clean_zlib clean_jpeg clean_tiff clean_regex
+        -erase ..\..\lib\$(WXLIBNAME).dll
+        -erase ..\..\lib\$(WXLIBNAME).lib
+        -erase ..\..\lib\$(WXLIBNAME).exp
+        -erase ..\..\lib\$(WXLIBNAME).pdb
+        -erase ..\..\lib\$(WXLIBNAME).ilk
+
+
+clean: $(PERIPH_CLEAN_TARGET)
         -erase $(LIBTARGET)
         -erase $(WXDIR)\lib\$(WXLIBNAME).pdb
-        -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).dll
-        -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).lib
-        -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).exp
-        -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).pdb
-        -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).ilk
         -erase *.pdb
         -erase *.sbr
         -erase $(WXLIBNAME).pch
+       -erase $(WXDIR)\$D\$(PCH)
+       -erase $(WXDIR)\$D\*.pdb
+       -erase $(WXDIR)\$D\*.obj
         -erase $(GENDIR)\$D\*.obj
         -erase $(GENDIR)\$D\*.pdb
         -erase $(GENDIR)\$D\*.sbr
         -erase $(COMMDIR)\$D\*.obj
         -erase $(COMMDIR)\$D\*.pdb
         -erase $(COMMDIR)\$D\*.sbr
-        -erase $(COMMDIR)\\y_tab.c
+        -erase $(COMMDIR)\y_tab.c
         -erase $(COMMDIR)\lex_yy.c
         -erase $(MSWDIR)\$D\*.obj
         -erase $(MSWDIR)\$D\*.sbr
         -erase $(MSWDIR)\$D\*.pdb
+        -erase $(MSWDIR)\$D\*.pch
         -erase $(OLEDIR)\$D\*.obj
         -erase $(OLEDIR)\$D\*.sbr
         -erase $(OLEDIR)\$D\*.pdb
+        -erase $(HTMLDIR)\$D\*.obj
+        -erase $(HTMLDIR)\$D\*.sbr
+        -erase $(HTMLDIR)\$D\*.pdb
+        -erase $(JPEGDIR)\$D\*.obj
+        -erase $(JPEGDIR)\$D\*.sbr
+        -erase $(JPEGDIR)\$D\*.idb
+        -erase $(JPEGDIR)\$D\*.pdb
+        -erase $(TIFFDIR)\$D\*.obj
+        -erase $(TIFFDIR)\$D\*.sbr
+        -erase $(TIFFDIR)\$D\*.pdb
+        -erase $(TIFFDIR)\$D\*.idb
         -rmdir $(D)
-        -rmdir ole\$(D)
-        -rmdir ..\generic\$(D)
-        -rmdir ..\common\$(D)
-
-cleanall: clean
+        -rmdir $(GENDIR)\$(D)
+        -rmdir $(COMMDIR)\$(D)
+        -rmdir $(MSWDIR)\$(D)
+        -rmdir $(OLEDIR)\$(D)
+        -rmdir $(HTMLDIR)\$(D)
+        -rmdir $(JPEGDIR)\$(D)
+        -rmdir $(TIFFDIR)\$(D)
+       -rmdir $(WXDIR)\$D
 
 # Making documents
-docs:   allhlp allhtml allpdfrtf
+docs:   allhlp allhtml allpdfrtf allhtb allhtmlhelp
 alldocs: docs
-hlp:    wxhlp portinghlp
+hlp:    wxhlp
 wxhlp:  $(DOCDIR)/winhelp/wx.hlp
-prophlp: $(DOCDIR)/winhelp/prop.hlp
-refhlp: $(DOCDIR)/winhelp/techref.hlp
 rtf:    $(DOCDIR)/winhelp/wx.rtf
-proprtf: $(DOCDIR)/winhelp/prop.rtf
 pdfrtf:    $(DOCDIR)/pdf/wx.rtf
-proppdfrtf: $(DOCDIR)/pdf/prop.rtf
-refpdfrtf: $(DOCDIR)/pdf/techref.rtf
-html:  wxhtml portinghtml
+html:  wxhtml
+htb:   $(DOCDIR)\htb\wx.htb
 wxhtml:        $(DOCDIR)\html\wx\wx.htm
-htmlhelp: $(DOCDIR)\html\wx\wx.chm
-prophtml: $(DOCDIR)\html\proplist\prop.htm
-ps:     wxps referencps
+htmlhelp: $(DOCDIR)\htmlhelp\wx.chm
+ps:     wxps
 wxps:  $(WXDIR)\docs\ps\wx.ps
-propps:        $(WXDIR)\docs\ps\prop.ps
-referencps:    $(WXDIR)\docs\ps\referenc.ps
 
-portinghtml: $(DOCDIR)\html\porting\port.htm
-portingrtf: $(DOCDIR)/winhelp/porting.rtf
-portinghlp: $(DOCDIR)/winhelp/porting.hlp
-portingpdfrtf: $(DOCDIR)/pdf/porting.rtf
-portingps:     $(WXDIR)\docs\ps\porting.ps
+allhlp: wxhlp
 
-allhlp: wxhlp portinghlp prophlp
-        cd $(WXDIR)\utils\dialoged\src
-        nmake -f makefile.vc hlp
-        cd $(THISDIR)
-
-#        cd $(WXDIR)\utils\wxhelp\src
+#        cd $(WXDIR)\utils\dialoged\src
 #        nmake -f makefile.vc hlp
 #        cd $(WXDIR)\utils\tex2rtf\src
 #        nmake -f makefile.vc hlp
-#        cd $(WXDIR)\utils\wxgraph\src
-#        nmake -f makefile.vc hlp
-#        cd $(WXDIR)\utils\wxchart\src
-#        nmake -f makefile.vc hlp
-#        cd $(WXDIR)\utils\wxtree\src
-#        nmake -f makefile.vc hlp
-#        cd $(WXDIR)\utils\wxbuild\src
-#        nmake -f makefile.vc hlp
-#        cd $(WXDIR)\utils\wxgrid\src
+#        cd $(WXDIR)\contrib\src\fl
 #        nmake -f makefile.vc hlp
+#        cd $(THISDIR)
 
-allhtml: wxhtml portinghtml prophtml
-        cd $(WXDIR)\utils\dialoged\src
-        nmake -f makefile.vc html
-        cd $(THISDIR)
+allhtml: wxhtml
 
-#        nmake -f makefile.vc html
 #        cd $(WXDIR)\utils\dialoged\src
 #        nmake -f makefile.vc html
-#        cd $(WXDIR)\utils\hytext\src
-#        nmake -f makefile.vc html
-#        cd $(WXDIR)\utils\wxhelp\src
-#        nmake -f makefile.vc html
 #        cd $(WXDIR)\utils\tex2rtf\src
 #        nmake -f makefile.vc html
-#        cd $(WXDIR)\utils\wxgraph\src
-#        nmake -f makefile.vc html
-#        cd $(WXDIR)\utils\wxchart\src
-#        nmake -f makefile.vc html
-#        cd $(WXDIR)\utils\wxtree\src
-#        nmake -f makefile.vc html
+#        cd $(WXDIR)\contrib\src\fl
+#        cd $(THISDIR)
 
-allps: wxps referencps portingps propps
-        cd $(WXDIR)\utils\dialoged\src
-        nmake -f makefile.vc ps
-        cd $(THISDIR)
+allhtmlhelp: htmlhelp
+#       cd $(WXDIR)\utils\dialoged\src
+#        nmake -f makefile.vc htmlhelp
+#        cd $(WXDIR)\utils\tex2rtf\src
+#        nmake -f makefile.vc htmlhelp
+#        cd $(WXDIR)\contrib\src\fl
+#        nmake -f makefile.vc htmlhelp
+#        cd $(THISDIR)
+
+allhtb: htb
+
+#        cd $(WXDIR)\utils\dialoged\src
+#        nmake -f makefile.vc htb
+#        cd $(WXDIR)\utils\tex2rtf\src
+#        nmake -f makefile.vc htb
+#        cd $(WXDIR)\contrib\src\fl
+#        nmake -f makefile.vc htb
+#        cd $(THISDIR)
 
-allpdfrtf: pdfrtf portingpdfrtf proppdfrtf
+allps: wxps referencps
         cd $(WXDIR)\utils\dialoged\src
-        nmake -f makefile.vc pdfrtf
+        nmake -f makefile.vc ps
+        cd $(WXDIR)\utils\tex2rtf\src
+        nmake -f makefile.vc ps
+        cd $(WXDIR)\contrib\src\fl
+        nmake -f makefile.vc ps
         cd $(THISDIR)
 
-#        cd $(WXDIR)\utils\wxhelp\src
-#        nmake -f makefile.vc ps
+allpdfrtf: pdfrtf
+#        cd $(WXDIR)\utils\dialoged\src
+#        nmake -f makefile.vc pdfrtf
 #        cd $(WXDIR)\utils\tex2rtf\src
-#        nmake -f makefile.vc ps
-#        cd $(WXDIR)\utils\wxgraph\src
-#        nmake -f makefile.vc ps
-#        cd $(WXDIR)\utils\wxchart\src
-#        nmake -f makefile.vc ps
-#        cd $(WXDIR)\utils\wxtree\src
-#        nmake -f makefile.vc ps
+#        nmake -f makefile.vc pdfrtf
+#        cd $(WXDIR)\contrib\src\fl
+#        nmake -f makefile.vc pdfrtf
 #        cd $(THISDIR)
 
 $(DOCDIR)/winhelp/wx.hlp:         $(DOCDIR)/latex/wx/wx.rtf $(DOCDIR)/latex/wx/wx.hpj
         cd $(DOCDIR)/latex/wx
         -erase wx.ph
         hc wx
+        -erase $(DOCDIR)\winhelp\wx.hlp
+        -erase $(DOCDIR)\winhelp\wx.cnt
         move wx.hlp $(DOCDIR)\winhelp\wx.hlp
         move wx.cnt $(DOCDIR)\winhelp\wx.cnt
         cd $(THISDIR)
 
-$(DOCDIR)/winhelp/porting.hlp:         $(DOCDIR)/latex/porting/porting.rtf $(DOCDIR)/latex/porting/porting.hpj
-        cd $(DOCDIR)/latex/porting
-        -erase porting.ph
-        hc porting
-        move porting.hlp $(DOCDIR)\winhelp\porting.hlp
-        move porting.cnt $(DOCDIR)\winhelp\porting.cnt
-        cd $(THISDIR)
-
-$(DOCDIR)/winhelp/prop.hlp:         $(DOCDIR)/latex/proplist/prop.rtf $(DOCDIR)/latex/proplist/prop.hpj
-        cd $(DOCDIR)/latex/proplist
-        -erase prop.ph
-        hc prop
-        move prop.hlp $(DOCDIR)\winhelp\prop.hlp
-        move prop.cnt $(DOCDIR)\winhelp\prop.cnt
-        cd $(THISDIR)
-
-$(DOCDIR)/winhelp/techref.hlp:         $(DOCDIR)/latex/techref/techref.rtf $(DOCDIR)/latex/techref/techref.hpj
-        cd $(DOCDIR)/latex/techref
-        -erase techref.ph
-        hc techref
-        move techref.hlp $(DOCDIR)\winhelp\techref.hlp
-        move techref.cnt $(DOCDIR)\winhelp\techref.cnt
-        cd $(THISDIR)
-
 $(DOCDIR)/latex/wx/wx.rtf:         $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex
         cd $(DOCDIR)\latex\wx
         -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/latex/wx/wx.rtf -twice -winhelp
         cd $(THISDIR)
 
-$(DOCDIR)/latex/porting/porting.rtf:         $(DOCDIR)/latex/porting/porting.tex
-        cd $(DOCDIR)\latex\porting
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/porting/porting.tex $(DOCDIR)/latex/porting/porting.rtf -twice -winhelp
-        cd $(THISDIR)
-
-$(DOCDIR)/latex/proplist/prop.rtf:         $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex
-        cd $(DOCDIR)\latex\proplist
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/prop.rtf -twice -winhelp
-        cd $(THISDIR)
-
-$(DOCDIR)/latex/techref/techref.rtf:         $(DOCDIR)/latex/techref/techref.tex
-        cd $(DOCDIR)\latex\techref
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/latex/techref/techref.rtf -twice -winhelp
-        cd $(THISDIR)
-
 $(DOCDIR)/pdf/wx.rtf:         $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex
         cd $(DOCDIR)\latex\wx
-        -copy *.bmp *.wmf $(DOCDIR)\pdf
+        -copy *.wmf $(DOCDIR)\pdf
+        -copy *.bmp $(DOCDIR)\pdf
         -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/pdf/wx.rtf -twice -rtf
         cd $(THISDIR)
 
-$(DOCDIR)/pdf/porting.rtf:         $(DOCDIR)/latex/porting/porting.tex
-        cd $(DOCDIR)\latex\porting
-        -copy *.bmp *.wmf $(DOCDIR)\pdf
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/porting/porting.tex $(DOCDIR)/pdf/porting.rtf -twice -rtf
-        cd $(THISDIR)
-
-$(DOCDIR)/pdf/prop.rtf:         $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex
-        cd $(DOCDIR)\latex\proplist
-        -copy *.bmp *.wmf $(DOCDIR)\pdf
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/pdf/prop.rtf -twice -rtf
-        cd $(THISDIR)
-
-$(DOCDIR)/pdf/techref.rtf:         $(DOCDIR)/latex/techref/techref.tex
-        cd $(DOCDIR)\latex\techref
-        -copy *.bmp *.wmf $(DOCDIR)\pdf
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/pdf/techref.rtf -twice -rtf
-        cd $(THISDIR)
-
+# This target does two sets of HTML: one using a style sheet, for
+# the purposes of the CHM file, and one without.
 $(DOCDIR)\html\wx\wx.htm:         $(DOCDIR)\latex\wx\classes.tex $(DOCDIR)\latex\wx\body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)\latex\wx\manual.tex
         cd $(DOCDIR)\latex\wx
         -mkdir $(DOCDIR)\html\wx
+        copy *.gif $(DOCDIR)\html\wx
         -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\html\wx\wx.htm -twice -html
+        -mkdir $(DOCDIR)\mshtml
+        -mkdir $(DOCDIR)\mshtml\wx
+        copy *.gif $(DOCDIR)\mshtml\wx
+        -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\mshtml\wx\wx.htm -twice -html -macros $(DOCDIR)\latex\wx\tex2rtf_css.ini
         -erase $(DOCDIR)\html\wx\*.con
         -erase $(DOCDIR)\html\wx\*.ref
         -erase $(DOCDIR)\latex\wx\*.con
         -erase $(DOCDIR)\latex\wx\*.ref
          cd $(THISDIR)
 
-$(DOCDIR)\html\wx\wx.chm : $(DOCDIR)\html\wx\wx.htm $(DOCDIR)\html\wx\wx.hhp
-       cd $(DOCDIR)\html\wx
+$(DOCDIR)\htmlhelp\wx.chm : $(DOCDIR)\html\wx\wx.htm $(DOCDIR)\mshtml\wx\wx.htm $(DOCDIR)\mshtml\wx\wx.hhp
+       cd $(DOCDIR)\mshtml\wx
+    copy $(DOCDIR)\latex\wx\wx.css .
        -hhc wx.hhp
+    -mkdir ..\..\htmlhelp
+    -erase $(DOCDIR)\htmlhelp\wx.chm
+    move wx.chm ..\..\htmlhelp
        cd $(THISDIR)
 
-
-$(DOCDIR)\html\porting\port.htm:         $(DOCDIR)\latex\porting\porting.tex
-        cd $(DOCDIR)\latex\porting
-        -mkdir $(DOCDIR)\html\porting
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\porting\porting.tex $(DOCDIR)\html\porting\port.htm -twice -html
-        -erase $(DOCDIR)\html\porting\*.con
-        -erase $(DOCDIR)\html\porting\*.ref
-        -erase $(DOCDIR)\latex\porting\*.con
-        -erase $(DOCDIR)\latex\porting\*.ref
-        cd $(THISDIR)
-
-$(DOCDIR)\html\proplist\prop.htm:         $(DOCDIR)\latex\proplist\prop.tex $(DOCDIR)\latex\proplist\body.tex $(DOCDIR)\latex\proplist\classes.tex $(DOCDIR)\latex\proplist\changes.tex
-        cd $(DOCDIR)\latex\proplist
-        -mkdir $(DOCDIR)\html\proplist
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\proplist\prop.tex $(DOCDIR)\html\proplist\prop.htm -twice -html
-        -erase $(DOCDIR)\html\proplist\*.con
-        -erase $(DOCDIR)\html\proplist\*.ref
-        -erase $(DOCDIR)\latex\proplist\*.con
-        -erase $(DOCDIR)\latex\proplist\*.ref
-        cd $(THISDIR)
-
 $(WXDIR)\docs\latex\wx\manual.dvi:     $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/manual.tex
        cd $(WXDIR)\docs\latex\wx
         -latex manual
@@ -580,28 +622,12 @@ $(WXDIR)\docs\latex\wx\manual.dvi:        $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/w
         -latex manual
         cd $(THISDIR)
 
-$(WXDIR)\docs\latex\porting\porting.dvi:       $(DOCDIR)/latex/porting/porting.tex
-       cd $(WXDIR)\docs\latex\porting
-        -latex porting
-        -latex porting
-        -makeindx porting
-        -bibtex porting
-        -latex porting
-        -latex porting
-        cd $(THISDIR)
-
 $(WXDIR)\docs\ps\wx.ps:        $(WXDIR)\docs\latex\wx\manual.dvi
        cd $(WXDIR)\docs\latex\wx
         -dvips32 -o wx.ps manual
         move wx.ps $(WXDIR)\docs\ps\wx.ps
         cd $(THISDIR)
 
-$(WXDIR)\docs\ps\porting.ps:   $(WXDIR)\docs\latex\porting\porting.dvi
-       cd $(WXDIR)\docs\latex\porting
-        -dvips32 -o porting.ps porting
-        move porting.ps $(WXDIR)\docs\ps\porting.ps
-        cd $(THISDIR)
-
 $(WXDIR)\docs\latex\wx\referenc.dvi:   $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/referenc.tex
        cd $(WXDIR)\docs\latex\wx
         -latex referenc
@@ -618,12 +644,34 @@ $(WXDIR)\docs\ps\referenc.ps:     $(WXDIR)\docs\latex\wx\referenc.dvi
         move referenc.ps $(WXDIR)\docs\ps\referenc.ps
         cd $(THISDIR)
 
+# An htb file is a zip file containing the .htm, .gif, .hhp, .hhc and .hhk
+# files, renamed to htb.
+# This can then be used with e.g. helpview.
+# Optionally, a cached version of the .hhp file can be generated with hhp2cached.
+$(DOCDIR)\htb\wx.htb: $(DOCDIR)\html\wx\wx.htm
+       cd $(WXDIR)\docs\html\wx
+    -erase wx.zip wx.htb
+    zip wx.zip *.htm *.gif *.hhp *.hhc *.hhk
+    -mkdir $(DOCDIR)\htb
+    move wx.zip $(DOCDIR)\htb\wx.htb
+    cd $(THISDIR)
+
 # In order to force document reprocessing
 touchmanual:
     -touch $(WXDIR)\docs\latex\wx\manual.tex
 
 updatedocs: touchmanual alldocs
 
+cleandocs:
+    -erase $(DOCDIR)\winhelp\wx.hlp
+    -erase $(DOCDIR)\winhelp\wx.cnt
+    -erase $(DOCDIR)\html\wx\*.htm
+    -erase $(DOCDIR)\pdf\wx.rtf
+    -erase $(DOCDIR)\latex\wx\wx.rtf
+    -erase $(DOCDIR)\latex\wx\WX.PH
+    -erase $(DOCDIR)\htmlhelp\wx.chm
+    -erase $(DOCDIR)\htb\wx.htb
+
 # Start Word, running the GeneratePDF macro. MakeManual.dot should be in the
 # Office StartUp folder, and PDFMaker should be installed.
 updatepdf:  # touchmanual pdfrtf