1 #!#############################################################################
3 #! Purpose: tmake template file from which makefile.vc is generated by running
4 #! tmake -t vc wxwin.pro -o makefile.vc
5 #! Author: Vadim Zeitlin
8 #!#############################################################################
10 #! include the code which parses filelist.txt file and initializes
11 #! %wxCommon, %wxGeneric and %wxMSW hashes.
12 IncludeTemplate("filelist.t");
14 #! now transform these hashes into $project tags
15 foreach $file (sort keys %wxGeneric) {
17 if ( $wxGeneric{$file} =~ /\b(PS|G|16|U)\b/ ) {
18 $tag = "WXNONESSENTIALOBJS";
21 $tag = "WXGENERICOBJS";
24 $file =~ s/cp?p?$/obj/;
25 $project{$tag} .= "..\\generic\\\$D\\" . $file . " "
28 foreach $file (sort keys %wxCommon) {
29 next if $wxCommon{$file} =~ /\b16\b/;
31 $file =~ s/cp?p?$/obj/;
32 $project{"WXCOMMONOBJS"} .= "..\\common\\\$D\\" . $file . " "
35 foreach $file (sort keys %wxMSW) {
36 next if $wxMSW{$file} =~ /\b16\b/;
38 #! OLE files live in a subdir
39 $project{"WXMSWOBJS"} .= '..\msw\\';
40 $project{"WXMSWOBJS"} .= 'ole\\' if $wxMSW{$file} =~ /\bO\b/;
41 $file =~ s/cp?p?$/obj/;
42 $project{"WXMSWOBJS"} .= '$D\\' . $file . " ";
45 foreach $file (sort keys %wxHTML) {
46 next if $wxHTML{$file} =~ /\b16\b/;
48 $file =~ s/cp?p?$/obj/;
49 $project{"WXHTMLOBJS"} .= "..\\html\\\$D\\" . $file . " "
53 # This file was automatically generated by tmake at #$ Now()
54 # DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE VC.T!
57 # Author: Julian Smart
60 # Copyright: (c) 1997, Julian Smart
64 # Makefile : Builds wxWindows library wx.lib for VC++ (32-bit)
67 # FINAL=1 argument to nmake to build version with no debugging info.
68 # dll builds a library (wxdll.lib) suitable for creating DLLs
70 !include <..\makevc.env>
72 THISDIR=$(WXWIN)\src\msw
74 !if "$(WXMAKINGDLL)" == "1"
75 LIBTARGET=$(WXDIR)\lib\$(WXLIBNAME).dll
76 DUMMYOBJ=$D\dummydll.obj
82 # Please set these according to the settings in setup.h, so we can include
83 # the appropriate libraries in wx.lib
85 # This one overrides the others, to be consistent with the settings in setup.h
86 MINIMAL_WXWINDOWS_SETUP=0
92 # These are absolute paths, so that the compiler
93 # generates correct __FILE__ symbols for debugging.
94 # Otherwise you don't be able to double-click on a memory
95 # error to load that file.
96 GENDIR=$(WXDIR)\src\generic
97 COMMDIR=$(WXDIR)\src\common
99 MSWDIR=$(WXDIR)\src\msw
100 DOCDIR = $(WXDIR)\docs
101 HTMLDIR = $(WXDIR)\src\html
103 {..\generic}.cpp{..\generic\$D}.obj:
105 $(CPPFLAGS) /Fo$@ /c /Tp $<
108 {..\common}.cpp{..\common\$D}.obj:
110 $(CPPFLAGS) /Fo$@ /c /Tp $<
113 {..\common}.c{..\common\$D}.obj:
115 $(CPPFLAGS2) /Fo$@ /c /Tc $<
118 {..\msw}.cpp{..\msw\$D}.obj:
120 $(CPPFLAGS) /Fo$@ /c /Tp $<
123 {..\msw}.c{..\msw\$D}.obj:
125 $(CPPFLAGS2) /Fo$@ /c /Tc $<
128 {..\msw\ole}.cpp{..\msw\ole\$D}.obj:
130 $(CPPFLAGS) /Fo$@ /c /Tp $<
133 {..\html}.cpp{..\html\$D}.obj:
135 $(CPPFLAGS) /Fo$@ /c /Tp $<
138 GENERICOBJS= #$ ExpandList("WXGENERICOBJS");
140 # These are generic things that don't need to be compiled on MSW,
141 # but sometimes it's useful to do so for testing purposes.
142 NONESSENTIALOBJS= #$ ExpandList("WXNONESSENTIALOBJS");
145 ..\common\$D\y_tab.obj \
146 #$ ExpandList("WXCOMMONOBJS");
148 MSWOBJS = #$ ExpandList("WXMSWOBJS");
150 HTMLOBJS = #$ ExpandList("WXHTMLOBJS");
153 # Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc.
154 # Add $(HTMLOBJS) if wanting wxHTML classes
155 OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) $(HTMLOBJS)
157 # Normal, static library
158 all: dirs $(DUMMYOBJ) $(OBJECTS) $(PERIPH_TARGET) png zlib xpm jpeg tiff $(LIBTARGET)
160 dirs: $(MSWDIR)\$D $(COMMDIR)\$D $(GENDIR)\$D $(OLEDIR)\$D $(HTMLDIR)\$D
163 test: $(MSWDIR)\$D\wave.obj
164 test2: ..\common\Debug\config.obj
184 # wxWindows library as DLL
186 nmake -f makefile.vc all FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME)
189 nmake -f makefile.vc clean FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME)
191 # wxWindows + app as DLL. Only affects main.cpp.
193 nmake -f makefile.vc all FINAL=$(FINAL) DLL=1
195 # wxWindows + app as DLL, for Netscape plugin - remove DllMain.
197 nmake -f makefile.vc all NOMAIN=1 FINAL=$(FINAL) DLL=1
199 # Use this to make dummy.obj and generate a PCH.
200 # You might use the dll target, then the pch target, in order to
201 # generate a DLL, then a PCH/dummy.obj for compiling your applications with.
203 # Explanation: Normally, when compiling a static version of wx.lib, your dummy.obj/PCH
204 # are associated with wx.lib. When using a DLL version of wxWindows, however,
205 # the DLL is compiled without a PCH, so you only need it for compiling the app.
206 # In fact headers are compiled differently depending on whether a DLL is being made
207 # or an app is calling the DLL exported functionality (WXDLLEXPORT is different
208 # in each case) so you couldn't use the same PCH.
210 nmake -f makefile.vc pch1 WXUSINGDLL=1 FINAL=$(FINAL) NEW_WXLIBNAME=$(NEW_WXLIBNAME)
212 pch1: dirs $(DUMMYOBJ)
215 !if "$(WXMAKINGDLL)" != "1"
219 $(WXDIR)\lib\$(WXLIBNAME).lib: $D\dummy.obj $(OBJECTS) $(PERIPH_LIBS)
224 $(OBJECTS) $(PERIPH_LIBS)
229 ### Update the import library
231 $(WXDIR)\lib\$(WXLIBNAME).lib: $(DUMMYOBJ) $(OBJECTS)
235 $(DUMMYOBJ) $(OBJECTS)
236 -out:$(WXDIR)\lib\$(WXLIBNAME).lib
239 # Update the dynamic link library
240 $(WXDIR)\lib\$(WXLIBNAME).dll: $(DUMMYOBJ) $(OBJECTS)
243 -out:$(WXDIR)\lib\$(WXLIBNAME).dll
244 $(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 $(WXDIR)\lib\tiff.lib
250 ########################################################
251 # Windows-specific objects
253 $D\dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(WXDIR)\include\wx\msw\setup.h
254 cl $(CPPFLAGS) $(MAKEPRECOMP) /Fo$D\dummy.obj /c /Tp dummy.cpp
256 $D\dummydll.obj: dummydll.$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(WXDIR)\include\wx\msw\setup.h
258 $(CPPFLAGS) $(MAKEPRECOMP) /Fo$D\dummydll.obj /c /Tp dummydll.cpp
261 # If taking wxWindows from CVS, setup.h doesn't exist yet.
262 # Actually the 'if not exist setup.h' test doesn't work
263 # (copies the file anyway)
264 # we'll have to comment this rule out.
266 # $(WXDIR)\include\wx\msw\setup.h: $(WXDIR)\include\wx\msw\setup0.h
267 # cd "$(WXDIR)"\include\wx\msw
268 # if not exist setup.h copy setup0.h setup.h
269 # cd "$(WXDIR)"\src\msw
271 ..\common\$D\y_tab.obj: ..\common\y_tab.c ..\common\lex_yy.c
273 $(CPPFLAGS2) /c ..\common\y_tab.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@
276 ..\common\y_tab.c: ..\common\dosyacc.c
277 copy "..\common"\dosyacc.c "..\common"\y_tab.c
279 ..\common\lex_yy.c: ..\common\doslex.c
280 copy "..\common"\doslex.c "..\common"\lex_yy.c
282 $(OBJECTS): $(WXDIR)/include/wx/setup.h
284 ..\common\$D\unzip.obj: ..\common\unzip.c
286 $(CPPFLAGS2) /c $(COMMDIR)\unzip.c /Fo$@
289 # Peripheral components
293 nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG)
298 nmake -f makefile.vc clean
303 nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG)
308 nmake -f makefile.vc clean
313 nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG) all
318 nmake -f makefile.vc clean
323 nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG) all
328 nmake -f makefile.vc clean
333 nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG)
338 nmake -f makefile.vc clean
342 cd $(WXDIR)\utils\rcparser\src
343 nmake -f makefile.vc FINAL=$(FINAL)
346 clean: $(PERIPH_CLEAN_TARGET) clean_png clean_zlib clean_xpm clean_jpeg clean_tiff
348 -erase $(WXDIR)\lib\$(WXLIBNAME).pdb
349 -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).dll
350 -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).lib
351 -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).exp
352 -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).pdb
353 -erase ..\..\lib\wx$(WXVERSION)$(LIBEXT).ilk
356 -erase $(WXLIBNAME).pch
357 -erase $(GENDIR)\$D\*.obj
358 -erase $(GENDIR)\$D\*.pdb
359 -erase $(GENDIR)\$D\*.sbr
360 -erase $(COMMDIR)\$D\*.obj
361 -erase $(COMMDIR)\$D\*.pdb
362 -erase $(COMMDIR)\$D\*.sbr
363 -erase $(COMMDIR)\\y_tab.c
364 -erase $(COMMDIR)\lex_yy.c
365 -erase $(MSWDIR)\$D\*.obj
366 -erase $(MSWDIR)\$D\*.sbr
367 -erase $(MSWDIR)\$D\*.pdb
368 -erase $(OLEDIR)\$D\*.obj
369 -erase $(OLEDIR)\$D\*.sbr
370 -erase $(OLEDIR)\$D\*.pdb
371 -erase $(HTMLDIR)\$D\*.obj
372 -erase $(HTMLDIR)\$D\*.sbr
373 -erase $(HTMLDIR)\$D\*.pdb
376 -rmdir ..\generic\$(D)
377 -rmdir ..\common\$(D)
383 docs: allhlp allhtml allpdfrtf
386 wxhlp: $(DOCDIR)/winhelp/wx.hlp
387 refhlp: $(DOCDIR)/winhelp/techref.hlp
388 rtf: $(DOCDIR)/winhelp/wx.rtf
389 pdfrtf: $(DOCDIR)/pdf/wx.rtf
390 refpdfrtf: $(DOCDIR)/pdf/techref.rtf
392 wxhtml: $(DOCDIR)\html\wx\wx.htm
393 htmlhelp: $(DOCDIR)\html\wx\wx.chm
395 wxps: $(WXDIR)\docs\ps\wx.ps
396 referencps: $(WXDIR)\docs\ps\referenc.ps
399 cd $(WXDIR)\utils\dialoged\src
400 nmake -f makefile.vc hlp
403 # cd $(WXDIR)\utils\wxhelp\src
404 # nmake -f makefile.vc hlp
405 # cd $(WXDIR)\utils\tex2rtf\src
406 # nmake -f makefile.vc hlp
407 # cd $(WXDIR)\utils\wxgraph\src
408 # nmake -f makefile.vc hlp
409 # cd $(WXDIR)\utils\wxchart\src
410 # nmake -f makefile.vc hlp
411 # cd $(WXDIR)\utils\wxtree\src
412 # nmake -f makefile.vc hlp
413 # cd $(WXDIR)\utils\wxbuild\src
414 # nmake -f makefile.vc hlp
415 # cd $(WXDIR)\utils\wxgrid\src
416 # nmake -f makefile.vc hlp
419 cd $(WXDIR)\utils\dialoged\src
420 nmake -f makefile.vc html
423 # nmake -f makefile.vc html
424 # cd $(WXDIR)\utils\dialoged\src
425 # nmake -f makefile.vc html
426 # cd $(WXDIR)\utils\hytext\src
427 # nmake -f makefile.vc html
428 # cd $(WXDIR)\utils\wxhelp\src
429 # nmake -f makefile.vc html
430 # cd $(WXDIR)\utils\tex2rtf\src
431 # nmake -f makefile.vc html
432 # cd $(WXDIR)\utils\wxgraph\src
433 # nmake -f makefile.vc html
434 # cd $(WXDIR)\utils\wxchart\src
435 # nmake -f makefile.vc html
436 # cd $(WXDIR)\utils\wxtree\src
437 # nmake -f makefile.vc html
439 allps: wxps referencps
440 cd $(WXDIR)\utils\dialoged\src
441 nmake -f makefile.vc ps
445 cd $(WXDIR)\utils\dialoged\src
446 nmake -f makefile.vc pdfrtf
449 # cd $(WXDIR)\utils\wxhelp\src
450 # nmake -f makefile.vc ps
451 # cd $(WXDIR)\utils\tex2rtf\src
452 # nmake -f makefile.vc ps
453 # cd $(WXDIR)\utils\wxgraph\src
454 # nmake -f makefile.vc ps
455 # cd $(WXDIR)\utils\wxchart\src
456 # nmake -f makefile.vc ps
457 # cd $(WXDIR)\utils\wxtree\src
458 # nmake -f makefile.vc ps
461 $(DOCDIR)/winhelp/wx.hlp: $(DOCDIR)/latex/wx/wx.rtf $(DOCDIR)/latex/wx/wx.hpj
462 cd $(DOCDIR)/latex/wx
465 move wx.hlp $(DOCDIR)\winhelp\wx.hlp
466 move wx.cnt $(DOCDIR)\winhelp\wx.cnt
469 $(DOCDIR)/winhelp/techref.hlp: $(DOCDIR)/latex/techref/techref.rtf $(DOCDIR)/latex/techref/techref.hpj
470 cd $(DOCDIR)/latex/techref
473 move techref.hlp $(DOCDIR)\winhelp\techref.hlp
474 move techref.cnt $(DOCDIR)\winhelp\techref.cnt
477 $(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
478 cd $(DOCDIR)\latex\wx
479 -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/latex/wx/wx.rtf -twice -winhelp
482 $(DOCDIR)/latex/techref/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
483 cd $(DOCDIR)\latex\techref
484 -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/latex/techref/techref.rtf -twice -winhelp
487 $(DOCDIR)/pdf/wx.rtf: $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex
488 cd $(DOCDIR)\latex\wx
489 -copy *.wmf $(DOCDIR)\pdf
490 -copy *.bmp $(DOCDIR)\pdf
491 -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/pdf/wx.rtf -twice -rtf
494 $(DOCDIR)/pdf/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
495 cd $(DOCDIR)\latex\techref
496 -copy *.wmf $(DOCDIR)\pdf
497 -copy *.bmp $(DOCDIR)\pdf
498 -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/pdf/techref.rtf -twice -rtf
501 $(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
502 cd $(DOCDIR)\latex\wx
503 -mkdir $(DOCDIR)\html\wx
504 -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\html\wx\wx.htm -twice -html
505 -erase $(DOCDIR)\html\wx\*.con
506 -erase $(DOCDIR)\html\wx\*.ref
507 -erase $(DOCDIR)\latex\wx\*.con
508 -erase $(DOCDIR)\latex\wx\*.ref
511 $(DOCDIR)\html\wx\wx.chm : $(DOCDIR)\html\wx\wx.htm $(DOCDIR)\html\wx\wx.hhp
516 $(WXDIR)\docs\latex\wx\manual.dvi: $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/manual.tex
517 cd $(WXDIR)\docs\latex\wx
526 $(WXDIR)\docs\ps\wx.ps: $(WXDIR)\docs\latex\wx\manual.dvi
527 cd $(WXDIR)\docs\latex\wx
528 -dvips32 -o wx.ps manual
529 move wx.ps $(WXDIR)\docs\ps\wx.ps
532 $(WXDIR)\docs\latex\wx\referenc.dvi: $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/referenc.tex
533 cd $(WXDIR)\docs\latex\wx
542 $(WXDIR)\docs\ps\referenc.ps: $(WXDIR)\docs\latex\wx\referenc.dvi
543 cd $(WXDIR)\docs\latex\wx
544 -dvips32 -o referenc.ps referenc
545 move referenc.ps $(WXDIR)\docs\ps\referenc.ps
548 # In order to force document reprocessing
550 -touch $(WXDIR)\docs\latex\wx\manual.tex
552 updatedocs: touchmanual alldocs
554 # Start Word, running the GeneratePDF macro. MakeManual.dot should be in the
555 # Office StartUp folder, and PDFMaker should be installed.
556 updatepdf: # touchmanual pdfrtf
557 start $(WAITFLAG) "winword d:\wx2\wxWindows\docs\latex\pdf\wx.rtf /mGeneratePDF"
561 makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
562 cd $(WXWIN)\distrib\msw\tmake
563 tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE)
564 copy makefile.$(MFTYPE) $(WXWIN)\src\msw