wxWidgets/distrib/msw/tmake/vc.t

566 lines
16 KiB
Perl
Raw Normal View History

#!#############################################################################
#! File: vc.t
#! Purpose: tmake template file from which makefile.vc is generated by running
#! tmake -t vc wxwin.pro -o makefile.vc
#! Author: Vadim Zeitlin
#! Created: 14.07.99
#! Version: $Id$
#!#############################################################################
#${
#! include the code which parses filelist.txt file and initializes
#! %wxCommon, %wxGeneric and %wxMSW hashes.
IncludeTemplate("filelist.t");
#! now transform these hashes into $project tags
foreach $file (sort keys %wxGeneric) {
my $tag = "";
if ( $wxGeneric{$file} =~ /\b(PS|G|16|U)\b/ ) {
$tag = "WXNONESSENTIALOBJS";
}
else {
$tag = "WXGENERICOBJS";
}
$file =~ s/cp?p?$/obj/;
$project{$tag} .= "..\\generic\\\$D\\" . $file . " "
}
foreach $file (sort keys %wxCommon) {
next if $wxCommon{$file} =~ /\b16\b/;
$file =~ s/cp?p?$/obj/;
$project{"WXCOMMONOBJS"} .= "..\\common\\\$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/;
$file =~ s/cp?p?$/obj/;
$project{"WXMSWOBJS"} .= '$D\\' . $file . " ";
}
foreach $file (sort keys %wxHTML) {
next if $wxHTML{$file} =~ /\b16\b/;
$file =~ s/cp?p?$/obj/;
$project{"WXHTMLOBJS"} .= "..\\html\\\$D\\" . $file . " "
}
#$}
# This file was automatically generated by tmake at #$ Now()
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE VC.T!
# File: makefile.vc
# Author: Julian Smart
# Created: 1997
# Updated:
# Copyright: (c) 1997, Julian Smart
#
# "%W% %G%"
#
# Makefile : Builds wxWindows library wx.lib for VC++ (32-bit)
# Arguments:
#
# FINAL=1 argument to nmake to build version with no debugging info.
# dll builds a library (wxdll.lib) suitable for creating DLLs
#
!include <..\makevc.env>
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
PERIPH_LIBS=
PERIPH_TARGET=
PERIPH_CLEAN_TARGET=
# 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
# error to load that file.
GENDIR=$(WXDIR)\src\generic
COMMDIR=$(WXDIR)\src\common
OLEDIR=ole
MSWDIR=$(WXDIR)\src\msw
DOCDIR = $(WXDIR)\docs
HTMLDIR = $(WXDIR)\src\html
{..\generic}.cpp{..\generic\$D}.obj:
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $<
<<
{..\common}.cpp{..\common\$D}.obj:
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $<
<<
{..\common}.c{..\common\$D}.obj:
cl @<<
$(CPPFLAGS2) /Fo$@ /c /Tc $<
<<
{..\msw}.cpp{..\msw\$D}.obj:
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $<
<<
{..\msw}.c{..\msw\$D}.obj:
cl @<<
$(CPPFLAGS2) /Fo$@ /c /Tc $<
<<
{..\msw\ole}.cpp{..\msw\ole\$D}.obj:
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $<
<<
{..\html}.cpp{..\html\$D}.obj:
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $<
<<
GENERICOBJS= #$ ExpandList("WXGENERICOBJS");
# These are generic things that don't need to be compiled on MSW,
# but sometimes it's useful to do so for testing purposes.
NONESSENTIALOBJS= #$ ExpandList("WXNONESSENTIALOBJS");
COMMONOBJS = \
..\common\$D\y_tab.obj \
#$ ExpandList("WXCOMMONOBJS");
MSWOBJS = #$ ExpandList("WXMSWOBJS");
HTMLOBJS = #$ ExpandList("WXHTMLOBJS");
# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc.
# Add $(HTMLOBJS) if wanting wxHTML classes
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) $(HTMLOBJS)
# Normal, static library
all: dirs $(DUMMYOBJ) $(OBJECTS) $(PERIPH_TARGET) png zlib xpm jpeg tiff $(LIBTARGET)
dirs: $(MSWDIR)\$D $(COMMDIR)\$D $(GENDIR)\$D $(OLEDIR)\$D $(HTMLDIR)\$D
test: $(MSWDIR)\$D\wave.obj
test2: ..\common\Debug\config.obj
$D:
mkdir $D
$(COMMDIR)\$D:
mkdir $(COMMDIR)\$D
$(MSWDIR)\$D:
mkdir $(MSWDIR)\$D
$(GENDIR)\$D:
mkdir $(GENDIR)\$D
$(OLEDIR)\$D:
mkdir $(OLEDIR)\$D
$(HTMLDIR)\$D:
mkdir $(HTMLDIR)\$D
# wxWindows library as DLL
dll:
nmake -f makefile.vc all FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME)
cleandll:
nmake -f makefile.vc clean FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME)
# wxWindows + app as DLL. Only affects main.cpp.
dllapp:
nmake -f makefile.vc all FINAL=$(FINAL) DLL=1
# wxWindows + app as DLL, for Netscape plugin - remove DllMain.
dllnp:
nmake -f makefile.vc all NOMAIN=1 FINAL=$(FINAL) DLL=1
# Use this to make dummy.obj and generate a PCH.
# You might use the dll target, then the pch target, in order to
# generate a DLL, then a PCH/dummy.obj for compiling your applications with.
#
# Explanation: Normally, when compiling a static version of wx.lib, your dummy.obj/PCH
# are associated with wx.lib. When using a DLL version of wxWindows, however,
# the DLL is compiled without a PCH, so you only need it for compiling the app.
# In fact headers are compiled differently depending on whether a DLL is being made
# or an app is calling the DLL exported functionality (WXDLLEXPORT is different
# in each case) so you couldn't use the same PCH.
pch:
nmake -f makefile.vc pch1 WXUSINGDLL=1 FINAL=$(FINAL) NEW_WXLIBNAME=$(NEW_WXLIBNAME)
pch1: dirs $(DUMMYOBJ)
echo $(DUMMYOBJ)
!if "$(WXMAKINGDLL)" != "1"
### Static library
$(WXDIR)\lib\$(WXLIBNAME).lib: $D\dummy.obj $(OBJECTS) $(PERIPH_LIBS)
-erase $(LIBTARGET)
$(implib) @<<
-out:$@
-machine:$(CPU)
$(OBJECTS) $(PERIPH_LIBS)
<<
!else
### Update the import library
$(WXDIR)\lib\$(WXLIBNAME).lib: $(DUMMYOBJ) $(OBJECTS)
$(implib) @<<
-machine:$(CPU)
-def:wx.def
$(DUMMYOBJ) $(OBJECTS)
-out:$(WXDIR)\lib\$(WXLIBNAME).lib
<<
# Update the dynamic link library
$(WXDIR)\lib\$(WXLIBNAME).dll: $(DUMMYOBJ) $(OBJECTS)
$(link) @<<
$(LINKFLAGS)
-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 $(WXDIR)\lib\tiff.lib
<<
!endif
########################################################
# 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
$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
<<
# 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
cl @<<
$(CPPFLAGS2) /c ..\common\y_tab.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@
<<
..\common\y_tab.c: ..\common\dosyacc.c
copy "..\common"\dosyacc.c "..\common"\y_tab.c
..\common\lex_yy.c: ..\common\doslex.c
copy "..\common"\doslex.c "..\common"\lex_yy.c
$(OBJECTS): $(WXDIR)/include/wx/setup.h
..\common\$D\unzip.obj: ..\common\unzip.c
cl @<<
$(CPPFLAGS2) /c $(COMMDIR)\unzip.c /Fo$@
<<
# Peripheral components
png:
cd $(WXDIR)\src\png
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG)
cd $(WXDIR)\src\msw
clean_png:
cd $(WXDIR)\src\png
nmake -f makefile.vc clean
cd $(WXDIR)\src\msw
zlib:
cd $(WXDIR)\src\zlib
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG)
cd $(WXDIR)\src\msw
clean_zlib:
cd $(WXDIR)\src\zlib
nmake -f makefile.vc clean
cd $(WXDIR)\src\msw
jpeg:
cd $(WXDIR)\src\jpeg
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG) all
cd $(WXDIR)\src\msw
clean_jpeg:
cd $(WXDIR)\src\jpeg
nmake -f makefile.vc clean
cd $(WXDIR)\src\msw
tiff:
cd $(WXDIR)\src\tiff
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG) all
cd $(WXDIR)\src\msw
clean_tiff:
cd $(WXDIR)\src\tiff
nmake -f makefile.vc clean
cd $(WXDIR)\src\msw
xpm:
cd $(WXDIR)\src\xpm
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG)
cd $(WXDIR)\src\msw
clean_xpm:
cd $(WXDIR)\src\xpm
nmake -f makefile.vc clean
cd $(WXDIR)\src\msw
rcparser:
cd $(WXDIR)\utils\rcparser\src
nmake -f makefile.vc FINAL=$(FINAL)
cd $(WXDIR)\src\msw
clean: $(PERIPH_CLEAN_TARGET) clean_png clean_zlib clean_xpm clean_jpeg clean_tiff
-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 $(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)\lex_yy.c
-erase $(MSWDIR)\$D\*.obj
-erase $(MSWDIR)\$D\*.sbr
-erase $(MSWDIR)\$D\*.pdb
-erase $(OLEDIR)\$D\*.obj
-erase $(OLEDIR)\$D\*.sbr
-erase $(OLEDIR)\$D\*.pdb
-erase $(HTMLDIR)\$D\*.obj
-erase $(HTMLDIR)\$D\*.sbr
-erase $(HTMLDIR)\$D\*.pdb
-rmdir $(D)
-rmdir ole\$(D)
-rmdir ..\generic\$(D)
-rmdir ..\common\$(D)
-rmdir ..\html\$(D)
cleanall: clean
# Making documents
docs: allhlp allhtml allpdfrtf
alldocs: docs
hlp: wxhlp
wxhlp: $(DOCDIR)/winhelp/wx.hlp
refhlp: $(DOCDIR)/winhelp/techref.hlp
rtf: $(DOCDIR)/winhelp/wx.rtf
pdfrtf: $(DOCDIR)/pdf/wx.rtf
refpdfrtf: $(DOCDIR)/pdf/techref.rtf
html: wxhtml
wxhtml: $(DOCDIR)\html\wx\wx.htm
htmlhelp: $(DOCDIR)\html\wx\wx.chm
ps: wxps referencps
wxps: $(WXDIR)\docs\ps\wx.ps
referencps: $(WXDIR)\docs\ps\referenc.ps
allhlp: wxhlp
cd $(WXDIR)\utils\dialoged\src
nmake -f makefile.vc hlp
cd $(THISDIR)
# cd $(WXDIR)\utils\wxhelp\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
# nmake -f makefile.vc hlp
allhtml: wxhtml
cd $(WXDIR)\utils\dialoged\src
nmake -f makefile.vc html
cd $(THISDIR)
# 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
allps: wxps referencps
cd $(WXDIR)\utils\dialoged\src
nmake -f makefile.vc ps
cd $(THISDIR)
allpdfrtf: pdfrtf
cd $(WXDIR)\utils\dialoged\src
nmake -f makefile.vc pdfrtf
cd $(THISDIR)
# cd $(WXDIR)\utils\wxhelp\src
# nmake -f makefile.vc ps
# 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
# 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
move wx.hlp $(DOCDIR)\winhelp\wx.hlp
move wx.cnt $(DOCDIR)\winhelp\wx.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/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 *.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/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
cd $(DOCDIR)\latex\techref
-copy *.wmf $(DOCDIR)\pdf
-copy *.bmp $(DOCDIR)\pdf
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/pdf/techref.rtf -twice -rtf
cd $(THISDIR)
$(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
-start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\html\wx\wx.htm -twice -html
-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
-hhc wx.hhp
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
-latex manual
-makeindx manual
-bibtex manual
-latex manual
-latex manual
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\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
-latex referenc
-makeindx referenc
-bibtex referenc
-latex referenc
-latex referenc
cd $(THISDIR)
$(WXDIR)\docs\ps\referenc.ps: $(WXDIR)\docs\latex\wx\referenc.dvi
cd $(WXDIR)\docs\latex\wx
-dvips32 -o referenc.ps referenc
move referenc.ps $(WXDIR)\docs\ps\referenc.ps
cd $(THISDIR)
# In order to force document reprocessing
touchmanual:
-touch $(WXDIR)\docs\latex\wx\manual.tex
updatedocs: touchmanual alldocs
# Start Word, running the GeneratePDF macro. MakeManual.dot should be in the
# Office StartUp folder, and PDFMaker should be installed.
updatepdf: # touchmanual pdfrtf
start $(WAITFLAG) "winword d:\wx2\wxWindows\docs\latex\pdf\wx.rtf /mGeneratePDF"
MFTYPE=vc
makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
cd $(WXWIN)\distrib\msw\tmake
tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE)
copy makefile.$(MFTYPE) $(WXWIN)\src\msw