X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3015c547a6a602d81878d3d1d717bc79955b44c..a4b57b1de156f61d511e4c0342a6b3cd83249364:/distrib/msw/tmake/g95.t?ds=inline diff --git a/distrib/msw/tmake/g95.t b/distrib/msw/tmake/g95.t index 821ca60f88..9cafefc98a 100644 --- a/distrib/msw/tmake/g95.t +++ b/distrib/msw/tmake/g95.t @@ -6,7 +6,6 @@ #! Created: 14.07.99 #! Version: $Id$ #!############################################################################# - #${ #! include the code which parses filelist.txt file and initializes #! %wxCommon, %wxGeneric and %wxMSW hashes. @@ -16,37 +15,69 @@ foreach $file (sort keys %wxGeneric) { #! native wxDirDlg can't be compiled due to GnuWin32/OLE limitations, #! so take the generic version + $base = ( $wxGeneric{$file} =~ /\bB\b/ ) ? '_BASE' : ''; + if ( $wxGeneric{$file} =~ /\b(PS|G|U|16)\b/ ) { - next unless $file =~ /^dirdlgg\./; + next #! unless $file =~ /^dirdlgg\./; } $file =~ s/cp?p?$/\$(OBJSUFF)/; - $project{"WXGENERICOBJS"} .= '$(GENDIR)/' . $file . " " + $project{"WXGENERICOBJS$base"} .= '$(GENDIR)/' . $file . " " } foreach $file (sort keys %wxCommon) { - next if $wxCommon{$file} =~ /\b(16)\b/; + next if $wxCommon{$file} =~ /\b(16|U)\b/; #! needs extra files (sql*.h) so not compiled by default. - next if $file =~ /^odbc\./; + #! next if $file =~ /^odbc\./; + + $base = ( $wxCommon{$file} =~ /\bB\b/ ) ? '_BASE' : ''; + if ( $file =~ /^odbc\./ ) + { + $file =~ s/cp?p?$/\$(OBJSUFF)/; + $project{"ADVANCEDOBJS$base"} .= '$(COMMDIR)/' . $file . " " + } + else + { + $file =~ s/cp?p?$/\$(OBJSUFF)/; + $project{"WXCOMMONOBJS$base"} .= '$(COMMDIR)/' . $file . " " + } + } + foreach $file (sort keys %wxBase) { $file =~ s/cp?p?$/\$(OBJSUFF)/; - $project{"WXCOMMONOBJS"} .= '$(COMMDIR)/' . $file . " " + $project{"WXCOMMONOBJS_BASEONLY"} .= '$(COMMDIR)/' . $file . " " } foreach $file (sort keys %wxMSW) { - #! Mingw32 doesn't have the OLE headers and has some troubles with - #! socket code - next if $wxMSW{$file} =~ /\b(O|16)\b/; - #! native wxDirDlg can't be compiled due to GnuWin32/OLE limitations, next if $file =~ /^dirdlg\./; + next if $wxMSW{$file} =~ /\b(16)\b/; + $base = ( $wxMSW{$file} =~ /\bB\b/ ) ? '_BASE' : ''; + + #! Mingw32 doesn't have the OLE headers and has some troubles with + #! socket code, so put in ADVANCEDOBJS + if ( $wxMSW{$file} =~ /\b(O)\b/ ) + { + $file =~ s/cp?p?$/\$(OBJSUFF)/; + $project{"ADVANCEDOBJS$base"} .= '$(MSWDIR)/ole/' . $file . " " + } + else + { + $file =~ s/cp?p?$/\$(OBJSUFF)/; + $project{"WXMSWOBJS$base"} .= '$(MSWDIR)/' . $file . " " + } + + } + + foreach $file (sort keys %wxHTML) { $file =~ s/cp?p?$/\$(OBJSUFF)/; - $project{"WXMSWOBJS"} .= '$(MSWDIR)/' . $file . " " + $project{"WXHTMLOBJS"} .= '$(HTMLDIR)/' . $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 G95.T! # @@ -54,7 +85,6 @@ # Author: Julian Smart, Robert Roebling, Vadim Zeitlin # Created: 1993 # Updated: 1999 -# Copyright:(c) 1993, AIAI, University of Edinburgh, # Copyright:(c) 1999, Vadim Zeitlin # Copyright:(c) 1999, Robert Roebling # @@ -67,6 +97,26 @@ WXDIR = ../.. # this central makefile. include $(WXDIR)/src/makeg95.env +# DLL Name, if building wxWindows as a DLL. +ifdef WXMAKINGDLL +WXDLL = $(WXDIR)/lib/wx$(TOOLKIT)$(WXVERSION)$(UNIEXT)$(DEBEXT)$(MIN_SUFFIX).dll +WXDEF = wx$(TOOLKIT)$(WXVERSION)$(UNIEXT)$(DEBEXT).def +DLL_EXTRA_LIBS = $(WXDIR)/lib/libzlib$(MIN_SUFFIX).a \ + $(WXDIR)/lib/libpng$(MIN_SUFFIX).a \ + $(WXDIR)/lib/libjpeg$(MIN_SUFFIX).a \ + $(WXDIR)/lib/libtiff$(MIN_SUFFIX).a \ + $(WXDIR)/lib/libregex$(MIN_SUFFIX).a +DLL_LDFLAGS = -L$(WXDIR)/lib +DLL_BASE_LDLIBS = $(DLL_EXTRA_LIBS) -lstdc++ -lwsock32 +ifeq ($(wxUSE_GUI),0) + DLL_LDLIBS = $(DLL_BASE_LDLIBS) +else + DLL_LDLIBS = -lcomctl32 -lctl3d32 -lole32 -loleaut32 \ + -luuid -lrpcrt4 -lodbc32 -lwinmm -lopengl32 \ + $(DLL_BASE_LDLIBS) +endif +endif + # Subordinate library possibilities EXTRAOBJS= @@ -74,28 +124,68 @@ EXTRAOBJS= GENDIR = $(WXDIR)/src/generic COMMDIR = $(WXDIR)/src/common HTMLDIR = $(WXDIR)/src/html -XPMDIR = $(WXDIR)/src/xpm +ZLIBDIR = $(WXDIR)/src/zlib PNGDIR = $(WXDIR)/src/png JPEGDIR = $(WXDIR)/src/jpeg -ZLIBDIR = $(WXDIR)/src/zlib +TIFFDIR = $(WXDIR)/src/tiff OLEDIR = $(WXDIR)/src/msw/ole MSWDIR = $(WXDIR)/src/msw +REGEXDIR= $(WXDIR)/src/regex + +ZLIBLIB = $(WXDIR)/lib/libzlib$(MIN_SUFFIX).a +PNGLIB = $(WXDIR)/lib/libpng$(MIN_SUFFIX).a +JPEGLIB = $(WXDIR)/lib/libjpeg$(MIN_SUFFIX).a +TIFFLIB = $(WXDIR)/lib/libtiff$(MIN_SUFFIX).a +REGEXLIB= $(WXDIR)/lib/libregex$(MIN_SUFFIX).a + +DOCDIR = $(WXDIR)/docs -DOCDIR = $(WXDIR)\docs +# Only use the WIN32 wxDirDialog if we have a recent +# version of Mingw32 +ifeq "$(strip $(RECENT_MINGW))" "yes" + DIRDLGOBJ = $(MSWDIR)/dirdlg.$(OBJSUFF) +else + DIRDLGOBJ = $(GENDIR)/dirdlgg.$(OBJSUFF) +endif + +ifeq ($(wxUSE_GUI),0) + DIRDLGOBJ = +endif + +GENERICOBJS_BASE = \ + #$ ExpandList("WXGENERICOBJS_BASE"); GENERICOBJS = \ + $(GENERICOBJS_BASE) \ #$ ExpandList("WXGENERICOBJS"); +COMMONOBJS_BASE = \ + #$ ExpandList("WXCOMMONOBJS_BASE"); + +COMMONOBJS_BASEONLY = \ + #$ ExpandList("WXCOMMONOBJS_BASEONLY"); + COMMONOBJS = \ - $(COMMDIR)/y_tab.$(OBJSUFF) \ + $(COMMONOBJS_BASE) \ #$ ExpandList("WXCOMMONOBJS"); HTMLOBJS = \ #$ ExpandList("WXHTMLOBJS"); +MSWOBJS_BASE = \ + #$ ExpandList("WXMSWOBJS_BASE"); + MSWOBJS = \ + $(MSWOBJS_BASE) \ #$ ExpandList("WXMSWOBJS"); +ADVANCEDOBJS_BASE = \ + #$ ExpandList("ADVANCEDOBJS_BASE"); + +ADVANCEDOBJS = \ + $(ADVANCEDOBJS_BASE) \ + #$ ExpandList("ADVANCEDOBJS"); + ZLIBOBJS = \ $(ZLIBDIR)/adler32.$(OBJSUFF) \ $(ZLIBDIR)/compress.$(OBJSUFF) \ @@ -178,85 +268,190 @@ JPEGOBJS = \ $(JPEGDIR)/jquant2.$(OBJSUFF) \ $(JPEGDIR)/jdmerge.$(OBJSUFF) -XPMOBJECTS = $(XPMDIR)/crbuffri.o\ - $(XPMDIR)/crdatfri.o\ - $(XPMDIR)/create.o $(XPMDIR)/crifrbuf.o\ - $(XPMDIR)/crifrdat.o\ - $(XPMDIR)/data.o\ - $(XPMDIR)/hashtab.o $(XPMDIR)/misc.o\ - $(XPMDIR)/parse.o $(XPMDIR)/rdftodat.o\ - $(XPMDIR)/rdftoi.o\ - $(XPMDIR)/rgb.o $(XPMDIR)/scan.o\ - $(XPMDIR)/simx.o $(XPMDIR)/wrffrdat.o\ - $(XPMDIR)/wrffrp.o $(XPMDIR)/wrffri.o - -OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJS) \ - $(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS) # $(XPMOBJECTS) - -all: $(OBJECTS) $(WXLIB) +TIFFOBJS = $(TIFFDIR)/tif_aux.o \ + $(TIFFDIR)/tif_close.o \ + $(TIFFDIR)/tif_codec.o \ + $(TIFFDIR)/tif_compress.o \ + $(TIFFDIR)/tif_dir.o \ + $(TIFFDIR)/tif_dirinfo.o \ + $(TIFFDIR)/tif_dirread.o \ + $(TIFFDIR)/tif_dirwrite.o \ + $(TIFFDIR)/tif_dumpmode.o \ + $(TIFFDIR)/tif_error.o \ + $(TIFFDIR)/tif_fax3.o \ + $(TIFFDIR)/tif_fax3sm.o \ + $(TIFFDIR)/tif_flush.o \ + $(TIFFDIR)/tif_getimage.o \ + $(TIFFDIR)/tif_jpeg.o \ + $(TIFFDIR)/tif_luv.o \ + $(TIFFDIR)/tif_lzw.o \ + $(TIFFDIR)/tif_next.o \ + $(TIFFDIR)/tif_open.o \ + $(TIFFDIR)/tif_packbits.o \ + $(TIFFDIR)/tif_pixarlog.o \ + $(TIFFDIR)/tif_predict.o \ + $(TIFFDIR)/tif_print.o \ + $(TIFFDIR)/tif_read.o \ + $(TIFFDIR)/tif_strip.o \ + $(TIFFDIR)/tif_swab.o \ + $(TIFFDIR)/tif_thunder.o \ + $(TIFFDIR)/tif_tile.o \ + $(TIFFDIR)/tif_version.o \ + $(TIFFDIR)/tif_warning.o \ + $(TIFFDIR)/tif_win32.o \ + $(TIFFDIR)/tif_write.o \ + $(TIFFDIR)/tif_zip.o + +ifeq "$(strip $(RECENT_MINGW))" "yes" + OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJS) $(DIRDLGOBJ) $(ADVANCEDOBJS) +else + OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJS) $(DIRDLGOBJ) +endif +ifeq ($(wxUSE_GUI),0) + OBJECTS = $(MSWOBJS_BASE) $(COMMONOBJS_BASE) $(COMMONOBJS_BASEONLY) $(GENERICOBJS_BASE) +endif + +# how do you do "VAR=\" ? BLEAGH! +BACKSLASH=$(subst a,\,a) +ifeq (,$(findstring $(OSTYPE),"cygwin!msys")) + PATH_SEPARATOR:=$(BACKSLASH) + PATH_SUBST=/ +else + PATH_SEPARATOR=/ + PATH_SUBST:=$(BACKSLASH) +endif + +#ARCHINCDIR=$(subst $(PATH_SUBST),$(PATH_SEPARATOR),$(WXDIR)/lib/msw$(INCEXT)) +ARCHINCDIR=$(WXDIR)/lib/$(TOOLKIT)$(INCEXT) + +SETUP_H=$(ARCHINCDIR)/wx/setup.h + +ifndef WXMAKINGDLL +all: $(SETUP_H) $(OBJECTS) $(WXLIB) $(ZLIBLIB) $(PNGLIB) $(JPEGLIB) $(TIFFLIB) $(REGEXLIB) +else +all: $(SETUP_H) $(OBJECTS) $(ZLIBLIB) $(PNGLIB) $(JPEGLIB) $(TIFFLIB) $(REGEXLIB) $(WXDLL) +endif + +$(ARCHINCDIR)/wx: + mkdir $(subst $(PATH_SUBST),$(PATH_SEPARATOR),$(ARCHINCDIR)) + mkdir $(subst $(PATH_SUBST),$(PATH_SEPARATOR),$(ARCHINCDIR)/wx) + +# Copy ALWAYS uses forward slashes now. + +$(SETUP_H): $(ARCHINCDIR)/wx $(WXDIR)/include/wx/msw/setup.h + $(COPY) $(WXDIR)/include/wx/msw/setup.h $(subst $(BACKSLASH),/,$@) + +# $(COPY) $(WXDIR)/include/wx/msw/setup.h $@ +# $(COPY) $(subst $(PATH_SUBST),$(PATH_SEPARATOR),$(WXDIR)/include/wx/msw/setup.h) $(subst $(PATH_SUBST),$(PATH_SEPARATOR),$@) + +ifndef WXMAKINGDLL $(WXLIB): $(OBJECTS) $(EXTRAOBJS) ar $(AROPTIONS) $@ $(EXTRAOBJS) $(OBJECTS) $(RANLIB) $@ -$(OBJECTS): $(WXINC)/wx/defs.h $(WXINC)/wx/object.h $(WXINC)/wx/setup.h +else + +# The new linker is a few orders of magnitude faster than the old way +# of creating DLLs. +ifeq "$(strip $(LD_SUPPORTS_SHARED))" "yes" + +$(WXDLL): $(OBJECTS) $(EXTRAOBJS) + $(CXX) -shared -o $@ \ + -Wl,--output-def,$(WXDEF) \ + -Wl,--out-implib,$(WXLIB) \ + $(OBJECTS) $(EXTRAOBJS) \ + $(DLL_LDFLAGS) $(DLL_LDLIBS) \ + $(ALL_LDFLAGS_DLL) +else + +ifeq ($(MINGW32),1) + DLL_ENTRY = _DllMainCRTStartup@12 +else + DLL_ENTRY = __cygwin_dll_entry@12 +endif +LD_STUFF = $(OBJECTS) $(EXTRAOBJS) -Wl,-e,$(DLL_ENTRY) \ + $(DLL_LDFLAGS) $(DLL_LDLIBS) #-Wl,--image-base=0x66000000 + +DLL_STUFF = --as=$(AS) --dllname $(notdir $(WXDLL)) \ + --def $(WXDEF) \ + --base-file wx.base --output-exp wx.exp + +$(WXDEF) $(WXLIB): $(OBJECTS) $(EXTRAOBJS) + $(DLLTOOL) --output-def $@ --output-lib $(WXLIB) \ + --dllname $(notdir $(WXDLL)) \ + $(OBJECTS) $(EXTRAOBJS) $(DLL_EXTRA_LIBS) + +$(WXDLL): $(OBJECTS) $(EXTRAOBJS) $(WXDEF) + $(CC) -mdll -Wl,--base-file,wx.base -s -o $@ $(LD_STUFF) $(ALL_LDFLAGS_DLL) + $(DLLTOOL) $(DLL_STUFF) + $(CC) -mdll -Wl,--base-file,wx.base wx.exp -s -o $@ $(LD_STUFF) $(ALL_LDFLAGS_DLL) + $(DLLTOOL) $(DLL_STUFF) + $(CC) -mdll wx.exp -o $@ $(LD_STUFF) $(ALL_LDFLAGS_DLL) + -$(RM) wx.base + -$(RM) wx.exp + +endif + +endif + + +$(ZLIBLIB): $(ZLIBOBJS) + $(AR) $(AROPTIONS) $@ $(ZLIBOBJS) + $(RANLIB) $@ + +$(PNGLIB): $(PNGOBJS) + $(AR) $(AROPTIONS) $@ $(PNGOBJS) + $(RANLIB) $@ -$(COMMDIR)/y_tab.$(OBJSUFF): $(COMMDIR)/y_tab.c $(COMMDIR)/lex_yy.c - $(CCLEX) -c $(CPPFLAGS) -DUSE_DEFINE -DYY_USE_PROTOS -o $@ $(COMMDIR)/y_tab.c +$(JPEGLIB): $(JPEGOBJS) + $(AR) $(AROPTIONS) $@ $(JPEGOBJS) + $(RANLIB) $@ -$(COMMDIR)/y_tab.c: $(COMMDIR)/dosyacc.c - copy ..\common\dosyacc.c ..\common\y_tab.c +$(TIFFLIB): $(TIFFOBJS) + $(AR) $(AROPTIONS) $@ $(TIFFOBJS) + $(RANLIB) $@ -$(COMMDIR)/lex_yy.c: $(COMMDIR)/doslex.c - copy ..\common\doslex.c ..\common\lex_yy.c +$(REGEXLIB): + $(MAKE) -C $(REGEXDIR) -f makefile.g95 MINGW32=$(MINGW32) WXDIR=$(WXDIR) WXWIN=$(WXDIR) -# Replace lex with flex if you run into compilation -# problems with lex_yy.c. See also note about LEX_SCANNER -# above. -# $(COMMDIR)/lex_yy.c: $(COMMDIR)/lexer.l -# $(LEX) -L -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l -# -# Try one of these if the above line doesn't work. -# Alternative syntax (1) -# $(LEX) -t -L $(COMMDIR)/lexer.l > $(COMMDIR)/lex_yy.c -# Alternative syntax (2) -# $(LEX) -L -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l -# -# sed -e "s/BUFSIZ/5000/g" < lex.yy.c | \ -# sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \ -# sed -e "s/YYLMAX 200/YYLMAX 5000/g" > lex_yy.c -# rm -f lex.yy.c -# -# Replace yacc with bison if you run into compilation -# problems with y_tab.c. -# -# $(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y -# $(YACC) -o $(COMMDIR)/y_tab.c $(COMMDIR)/parser.y -# -# If you use e.g. gcc on Unix, uncomment these lines -# and comment out the above. -# -# $(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y -# $(YACC) $(COMMDIR)/parser.y -# mv y.tab.c $(COMMDIR)/y_tab.c +$(OBJECTS): $(WXINC)/wx/defs.h $(WXINC)/wx/object.h $(ARCHINCDIR)/wx/setup.h clean: - -erase *.o - -erase core - -erase ..\common\y_tab.c - -erase ..\common\lex_yy.c - -erase ..\common\*.o - -erase ..\generic\*.o - -erase ..\html\*.o - -erase ..\png\*.o - -erase ..\zlib\*.o - -erase ..\jpeg\*.o - -erase ..\..\lib\libwx$(GUISUFFIX).a + -$(RM) *.o + -$(RM) ole/*.o + -$(RM) *.bak + -$(RM) core + -$(RM) ../common/*.o + -$(RM) ../common/*.bak + -$(RM) ../generic/*.o + -$(RM) ../generic/*.bak + -$(RM) ../html/*.o + -$(RM) ../zlib/*.o + -$(RM) ../zlib/*.bak + -$(RM) ../png/*.o + -$(RM) ../png/*.bak + -$(RM) ../jpeg/*.o + -$(RM) ../jpeg/*.bak + -$(RM) ../tiff/*.o + -$(RM) ../tiff/*.bak + -$(RM) ../regex/*.o + -$(RM) ../regex/*.bak cleanall: clean + -$(RM) $(WXLIB) + -$(RM) $(ZLIBLIB) + -$(RM) $(PNGLIB) + -$(RM) $(JPEGLIB) + -$(RM) $(TIFFLIB) + -$(RM) $(REGEXLIB) + +ifdef WXMAKINGDLL + -$(RM) $(WXDLL) + -$(RM) $(WXDEF) +ifneq "$(strip $(LD_SUPPORTS_SHARED))" "yes" + -$(RM) wx.base + -$(RM) wx.exp +endif +endif -MFTYPE=g95 -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