diff options
Diffstat (limited to 'xc/extras/Mesa/WIN32')
33 files changed, 5182 insertions, 0 deletions
diff --git a/xc/extras/Mesa/WIN32/NMAKE.MAK b/xc/extras/Mesa/WIN32/NMAKE.MAK new file mode 100644 index 000000000..a9a262663 --- /dev/null +++ b/xc/extras/Mesa/WIN32/NMAKE.MAK @@ -0,0 +1,662 @@ +.SILENT: + +!INCLUDE <..\mesawin32.mak> # get user directory settings for output + +help: + more < << +usage: nmake[.exe] /f nmake.mak [options] [target] +where: [target] may be any one of the following ... + (default)... shows this text + libfiles.... builds all library variations and test programs + update...... builds all variations and copies target files + to permanent storage locations + clean....... deletes all intermediate files + realclean .. deletes all intermediate files and all end-executables, + restoring directory heirarchy to 'distribution' state. + all ........ builds all targets for Mesa-based code + all.sgigl .. builds all targets for SGI for Windows OpenGL based code + all.sysgl .. builds all targets for Microsoft OpenGL based code + ---- build options ----------------- + MESAVER ................. (3.1) - version of MesaLib().tar.gz to build + NOCONSOLE .... [1 | 0] .. (0) ..- Disable console output of progs + NODEBUG ...... [1 | 0] .. (0) ..- Disable building of Debug images + NORELEASE .... [1 | 0] .. (0) ..- Disable building of Release images + USE_CTRDLL ... [1 | 0] .. (0) ..- Enable use of MSVCRT.DLL for CRTL in + USE_SYSGL .... [1 | 0 | 2](0) ..- Enable use of System OpenGL/GLU for + GLUT and Demo builds. When set to '2' it will link + against SGI OpenGL for Windows instead of Microsoft + OopenGL. + USE_ICC ...... [1 | 0] .. (0) ..- *experimental* - Use Intel C/C++ compiler + instead of Microsft compiler, works for both VC4 & VC5. + Requires prior installation of the Intel C/C++ compiler. + GD_NO_PROGS .. [1 | 0] .. (0) ..- Disable diff generation for MesaDemos. + preference to statically linking in the CRTL. Makes for + smaller files *but* requires MSVCRT.DLL at runtime. + STATIC_MESA .. [1 | 0] .. (0) ..- Meaningful only when building executables. + Indicates to the nmake.mak that exe files should be linked with + static link libs (mesa|mesaglu|mesaglut).lib instead of the default + DLL import libs. This directive trickes down into a compiler macro + definition which itself directs the mesa "gl.h" file to redefine + APIENTRY, CALLBACK, and WINGDIAPI. + ALLWARNINGS .. [1 | 0] .. (1) ..- Enable all compiler warnings. + + GLIDE2SDK ...................... - required to be defined as the path + where your Glide 2 SDK is installed. There is no default, + however you may provide it as an environment variable by + doing something like this prior to executing nmake: + + set GLIDE2SDK=C:\Glide2x + + USENASM ........................ - required to be defined as the command + required to execute NASM for assembly of .S modules in + .\src\X86. This will require the complete path if nasm + is not in your command search path. + + + ---- special targets --------------- + libfiles ........................ all *.lib and *.dll files + tests ..........(req libfiles)... all test executables + progs ..........(req libfiles)... all demonstration executables + progs.samples / progs.demos / + progs.book / progs.3dfx.demos ... individual demo program group builds + gendiffs ........................ generates complete diffs between + original distribution and locally modified source files. + gendiffs.clr .................... cleans up behind gendiffs target. + + progs.sysgl ..................... builds all demo programs linking + against GLUT32.DLL and Microsoft + OpenGL link libraries for using + Windows system OpenGL support. + + progs.sgigl ..................... builds all demos programs as progs.sysgl + however it links against GLUT.DLL built + against the SGI OpenGL for Windows. + + ---- convenience targets ----------- + allstatic ....................... builds all "standard" static lib files. + alldynamic ...................... builds all "standard" dynamic lib files, + excluding hardware accelerator versions. + allaccel ........................ builds all hardware accelerated versions. + allfx ........................... builds all 3Dfx targeted code. + alls3 ........................... builds all S3 S3DTK targeted code. + + ---- individual targets ------------ + mesa, mesaglu, mesaglut ......... static lib builds of respective code. + + mesa32 .......................... dynamic lib build of Mesa core + + fxmesa32 ........................ dynamic lib build for use on top of + 3Dfx Glide runtime (for use with + 3Dfx Voodoo based display hardware). + + s3mesa32 ........................ dynamic lib build for use on top of + S3 'S3Tk' runtime (for use with + S3 Virge based display hardware). + + glu32 ........................... dynamic lib build of GLU routines + + glut32 .......................... dynamic lib build of GLUT routines + + glut.sysgl ...................... alias lib build of glut32 using system + OpenGL/GLU routines. + + glut.sysgl.install .............. installs generated GLUT and GLUT.H into + directores specified at end of this + help screen. + + glut.sgigl ...................... alias lib build of glut32 using SGI + OopenGL for Windows GL/GLU routines + + glut.sgigl.install .............. installs generated GLUT and GLUT.H into + directores specified at end of this + help screen. + + + ---- makefile Author notes ------------------ + Mesa originated as a project of and is currently maintained by Brian Paul + (brianp@elastic.avid.com). Please look the the "canonical" internet sites + for detailed information and source distributions, either at: + + http://www.ssec.wisc.edu/~brianp/Mesa.html + + <or> + + ftp://iris.ssec.wisc.edu/pub/Mesa + + This makefile suite built against MS Visual C++ 5.0 SP3 and tested on + WindowsNT 4.0 SP3, WindowsNT 5.0b1, Windows95 OSR 2.0, and Windows98. + + ---- output directories as configured ------- + + Linking Libs . : $(LIBINSTALL) + Runtime Libs . : $(DLLINSTALL) + Header Files . : $(HDRINSTALL) + +<< + +# ----- Default / primary configuration stuff --------------------------------- + +# Makefile elections, may be selected by command line but here are the defaults +# +# MESAVER - Mesa version +# NOCONSOLE - when 1, builds executables for Windowed runtime +# + +!IF "$(NOCONSOLE)" == "" +NOCONSOLE=0 +!ENDIF + +!IF "$(NOCONSOLE)" == "1" +DOGUI=1 +!ELSE +DOGUI=0 +!ENDIF + +# used in building all of the resource files for the Mesa DLLs +# +!IF "$(MESAVER)" == "" +MESAVER=3.1 +!ENDIF + +# used in building all of the resource files for the Mesa DLLs +# +!IF "$(MESAFILEVER)" == "" +MESAFILEVER=3,1,0,0 +!ENDIF + +# Set to 1 to enable building against MSVCRT.DLL instead of LIBC.LIB +# +!IF "$(USE_CRTDLL)" == "" +USE_CRTDLL=0 +!ENDIF + +!IF "$(GD_NO_PROGS)" == "" +GD_NO_PROGS=0 +!ENDIF + +!IF "$(USE_SYSGL)" == "" +USE_SYSGL=0 +!ENDIF + +#--------------------------------------------------------------------- +# shouldn't need to play beyond here ... +#--------------------------------------------------------------------- + +!IF "$(LIBBASE)" == "" +LIBBASE=mesa +!ENDIF + +!IF "$(DLLBASE)" == "" +DLLBASE=$(LIBBASE) +!ENDIF + +!IF "$(EXEFSERIES_UP)" == "" +EXEFSERIES_UP=1 +!ENDIF + +!IF "$(EXEFILE)" == "" +EXEFILE=- +!ENDIF + +!IF "$(ALLWARNINGS)" == "" +ALLWARNINGS=1 +!ENDIF + +!IF "$(STATIC_MESA)" == "" +STATIC_MESA=0 +!ENDIF + +!IF "$(DEBUG)" == "" +DEBUG=0 +!ENDIF + +!IF "$(NODEBUG)" == "" +!IF "$(DEBUG)" == "1" +NODEBUG=0 +!ELSE +NODEBUG=1 +!ENDIF +!ENDIF + +!IF "$(NORELEASE)" == "" +!IF "$(DEBUG)" == "1" +NORELEASE=1 +!ELSE +NORELEASE=0 +!ENDIF +!ENDIF + +!IF (("$(DEBUG)" == "1") && ("$(USE_CRTDLL)" == "1")) +LIBTYPE=d-d +NORELEASE=1 +NOSTATIC=1 +!ELSEIF (("$(DEBUG)" == "1") && ("$(USE_CRTDLL)" == "0")) +LIBTYPE=d-s +NORELEASE=1 +NODYNAMIC=1 +!ELSEIF (("$(DEBUG)" == "0") && ("$(USE_CRTDLL)" == "1")) +LIBTYPE=r-d +NODEBUG=1 +NOSTATIC=1 +!ELSE +LIBTYPE=r-s +NODEBUG=1 +NODYNAMIC=1 +DEBUG=0 +!ENDIF + +# See nmake.mif file for documentations of these settings +NOPCH=1 +H_FILES= + +# Root source directory for primary Mesa lib files, check first that we are +# "in" the mesa source tree, then go extreme after that. + +!IF "$(MESAROOT)" == "" +!IF EXIST (..\include\gl\gl.h) +MESAROOT=.. +!ENDIF +!ENDIF + +!IF "$(DEBUG)" == "1" +DEBTAG=d +!ELSE +DEBTAG= +!ENDIF + +OBJDIR_R=.\$(MESAROOT)\lib +ALTLIBPATH=$(OBJDIR_R) + +# ----- Standard meta build rules --------------------------------------------- + +all: mesa mesaglu mesaglut\ + mesa32 glu32 glut32\ +!IF "$(GLIDE2SDK)" != "" + fxmesa32\ +!ENDIF + progs + +all.debug: + nmake /nologo /f nmake.mak DEBUG=1 all + +all.sysgl: glut.sysgl progs.sysgl + +all.sgigl: glut.sgigl progs.sgigl + +!IF EXIST(.\include\gl\glut.h) +CLEANSUPS = .\include +!ENDIF + +realclean: cleanprogs + echo. > ..\3dfx\demos\foo.dll + echo. > ..\book\foo.dll + echo. > ..\demos\foo.dll + echo. > ..\samples\foo.dll + echo. > ..\3dfx\demos\foo.pdb + echo. > ..\book\foo.pdb + echo. > ..\demos\foo.pdb + echo. > ..\samples\foo.pdb + del ..\3dfx\demos\*.dll + del ..\demos\*.dll + del ..\samples\*.dll + del ..\book\*.dll + del ..\3dfx\demos\*.pdb + del ..\demos\*.pdb + del ..\samples\*.pdb + del ..\book\*.pdb +!IF EXIST($(OBJDIR_R)) + nmake /nologo /f nmake.mak CLEANSUPS=$(OBJDIR_R) clean +!ELSE + nmake /nologo /f nmake.mak clean +!ENDIF + +clean: cleanroot + +cleanprogs: + echo Clearing DEBUG build files ... +!IF "$(GLIDE2SDK)" != "" + nmake /nologo /f nmake.mak DEBUG=1 EXEFILE=progs.3dfx.demos clrxfileseries +!ENDIF + nmake /nologo /f nmake.mak DEBUG=1 EXEFILE=progs.book clrxfileseries + nmake /nologo /f nmake.mak DEBUG=1 EXEFILE=progs.demos clrxfileseries + nmake /nologo /f nmake.mak DEBUG=1 EXEFILE=progs.samples clrxfileseries + echo Clearing RELEASE build files ... +!IF "$(GLIDE2SDK)" != "" + nmake /nologo /f nmake.mak DEBUG=0 EXEFILE=progs.3dfx.demos clrxfileseries +!ENDIF + nmake /nologo /f nmake.mak DEBUG=0 EXEFILE=progs.book clrxfileseries + nmake /nologo /f nmake.mak DEBUG=0 EXEFILE=progs.demos clrxfileseries + nmake /nologo /f nmake.mak DEBUG=0 EXEFILE=progs.samples clrxfileseries + +# ----- link libraries build rules -------------------------------------------- + +STATICLIBLIST=mesa.lib mesaglu.lib mesaglut.lib fxmesa.lib + +DYNAMICLIBLIST=mesa32.dll glu32.dll glut32.dll + +$(STATICLIBLIST) $(STATICLIBLIST:.lib= ): + nmake /nologo /f nmake.mak DIRECTORYNAME=$(MESAROOT)\lib directory + set STATIC_MESA=1 + set USE_CRTDLL=0 + set DEBUG=$(DEBUG) + nmake /nologo /f nmake.mak EXEFILE=- LIBBASE=$* libupr + +$(DYNAMICLIBLIST) $(DYNAMICLIBLIST:.dll= ): + nmake /nologo /f nmake.mak DIRECTORYNAME=$(MESAROOT)\lib directory + set STATIC_MESA=0 + set USE_CRTDLL=1 + set DEBUG=$(DEBUG) + nmake /nologo /f nmake.mak EXEFILE=- LIBBASE=$* dllupr + +glut.sysgl: + nmake /nologo /f nmake.mak USE_SYSGL=1 DEBUG=0 glut32 + +glut.sysgl.install: + nmake /nologo /f nmake.mak DIRECTORYNAME=$(HDRINSTALL)\GL directory + rem <<$(TEMP)\gsi.mak +.SILENT: + +# Linking Libs . : $(LIBINSTALL) +# Runtime Libs . : $(DLLINSTALL) +# Header Files . : $(HDRINSTALL)\GL + +install: $(LIBINSTALL)\GLUT32.LIB $(DLLINSTALL)\GLUT32.DLL\ + $(DLLINSTALL)\GLUT32.PDB $(HDRINSTALL)\GL\GLUT.H + +$(LIBINSTALL)\GLUT32.LIB: .\Release\GLUT32\GLUT32.LIB + echo $(LIBINSTALL)\GLUT32.LIB ... + copy .\Release\GLUT32\GLUT32.LIB $(LIBINSTALL)\GLUT32.LIB + +$(DLLINSTALL)\GLUT32.DLL: .\Release\GLUT32\GLUT32.DLL + echo $(LIBINSTALL)\GLUT32.DLL ... + copy .\Release\GLUT32\GLUT32.DLL $(DLLINSTALL)\GLUT32.DLL + +$(DLLINSTALL)\GLUT32.PDB: .\Release\GLUT32\GLUT32.PDB + echo $(LIBINSTALL)\GLUT32.PDB ... + copy .\Release\GLUT32\GLUT32.PDB $(DLLINSTALL)\GLUT32.PDB + +$(HDRINSTALL)\GL\GLUT.H: $(MESAROOT)\INCLUDE\GL\GLUT.H + echo $(HDRINSTALL)\GL\GLUT.H ... + copy $(MESAROOT)\INCLUDE\GL\GLUT.H $(HDRINSTALL)\GL\GLUT.H +<<KEEP + nmake /nologo /f $(TEMP)\gsi.mak install + +glut.sgigl: + nmake /nologo /f nmake.mak USE_SYSGL=2 DEBUG=1 glut32 + nmake /nologo /f nmake.mak USE_SYSGL=2 DEBUG=0 glut32 + +glut.sgigl.install: + nmake /nologo /f nmake.mak DIRECTORYNAME=$(HDRINSTALL)\GL directory + rem <<$(TEMP)\gsi.mak +.SILENT: + +# Linking Libs . : $(LIBINSTALL) +# Runtime Libs . : $(DLLINSTALL) +# Header Files . : $(HDRINSTALL)\GL + +install: $(LIBINSTALL)\GLUT.LIB $(LIBINSTALL)\GLUTd.LIB\ + $(DLLINSTALL)\GLUT.DLL $(DLLINSTALL)\GLUTd.DLL\ + $(DLLINSTALL)\GLUT.PDB $(DLLINSTALL)\GLUTd.PDB + +$(LIBINSTALL)\GLUT.LIB: .\Release\GLUT.LIB + echo $(LIBINSTALL)\GLUT.LIB ... + copy .\Release\GLUT.LIB $(LIBINSTALL)\GLUT.LIB + +$(LIBINSTALL)\GLUTd.LIB: .\Debug\GLUTd.LIB + echo $(LIBINSTALL)\GLUTd.LIB ... + copy .\Debug\GLUTd.LIB $(LIBINSTALL)\GLUTd.LIB + +$(DLLINSTALL)\GLUT.DLL: .\Release\GLUT.DLL + echo $(LIBINSTALL)\GLUT.DLL ... + copy .\Release\GLUT.DLL $(DLLINSTALL)\GLUT.DLL + +$(DLLINSTALL)\GLUTd.DLL: .\Debug\GLUTd.DLL + echo $(DLLINSTALL)\GLUTd.DLL ... + copy .\Debug\GLUTd.DLL $(DLLINSTALL)\GLUTd.DLL + +$(DLLINSTALL)\GLUT.PDB: .\Release\GLUT.PDB + echo $(LIBINSTALL)\GLUT.PDB ... + copy .\Release\GLUT.PDB $(DLLINSTALL)\GLUT.PDB + +$(DLLINSTALL)\GLUTd.PDB: .\Debug\GLUTd.PDB + echo $(DLLINSTALL)\GLUTd.PDB ... + copy .\Debug\GLUTd.PDB $(DLLINSTALL)\GLUTd.PDB + +$(HDRINSTALL)\GL\GLUT.H: $(MESAROOT)\INCLUDE\GL\GLUT.H + echo $(HDRINSTALL)\GL\GLUT.H ... + copy $(MESAROOT)\INCLUDE\GL\GLUT.H $(HDRINSTALL)\GL\GLUT.H +<<KEEP + nmake /nologo /f $(TEMP)\gsi.mak install + +update: headers $(STATICLIBLIST:.lib=.up) $(DYNAMICLIBLIST:.dll=.up) + +$(STATICLIBLIST:.lib=.up): + nmake /nologo /f nmake.mak DIRECTORYNAME=$(MESAROOT)\lib directory + set STATIC_MESA=1 + set USE_CRTDLL=0 + set DEBUG=$(DEBUG) + nmake /nologo /f nmake.mak EXEFILE=- LIBBASE=$* libup + +$(STATICLIBLIST:.lib=.db): + nmake /nologo /f nmake.mak DIRECTORYNAME=$(MESAROOT)\lib directory + set NORELEASE=1 + set STATIC_MESA=1 + set USE_CRTDLL=0 + set DEBUG=1 + nmake /nologo /f nmake.mak $*.lib + +$(DYNAMICLIBLIST:.dll=.up): + nmake /nologo /f nmake.mak DIRECTORYNAME=$(MESAROOT)\lib directory + set STATIC_MESA=0 + set USE_CRTDLL=1 + set DEBUG=$(DEBUG) + nmake /nologo /f nmake.mak EXEFILE=- LIBBASE=$* dllup + +$(DYNAMICLIBLIST:.dll=.db): + nmake /nologo /f nmake.mak DIRECTORYNAME=$(MESAROOT)\lib directory + set NORELEASE=1 + set STATIC_MESA=0 + set USE_CRTDLL=1 + set DEBUG=1 + nmake /nologo /f nmake.mak $*.dll + +$(DYNAMICLIBLIST:.dll=.status): + set STATIC_MESA=0 + set USE_CRTDLL=1 + set DEBUG=$(DEBUG) + nmake /nologo /f nmake.mak EXEFILE=- LIBBASE=$* status + +$(STATICLIBLIST:.lib=.status): + set STATIC_MESA=1 + set USE_CRTDLL=0 + set DEBUG=$(DEBUG) + nmake /nologo /f nmake.mak EXEFILE=- LIBBASE=$* status + +$(DYNAMICLIBLIST:.dll=.resources): + set STATIC_MESA=0 + set DEBUG=$(DEBUG) + set USE_CRTDLL=1 + nmake /nologo /f nmake.mak EXEFILE=- LIBBASE=$* resources + +libfiles: $(STATICLIBLIST:.lib= ) $(DYNAMICLIBLIST:.dll= ) + +allstatic: mesa mesaglu mesaglut + set STATIC_MESA=1 + set USE_CRTDLL=0 + set DEBUG=$(DEBUG) + nmake /nologo /f nmake.mak progs.book progs.samples progs.demos + +alldynamic: mesa32 glu32 glut32 + set STATIC_MESA=0 + set USE_CRTDLL=0 + set DEBUG=$(DEBUG) + nmake /nologo /f nmake.mak progs.book progs.samples progs.demos + +allaccel: allfx alls3 + +allfx: fxmesa32 glu32 glut32 + set STATIC_MESA=0 + set USE_CRTDLL=0 + set DEBUG=$(DEBUG) + nmake /nologo /f nmake.mak progs.3dfx.demos + +alls3: s3msagl32 + +fxmesa32: + nmake /nologo /f nmake.mak DIRECTORYNAME=$(MESAROOT)\lib\FX directory + set STATIC_MESA=0 + set USE_CRTDLL=1 + set DEBUG=$(DEBUG) + nmake /nologo /f nmake.mak EXEFILE=- LIBBASE=$* dllupr + +s3mesa32: + nmake /nologo /f nmake.mak DIRECTORYNAME=$(MESAROOT)\lib\S3 directory + set STATIC_MESA=0 + set USE_CRTDLL=1 + set DEBUG=$(DEBUG) + nmake /nologo /f nmake.mak EXEFILE=- LIBBASE=$* dllupr + +# ----- convenient aliases ---------------------------------------------------- + +opengl: mesa32 + +glu: glu32 + +glut: glut32 + +s3mesa: s3mesa32 + +# ----- test/demo program build ruiles ---------------------------------------- +# NOTE: These require previous builds of the mesa libs, et. al., but are not +# made dependent upon their presence to facilitate SPEED of nmake processing. + +PROGSLIST = progs.book.p progs.demos.p progs.samples.p +PROGSLISTGL = $(PROGSLIST:.p=.sysgl) +PROGSLISTGL2 = $(PROGSLIST:.p=.sgigl) +!IF "$(GLIDE2SDK)" != "" +PROGSLISTST = $(PROGSLIST:.p=.status) progs.3dfx.demos.status +PROGSLISTM = $(PROGSLIST:.p= ) progs.3dfx.demos +!ELSE +PROGSLISTST = $(PROGSLIST:.p=.status) +PROGSLISTM = $(PROGSLIST:.p= ) +!ENDIF + +progs: $(PROGSLISTM) + +progs.sysgl: $(PROGSLISTGL) + +progs.sgigl: $(PROGSLISTGL2) + +$(PROGSLISTM): + set STATIC_MESA=$(STATIC_MESA) + set DEBUG=$(DEBUG) + set USE_CRTDLL=1 + nmake /nologo /f nmake.mak EXEFILE=$@ exefileseries libcopy + +$(PROGSLISTST): + set STATIC_MESA=$(STATIC_MESA) + set DEBUG=$(DEBUG) + set USE_CRTDLL=1 + nmake /nologo /f nmake.mak EXEFILE=$@ status + +$(PROGSLISTGL): + set USE_SYSGL=1 + nmake /nologo /f nmake.mak $* + +$(PROGSLISTGL2): + set USE_SYSGL=2 + nmake /nologo /f nmake.mak $* + +# ----- program/lib specific options ------------------------------------------ + +include\gl\glut.h: ..\include\gl\glut.h + echo include\GL\glut.h ... + nmake /nologo /f nmake.mak DIRECTORYNAME=include\GL directory + copy ..\include\GL\glut.h include\GL\glut.h + +CPPOPTS=/D__MSC__ /D__WIN32__ /DWIN32 /DWINDOWS_NT /D__i386__\ + /DNO_PARALLEL /DNO_STEREO + +!IF "$(STATIC_MESA)" == "1" +CPPOPTS=/D_STATIC_MESA $(CPPOPTS) +!ENDIF + +!IF "$(ALLWARNINGS)" != "1" +CPPOPTS=$(CPPOPTS) /DMESA_MINWARN +!ENDIF + +# ----------------------------------------------------------------------------- +!IF "$(EXEFILE)" == "-" # building a lib of some form ... +# ----------------------------------------------------------------------------- + +!IF ("$(DLLBASE)" != "glut32") +CPPOPTS=$(CPPOPTS) /I$(MESAROOT)\include +!ENDIF + +INTDIRSFX = $(LIBBASE) +SRCALT1=.\$(MESAROOT)\src +!INCLUDE .\rules\lib.$(LIBBASE) + +# ----------------------------------------------------------------------------- +!ELSEIF "$(EXEFILE)" != "" # building a set of executables ... +# ----------------------------------------------------------------------------- + +INTDIRSFX=$(EXEFILE) +SUPLIBSROOT=.\rules\$(EXEFILE) + +!IF "$(USE_SYSGL)" != "0" +CPPDEPS=include\GL\glut.h +CPPOPTS=$(CPPOPTS) /I.\include +!ELSE +CPPOPTS=$(CPPOPTS) /I$(MESAROOT)\include +!ENDIF + +!IF EXIST (.\rules\$(EXEFILE)) +!INCLUDE .\rules\$(EXEFILE) +!ENDIF + +# Use possibly redefined SRCALT1 here to copy executables +# to their respective source directories ... + +BINDIR = $(SRCALT1) + +libcopy: + rem <<$(TEMP)\libcopyf.mak +.SILENT: + +$$(TGTFILE): $$(SRCFILE) + echo $$(SRCFILE) ... + set COPYCMD=/y + copy /v $$(SRCFILE) $$(TGTFILE) + +copyfile: $$(TGTFILE) +<<KEEP +!IF "$(RUNTIMELIBS)" != "" + <<$(TEMP)\libcopyf.bat $(OBJDIR_R) $(SRCALT1) $(RUNTIMELIBS) +@echo off +set _SRCDIR=%1 +shift +set _TGTDIR=%1 +shift +:loops +nmake /nologo /f $(TEMP)\libcopyf.mak SRCFILE=%_SRCDIR%\%1 TGTFILE=%_TGTDIR% copyfile +shift +if not [%1] == [] goto loops +set _SRCDIR= +set _TGTDIR= +<<KEEP +!ENDIF + +# ----------------------------------------------------------------------------- +!ENDIF # EXEFILE keyed selection +# ----------------------------------------------------------------------------- + +# ----------------------------------------------------------------------------- +# ----- get final build rules ------------------------------------------------- +# ----------------------------------------------------------------------------- +!IF EXIST (nmake.mif) +!INCLUDE nmake.mif +!ELSE +!INCLUDE <nmake.mif> +!ENDIF +# ----------------------------------------------------------------------------- diff --git a/xc/extras/Mesa/WIN32/NMAKE.MIF b/xc/extras/Mesa/WIN32/NMAKE.MIF new file mode 100644 index 000000000..5996f9008 --- /dev/null +++ b/xc/extras/Mesa/WIN32/NMAKE.MIF @@ -0,0 +1,2433 @@ +# ----- Notes on usage --------------------------------------------------------# + +!IF "$(PAGER)" == "" +PAGER=more +!ENDIF + +buildhelp: + $(PAGER) < << + +o Controlling Definitions - Directories + +TEMP - temporary directory for interim files +RELDIR - target directory for release build output files +DEBDIR - target directory for debug build output files +BINDIR - target directory for EXE/DLL file updates +USEDIR - target directory for LIB file updates +INCDIR - target directory for INCLUDE file updates +INCDIRSFX - target header directory suffx (such as 'gl' for gl/glut.h) +DISTDIR - target directory for distribution file update + (default to ./dist) +OBJDIRSFX - optional intermediate file directory +PCHDDIR - target directory for Debug PCH file +PCHRDIR - target directory for Release PCH file +SRCFILES - macro that is the list of source file for the current target +SUPLIBSSRC - similar to SRCFILES but these are *all* added to every link + for an 'exefileseries' targeted build. +SUPLIBDEPS - additional dependencies correlating to SRCFILES, only for + an 'exefileseries' targeted build. +SRCPATH - source file path specification - default path to source +SRCALT1 - alternate 1 to source files +SRCALT2 - alternate 2 to source files +SRCALT3 - alternate 3 to source files +SRCALT4 - alternate 4 to source files +SRCALT5 - alternate 5 to source files (addition by TXM, alextxm@tin.it) +ALTLIBPATH - alternate link time library path + +Supported file extensions: .asm, .cpp, .cxx, .cc, .c, .a, .S + +o Controlling Definitions - Build Control + +BUILD_FOR_P6 - when 1, targeted for PPro, else for Pentium +BUILD_DLL - when 1, changes some compile flags for building DLL-based + code specific flags added to the CL command line are: + /GD - optimize for Windows DLL (vs /GA - opt for Windows App) +CPP_PCH - when 1, uses CPP to build PCH file +CPPDEPS - additional dependencies which must be built BEFORE compiling +CPPOPTS - additional options added to c/c++ compile line +CL_FULL_OPT - when 1, uses '/Ox /Ob2' instead of specific optimizations + ------------------------------------------------------------------------------ + Explanation of compiler optimization used when CL_FULL_OPT is zero (default) + ------------------------------------------------------------------------------ + /Ob2 - automatic-inlining of any suitable code + /Oa - Assume No Aliasing of pointers and data + /Oi - generate intrinsic functions instead of calls to libc routines + /Ot - favor code speed over size + /Oy - frame pointer omission, does not setup frame pointers on the stack + /Os - control stack checking calls, + /Op- - improve floating point consistency - disabled; with this option set to + '-' it causes the compiler to generate faster code which attempts to + maximize use of the fp registers and minimizing memory reads/writes. + Personally, I would like to see this turned to '/Op' to prevent fp + computation glitches, however currently this generates a tremendous + amount of compiler warnings about fp overflow in computations, and it + would significantly slow down the generated code anyway so "*sigh*" + ------------------------------------------------------------------------------ +DEBUG - when 1, enables debug build and disables release build +DEFFILE - when non nil, used during DLL linking +DLLBASE - base file name for dll (minus '32' moniker) +DLLBASEADDR - base address of DLL +DLLBASEFILE - base address reference of DLL + NOTE: Use only *one* of DLLBASEADDR or DLLBASEFILE, but not + both! +DOGUI - when 1, links executable for windows GUI subsystem +EXEFILE - test exe file name, default file for source .c/.cc/.cpp file +EXETYPE - alias for LIBTYPE, for when building EXE files only +FORCELINK - Forces link, regardless of undefined/multiply defined symbols + (useful for debugging linkage problems) +LIBBASE - base file name for library +LIBTYPE - set to desired library build type (d-s, r-s, d-d, r-d) +LINKTARGET - set to 'app' or 'dll' to specify, affects some CL.EXE options +MAKEFILE - name of source makefile +NOSTATIC - when 1, do not build static libs (libc??.lib usage) +NODYNAMIC - when 1, do not build dynamic libs (msvcrt??.dll usage) +NODEBUG - when 1, do not build debug libs +NORELEASE - when 1, do not build release libs +NOPCH - when 1, do not use PCH file +NOMULTIBUILD - when 1, disable multi-file rules (MSVC 5(+) only) +PCHINCROOT - set to file name root that is the PCH include trigger file +PCHINCFILE - set to file that is the PCH include file for c code +PCHSOURCEFILE - set to complete source file name for ansi c code + (e.g. stdinc.c) +PCHFILE - set to precompiled header file pathname for ansi c code +PCHOBJFILE - set to precompiled header file object file pathname for + ansi c code +RCFLAGS - resource compiler option flags +RCDEFS - user provided resource compiler flags +STRIPSYMBOLS - strip debugging symbols from release libs + (normally even release builds are made with debug symbols) +SMP - when 1, builds and links as multi-threaded code +USE_STD_CPP_HDRS- enables C++ exception handling and _STD_USING definition +USE_ICC - enables use of Intel C/C++ compiler instead of MS + uses: 'icl.exe' instead of 'cl.exe' + uses: 'xilink.exe' instead of 'link.exe' + prefixes link libraries with 'libm' and 'libmmt' to pull + them from the ICC install. +<< + +# ----- build options ---------------------------------------------------------# + +.SUFFIXES: .asm .cpp .cxx .cc .c .a .S + +!IF "$(OS)" == "Windows_NT" +DELTREE=rd /q /s +NULL=NUL +COPYFILE=copy /v +!ELSE +DELTREE=deltree /y +NULL=NUL +COPYFILE=copy /y/v +!ENDIF + +!IF "$(TESTEXE)" != "" +!MESSAGE Macro TESTEXE built by client "nmake.mak" file but is outdated. +EXEFILE=$(TESTEXE) +!UNDEF TESTEXE +!ENDIF + +!IF "$(NOSTATIC)" == "" +NOSTATIC=0 +!ENDIF + +!IF "$(NODYNAMIC)" == "" +NODYNAMIC=0 +!ENDIF + +!IF "$(DEBUG)" == "1" +NODEBUG=0 +NORELEASE=1 +!ELSEIF "$(DEBUG)" == "0" +NODEBUG=1 +NORELEASE=0 +!ENDIF + +!IF "$(NODEBUG)" == "" +NODEBUG=0 +!ENDIF + +!IF "$(NORELEASE)" == "" +NORELEASE=0 +!ENDIF + +!IF "$(NOMULTIBUILD)" == "" +!IF "$(DEBUG)" == "1" +NOMULTIBUILD=1 +!ELSE +NOMULTIBUILD=0 +!ENDIF +!ENDIF + +!IF "$(NOPCH)" == "" +NOPCH=0 +!ENDIF + +!IF "$(DOGUI)" == "" +DOGUI=0 +!ENDIF + +!IF "$(FORCELINK)" == "" +FORCELINK=0 +!ENDIF + +!IF "$(USE_ICC)" == "" +USE_ICC=0 +!ENDIF + +!IF "$(USE_STD_CPP_HDRS)" == "" +USE_STD_CPP_HDRS=0 +!ENDIF + +!IF "$(DOGUI)" == "1" +SUBSYSTEM=windows +!ELSE +SUBSYSTEM=console +!ENDIF + +!IF "$(PROC_EXEFILESERIES)" == "" +PROC_EXEFILESERIES=0 +!ENDIF + +!IF "$(CPP_PCH)" == "" +CPP_PCH=0 +!ENDIF + +!IF "$(TEMP)" == "" +TEMP=. +!ENDIF + +!IF "$(DEVDIR)" == "" +DEVDIR=.. +#\..\.. +!ENDIF + +!IF "$(RELDIR)" == "" +RELDIR=.\Release +!ENDIF + +!IF "$(DEBDIR)" == "" +DEBDIR=.\Debug +!ENDIF + +!IF "$(USEDIR)" == "" +USEDIR=$(DEVDIR)\sdk\lib\win32\vc +!ENDIF + +!IF "$(BINDIR)" == "" +BINDIR=$(DEVDIR)\sdk\bin +!ENDIF + +!IF "$(DISTDIR)" == "" +DISTDIR=dist +!ENDIF + +!IF "$(INCDIR)" == "" +INCDIR=$(DEVDIR)\sdk\h +!ENDIF + +!IF "$(INCDIR_L)" == "" +INCDIR_L=. +!ENDIF + +!IF "$(INCDIRSFX)" == "" +INCDIRSFX=- +!ENDIF + +!IF "$(SRCPATH)" == "" +SRCPATH=. +!ENDIF + +!IF "$(PCHINCROOT)" == "" +PCHINCROOT=stdinc +!ENDIF + +!IF "$(PCHINCFILE)" == "" +PCHINCFILE=$(PCHINCROOT).h +!ENDIF + +!IF "$(PCHSOURCEFILE)" == "" +PCHSOURCEFILE=$(PCHINCROOT).c +!ENDIF + +!IF "$(PCHINCFILEPP)" == "" +PCHINCFILEPP=$(PCHINCROOT).hpp +!ENDIF + +!IF "$(PCHSOURCEFILEPP)" == "" +PCHSOURCEFILEPP=$(PCHINCROOT).cpp +!ENDIF + +!IF "$(MAKEFILE)" == "" +MAKEFILE=nmake.mak +!ENDIF + +!IF "$(NOSTATIC)" == "1" +CRTTYPE=d +!ELSE +CRTTYPE=s +!ENDIF + +!IF "$(CRTTYPE)" == "" +CRTTYPE=s +!ENDIF + +!IF "$(LINKTARGET)" == "" +LINKTARGET=app +!ENDIF + +!IF "$(LIBBASE)" == "" +LIBBASE=mylib +!ENDIF + +!IF "$(DLLBASE)" == "" +DLLBASE=$(LIBBASE)32 +!ENDIF + +!IF "$(BUILD_DLL)" == "" +BUILD_DLL=0 +!ENDIF + +!IF "$(DIRECTORYNAME)" == "" +DIRECTORYNAME=.\directoryname.default +!ENDIF + +!IF "$(SMP)" == "" +SMP=0 +!ENDIF + +!IF "$(EXEFSERIES_UP)" == "1" +!IF "$(BINDIR)" == "" +EXEFSERIES_UP=0 +!ENDIF +!ENDIF + +!IF EXIST (nmake.mif) +NMAKE_MIF_FILE=nmake.mif +!ELSE +NMAKE_MIF_FILE=$(DEVDIR)\sdk\h\nmake.mif +!ENDIF + +!IF "$(DLLBASEADDR)" != "" +DLLBASEOPT=/base:$(DLLBASEADDR) +!ELSEIF "$(DLLBASEFILE)" != "" +DLLBASEOPT=/base:@$(DLLBASEFILE) +!ELSE +DLLBASEOPT= +!ENDIF + +!IF "$(STRIPSYMBOLS)" == "" +STRIPSYMBOLS=0 +!ENDIF + +!IF "$(CL_FULL_OPT)" == "" +CL_FULL_OPT=1 +!ENDIF + +# ----- macro resolution / error checking -------------------------------------- + +# MS DevStudio/VC5 nmake. defines the macro _NMAKE_VER as 162, nmake for +# VC 4 does not define it, we use this as a tag for conditionals to handle +# build with VC4 nmake. + +_NMAKE_VER_6=6.00.8168.0 # For reference, probably will change with a service pack +_NMAKE_VER_5=162 +_NMAKE_VER_4=0 + +!IFNDEF _NMAKE_VER +_NMAKE_VER=$(_NMAKE_VER_4) +!ENDIF + +!IF "$(EXEFILE)" == "" +EXEFILE=test +!ENDIF + +!IF ("$(SRCFILES)" == "") && ("$(EXEFILE)" != "") +SRCFILES=$(EXEFILE).c +!ELSEIF ("$(SRCFILES)" == "") && ("$(EXEFILE)" == "") +SRCFILES=main.c +!ENDIF + +OBJ = $(SRCFILES) +OBJ = $(OBJ:.cpp=.obj) +OBJ = $(OBJ:.cxx=.obj) +OBJ = $(OBJ:.cc=.obj) +OBJ = $(OBJ:.c=.obj) +OBJ = $(OBJ:.a=.obj) +OBJ = $(OBJ:.asm=.obj) +OBJ = $(OBJ:.S=.obj) + +!IF "$(RCFILE)" != "" +OBJ = $(OBJ) $(LIBBASE)$(DEBTAG).res +!ENDIF + +EXEFILESLIST = $(SRCFILES) +EXEFILESLIST = $(EXEFILESLIST:.cpp=.exe) +EXEFILESLIST = $(EXEFILESLIST:.cxx=.exe) +EXEFILESLIST = $(EXEFILESLIST:.cc=.exe) +EXEFILESLIST = $(EXEFILESLIST:.c=.exe) +EXEFILESLIST = $(EXEFILESLIST:.a=.exe) +EXEFILESLIST = $(EXEFILESLIST:.asm=.exe) +EXEFILESLIST = $(EXEFILESLIST:.S=.exe) + +!IF "$(SUPLIBSSRC)" == "" +EXESUPLIBSLIST = +!ELSE +EXESUPLIBSLIST = $(SUPLIBSSRC) +EXESUPLIBSLIST = $(EXESUPLIBSLIST:.cpp=.lib) +EXESUPLIBSLIST = $(EXESUPLIBSLIST:.cxx=.lib) +EXESUPLIBSLIST = $(EXESUPLIBSLIST:.cc=.lib) +EXESUPLIBSLIST = $(EXESUPLIBSLIST:.c=.lib) +EXESUPLIBSLIST = $(EXESUPLIBSLIST:.a=.lib) +EXESUPLIBSLIST = $(EXESUPLIBSLIST:.asm=.lib) +EXESUPLIBSLIST = $(EXESUPLIBSLIST:.S=.lib) +!ENDIF + +!IF "$(LIBTYPE)" == "" +!IF "$(NODEBUG)" == "1" +LIBTYPE=r-$(CRTTYPE) +!ELSE +LIBTYPE=d-$(CRTTYPE) +!ENDIF +!ENDIF + +!IF "$(PCHRDIR)" == "" +PCHRDIR=$(RELDIR) +!ENDIF + +!IF "$(PCHDDIR)" == "" +PCHDDIR=$(DEBDIR) +!ENDIF + +!IF "$(LIBTYPE)" == "r-s" # release build / static CRTL linkage +!IF "$(INTDIRSFX)" != "" +OBJDIR=$(RELDIR)\$(INTDIRSFX) +!ELSE +OBJDIR=$(RELDIR) +!ENDIF +PCHDIR=$(PCHRDIR) +LIBCNTRL= +LIBSFX= +EXESFX= +LIBPFX= +RCFLAGS=/DNDEBUG +!IF "$(SMP)" == "0" +CRTLIB=libc +CXXRTLIB=libcp +!ELSE +CRTLIB=libcmt +CXXRTLIB=libcpmt +LIBCNTRL=/D_MT $(LIBCNTRL) +!ENDIF # SMP +!ELSEIF "$(LIBTYPE)" == "d-s" # debug build / static CRTL linkage +!IF "$(INTDIRSFX)" != "" +OBJDIR=$(DEBDIR)\$(INTDIRSFX) +!ELSE +OBJDIR=$(DEBDIR) +!ENDIF +PCHDIR=$(PCHDDIR) +LIBCNTRL= +LIBSFX=d +EXESFX=d +LIBPFX= +RCFLAGS=/D_DEBUG +!IF "$(SMP)" == "0" +CRTLIB=libcd +CXXRTLIB=libcpd +!ELSE +CRTLIB=libcmtd +CXXRTLIB=libcpmtd +LIBCNTRL=/D_MT $(LIBCNTRL) +!ENDIF # SMP +!ELSEIF "$(LIBTYPE)" == "r-d" # release build / DLL CRTL linkage +!IF "$(INTDIRSFX)" != "" +OBJDIR=$(RELDIR)\$(INTDIRSFX) +!ELSE +OBJDIR=$(RELDIR) +!ENDIF +!IF "$(PCHRDIR)" == "$(RELDIR)" +PCHDIR=$(PCHRDIR) +!ELSE +PCHDIR=$(PCHRDIR) +!ENDIF +LIBCNTRL=/D_DLL +LIBSFX= +EXESFX= +LIBPFX=m +RCFLAGS=/DNDEBUG +CRTLIB=msvcrt +CXXRTLIB=msvcprt +!IF "$(SMP)" == "1" +LIBCNTRL=/D_MT $(LIBCNTRL) +!ENDIF # SMP +!ELSE # "$(LIBTYPE)" == "d-d" # debug build / DLL CRTL linkage +LIBTYPE=d-d +!IF "$(INTDIRSFX)" != "" +OBJDIR=$(DEBDIR)\$(INTDIRSFX) +!ELSE +OBJDIR=$(DEBDIR) +!ENDIF +!IF "$(PCHDDIR)" == "$(DEBDIR)" +PCHDIR=$(PCHDDIR) +!ELSE +PCHDIR=$(PCHDDIR) +!ENDIF +LIBCNTRL=/D_DLL +LIBSFX=d +EXESFX=d +LIBPFX=m +RCFLAGS=/D_DEBUG +CRTLIB=msvcrtd +CXXRTLIB=msvcprtd +!IF "$(SMP)" == "1" +LIBCNTRL=/D_MT $(LIBCNTRL) +!ENDIF # SMP +!ENDIF + +!IF "$(OBJDIR_R)" == "" +!IF ("$(LIBTYPE)" == "d-d") || ("$(LIBTYPE)" == "d-s") +OBJDIR_R=$(DEBDIR) +!ELSE +OBJDIR_R=$(RELDIR) +!ENDIF +!ENDIF + +!IF "$(LIBBASE)" == "mylib" +EEXELIBFILE= +!ELSE +EEXELIBFILE=$(OBJDIR)\$(LIBBASE).lib +!ENDIF + +# ----- File list transformation rules ----------------------------------------- + +filelistxform: + rem <<$(TEMP)\$* +EXEFILESLIST = $(OBJDIR)\$$(EXEFILESLIST: = $(OBJDIR)\) +OBJ = $(OBJDIR)\$$(OBJ: = $(OBJDIR)\) +!IF "$(EXESUPLIBSLIST)" != "" +EXESUPLIBSLIST = $(OBJDIR)\$$(EXESUPLIBSLIST: = $(OBJDIR)\) +!ENDIF +<<KEEP + +filelistxform.kill: + echo. > $(TEMP)\$* + del $(TEMP)\$* > $(NULL) + +!IF EXIST ($(TEMP)\filelistxform) +!INCLUDE $(TEMP)\filelistxform +!ELSE # NOT EXIST ($(TEMP)\filelistxform) +!IF ("$(LIBTYPE)" == "r-s") || ("$(LIBTYPE)" == "r-d") +EXEFILESLIST = .\Release\$(EXEFILESLIST: = .\Release\) +OBJ = .\Release\$(OBJ: = .\Release\) +!IF "$(EXESUPLIBSLIST)" != "" +EXESUPLIBSLIST = .\Release\$(EXESUPLIBSLIST: = .\Release\) +!ENDIF # EXESUPLIBSLIST conditional +!ELSE +EXEFILESLIST = .\Debug\$(EXEFILESLIST: = .\Debug\) +OBJ = .\Debug\$(OBJ: = .\Debug\) +!IF "$(EXESUPLIBSLIST)" != "" +EXESUPLIBSLIST = .\Debug\$(EXESUPLIBSLIST: = .\Debug\) +!ENDIF # EXESUPLIBSLIST conditional +!ENDIF # LIBTYPE conditional +!ENDIF # EXIST ($(TEMP)\filelistxform) + +# ----- Some final macro building ---------------------------------------------- + +!IF "$(CPP_PCH)" == "1" +PCHINCFILE=$(PCHINCFILEPP) +PCHSOURCEFILE=$(PCHSOURCEFILEPP) +!ENDIF + +!IF "$(DEFFILE)" != "" +DEFFILEOPT=/def:$(DEFFILE) +!ELSE +DEFFILEOPT= +!ENDIF + +!IF "$(PCHFILE)" == "" +!IF "$(LINKTARGET)" == "dll" +PCHFILE=$(OBJDIR)\$(DLLBASE)$(LIBSFX).pch +!ELSE +PCHFILE=$(OBJDIR)\$(PCHINCROOT).pch +!ENDIF +!ENDIF + +!IF "$(PCHOBJFILE)" == "" +!IF "$(LINKTARGET)" == "dll" +PCHOBJFILE=$(OBJDIR)\$(DLLBASE)$(LIBSFX).obj +!ELSE +PCHOBJFILE=$(OBJDIR)\$(PCHINCROOT).obj +!ENDIF +!ENDIF + +!IF "$(PDBFILE)" == "" +!IF "$(LINKTARGET)" == "dll" +PDBFILE=$(OBJDIR)\$(DLLBASE)$(LIBSFX).pdb +!ELSE +PDBFILE=$(OBJDIR)\$(PCHINCROOT).pdb +!ENDIF +!ENDIF + +# ----- basic compiler directives ---------------------------------------------- + +CLOPTIONS=/nologo /c /GF /Gy /Zl +MLOPTIONS=/nologo /c /coff /Cx + +!IF "$(ALLWARNINGS)" == "0" +CLOPTIONS=$(CLOPTIONS) /W3 +MLOPTIONS=$(CLOPTIONS) /W3 +!ELSE +CLOPTIONS=$(CLOPTIONS) /W4 +MLOPTIONS=$(CLOPTIONS) /W4 +!ENDIF + +!IF "$(BUILD_DLL)" == "0" +CLOPTIONS=$(CLOPTIONS) /GA /Gd +!ELSE +CLOPTIONS=$(CLOPTIONS) /GD /Gd +!ENDIF + +!IF ("$(LIBTYPE)" == "d-s") || ("$(LIBTYPE)" == "d-d") +RCFLAGS=/D_DEBUG +OPTFLAGS=/D_DEBUG /Zi /Od +MLOPTFLAGS=/D_DEBUG /Zi +!ELSE +RCFLAGS=/DNDEBUG +OPTFLAGS=/DNDEBUG /Zi +MLOPTFLAGS=/DNDEBUG /Zi + +!IF "$(CL_FULL_OPT)" == "1" +OPTFLAGS = $(OPTFLAGS) /Ox /Ob2 +!ELSE +OPTFLAGS = $(OPTFLAGS) /Ob2 /Oa /Oi /Ot /Oy /Op- +!ENDIF + +!ENDIF + +# ----- Explanation of compiler optimization options --------- +# /Ob2 - automatic-inlining of any suitable code +# /Oa - Assume No Aliasing of pointers and data +# /Oi - generate intrinsic functions instead of calls to libc routines +# /Ot - favor code speed over size +# /Oy - frame pointer omission, does not setup frame pointers on the call stack +# /Os - control stack checking calls, +# /Op- - improve floating point consistency; note: this option actually is +# likely to slow down the overall code generated, however it produces +# more reliable comparisions, etc., by forcing any fp data used +# after some computations to actually be reloaded from memory +# instead of just using the 80-bit output from the previous +# computations. This also causes more flushing to memory of the results. +# ------------------------------------------------------------ + +!IF (("$(BUILD_FOR_P6)" == "0") || ("$(_NMAKE_VER)" == "$(_NMAKE_VER_4)")) +CLOPTIONS=$(CLOPTIONS) /G5 /Zp4 +MLOPTIONS=$(MLOPTIONS) /Zp4 +!ELSE +CLOPTIONS=$(CLOPTIONS) /G6 /GM /Zp8 +MLOPTIONS=$(MLOPTIONS) /Zp8 +!ENDIF + +!IF "$(USE_STD_CPP_HDRS)" == "1" +CPPOPTS=/GX /D_STD_USING $(CPPOPTS) +!ENDIF + +!IF "$(USE_ICC)" == "1" +CC=icl +LINK=xilink +ASM=ml +!ELSE +CC=cl +LINK=link +ASM=ml +!ENDIF + +!IF "$(LINKTARGET)" == "dll" +CLOPTIONS=$(CLOPTIONS) /Fd$(PDBFILE) +!IF "$(CPP_PCH)" == "1" +PCHOPTS=/Yu"$(PCHINCROOT).hpp" /Fp$(PCHFILE) +PCHOPTSC=/Yc"$(PCHINCROOT).hpp" /Fp$(PCHFILE) +!ELSE +PCHOPTS=/Yu"$(PCHINCROOT).h" /Fp$(PCHFILE) +PCHOPTSC=/Yc"$(PCHINCROOT).h" /Fp$(PCHFILE) +!ENDIF # CCP_PCH==1 +!ELSE +CLOPTIONS=$(CLOPTIONS) /Fd$(PDBFILE) +!IF "$(CPP_PCH)" == "1" +PCHOPTS=/Yu"$(PCHINCROOT).hpp" /Fp$(PCHFILE) +PCHOPTSC=/Yc"$(PCHINCROOT).hpp" /Fp$(PCHFILE) +!ELSE +PCHOPTS=/Yu"$(PCHINCROOT).h" /Fp$(PCHFILE) +PCHOPTSC=/Yc"$(PCHINCROOT).h" /Fp$(PCHFILE) +!ENDIF # CPP_PCH==1 +!ENDIF + +!IF "$(NOPCH)" == "1" +PCHFILE= +PCHOBJFILE= +PCHOPTS= +PCHOPTSC= +!ENDIF + +!IF "$(INCDIR_L)" != "." +CLOPTIONS=$(CLOPTIONS) /I$(INCDIR_L) +RCFLAGS=$(RCFLAGS) /i$(INCDIR_L) +!ENDIF + +!IF "$(RCDEFS)" != "" +RCFLAGS=$(RCFLAGS) $(RCDEFS) +!ENDIF + +!IF "$(LINKLIBPATH)" == "" +LINKLIBPATH=/libpath:$(OBJDIR) +!ELSE +LINKLIBPATH=$(LINKLIBPATH) /libpath:$(OBJDIR) +!ENDIF + +!IF "$(OBJDIR_R)" != "$(OBJDIR)" +LINKLIBPATH=/libpath:$(OBJDIR_R) $(LINKLIBPATH) +!ENDIF + +!IF "$(ALTLIBPATH)" != "" +LINKLIBPATH=/libpath:$(ALTLIBPATH) $(LINKLIBPATH) +!ENDIF + +!IF "$(FORCELINK)" == "M" +FORCELINKFLAGS=/force:multiple +!ELSEIF "$(FORCELINK)" == "U" +FORCELINKFLAGS=/force:unresolved +!ELSEIF "$(FORCELINK)" == "1" +FORCELINKFLAGS=/force +!ELSE +FORCELINKFLAGS= +!ENDIF + +# ----- Platform SDK compatability items --------------------------------------- + +CLOPTIONS=$(CLOPTIONS) /DWIN32 /D_WIN32 +CLOPTIONS=$(CLOPTIONS) /DCRTAPI1=__cdecl /DCRTAPI2=__cdecl /D_X86_=1 +CLOPTIONS=$(CLOPTIONS) /D_WIN95 /D_WIN32_WINDOWS=0x0400 /DWINVER=0x0400 + +MLOPTIONS=$(MLOPTIONS) /DWIN32 /D_WIN32 +MLOPTIONS=$(MLOPTIONS) /DCRTAPI1=__cdecl /DCRTAPI2=__cdecl /D_X86_=1 +MLOPTIONS=$(MLOPTIONS) /D_WIN95 /D_WIN32_WINDOWS=0x0400 /DWINVER=0x0400 + +#-------------------------------------------------------------------------------- +# ----- basic compilation rules ------------------------------------------------ +#-------------------------------------------------------------------------------- + +# ----- PCH file build rule ---------------------------------------------------- + +!IF "$(NOPCH)" != "1" + +$(PCHFILE): $(PCHSOURCEFILE) $(PCHINCFILE) $(PCHDIR) + $(CC) $(CLOPTIONS) $(LIBCNTRL) $(OPTFLAGS)\ + $(CPPOPTS) $(PCHOPTSC)\ + /Fo$*.obj /Fp$*.pch $(PCHSOURCEFILE) + +pch: $(PCHFILE) + +!ENDIF + +# ----- build rules, default source directory --------------------------------- + +!IF (("$(_NMAKE_VER)" == "$(_NMAKE_VER_4)") || ("$(NOMULTIBUILD)" != "1")) + +{$(SRCPATH)\}.c{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCPATH)\}.cpp{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCPATH)\}.cc{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCPATH)\}.cxx{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCPATH)\}.asm{$(OBJDIR)\}.obj: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +!ELSE + +{$(SRCPATH)\}.c{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCPATH)\}.cpp{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCPATH)\}.cc{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCPATH)\}.cxx{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCPATH)\}.asm{$(OBJDIR)\}.obj:: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +!ENDIF + +{$(SRCPATH)\}.S{$(OBJDIR)\}.obj: + $(CC) -nologo -DNASM_ASSEMBLER /EP $< >$*.as + $(USENASM) -o $@ -f win32 $*.as + -erase $*.as + +{$(SRCPATH)\}.rc{$(OBJDIR)\}.res: + echo $< + rc $(RCFLAGS) /fo$@ $< + +!IF "$(PROC_EXEFILESERIES)" == "1" + +# This is a special-case build rule utilized by the 'exefileseries.bin' target for +# constructing an executable from one or more sources files. +# +# LIMITATION: All source files MUST be in the same directory! +# + +{$(SRCPATH)\}.c{$(OBJDIR)\}.exe: + echo $@ + rem <<$(OBJDIR)\$(@B).mak +.SILENT: +.SUFFIXES: .asm .cpp .cxx .cc .c .a .S + +<<KEEP + echo !IF EXIST (.\Rules\$(EXEFILE).$(@B))>> $(OBJDIR)\$(@B).mak + echo !INCLUDE .\Rules\$(EXEFILE).$(@B)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(SRCFILESX:.c=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.cc=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.cpp=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.asm=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$(OBJDIR)\$$(XOBJ: = $(OBJDIR)\)>> $(OBJDIR)\$(@B).mak + echo !ELSE>> $(OBJDIR)\$(@B).mak + echo XOBJ=>> $(OBJDIR)\$(@B).mak + echo !ENDIF>> $(OBJDIR)\$(@B).mak + type >> $(OBJDIR)\$(@B).mak << + +SRCDIR=$(SRCPATH) + +!IF "$(EXEFSERIES_UP)" == "1" +target: $(BINDIR)\$(@B)$(EXESFX).EXE +!ELSE +target: $@ +!ENDIF + +$(BINDIR)\$(@B)$(EXESFX).EXE: $@ + echo Updating $(BINDIR)\$(@B)$(EXESFX).EXE ... + $(COPYFILE) $@ $(BINDIR)\$(@B)$(EXESFX).EXE + +$@: $(OBJDIR)\$(@B).obj $$(XOBJ) + $(LINK) /nologo /subsystem:$(SUBSYSTEM) /nodefaultlib /machine:ix86 /map:$*.map /out:$@\ + $(FORCELINKFLAGS) $(LINKLIBPATH) $(OBJDIR)\$(@B).obj $$(XOBJ) $(EXELIBS)\ + $(CRTLIB).lib kernel32.lib gdi32.lib user32.lib oldnames.lib + +{$$(SRCDIR)\}.c{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $$< + +{$$(SRCDIR)\}.cpp{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.cc{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.cxx{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.asm{$(OBJDIR)\}.obj: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.S{$(OBJDIR)\}.obj: + $(CC) -nologo -DNASM_ASSEMBLER /EP $< >$*.as + $(USENASM) -o $@ -f win32 $*.as + -erase $*.as + +<<KEEP + nmake /nologo /f $(OBJDIR)\$(@B).mak + +!ENDIF # "$(PROC_EXEFILESERIES)" == "1" + +#-------------------------------------------------------------------------------- +# Alternate source directory 1 build rules, defined only if SRCALT1 not null +#-------------------------------------------------------------------------------- + +!IF "$(SRCALT1)" != "" + +!IF (("$(_NMAKE_VER)" == "$(_NMAKE_VER_4)") || ("$(NOMULTIBUILD)" == "1")) + +{$(SRCALT1)\}.c{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT1)\}.cpp{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT1)\}.cc{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT1)\}.asm{$(OBJDIR)\}.obj: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +!ELSE + +{$(SRCALT1)\}.c{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT1)\}.cpp{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT1)\}.cc{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT1)\}.cxx{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT1)\}.asm{$(OBJDIR)\}.obj:: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +!ENDIF + +{$(SRCALT1)\}.S{$(OBJDIR)\}.obj: + $(CC) -nologo -DNASM_ASSEMBLER /EP $< >$*.as + $(USENASM) -o $@ -f win32 $*.as + -erase $*.as + +{$(SRCALT1)\}.rc{$(OBJDIR)\}.res: + echo $< + rc $(RCFLAGS) /fo$@ $< + +!IF "$(PROC_EXEFILESERIES)" == "1" + +# This is a special-case build rule utilized by the 'exefileseries.bin' target for +# constructing an executable from one or more sources files. +# +# LIMITATION: All source files MUST be in the same directory! +# + +{$(SRCALT1)\}.c{$(OBJDIR)\}.exe: + echo $@ + rem <<$(OBJDIR)\$(@B).mak +.SILENT: +.SUFFIXES: .asm .cpp .cxx .cc .c .a .S + +<<KEEP + echo !IF EXIST (.\Rules\$(EXEFILE).$(@B))>> $(OBJDIR)\$(@B).mak + echo !INCLUDE .\Rules\$(EXEFILE).$(@B)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(SRCFILESX:.c=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.cc=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.cpp=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.asm=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$(OBJDIR)\$$(XOBJ: = $(OBJDIR)\)>> $(OBJDIR)\$(@B).mak + echo !ELSE>> $(OBJDIR)\$(@B).mak + echo XOBJ=>> $(OBJDIR)\$(@B).mak + echo !ENDIF>> $(OBJDIR)\$(@B).mak + type >> $(OBJDIR)\$(@B).mak << + +SRCDIR=$(SRCALT1) + +!IF "$(EXEFSERIES_UP)" == "1" +target: $(BINDIR)\$(@B)$(EXESFX).EXE +!ELSE +target: $@ +!ENDIF + +$(BINDIR)\$(@B)$(EXESFX).EXE: $@ + echo Updating $(BINDIR)\$(@B)$(EXESFX).EXE ... + $(COPYFILE) $@ $(BINDIR)\$(@B)$(EXESFX).EXE + +$@: $(OBJDIR)\$(@B).obj $$(XOBJ) + $(LINK) /nologo /subsystem:$(SUBSYSTEM) /nodefaultlib /machine:ix86 /map:$*.map /out:$@\ + $(FORCELINKFLAGS) $(LINKLIBPATH) $(OBJDIR)\$(@B).obj $$(XOBJ) $(EXELIBS)\ + $(CRTLIB).lib kernel32.lib gdi32.lib user32.lib oldnames.lib + +{$$(SRCDIR)\}.c{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $$< + +{$$(SRCDIR)\}.cpp{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.cc{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.asm{$(OBJDIR)\}.obj: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.S{$(OBJDIR)\}.obj: + $(CC) -nologo -DNASM_ASSEMBLER /EP $< >$*.as + $(USENASM) -o $@ -f win32 $*.as + -erase $*.as + +<<KEEP + nmake /nologo /f $(OBJDIR)\$(@B).mak + +!ENDIF # "$(PROC_EXEFILESERIES)" == "1" + +!ENDIF + +#-------------------------------------------------------------------------------- +# Alternate source directory 2 build rules, defined only if SRCALT2 not null +#-------------------------------------------------------------------------------- + +!IF "$(SRCALT2)" != "" + +!IF (("$(_NMAKE_VER)" == "$(_NMAKE_VER_4)") || ("$(NOMULTIBUILD)" != "1")) + +{$(SRCALT2)\}.c{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT2)\}.cpp{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT2)\}.cc{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT2)\}.cxx{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT2)\}.asm{$(OBJDIR)\}.obj: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +!ELSE + +{$(SRCALT2)\}.c{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT2)\}.cpp{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT2)\}.cc{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT2)\}.cxx{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT2)\}.asm{$(OBJDIR)\}.obj:: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +!ENDIF + +{$(SRCALT2)\}.S{$(OBJDIR)\}.obj: + $(CC) -nologo -DNASM_ASSEMBLER /EP $< >$*.as + $(USENASM) -o $@ -f win32 $*.as + -erase $*.as + +{$(SRCALT2)\}.rc{$(OBJDIR)\}.res: + echo $< + rc $(RCFLAGS) /fo$@ $< + +!IF "$(PROC_EXEFILESERIES)" == "1" + +# This is a special-case build rule utilized by the 'exefileseries.bin' target for +# constructing an executable from one or more sources files. +# +# LIMITATION: All source files MUST be in the same directory! +# + +{$(SRCALT2)\}.c{$(OBJDIR)\}.exe: + echo $@ + rem <<$(OBJDIR)\$(@B).mak +.SILENT: +.SUFFIXES: .asm .cpp .cxx .cc .c .a .S + +<<KEEP + echo !IF EXIST (.\Rules\$(EXEFILE).$(@B))>> $(OBJDIR)\$(@B).mak + echo !INCLUDE .\Rules\$(EXEFILE).$(@B)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(SRCFILESX:.c=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.cc=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.cpp=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.asm=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$(OBJDIR)\$$(XOBJ: = $(OBJDIR)\)>> $(OBJDIR)\$(@B).mak + echo !ELSE>> $(OBJDIR)\$(@B).mak + echo XOBJ=>> $(OBJDIR)\$(@B).mak + echo !ENDIF>> $(OBJDIR)\$(@B).mak + type >> $(OBJDIR)\$(@B).mak << + +SRCDIR=$(SRCALT2) + +!IF "$(EXEFSERIES_UP)" == "1" +target: $(BINDIR)\$(@B)$(EXESFX).EXE +!ELSE +target: $@ +!ENDIF + +$(BINDIR)\$(@B)$(EXESFX).EXE: $@ + echo Updating $(BINDIR)\$(@B)$(EXESFX).EXE ... + $(COPYFILE) $@ $(BINDIR)\$(@B)$(EXESFX).EXE + +$@: $(OBJDIR)\$(@B).obj $$(XOBJ) + $(LINK) /nologo /subsystem:$(SUBSYSTEM) /nodefaultlib /machine:ix86 /map:$*.map /out:$@\ + $(FORCELINKFLAGS) $(LINKLIBPATH) $(OBJDIR)\$(@B).obj $$(XOBJ) $(EXELIBS)\ + $(CRTLIB).lib kernel32.lib gdi32.lib user32.lib oldnames.lib + +{$$(SRCDIR)\}.c{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $$< + +{$$(SRCDIR)\}.cpp{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.cc{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.cxx{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.asm{$(OBJDIR)\}.obj: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.S{$(OBJDIR)\}.obj: + $(CC) -nologo -DNASM_ASSEMBLER /EP $< >$*.as + $(USENASM) -o $@ -f win32 $*.as + -erase $*.as + +<<KEEP + nmake /nologo /f $(OBJDIR)\$(@B).mak + +!ENDIF # "$(PROC_EXEFILESERIES)" == "1" + +!ENDIF + +#-------------------------------------------------------------------------------- +# Alternate source directory 3 build rules, defined only if SRCALT3 not null +#-------------------------------------------------------------------------------- + +!IF "$(SRCALT3)" != "" + +!IF (("$(_NMAKE_VER)" == "$(_NMAKE_VER_4)") || ("$(NOMULTIBUILD)" != "1")) + +{$(SRCALT3)\}.c{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT3)\}.cpp{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT3)\}.cc{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT3)\}.cxx{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT3)\}.asm{$(OBJDIR)\}.obj: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +!ELSE + +{$(SRCALT3)\}.c{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT3)\}.cpp{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT3)\}.cc{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT3)\}.cxx{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT3)\}.asm{$(OBJDIR)\}.obj:: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +!ENDIF + +{$(SRCALT3)\}.S{$(OBJDIR)\}.obj: + $(CC) -nologo -DNASM_ASSEMBLER /EP $< >$*.as + $(USENASM) -o $@ -f win32 $*.as + -erase $*.as + +{$(SRCALT3)\}.rc{$(OBJDIR)\}.res: + echo $< + rc $(RCFLAGS) /fo$@ $< + +!IF "$(PROC_EXEFILESERIES)" == "1" + +# This is a special-case build rule utilized by the 'exefileseries.bin' target for +# constructing an executable from one or more sources files. +# +# LIMITATION: All source files MUST be in the same directory! +# + +{$(SRCALT3)\}.c{$(OBJDIR)\}.exe: + echo $@ + rem <<$(OBJDIR)\$(@B).mak +.SILENT: +.SUFFIXES: .asm .cpp .cxx .cc .c .a .S + +<<KEEP + echo !IF EXIST (.\Rules\$(EXEFILE).$(@B))>> $(OBJDIR)\$(@B).mak + echo !INCLUDE .\Rules\$(EXEFILE).$(@B)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(SRCFILESX:.c=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.cc=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.cpp=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.asm=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$(OBJDIR)\$$(XOBJ: = $(OBJDIR)\)>> $(OBJDIR)\$(@B).mak + echo !ELSE>> $(OBJDIR)\$(@B).mak + echo XOBJ=>> $(OBJDIR)\$(@B).mak + echo !ENDIF>> $(OBJDIR)\$(@B).mak + type >> $(OBJDIR)\$(@B).mak << + +SRCDIR=$(SRCALT3) + +!IF "$(EXEFSERIES_UP)" == "1" +target: $(BINDIR)\$(@B)$(EXESFX).EXE +!ELSE +target: $@ +!ENDIF + +$(BINDIR)\$(@B)$(EXESFX).EXE: $@ + echo Updating $(BINDIR)\$(@B)$(EXESFX).EXE ... + $(COPYFILE) $@ $(BINDIR)\$(@B)$(EXESFX).EXE + +$@: $(OBJDIR)\$(@B).obj $$(XOBJ) + $(LINK) /nologo /subsystem:$(SUBSYSTEM) /nodefaultlib /machine:ix86 /map:$*.map /out:$@\ + $(FORCELINKFLAGS) $(LINKLIBPATH) $(OBJDIR)\$(@B).obj $$(XOBJ) $(EXELIBS)\ + $(CRTLIB).lib kernel32.lib gdi32.lib user32.lib oldnames.lib + +{$$(SRCDIR)\}.c{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $$< + +{$$(SRCDIR)\}.cpp{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.cc{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.cxx{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.asm{$(OBJDIR)\}.obj: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.S{$(OBJDIR)\}.obj: + $(CC) -nologo -DNASM_ASSEMBLER /EP $< >$*.as + $(USENASM) -o $@ -f win32 $*.as + -erase $*.as + +<<KEEP + nmake /nologo /f $(OBJDIR)\$(@B).mak + +!ENDIF # "$(PROC_EXEFILESERIES)" == "1" + +!ENDIF + +#-------------------------------------------------------------------------------- +# Alternate source directory 4 build rules, defined only if SRCALT4 not null +#-------------------------------------------------------------------------------- + +!IF "$(SRCALT4)" != "" + +!IF (("$(_NMAKE_VER)" == "$(_NMAKE_VER_4)") || ("$(NOMULTIBUILD)" != "1")) + +{$(SRCALT4)\}.c{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT4)\}.cpp{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT4)\}.cc{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT4)\}.cxx{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT4)\}.asm{$(OBJDIR)\}.obj: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +!ELSE + +{$(SRCALT4)\}.c{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT4)\}.cpp{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT4)\}.cc{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT4)\}.cxx{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT4)\}.asm{$(OBJDIR)\}.obj:: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +!ENDIF + +{$(SRCALT4)\}.S{$(OBJDIR)\}.obj: + $(CC) -nologo -DNASM_ASSEMBLER /EP $< >$*.as + $(USENASM) -o $@ -f win32 $*.as + -erase $*.as + +{$(SRCALT4)\}.rc{$(OBJDIR)\}.res: + echo $< + rc $(RCFLAGS) /fo$@ $< + +!IF "$(PROC_EXEFILESERIES)" == "1" + +# This is a special-case build rule utilized by the 'exefileseries.bin' target for +# constructing an executable from one or more sources files. +# +# LIMITATION: All source files MUST be in the same directory! +# + +{$(SRCALT4)\}.c{$(OBJDIR)\}.exe: + echo $@ + rem <<$(OBJDIR)\$(@B).mak +.SILENT: +.SUFFIXES: .asm .cpp .cxx .cc .c .a .S + +<<KEEP + echo !IF EXIST (.\Rules\$(EXEFILE).$(@B))>> $(OBJDIR)\$(@B).mak + echo !INCLUDE .\Rules\$(EXEFILE).$(@B)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(SRCFILESX:.c=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.cc=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.cpp=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.asm=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$(OBJDIR)\$$(XOBJ: = $(OBJDIR)\)>> $(OBJDIR)\$(@B).mak + echo !ELSE>> $(OBJDIR)\$(@B).mak + echo XOBJ=>> $(OBJDIR)\$(@B).mak + echo !ENDIF>> $(OBJDIR)\$(@B).mak + type >> $(OBJDIR)\$(@B).mak << + +SRCDIR=$(SRCALT4) + +!IF "$(EXEFSERIES_UP)" == "1" +target: $(BINDIR)\$(@B)$(EXESFX).EXE +!ELSE +target: $@ +!ENDIF + +$(BINDIR)\$(@B)$(EXESFX).EXE: $@ + echo Updating $(BINDIR)\$(@B)$(EXESFX).EXE ... + $(COPYFILE) $@ $(BINDIR)\$(@B)$(EXESFX).EXE + +$@: $(OBJDIR)\$(@B).obj $$(XOBJ) + $(LINK) /nologo /subsystem:$(SUBSYSTEM) /nodefaultlib /machine:ix86 /map:$*.map /out:$@\ + $(FORCELINKFLAGS) $(LINKLIBPATH) $(OBJDIR)\$(@B).obj $$(XOBJ) $(EXELIBS)\ + $(CRTLIB).lib kernel32.lib gdi32.lib user32.lib oldnames.lib + +{$$(SRCDIR)\}.c{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $$< + +{$$(SRCDIR)\}.cpp{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.cc{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.cxx{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.asm{$(OBJDIR)\}.obj: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.S{$(OBJDIR)\}.obj: + $(CC) -nologo -DNASM_ASSEMBLER /EP $< >$*.as + $(USENASM) -o $@ -f win32 $*.as + -erase $*.as + +<<KEEP + nmake /nologo /f $(OBJDIR)\$(@B).mak + +!ENDIF # "$(PROC_EXEFILESERIES)" == "1" + +!ENDIF + +#-------------------------------------------------------------------------------- +# Alternate source directory 5 build rules, defined only if SRCALT5 not null +#-------------------------------------------------------------------------------- + +!IF "$(SRCALT5)" != "" + +!IF (("$(_NMAKE_VER)" == "$(_NMAKE_VER_4)") || ("$(NOMULTIBUILD)" != "1")) + +{$(SRCALT5)\}.c{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT5)\}.cpp{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT5)\}.cc{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT5)\}.cxx{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT5)\}.asm{$(OBJDIR)\}.obj: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +!ELSE + +{$(SRCALT5)\}.c{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT5)\}.cpp{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT5)\}.cc{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT5)\}.cxx{$(OBJDIR)\}.obj:: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$(SRCALT5)\}.asm{$(OBJDIR)\}.obj:: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +!ENDIF + +{$(SRCALT5)\}.S{$(OBJDIR)\}.obj: + $(CC) -nologo -DNASM_ASSEMBLER /EP $< >$*.as + $(USENASM) -o $@ -f win32 $*.as + -erase $*.as + +{$(SRCALT5)\}.rc{$(OBJDIR)\}.res: + echo $< + rc $(RCFLAGS) /fo$@ $< + +!IF "$(PROC_EXEFILESERIES)" == "1" + +# This is a special-case build rule utilized by the 'exefileseries.bin' target for +# constructing an executable from one or more sources files. +# +# LIMITATION: All source files MUST be in the same directory! +# + +{$(SRCALT5)\}.c{$(OBJDIR)\}.exe: + echo $@ + rem <<$(OBJDIR)\$(@B).mak +.SILENT: +.SUFFIXES: .asm .cpp .cxx .cc .c .a .S + +<<KEEP + echo !IF EXIST (.\Rules\$(EXEFILE).$(@B))>> $(OBJDIR)\$(@B).mak + echo !INCLUDE .\Rules\$(EXEFILE).$(@B)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(SRCFILESX:.c=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.cc=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.cpp=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$$(XOBJ:.asm=.obj)>> $(OBJDIR)\$(@B).mak + echo XOBJ=$(OBJDIR)\$$(XOBJ: = $(OBJDIR)\)>> $(OBJDIR)\$(@B).mak + echo !ELSE>> $(OBJDIR)\$(@B).mak + echo XOBJ=>> $(OBJDIR)\$(@B).mak + echo !ENDIF>> $(OBJDIR)\$(@B).mak + type >> $(OBJDIR)\$(@B).mak << + +SRCDIR=$(SRCALT5) + +!IF "$(EXEFSERIES_UP)" == "1" +target: $(BINDIR)\$(@B)$(EXESFX).EXE +!ELSE +target: $@ +!ENDIF + +$(BINDIR)\$(@B)$(EXESFX).EXE: $@ + echo Updating $(BINDIR)\$(@B)$(EXESFX).EXE ... + $(COPYFILE) $@ $(BINDIR)\$(@B)$(EXESFX).EXE + +$@: $(OBJDIR)\$(@B).obj $$(XOBJ) + $(LINK) /nologo /subsystem:$(SUBSYSTEM) /nodefaultlib /machine:ix86 /map:$*.map /out:$@\ + $(FORCELINKFLAGS) $(LINKLIBPATH) $(OBJDIR)\$(@B).obj $$(XOBJ) $(EXELIBS)\ + $(CRTLIB).lib kernel32.lib gdi32.lib user32.lib oldnames.lib + +{$$(SRCDIR)\}.c{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $$< + +{$$(SRCDIR)\}.cpp{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.cc{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.cxx{$(OBJDIR)\}.obj: + $(CC) $(CLOPTIONS)\ + $(LIBCNTRL) $(OPTFLAGS) $(CPPOPTS) $(PCHOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.asm{$(OBJDIR)\}.obj: + $(ASM) $(MLOPTIONS)\ + $(LIBCNTRL) $(MLOPTFLAGS) $(MLOPTS)\ + /Fo$(OBJDIR)\ $< + +{$$(SRCDIR)\}.S{$(OBJDIR)\}.obj: + $(CC) -nologo -DNASM_ASSEMBLER /EP $< >$*.as + $(USENASM) -o $@ -f win32 $*.as + -erase $*.as + +<<KEEP + nmake /nologo /f $(OBJDIR)\$(@B).mak + +!ENDIF # "$(PROC_EXEFILESERIES)" == "1" + +!ENDIF + + +#-------------------------------------------------------------------------------- +# utility batch programs +#-------------------------------------------------------------------------------- + +$(TEMP)\copyfile.mak: $(NMAKE_MIF_FILE) + rem <<$@ +.SILENT: +.SUFFIXES: .asm .cpp .cxx .cc .c .a .S + +$$(TGTFILE): $$(SRCFILE) + echo $$(TGTFILE) ... + $(COPYFILE) $$(SRCFILE) $$(TGTFILE) > $(NULL) + +copyfile: $$(TGTFILE) + +copyfileck: + echo CopyFile Check: $$(SRCFILE) ... $$(TGTFILE) + +<<KEEP + +$(TEMP)\copyfiles.bat: $(NMAKE_MIF_FILE) + rem <<$@ +@echo off +set tgtdir=%1 +shift +set srcdir=%1 +shift +if [%1]==[] goto nofiles +if [%tgtdir%] == [-] set tgtdir= +if not [%tgtdir%] == [] set tgtdir=%tgtdir%\ +if [%srcdir%] == [-] set srcdir= +if not [%srcdir%] == [] set srcdir=%srcdir%\ +:start +nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=%SRCDIR%%1" "TGTFILE=%TGTDIR%%1" copyfile +shift +if not [%1] == [] goto start +goto endex +:nofiles +echo Error: %0 called with no files! +echo tgtdir=%tgtdir% +echo srcdir=%srcdir% +echo xargs.=%* +:endex +set tgtdir= +set srcdir= +echo. +<<KEEP + +# ----- Directory checking rules ----------------------------------------------- + +# ----- Generic directory check rule ------------------------------------------- + +$(TEMP)\mkpath.exe: nmake.mif + rem <<$(TEMP)\mkpath.c +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <direct.h> +#include <errno.h> + +int mkpath(char *); + +int main(int n, char **a) +{ + int i,rc; + + if (n<2) + return 1; + + for (i=1,rc=0;((i<n)&&(rc==0));i++) + rc = mkpath(a[i]); + + return rc; +} + +int mkpath(char *path) +{ + static char pbuf[2049]; + static char dbuf[2049]; + char *token; + + strcpy(pbuf,path); + + if ( (pbuf[0] == '/') || (pbuf[0] == '\\')) + strcpy(dbuf,"\\"); + else + strcpy(dbuf,""); + + token = strtok( pbuf, "/\\" ); + + while (token) + { + strcat(dbuf,token); + + if (dbuf[strlen(dbuf)-1] != ':') + { + FILE *fp; + + fp = fopen(dbuf,"rb"); + if (fp) fclose(fp); + + if (fp!=NULL) + { + printf("Error: [%s] is a file!\n", dbuf); + return 2; + } + + if (mkdir(dbuf)!=0) + { + switch (errno) + { + case EEXIST: + break; + default: + printf("Error creating [%s] : %s\n",dbuf,strerror(errno)); + return 2; + } + } + } + + token = strtok( NULL, "/\\" ); + if (token) strcat(dbuf,"\\"); + } + + return 0; +} +<<KEEP + $(CC) /nologo /MD /Fo$(TEMP)\ /Fe$@ $(TEMP)\mkpath.c + $(LINK) /nologo /subsystem:console /nodefaultlib /machine:ix86\ + /out:$@ $(TEMP)\mkpath.obj msvcrt.lib kernel32.lib gdi32.lib user32.lib oldnames.lib + +$(DIRECTORYNAME): $(TEMP)\mkpath.exe + if not exist "$@\$(NULL)" $(TEMP)\mkpath "$@" + +directory: $(TEMP)\mkpath.exe "$(DIRECTORYNAME)" + +# ----- Convenience direcotry checking rules ----------------------------------- + +!IF ("$(BINDIR)"!="$(DIRECTORYNAME)") +$(BINDIR): + nmake /nologo /f nmake.mak "DIRECTORYNAME=$@" directory +!ENDIF + +!IF ("$(INCDIR)"!="$(DIRECTORYNAME)")&&("$(INCDIR)"!="$(BINDIR)") +$(INCDIR): + nmake /nologo /f nmake.mak "DIRECTORYNAME=$@" directory +!ENDIF + +!IF ("$(USEDIR)"!="$(DIRECTORYNAME)")&&("$(USEDIR)"!="$(BINDIR)")&&("$(USEDIR)"!="$(INCDIR)") +$(USEDIR): + nmake /nologo /f nmake.mak "DIRECTORYNAME=$@" directory +!ENDIF + +!IF ("$(RELDIR)"!="$(DIRECTORYNAME)")&&("$(RELDIR)"!="$(BINDIR)")&&("$(RELDIR)"!="$(INCDIR)")&&("$(RELDIR)"!="$(USEDIR)") +$(RELDIR): + nmake /nologo /f nmake.mak "DIRECTORYNAME=$@" directory +!ENDIF + +!IF ("$(DEBDIR)"!="$(DIRECTORYNAME)")&&("$(DEBDIR)"!="$(BINDIR)")&&("$(DEBDIR)"!="$(INCDIR)")&&("$(DEBDIR)"!="$(USEDIR)")&&("$(DEBDIR)"!="$(RELDIR)") +$(DEBDIR): + nmake /nologo /f nmake.mak "DIRECTORYNAME=$@" directory +!ENDIF + +!IF ("$(DISTDIR)"!="$(DIRECTORYNAME)")&&("$(DISTDIR)"!="$(BINDIR)")&&("$(DISTDIR)"!="$(INCDIR)")&&("$(DISTDIR)"!="$(USEDIR)")&&("$(DISTDIR)"!="$(RELDIR)")&&("$(DISTDIR)"!="$(DEBDIR)") +$(DISTDIR): + nmake /nologo /f nmake.mak "DIRECTORYNAME=$@" directory +!ENDIF + +!IF ("$(OBJDIR)"!="$(DIRECTORYNAME)")&&("$(OBJDIR)"!="$(BINDIR)")&&("$(OBJDIR)"!="$(INCDIR)")&&("$(OBJDIR)"!="$(USEDIR)")&&("$(OBJDIR)"!="$(RELDIR)")&&("$(OBJDIR)"!="$(DEBDIR)")&&("$(OBJDIR)"!="$(DISTDIR)") +$(OBJDIR): + nmake /nologo /f nmake.mak "DIRECTORYNAME=$@" directory +!ENDIF + +!IF ("$(RELDIR)"!="$(DIRECTORYNAME)")&&("$(RELDIR)"!="$(BINDIR)")&&("$(RELDIR)"!="$(INCDIR)")&&("$(RELDIR)"!="$(USEDIR)")&&("$(RELDIR)"!="$(RELDIR)")&&("$(RELDIR)"!="$(DEBDIR)")&&("$(RELDIR)"!="$(DISTDIR)")&&("$(RELDIR)"!="$(OBJDIR)") +$(RELDIR): + nmake /nologo /f nmake.mak "DIRECTORYNAME=$@" directory +!ENDIF + +!IF ("$(DEBDIR)"!="$(DIRECTORYNAME)")&&("$(DEBDIR)"!="$(BINDIR)")&&("$(DEBDIR)"!="$(INCDIR)")&&("$(DEBDIR)"!="$(USEDIR)")&&("$(DEBDIR)"!="$(RELDIR)")&&("$(DEBDIR)"!="$(DEBDIR)")&&("$(DEBDIR)"!="$(DISTDIR)")&&("$(DEBDIR)"!="$(OBJDIR)") +$(DEBDIR): + nmake /nologo /f nmake.mak "DIRECTORYNAME=$@" directory +!ENDIF + +# $(PCHDDIR): nmake /nologo /f nmake.mak "DIRECTORYNAME=$@" directory + +# $(PCHRDIR): nmake /nologo /f nmake.mak "DIRECTORYNAME=$@" directory + +# ----- Header file update list ------------------------------------------------ + +headers: $(INCDIR) $(TEMP)\copyfile.mak $(TEMP)\copyfiles.bat +!IF "$(INCDIRSFX)" == "-" + $(TEMP)\copyfiles.bat $(INCDIR) $(INCDIR_L) $(H_FILES) +!ELSE + $(TEMP)\copyfiles.bat $(INCDIR)\$(INCDIRSFX) $(INCDIR_L)\$(INCDIRSFX) $(H_FILES) +!ENDIF + +headers.ck: $(INCDIR) $(TEMP)\copyfile.mak $(TEMP)\copyfiles.bat +!IF "$(INCDIRSFX)" == "-" + echo $(TEMP)\copyfiles.bat $(INCDIR) $(INCDIR_L) $(H_FILES)> $(TEMP)\headers.bat +!ELSE + echo $(TEMP)\copyfiles.bat $(INCDIR)\$(INCDIRSFX) $(INCDIR_L)\$(INCDIRSFX) $(H_FILES)> $(TEMP)\headers.bat +!ENDIF + type $(TEMP)\headers.bat + +# ----- Shared Object File dependancy directives ------------------------------- + +!IF "$(OBJDIR_R)" != "$(OBJDIR)" +obj: $(CPPDEPS) $(OBJDIR_R) $(OBJDIR) $(PCHFILE) $(OBJ) +!ELSE +obj: $(CPPDEPS) $(OBJDIR) $(PCHFILE) $(OBJ) +!ENDIF + +!IF ("$(COPYSOURCE)"!="") && ("$(COPYTARGET)"!="") +copyfile: $(TEMP)\copyfile.mak + nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=$(COPYSOURCE)" "TGTFILE=$(COPYTARGET)" copyfile +!ENDIF + +# ----- Static Library build directives ---------------------------------------- + +$(OBJDIR)\$(LIBBASE)$(LIBSFX).lib: obj + echo $@ ... + lib /nologo /nodefaultlib /verbose /out:$@ /subsystem:$(SUBSYSTEM) @<< +$(OBJ: = +) +<< + +libbin: $(OBJDIR)\$(LIBBASE)$(LIBSFX).lib + +lib: + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) LIBBASE=$(LIBBASE) DLLBASE=$(DLLBASE) filelistxform + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) LIBBASE=$(LIBBASE) DLLBASE=$(DLLBASE) libbin + nmake /nologo /f nmake.mak filelistxform.kill + +$(USEDIR)\$(LIBPFX)$(LIBBASE)$(LIBSFX).lib: $(OBJDIR)\$(LIBBASE)$(LIBSFX).lib + echo $@ ... + $(COPYFILE) $? $@ > $(NULL) + +libup: $(USEDIR) lib $(TEMP)\copyfile.mak + nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=$(OBJDIR)\$(LIBBASE)$(LIBSFX).lib" "TGTFILE=$(USEDIR)\$(LIBPFX)$(LIBBASE)$(LIBSFX).lib" copyfile + +libupck: $(USEDIR) lib $(TEMP)\copyfile.mak + nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=$(OBJDIR)\$(LIBBASE)$(LIBSFX).lib" "TGTFILE=$(USEDIR)\$(LIBPFX)$(LIBBASE)$(LIBSFX).lib" copyfileck + +!IF "$(OBJDIR_R)" != "$(OBJDIR)" +libupr: $(USEDIR) lib $(TEMP)\copyfile.mak + nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=$(OBJDIR)\$(LIBBASE)$(LIBSFX).lib" "TGTFILE=$(OBJDIR_R)\$(LIBBASE)$(LIBSFX).lib" copyfile +!ENDIF + +# ----- Dynamic Library build directives --------------------------------------- + +# Note: Shares 'obj' subtarget with normal 'lib' build and 'exe' build + +!IF "$(RCFILE)" != "" +$(OBJDIR)\$(LIBBASE)$(DEBTAG).res: $(RCFILE) + echo $(RCFILE) ... + rc $(RCFLAGS) /fo$@ $(RCFILE) + +resources: $(OBJDIR)\$(LIBBASE)$(DEBTAG).res +!ENDIF + +$(OBJDIR)\$(DLLBASE)$(LIBSFX).dll: obj + echo $@ ... + $(LINK) > $*.err /nologo @<<$*.rsp +/out:$@ +/opt:ref +/machine:ix86 +/debug +/pdb:$*.pdb +/map:$*.map +/dll +!IF "$(FORCELINKFLAGS)" != "" +$(FORCELINKFLAGS: = +) +!ENDIF +!IF "$(LINKLIBPATH)" != "" +$(LINKLIBPATH: = +) +!ENDIF +!IF "$(DLLBASEOPT)" != "" +$(DLLBASEOPT) +!ENDIF +!IF "$(DEFFILEOPT)" != "" +$(DEFFILEOPT) +!ENDIF +/nodefaultlib +/swaprun:cd +/swaprun:net +$(OBJ: = +) +!IF "$(DLLLIBS)" != "" +$(DLLLIBS: = +) +!ENDIF +$(CRTLIB).lib +!IF "$(USE_STD_CPP_HDRS)" == "1" +$(CXXRTLIB).lib +!ENDIF +kernel32.lib +gdi32.lib +user32.lib +oldnames.lib +<<KEEP + +dllbin: $(OBJDIR)\$(DLLBASE)$(LIBSFX).dll + +dll: $(DEFFILE) + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) LIBBASE=$(LIBBASE) DLLBASE=$(DLLBASE) filelistxform + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) LIBBASE=$(LIBBASE) DLLBASE=$(DLLBASE) BUILD_DLL=1 dllbin + nmake /nologo /f nmake.mak filelistxform.kill + +dllup: $(BINDIR) $(USEDIR) dll $(TEMP)\copyfile.mak + nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=$(OBJDIR)\$(DLLBASE)$(LIBSFX).dll" "TGTFILE=$(BINDIR)\$(DLLBASE)$(LIBSFX).dll" copyfile + nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=$(OBJDIR)\$(DLLBASE)$(LIBSFX).pdb" "TGTFILE=$(BINDIR)\$(DLLBASE)$(LIBSFX).pdb" copyfile + nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=$(OBJDIR)\$(DLLBASE)$(LIBSFX).lib" "TGTFILE=$(USEDIR)\$(DLLBASE)$(LIBSFX).lib" copyfile + +!IF "$(OBJDIR_R)" != "$(OBJDIR)" +dllupr: dll $(TEMP)\copyfile.mak + nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=$(OBJDIR)\$(DLLBASE)$(LIBSFX).dll" "TGTFILE=$(OBJDIR_R)\$(DLLBASE)$(LIBSFX).dll" copyfile + nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=$(OBJDIR)\$(DLLBASE)$(LIBSFX).pdb" "TGTFILE=$(OBJDIR_R)\$(DLLBASE)$(LIBSFX).pdb" copyfile + nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=$(OBJDIR)\$(DLLBASE)$(LIBSFX).lib" "TGTFILE=$(OBJDIR_R)\$(DLLBASE)$(LIBSFX).lib" copyfile +!ENDIF + +# ----- Execuable build directives (full multi-module exe) --------------------- + +# Note: Shares 'obj' subtarget with normal 'lib' build and 'dll' build + +!IF "$(PROC_EXEFILESERIES)" == "0" + +$(OBJDIR)\$(EXEFILE)$(EXESFX).exe: obj + echo $@ ... + $(LINK) > $*.err /nologo @<<$(OBJDIR)\$(EXEFILE)$(EXESFX).lnk +/debug /map:$*.map +/subsystem:$(SUBSYSTEM) $(FORCELINKFLAGS) +/nodefaultlib /swaprun:cd /swaprun:net +$(LINKLIBPATH) +/machine:ix86 +/out:$@ $(DEFFILEOPT) +$(OBJ: = +) +$(EXELIBS: = +) +$(CRTLIB).lib +!IF "$(USE_STD_CPP_HDRS)" == "1" +$(CXXRTLIB).lib +!ENDIF +kernel32.lib +gdi32.lib +user32.lib +oldnames.lib +<<KEEP + +exebin: $(OBJDIR)\$(EXEFILE)$(EXESFX).EXE + +exe: $(DEFFILE) + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) LIBBASE=$(LIBBASE) DLLBASE=$(DLLBASE) filelistxform + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) LIBBASE=$(LIBBASE) DLLBASE=$(DLLBASE) exebin + nmake /nologo /f nmake.mak filelistxform.kill + +exeup: $(BINDIR) exe $(TEMP)\copyfile.mak + nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=$(OBJDIR)\$(EXEFILE)$(EXESFX).EXE" "TGTFILE=$(BINDIR)\$(EXEFILE)$(EXESFX).EXE" copyfile + +exeupck: $(BINDIR) exe $(TEMP)\copyfile.mak + nmake /nologo /f $(TEMP)\copyfile.mak "SRCFILE=$(OBJDIR)\$(EXEFILE)$(EXESFX).EXE" "TGTFILE=$(BINDIR)\$(EXEFILE)$(EXESFX).EXE" copyfileck + +!ENDIF # "$(PROC_EXEFILESERIES)" == "0" + +# ----- meta-lib build - all libs & test executable ---------------------------- + +metalib: + echo Building '$(LIBBASE)' series ... +!IF ( ("$(NODEBUG)" == "0") && ("$(NOSTATIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=d-s LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + lib +!ENDIF +!IF ( ("$(NODEBUG)" == "0") && ("$(NODYNAMIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=d-d LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + lib +!ENDIF +!IF ( ("$(NORELEASE)" == "0") && ("$(NOSTATIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-s LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + lib +!ENDIF +!IF ( ("$(NORELEASE)" == "0") && ("$(NODYNAMIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-d LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + lib +!ENDIF +!IF ( ("$(NORELEASE)" == "0") && ("$(NODYNAMIC)" == "0") && ("$(EXE)" != "") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-d LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + exe +!ENDIF + echo. + +# ----- use/bin directories update --------------------------------------------- + +metalibup: + echo Updating '$(LIBBASE)' series ... +!IF ( ("$(NORELEASE)" == "0") && ("$(NOSTATIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-s LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libup +!ENDIF +!IF ( ("$(NORELEASE)" == "0") && ("$(NODYNAMIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-d LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libup +!ENDIF +!IF ( ("$(NODEBUG)" == "0") && ("$(NOSTATIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=d-s LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libup +!ENDIF +!IF ( ("$(NODEBUG)" == "0") && ("$(NODYNAMIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=d-d LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libup +!ENDIF +!IF ( ("$(NORELEASE)" == "0") && ("$(NODYNAMIC)" == "0") && ("$(EXE)" != "") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-d LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + exeup +!ENDIF + echo. + +!IF "$(OBJDIR_R)" != "$(OBJDIR)" +metalibupr: + echo Updating '$(LIBBASE)' series (local) ... +!IF ( ("$(NORELEASE)" == "0") && ("$(NOSTATIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-s LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libupr +!ENDIF +!IF ( ("$(NORELEASE)" == "0") && ("$(NODYNAMIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-d LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libupr +!ENDIF +!IF ( ("$(NODEBUG)" == "0") && ("$(NOSTATIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=d-s LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libupr +!ENDIF +!IF ( ("$(NODEBUG)" == "0") && ("$(NODYNAMIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=d-d LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libupr +!ENDIF + echo. +!ENDIF + +metalibupck: + echo Updating '$(LIBBASE)' series ... +!IF ( ("$(NORELEASE)" == "0") && ("$(NOSTATIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-s LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libupck +!ENDIF +!IF ( ("$(NORELEASE)" == "0") && ("$(NODYNAMIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-d LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libupck +!ENDIF +!IF ( ("$(NODEBUG)" == "0") && ("$(NOSTATIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=d-s LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libupck +!ENDIF +!IF ( ("$(NODEBUG)" == "0") && ("$(NODYNAMIC)" == "0") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=d-d LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libupck +!ENDIF +!IF ( ("$(NORELEASE)" == "0") && ("$(NODYNAMIC)" == "0") && ("$(EXE)" != "") ) + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-d LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + libupck +!ENDIF + echo. + +# ----- DLL meta rule + +metadll: + echo Building '$(LIBBASE)' DLL series ... +!IF ("$(NORELEASE)" == "0") + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-$(CRTTYPE) LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + dll +!ENDIF +!IF ("$(NODEBUG)" == "0") + nmake /nologo /f $(MAKEFILE) LIBTYPE=d-$(CRTTYPE) LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + dll +!ENDIF + echo. + +# ----- DLL meta=update rule + +metadllup: + echo Updating '$(LIBBASE)' series ... +!IF ("$(NORELEASE)" == "0") + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-$(CRTTYPE) LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + dllup +!ENDIF +!IF ("$(NODEBUG)" == "0") + nmake /nologo /f $(MAKEFILE) LIBTYPE=d-$(CRTTYPE) LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + dllup +!ENDIF + echo. + +metadllupr: + echo Updating '$(LIBBASE)' series (local) ... +!IF ("$(NORELEASE)" == "0") + nmake /nologo /f $(MAKEFILE) LIBTYPE=r-$(CRTTYPE) LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + dllupr +!ENDIF +!IF ("$(NODEBUG)" == "0") + nmake /nologo /f $(MAKEFILE) LIBTYPE=d-$(CRTTYPE) LIBBASE=$(LIBBASE)\ + EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) DLLBASE=$(DLLBASE)\ + NOSTATIC=$(NOSTATIC) NODYNAMIC=$(NODYNAMIC)\ + NODEBUG=$(NODEBUG) NORELEASE=$(NORELEASE)\ + dllupr +!ENDIF + echo. + +# ----- Single-Step source->exe build list ------------------------------------ + +exefileseries.msg: + type << + +----- Building executable file/series -------------------------------- +$(EXEFILESLIST) +---------------------------------------------------------------------- + +<< + +!IF "$(OBJDIR_R)" != "$(OBJDIR)" +exefileseries.bin: exefileseries.msg $(CPPDEPS) $(OBJDIR_R) $(OBJDIR) $(EXESUPLIBSLIST) $(EXEFILESLIST) +!ELSE +exefileseries.bin: exefileseries.msg $(CPPDEPS) $(OBJDIR) $(EXESUPLIBSLIST) $(EXEFILESLIST) +!ENDIF + +suplibdeps: $(SUPLIBDEPS) + +exefileseries: # suplibdeps + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) LIBBASE=$(LIBBASE) DLLBASE=$(DLLBASE) filelistxform + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) PROC_EXEFILESERIES=1 exefileseries.bin + +exefilestatus: + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) LIBBASE=$(LIBBASE) DLLBASE=$(DLLBASE) filelistxform + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) status + +EXEFSERIESLIST = $(SRCFILES:.asm=.exe) +EXEFSERIESLIST = $(EXEFSERIESLIST:.cpp=.exe) +EXEFSERIESLIST = $(EXEFSERIESLIST:.cxx=.exe) +EXEFSERIESLIST = $(EXEFSERIESLIST:.cc=.exe) +EXEFSERIESLIST = $(EXEFSERIESLIST:.c=.exe) +EXEFSERIESLIST = $(EXEFSERIESLIST:.a=.exe) + +!IF "$(OBJDIR_R)" != "$(OBJDIR)" +exefileseries.copy: exefileseries.msg $(OBJDIR_R) $(OBJDIR) $(EXESUPLIBSLIST) $(EXEFILESLIST) +!ELSE +exefileseries.copy: exefileseries.msg $(OBJDIR) $(EXESUPLIBSLIST) $(EXEFILESLIST) +!ENDIF + echo Updating $(BINDIR) ... + echo. + $(TEMP)\copyfiles.bat $(BINDIR) $(OBJDIR) $(EXEFSERIESLIST) + +exefileseriesup: $(TEMP)\copyfile.mak $(TEMP)\copyfiles.bat + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) LIBBASE=$(LIBBASE) DLLBASE=$(DLLBASE) filelistxform + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) PROC_EXEFILESERIES=1 exefileseries.copy + +# ----- Clear exes from build and optional target directories ----------------- + +EXEFILESLISTCLR = $(SRCFILES:.asm=.exe) +EXEFILESLISTCLR = $(EXEFILESLISTCLR:.cpp=.exe) +EXEFILESLISTCLR = $(EXEFILESLISTCLR:.cxx=.exe) +EXEFILESLISTCLR = $(EXEFILESLISTCLR:.cc=.exe) +EXEFILESLISTCLR = $(EXEFILESLISTCLR:.c=.exe) +EXEFILESLISTCLR = $(EXEFILESLISTCLR:.a=.exe) + +!IF "$(DEBUG)" == "1" +EXEFILESLISTCLR = $(EXEFILESLISTCLR:.exe=d.exe) +!ENDIF + +clrxfileseries.msg: + echo ... cleaning $(BINDIR) ... + +$(EXEFILESLISTCLR:.exe=.execlr): + if exist "$(BINDIR)\$(@B).EXE" echo ... removing $(BINDIR)\$(@B).EXE + if exist "$(BINDIR)\$(@B).EXE" del "$(BINDIR)\$(@B).EXE" + +exefileseries.clr: clrxfileseries.msg $(EXEFILESLISTCLR:.exe=.execlr) + +clrxfileseries: + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) filelistxform + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) PROC_EXEFILESERIES=1 exefileseries.clr + nmake /nologo /f nmake.mak filelistxform.kill + +# ----- Distribution setup ---------------------------------------------------- + +!IF "$(NMAKE_MIF_FILE)" != "nmake.mif" +nmake.mif: $(NMAKE_MIF_FILE) + echo $@ ... + $(COPYFILE) $? $@ > $(NULL) +!ENDIF + +_distfiles: $(TEMP)\copyfile.mak $(TEMP)\copyfiles.bat + echo $@ not yet ready for prime time. + +_distfiles.old: +!IF "$(H_FILES)" != "" + $(TEMP)\copyfiles $(DISTDIR) . $(INCDIRSFX) $(H_FILES) +!ENDIF +!IF "$(MANIFEST)" != "" + $(TEMP)\copyfiles $(DISTDIR) . - $(MANIFEST) +!ENDIF + +distcore: $(DISTDIR) $(NMAKE_MIF_FILE) _distfiles + +# ----- Cleanup --------------------------------------------------------------- + +cleanlib: + -if exist "$(OBJDIR)\$(NULL)" $(DELTREE) $(OBJDIR) + +cleanexe: + echo. > $(EXEFILE).EXE + del $(EXEFILE).exe > $(NULL) + +cleanroot: $(RELDIR) $(DEBDIR) + -$(DELTREE) $(RELDIR) $(DEBDIR) > $(NULL) +!IF "$(CLEANSUPS)" != "" + -$(DELTREE) $(CLEANSUPS) > $(NULL) +!ENDIF + echo. > foo.ncb + del *.ncb > $(NULL) + echo. > $(TEMP)\copyfiles.bat + del $(TEMP)\copyfiles.bat > $(NULL) + echo. > $(TEMP)\copyfile.mak + del $(TEMP)\copyfile.mak > $(NULL) + +# ----- special common targets ------------------------------------------------ + +status.core: + $(PAGER) < <<$(TEMP)\nmake.status +Status Information - Directories +---------------------------------------------------------------------- +BINDIR........... = $(BINDIR) +DEBDIR........... = $(DEBDIR) +DEVDIR........... = $(DEVDIR) +DISTDIR.......... = $(DISTDIR) +INCDIR........... = $(INCDIR) +INCDIR_L......... = $(INCDIR_L) +INTDIRSFX........ = $(INTDIRSFX) +OBJDIR........... = $(OBJDIR) +OBJDIR_R......... = $(OBJDIR_R) +PCHDIR........... = $(PCHDIR) +PCHRDIR.......... = $(PCHRDIR) +PCHDDIR.......... = $(PCHDDIR) +RELDIR........... = $(RELDIR) +SRCPATH.......... = $(SRCPATH) +SRCALT1.......... = $(SRCALT1) +SRCALT2.......... = $(SRCALT2) +SRCALT3.......... = $(SRCALT3) +SRCALT4.......... = $(SRCALT4) +ALTLIBPATH....... = $(ALTLIBPATH) +TEMP............. = $(TEMP) +USEDIR........... = $(USEDIR) +---------------------------------------------------------------------- +Status Information - Build Control +---------------------------------------------------------------------- +CRTLIB........... = $(CRTLIB) +CRTTYPE.......... = $(CRTTYPE) +DEBUG............ = $(DEBUG) +DLL.............. = $(OBJDIR)\$(DLLBASE).dll +DLLBASE.......... = $(DLLBASE) +DLLIMPLIB........ = $(OBJDIR)\$(DLLBASE).lib +DOGUI............ = $(DOGUI) +EXELIBS.......... = $(EXELIBS) +EXESFX........... = $(EXESFX) +EXETYPE.......... = $(EXETYPE) +FORCELINK........ = $(FORCELINK) +LIB.............. = $(OBJDIR)\$(LIBPFX)$(LIBBASE)$(LIBSFX).lib +LIBBASE.......... = $(LIBBASE) +LIBTYPE.......... = $(LIBTYPE) +LINKTARGET....... = $(LINKTARGET) +MAKEFILE......... = $(MAKEFILE) +NODEBUG.......... = $(NODEBUG) +NODYNAMIC........ = $(NODYNAMIC) +NOPCH............ = $(NOPCH) +NORELEASE........ = $(NORELEASE) +NOSTATIC......... = $(NOSTATIC) +---------------------------------------------------------------------- +Status Information - Compiler Options +---------------------------------------------------------------------- +!IF "$(LIBCNTRL)" == "" +CLOPTIONS........ = (starts on next line) +$(CLOPTIONS) -----##---- +MLOPTIONS........ = (starts on next line) +$(MLOPTIONS) -----##---- +!ELSE +CLOPTIONS........ = (incl. LIBCNTRL, starts on next line) +$(CLOPTIONS) $(LIBCNTRL) -----##---- +MLOPTIONS........ = (incl. LIBCNTRL, starts on next line) +$(MLOPTIONS) $(LIBCNTRL) -----##---- +!ENDIF +CPP_PCH.......... = $(CPP_PCH) +CPPOPTS.......... = $(CPPOPTS) +CPPDEPS.......... = $(SPPDEPS) +DEFFILE.......... = $(DEFFILE) +EEXEOBJ.......... = $(EEXEOBJ) +H_FILES.......... = $(H_FILES) +LINKTARGET....... = $(LINKTARGET) +MAKEFILE......... = $(MAKEFILE) +MLOPTS........... = $(MLOPTS) +MLOPTFLAGS....... = $(MLOPTFLAGS) +OPTFLAGS......... = $(OPTFLAGS) +PCHINCROOT....... = $(PCHINCROOT) +PCHINCFILE....... = $(PCHINCFILE) +PCHSOURCEFILE.... = $(PCHSOURCEFILE) +PCHFILE.......... = $(PCHFILE) +PCHOBJFILE....... = $(PCHOBJFILE) +PCHOPTS.......... = $(PCHOPTS) +PCHOPTSC......... = $(PCHOTPSC) +EXEFILE.......... = $(EXEFILE) +EXEFILESLIST..... = (starts on next line) +$(EXEFILESLIST) +EXESUPLIBSLIST... = (starts on next line) +$(EXESUPLIBSLIST) +SRCFILES......... = (starts on next line) +$(SRCFILES) +SUPLIBSSRC....... = (starts on next line) +$(SUPLIBSSRC) +SUPLIBSLIST...... = (starts on next line) +$(SUPLIBSLIST) +OBJ.............. = (starts on next line) +$(OBJ) +OBJ2............. = (starts on next line) +$(OBJ2) +---------------------------------------------------------------------- +EXEFILESLIST = $(OBJDIR)\$$(EXEFILESLIST: = $(OBJDIR)\) +OBJ = $(OBJDIR)\$$(OBJ: = $(OBJDIR)\) +!IF "$(EXESUPLIBSLIST)" != "" +EXESUPLIBSLIST = $(OBJDIR)\$$(EXESUPLIBSLIST: = $(OBJDIR)\) +!ENDIF +---------------------------------------------------------------------- +<< + +status: + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) LIBBASE=$(LIBBASE) DLLBASE=$(DLLBASE) filelistxform + nmake /nologo /f nmake.mak EXEFILE=$(EXEFILE) EXETYPE=$(EXETYPE) EXEBASE=$(EXEBASE) LIBBASE=$(LIBBASE) DLLBASE=$(DLLBASE) status.core + nmake /nologo /f nmake.mak filelistxform.kill + +force: clean all diff --git a/xc/extras/Mesa/WIN32/RES/Mesa32.rc b/xc/extras/Mesa/WIN32/RES/Mesa32.rc new file mode 100644 index 000000000..8e0a6fa29 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RES/Mesa32.rc @@ -0,0 +1,32 @@ +#include <windows.h> + +#define IDR_VERSION1 1 +IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE + FILEVERSION 3,1,0,0 + PRODUCTVERSION 3,1,0,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS 0 + FILEOS VOS_DOS_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0 // not used +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + //language ID = U.S. English, char set = Windows, Multilingual + + BEGIN + VALUE "FileDescription", "mesa32 3D Graphics Library\0" + VALUE "FileVersion", "3.1\0" + VALUE "InternalName", "MESAGL32\0" + VALUE "OriginalFilename", "OPENGL32.DLL\0" + VALUE "ProductName", "OPENGL32.DLL\0" + VALUE "Comments", "Thanks to Brian Paul for making this possible\r\n\0" + VALUE "LegalCopyright", "Copyright (C) 1995-1997 Brian Paul\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1252 + END +END diff --git a/xc/extras/Mesa/WIN32/RES/fxMesa32.def b/xc/extras/Mesa/WIN32/RES/fxMesa32.def new file mode 100644 index 000000000..f64b5d285 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RES/fxMesa32.def @@ -0,0 +1,473 @@ +DESCRIPTION '"""Mesa 3D graphics library for Win32 Glide 2x"""' + +VERSION 3.1 + +HEAPSIZE 1048576,4096 + +EXPORTS + glAccum + glAlphaFunc + glAreTexturesResident + glArrayElement + glBegin + glBindTexture + glBitmap + glBlendFunc + glCallList + glCallLists + glClear + glClearAccum + glClearIndex + glClearColor + glClearDepth + glClearStencil + glClipPlane + glColor3b + glColor3d + glColor3f + glColor3i + glColor3s + glColor3ub + glColor3ui + glColor3us + glColor4b + glColor4d + glColor4f + glColor4i + glColor4s + glColor4ub + glColor4ui + glColor4us + glColor3bv + glColor3dv + glColor3fv + glColor3iv + glColor3sv + glColor3ubv + glColor3uiv + glColor3usv + glColor4bv + glColor4dv + glColor4fv + glColor4iv + glColor4sv + glColor4ubv + glColor4uiv + glColor4usv + glColorMask + glColorMaterial + glColorPointer + glColorTableEXT + glColorSubTableEXT + glCopyPixels + glCopyTexImage1D + glCopyTexImage2D + glCopyTexSubImage1D + glCopyTexSubImage2D + glCullFace + glDepthFunc + glDepthMask + glDepthRange + glDeleteLists + glDeleteTextures + glDisable + glDisableClientState + glDrawArrays + glDrawBuffer + glDrawElements + glDrawPixels + glEnable + glEnableClientState + glEnd + glEndList + glEvalCoord1d + glEvalCoord1f + glEvalCoord1dv + glEvalCoord1fv + glEvalCoord2d + glEvalCoord2f + glEvalCoord2dv + glEvalCoord2fv + glEvalPoint1 + glEvalPoint2 + glEvalMesh1 + glEdgeFlag + glEdgeFlagv + glEdgeFlagPointer + glEvalMesh2 + glFeedbackBuffer + glFinish + glFlush + glFogf + glFogi + glFogfv + glFogiv + glFrontFace + glFrustum + glGenLists + glGenTextures + glGetBooleanv + glGetClipPlane + glGetColorTableEXT + glGetColorTableParameterivEXT + glGetColorTableParameterfvEXT + glGetDoublev + glGetError + glGetFloatv + glGetIntegerv + glGetLightfv + glGetLightiv + glGetMapdv + glGetMapfv + glGetMapiv + glGetMaterialfv + glGetMaterialiv + glGetPixelMapfv + glGetPixelMapuiv + glGetPixelMapusv + glGetPointerv + glGetPolygonStipple + glGetString + glGetTexEnvfv + glGetTexEnviv + glGetTexGeniv + glGetTexGendv + glGetTexGenfv + glGetTexImage + glGetTexLevelParameterfv + glGetTexLevelParameteriv + glGetTexParameterfv + glGetTexParameteriv + glHint + glIndexd + glIndexf + glIndexi + glIndexs + glIndexub + glIndexdv + glIndexfv + glIndexiv + glIndexsv + glIndexubv + glIndexMask + glIndexPointer + glInterleavedArrays + glInitNames + glIsList + glIsTexture + glLightf + glLighti + glLightfv + glLightiv + glLightModelf + glLightModeli + glLightModelfv + glLightModeliv + glLineWidth + glLineStipple + glListBase + glLoadIdentity + glLoadMatrixd + glLoadMatrixf + glLoadName + glLogicOp + glMap1d + glMap1f + glMap2d + glMap2f + glMapGrid1d + glMapGrid1f + glMapGrid2d + glMapGrid2f + glMaterialf + glMateriali + glMaterialfv + glMaterialiv + glMatrixMode + glMultMatrixd + glMultMatrixf + glNewList + glNormal3b + glNormal3d + glNormal3f + glNormal3i + glNormal3s + glNormal3bv + glNormal3dv + glNormal3fv + glNormal3iv + glNormal3sv + glNormalPointer + glOrtho + glPassThrough + glPixelMapfv + glPixelMapuiv + glPixelMapusv + glPixelStoref + glPixelStorei + glPixelTransferf + glPixelTransferi + glPixelZoom + glPointSize + glPolygonMode + glPolygonOffset + glPolygonOffsetEXT + glPolygonStipple + glPopAttrib + glPopClientAttrib + glPopMatrix + glPopName + glPrioritizeTextures + glPushMatrix + glRasterPos2d + glRasterPos2f + glRasterPos2i + glRasterPos2s + glRasterPos3d + glRasterPos3f + glRasterPos3i + glRasterPos3s + glRasterPos4d + glRasterPos4f + glRasterPos4i + glRasterPos4s + glRasterPos2dv + glRasterPos2fv + glRasterPos2iv + glRasterPos2sv + glRasterPos3dv + glRasterPos3fv + glRasterPos3iv + glRasterPos3sv + glRasterPos4dv + glRasterPos4fv + glRasterPos4iv + glRasterPos4sv + glReadBuffer + glReadPixels + glRectd + glRectf + glRecti + glRects + glRectdv + glRectfv + glRectiv + glRectsv + glScissor + glIsEnabled + glPushAttrib + glPushClientAttrib + glPushName + glRenderMode + glRotated + glRotatef + glSelectBuffer + glScaled + glScalef + glShadeModel + glStencilFunc + glStencilMask + glStencilOp + glTexCoord1d + glTexCoord1f + glTexCoord1i + glTexCoord1s + glTexCoord2d + glTexCoord2f + glTexCoord2i + glTexCoord2s + glTexCoord3d + glTexCoord3f + glTexCoord3i + glTexCoord3s + glTexCoord4d + glTexCoord4f + glTexCoord4i + glTexCoord4s + glTexCoord1dv + glTexCoord1fv + glTexCoord1iv + glTexCoord1sv + glTexCoord2dv + glTexCoord2fv + glTexCoord2iv + glTexCoord2sv + glTexCoord3dv + glTexCoord3fv + glTexCoord3iv + glTexCoord3sv + glTexCoord4dv + glTexCoord4fv + glTexCoord4iv + glTexCoord4sv + glTexCoordPointer + glTexGend + glTexGenf + glTexGeni + glTexGendv + glTexGeniv + glTexGenfv + glTexEnvf + glTexEnvi + glTexEnvfv + glTexEnviv + glTexImage1D + glTexImage2D + glTexParameterf + glTexParameteri + glTexParameterfv + glTexParameteriv + glTexSubImage1D + glTexSubImage2D + glTranslated + glTranslatef + glVertex2d + glVertex2f + glVertex2i + glVertex2s + glVertex3d + glVertex3f + glVertex3i + glVertex3s + glVertex4d + glVertex4f + glVertex4i + glVertex4s + glVertex2dv + glVertex2fv + glVertex2iv + glVertex2sv + glVertex3dv + glVertex3fv + glVertex3iv + glVertex3sv + glVertex4dv + glVertex4fv + glVertex4iv + glVertex4sv + glVertexPointer + glViewport + glBlendEquationEXT + glBlendColorEXT + glVertexPointerEXT + glNormalPointerEXT + glColorPointerEXT + glIndexPointerEXT + glTexCoordPointerEXT + glEdgeFlagPointerEXT + glGetPointervEXT + glArrayElementEXT + glDrawArraysEXT + glBindTextureEXT + glDeleteTexturesEXT + glGenTexturesEXT + glPrioritizeTexturesEXT + glCopyTexSubImage3DEXT + glTexImage3DEXT + glTexSubImage3DEXT + glWindowPos4fMESA + glWindowPos2iMESA + glWindowPos2sMESA + glWindowPos2fMESA + glWindowPos2dMESA + glWindowPos2ivMESA + glWindowPos2svMESA + glWindowPos2fvMESA + glWindowPos2dvMESA + glWindowPos3iMESA + glWindowPos3sMESA + glWindowPos3fMESA + glWindowPos3dMESA + glWindowPos3ivMESA + glWindowPos3svMESA + glWindowPos3fvMESA + glWindowPos3dvMESA + glWindowPos4iMESA + glWindowPos4sMESA + glWindowPos4dMESA + glWindowPos4ivMESA + glWindowPos4svMESA + glWindowPos4fvMESA + glWindowPos4dvMESA + glResizeBuffersMESA + wglCopyContext + wglCreateContext + wglCreateLayerContext + wglDeleteContext +;wglDescribeLayerPlane + wglGetCurrentContext + wglGetCurrentDC +;wglGetLayerPaletteEntries + wglGetProcAddress + wglMakeCurrent +;wglRealizeLayerPalette +;wglSetLayerPaletteEntries + wglShareLists + wglSwapLayerBuffers + wglUseFontBitmapsA + wglUseFontBitmapsW + wglUseFontOutlinesA + wglUseFontOutlinesW + wglChoosePixelFormat + ChoosePixelFormat + wglDescribePixelFormat + DescribePixelFormat + wglGetPixelFormat + GetPixelFormat + wglSetPixelFormat + SetPixelFormat + wglSwapBuffers + SwapBuffers + gl3DfxSetPaletteEXT + glActiveTextureARB + glClientActiveTextureARB + glMultiTexCoord1dARB + glMultiTexCoord1dvARB + glMultiTexCoord1fARB + glMultiTexCoord1fvARB + glMultiTexCoord1iARB + glMultiTexCoord1ivARB + glMultiTexCoord1sARB + glMultiTexCoord1svARB + glMultiTexCoord2dARB + glMultiTexCoord2dvARB + glMultiTexCoord2fARB + glMultiTexCoord2fvARB + glMultiTexCoord2iARB + glMultiTexCoord2ivARB + glMultiTexCoord2sARB + glMultiTexCoord2svARB + glMultiTexCoord3dARB + glMultiTexCoord3dvARB + glMultiTexCoord3fARB + glMultiTexCoord3fvARB + glMultiTexCoord3iARB + glMultiTexCoord3ivARB + glMultiTexCoord3sARB + glMultiTexCoord3svARB + glMultiTexCoord4dARB + glMultiTexCoord4dvARB + glMultiTexCoord4fARB + glMultiTexCoord4fvARB + glMultiTexCoord4iARB + glMultiTexCoord4ivARB + glMultiTexCoord4sARB + glMultiTexCoord4svARB + fxMesaCreateContext + fxMesaCreateBestContext + fxMesaDestroyContext + fxMesaSelectCurrentBoard + fxMesaMakeCurrent + fxMesaGetCurrentContext + fxMesaSwapBuffers + fxMesaSetNearFar + fxMesaUpdateScreenSize + fxQueryHardware + fxCloseHardware + OSMesaCreateContext + OSMesaDestroyContext + OSMesaGetCurrentContext + OSMesaGetDepthBuffer + OSMesaGetIntegerv + OSMesaMakeCurrent + OSMesaPixelStore diff --git a/xc/extras/Mesa/WIN32/RES/fxMesa32.rc b/xc/extras/Mesa/WIN32/RES/fxMesa32.rc new file mode 100644 index 000000000..9c3d49e1f --- /dev/null +++ b/xc/extras/Mesa/WIN32/RES/fxMesa32.rc @@ -0,0 +1,32 @@ +#include <windows.h> + +#define IDR_VERSION1 1 +IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE + FILEVERSION 3,1,0,0 + PRODUCTVERSION 3,1,0,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS 0 + FILEOS VOS_DOS_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0 // not used +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + //language ID = U.S. English, char set = Windows, Multilingual + + BEGIN + VALUE "FileDescription", "fxmesa32 3D Graphics Library\0" + VALUE "FileVersion", "3.1\0" + VALUE "InternalName", "FXMESAGL32\0" + VALUE "OriginalFilename", "OPENGL32.DLL\0" + VALUE "ProductName", "OPENGL32.DLL\0" + VALUE "Comments", "Thanks to Brian Paul for making this possible\r\nRequires GLIDE2X.DLL.\0" + VALUE "LegalCopyright", "Copyright (C) 1995-1997 Brian Paul\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1252 + END +END diff --git a/xc/extras/Mesa/WIN32/RES/mesa32.def b/xc/extras/Mesa/WIN32/RES/mesa32.def new file mode 100644 index 000000000..0dbe1c266 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RES/mesa32.def @@ -0,0 +1,471 @@ +DESCRIPTION '"""Mesa 3D graphics library for Win32"""' + +VERSION 3.1 + +HEAPSIZE 1048576,4096 + +EXPORTS + glAccum + glAlphaFunc + glAreTexturesResident + glAreTexturesResidentEXT + glArrayElement + glArrayElementEXT + glBegin + glBindTexture + glBindTextureEXT + glBitmap + glBlendColorEXT + glBlendEquationEXT + glBlendFunc + glCallList + glCallLists + glClear + glClearAccum + glClearColor + glClearDepth + glClearIndex + glClearStencil + glClipPlane + glColor3b + glColor3bv + glColor3d + glColor3dv + glColor3f + glColor3fv + glColor3i + glColor3iv + glColor3s + glColor3sv + glColor3ub + glColor3ubv + glColor3ui + glColor3uiv + glColor3us + glColor3usv + glColor4b + glColor4bv + glColor4d + glColor4dv + glColor4f + glColor4fv + glColor4i + glColor4iv + glColor4s + glColor4sv + glColor4ub + glColor4ubv + glColor4ui + glColor4uiv + glColor4us + glColor4usv + glColorMask + glColorMaterial + glColorPointer + glColorPointerEXT + glColorSubTableEXT + glColorTableEXT + glCopyPixels + glCopyTexImage1D + glCopyTexImage2D + glCopyTexSubImage1D + glCopyTexSubImage2D + glCopyTexSubImage3D + glCopyTexSubImage3DEXT + glCullFace + glDeleteLists + glDeleteTextures + glDeleteTexturesEXT + glDepthFunc + glDepthMask + glDepthRange + glDisable + glDisableClientState + glDrawArrays + glDrawArraysEXT + glDrawBuffer + glDrawElements + glDrawPixels + glDrawRangeElements + glEdgeFlag + glEdgeFlagPointer + glEdgeFlagPointerEXT + glEdgeFlagv + glEnable + glEnableClientState + glEnd + glEndList + glEvalCoord1d + glEvalCoord1dv + glEvalCoord1f + glEvalCoord1fv + glEvalCoord2d + glEvalCoord2dv + glEvalCoord2f + glEvalCoord2fv + glEvalMesh1 + glEvalMesh2 + glEvalPoint1 + glEvalPoint2 + glFeedbackBuffer + glFinish + glFlush + glFogf + glFogfv + glFogi + glFogiv + glFrontFace + glFrustum + glGenLists + glGenTextures + glGenTexturesEXT + glGetBooleanv + glGetClipPlane + glGetColorTableEXT + glGetColorTableParameterfvEXT + glGetColorTableParameterivEXT + glGetDoublev + glGetError + glGetFloatv + glGetIntegerv + glGetLightfv + glGetLightiv + glGetMapdv + glGetMapfv + glGetMapiv + glGetMaterialfv + glGetMaterialiv + glGetPixelMapfv + glGetPixelMapuiv + glGetPixelMapusv + glGetPointerv + glGetPointervEXT + glGetPolygonStipple + glGetString + glGetTexEnvfv + glGetTexEnviv + glGetTexGendv + glGetTexGenfv + glGetTexGeniv + glGetTexImage + glGetTexLevelParameterfv + glGetTexLevelParameteriv + glGetTexParameterfv + glGetTexParameteriv + glHint + glIndexd + glIndexdv + glIndexf + glIndexfv + glIndexi + glIndexiv + glIndexMask + glIndexPointer + glIndexPointerEXT + glIndexs + glIndexsv + glIndexub + glIndexubv + glInitNames + glInterleavedArrays +; glInterleavedTextureCoordSetsEX; removed in Mesa 3.1? + glIsEnabled + glIsList + glIsTexture + glIsTextureEXT + glLightf + glLightfv + glLighti + glLightiv + glLightModelf + glLightModelfv + glLightModeli + glLightModeliv + glLineStipple + glLineWidth + glListBase + glLoadIdentity + glLoadMatrixd + glLoadMatrixf + glLoadName + glLogicOp + glMap1d + glMap1f + glMap2d + glMap2f + glMapGrid1d + glMapGrid1f + glMapGrid2d + glMapGrid2f + glMaterialf + glMaterialfv + glMateriali + glMaterialiv + glMatrixMode +; glMultiTexCoord1dEXT ; removed in Mesa 3.1? +; glMultiTexCoord1dvEXT ; removed in Mesa 3.1? +; glMultiTexCoord1fEXT ; removed in Mesa 3.1? +; glMultiTexCoord1fvEXT ; removed in Mesa 3.1? +; glMultiTexCoord1iEXT ; removed in Mesa 3.1? +; glMultiTexCoord1ivEXT ; removed in Mesa 3.1? +; glMultiTexCoord1sEXT ; removed in Mesa 3.1? +; glMultiTexCoord1svEXT ; removed in Mesa 3.1? +; glMultiTexCoord2dEXT ; removed in Mesa 3.1? +; glMultiTexCoord2dvEXT ; removed in Mesa 3.1? +; glMultiTexCoord2fEXT ; removed in Mesa 3.1? +; glMultiTexCoord2fvEXT ; removed in Mesa 3.1? +; glMultiTexCoord2iEXT ; removed in Mesa 3.1? +; glMultiTexCoord2ivEXT ; removed in Mesa 3.1? +; glMultiTexCoord2sEXT ; removed in Mesa 3.1? +; glMultiTexCoord2svEXT ; removed in Mesa 3.1? +; glMultiTexCoord3dEXT ; removed in Mesa 3.1? +; glMultiTexCoord3dvEXT ; removed in Mesa 3.1? +; glMultiTexCoord3fEXT ; removed in Mesa 3.1? +; glMultiTexCoord3fvEXT ; removed in Mesa 3.1? +; glMultiTexCoord3iEXT ; removed in Mesa 3.1? +; glMultiTexCoord3ivEXT ; removed in Mesa 3.1? +; glMultiTexCoord3sEXT ; removed in Mesa 3.1? +; glMultiTexCoord3svEXT ; removed in Mesa 3.1? +; glMultiTexCoord4dEXT ; removed in Mesa 3.1? +; glMultiTexCoord4dvEXT ; removed in Mesa 3.1? +; glMultiTexCoord4fEXT ; removed in Mesa 3.1? +; glMultiTexCoord4fvEXT ; removed in Mesa 3.1? +; glMultiTexCoord4iEXT ; removed in Mesa 3.1? +; glMultiTexCoord4ivEXT ; removed in Mesa 3.1? +; glMultiTexCoord4sEXT ; removed in Mesa 3.1? +; glMultiTexCoord4svEXT ; removed in Mesa 3.1? + glMultMatrixd + glMultMatrixf + glNewList + glNormal3b + glNormal3bv + glNormal3d + glNormal3dv + glNormal3f + glNormal3fv + glNormal3i + glNormal3iv + glNormal3s + glNormal3sv + glNormalPointer + glNormalPointerEXT + glOrtho + glPassThrough + glPixelMapfv + glPixelMapuiv + glPixelMapusv + glPixelStoref + glPixelStorei + glPixelTransferf + glPixelTransferi + glPixelZoom + glPointParameterfEXT + glPointParameterfvEXT + glPointSize + glPolygonMode + glPolygonOffset + glPolygonOffsetEXT + glPolygonStipple + glPopAttrib + glPopClientAttrib + glPopMatrix + glPopName + glPrioritizeTextures + glPrioritizeTexturesEXT + glPushAttrib + glPushClientAttrib + glPushMatrix + glPushName + glRasterPos2d + glRasterPos2dv + glRasterPos2f + glRasterPos2fv + glRasterPos2i + glRasterPos2iv + glRasterPos2s + glRasterPos2sv + glRasterPos3d + glRasterPos3dv + glRasterPos3f + glRasterPos3fv + glRasterPos3i + glRasterPos3iv + glRasterPos3s + glRasterPos3sv + glRasterPos4d + glRasterPos4dv + glRasterPos4f + glRasterPos4fv + glRasterPos4i + glRasterPos4iv + glRasterPos4s + glRasterPos4sv + glReadBuffer + glReadPixels + glRectd + glRectdv + glRectf + glRectfv + glRecti + glRectiv + glRects + glRectsv + glRenderMode + glResizeBuffersMESA + glRotated + glRotatef + glScaled + glScalef + glScissor + glSelectBuffer +; glSelectTextureCoordSetEXT ; removed in Mesa 3.1? +; glSelectTextureEXT ; removed in Mesa 3.1? +; glSelectTextureTransformEXT ; removed in Mesa 3.1? + glShadeModel + glStencilFunc + glStencilMask + glStencilOp + glTexCoord1d + glTexCoord1dv + glTexCoord1f + glTexCoord1fv + glTexCoord1i + glTexCoord1iv + glTexCoord1s + glTexCoord1sv + glTexCoord2d + glTexCoord2dv + glTexCoord2f + glTexCoord2fv + glTexCoord2i + glTexCoord2iv + glTexCoord2s + glTexCoord2sv + glTexCoord3d + glTexCoord3dv + glTexCoord3f + glTexCoord3fv + glTexCoord3i + glTexCoord3iv + glTexCoord3s + glTexCoord3sv + glTexCoord4d + glTexCoord4dv + glTexCoord4f + glTexCoord4fv + glTexCoord4i + glTexCoord4iv + glTexCoord4s + glTexCoord4sv + glTexCoordPointer + glTexCoordPointerEXT + glTexEnvf + glTexEnvfv + glTexEnvi + glTexEnviv + glTexGend + glTexGendv + glTexGenf + glTexGenfv + glTexGeni + glTexGeniv + glTexImage1D + glTexImage2D + glTexImage3D + glTexImage3DEXT + glTexParameterf + glTexParameterfv + glTexParameteri + glTexParameteriv + glTexSubImage1D + glTexSubImage2D + glTexSubImage3D + glTexSubImage3DEXT + glTranslated + glTranslatef + glVertex2d + glVertex2dv + glVertex2f + glVertex2fv + glVertex2i + glVertex2iv + glVertex2s + glVertex2sv + glVertex3d + glVertex3dv + glVertex3f + glVertex3fv + glVertex3i + glVertex3iv + glVertex3s + glVertex3sv + glVertex4d + glVertex4dv + glVertex4f + glVertex4fv + glVertex4i + glVertex4iv + glVertex4s + glVertex4sv + glVertexPointer + glVertexPointerEXT + glViewport + glWindowPos2dMESA + glWindowPos2dvMESA + glWindowPos2fMESA + glWindowPos2fvMESA + glWindowPos2iMESA + glWindowPos2ivMESA + glWindowPos2sMESA + glWindowPos2svMESA + glWindowPos3dMESA + glWindowPos3dvMESA + glWindowPos3fMESA + glWindowPos3fvMESA + glWindowPos3iMESA + glWindowPos3ivMESA + glWindowPos3sMESA + glWindowPos3svMESA + glWindowPos4dMESA + glWindowPos4dvMESA + glWindowPos4fMESA + glWindowPos4fvMESA + glWindowPos4iMESA + glWindowPos4ivMESA + glWindowPos4sMESA + glWindowPos4svMESA + OSMesaCreateContext + OSMesaDestroyContext + OSMesaGetCurrentContext + OSMesaGetDepthBuffer + OSMesaGetIntegerv + OSMesaMakeCurrent + OSMesaPixelStore + WMesaCreateContext + WMesaDestroyContext + WMesaMakeCurrent + WMesaPaletteChange + WMesaSwapBuffers + wglCopyContext + wglCreateContext + wglDeleteContext + wglCreateLayerContext + wglGetCurrentContext + wglGetCurrentDC + wglMakeCurrent + wglShareLists + wglUseFontBitmapsA + wglUseFontBitmapsW + wglUseFontOutlinesA + wglUseFontOutlinesW + wglDescribeLayerPlane + wglSetLayerPaletteEntries + wglGetLayerPaletteEntries + wglRealizeLayerPalette + wglSwapLayerBuffers + wglChoosePixelFormat + wglDescribePixelFormat + wglGetProcAddress + wglGetPixelFormat + wglSetPixelFormat + wglSwapBuffers diff --git a/xc/extras/Mesa/WIN32/RES/mesaglu32.def b/xc/extras/Mesa/WIN32/RES/mesaglu32.def new file mode 100644 index 000000000..c391c20d1 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RES/mesaglu32.def @@ -0,0 +1,58 @@ +DESCRIPTION '"""Mesa 3D graphics library GLU Routines for Win32"""' + +VERSION 3.1 + +HEAPSIZE 1048576,4096 + +EXPORTS + gluLookAt + gluOrtho2D + gluPerspective + gluPickMatrix + gluProject + gluUnProject + gluErrorString + gluScaleImage + gluBuild1DMipmaps + gluBuild2DMipmaps + gluNewQuadric + gluDeleteQuadric + gluQuadricDrawStyle + gluQuadricOrientation + gluQuadricNormals + gluQuadricTexture + gluQuadricCallback + gluCylinder + gluSphere + gluDisk + gluPartialDisk + gluNewNurbsRenderer + gluDeleteNurbsRenderer + gluLoadSamplingMatrices + gluNurbsProperty + gluGetNurbsProperty + gluBeginCurve + gluEndCurve + gluNurbsCurve + gluBeginSurface + gluEndSurface + gluNurbsSurface + gluBeginTrim + gluEndTrim + gluPwlCurve + gluNurbsCallback + gluNewTess + gluDeleteTess +; gluTessBeginPolygon +; gluTessBeginContour + gluTessVertex +; gluTessEndContour +; gluTessEndPolygon +; gluTessProperty +; gluTessNormal + gluTessCallback +; gluGetTessProperty + gluBeginPolygon + gluNextContour + gluEndPolygon + gluGetString diff --git a/xc/extras/Mesa/WIN32/RES/mesaglu32.rc b/xc/extras/Mesa/WIN32/RES/mesaglu32.rc new file mode 100644 index 000000000..92b3d5d7d --- /dev/null +++ b/xc/extras/Mesa/WIN32/RES/mesaglu32.rc @@ -0,0 +1,32 @@ +#include <windows.h> + +#define IDR_VERSION1 1 +IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE + FILEVERSION 3,1,0,0 + PRODUCTVERSION 3,1,0,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS 0 + FILEOS VOS_DOS_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0 // not used +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + //language ID = U.S. English, char set = Windows, Multilingual + + BEGIN + VALUE "FileDescription", "mesaglu32 Graphics Library Utility\0" + VALUE "FileVersion", "3.1\0" + VALUE "InternalName", "MESAGLU32\0" + VALUE "OriginalFilename", "GLU32.DLL\0" + VALUE "ProductName", "GLU32.DLL\0" + VALUE "Comments", "Thanks to Brian Paul for making this possible\r\n\0" + VALUE "LegalCopyright", "Copyright (C) 1995-1997 Brian Paul\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1252 + END +END diff --git a/xc/extras/Mesa/WIN32/RES/mesaglut32.def b/xc/extras/Mesa/WIN32/RES/mesaglut32.def new file mode 100644 index 000000000..db606a754 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RES/mesaglut32.def @@ -0,0 +1,109 @@ +DESCRIPTION '"""Mesa 3D GLUT for Win32"""' + +VERSION 3,1,0,0 + +HEAPSIZE 1048576,4096 + +EXPORTS + glutInit + glutInitDisplayMode + glutInitDisplayString + glutInitWindowPosition + glutInitWindowSize + glutMainLoop + glutCreateWindow + glutCreateSubWindow + glutDestroyWindow + glutPostRedisplay + glutSwapBuffers + glutGetWindow + glutSetWindow + glutSetWindowTitle + glutSetIconTitle + glutPositionWindow + glutReshapeWindow + glutPopWindow + glutPushWindow + glutIconifyWindow + glutShowWindow + glutHideWindow + glutFullScreen + glutSetCursor + glutWarpPointer + glutEstablishOverlay + glutRemoveOverlay + glutUseLayer + glutPostOverlayRedisplay + glutShowOverlay + glutHideOverlay + glutCreateMenu + glutDestroyMenu + glutGetMenu + glutSetMenu + glutAddMenuEntry + glutAddSubMenu + glutChangeToMenuEntry + glutChangeToSubMenu + glutRemoveMenuItem + glutAttachMenu + glutDetachMenu + glutDisplayFunc + glutReshapeFunc + glutKeyboardFunc + glutMouseFunc + glutMotionFunc + glutPassiveMotionFunc + glutEntryFunc + glutVisibilityFunc + glutIdleFunc + glutTimerFunc + glutMenuStateFunc + glutSpecialFunc + glutSpaceballMotionFunc + glutSpaceballRotateFunc + glutSpaceballButtonFunc + glutButtonBoxFunc + glutDialsFunc + glutTabletMotionFunc + glutTabletButtonFunc + glutMenuStatusFunc + glutOverlayDisplayFunc + glutWindowStatusFunc + glutSetColor + glutGetColor + glutCopyColormap + glutGet + glutDeviceGet + glutExtensionSupported + glutGetModifiers + glutLayerGet + glutBitmapCharacter + glutBitmapWidth + glutStrokeCharacter + glutStrokeWidth + glutBitmapLength + glutStrokeLength + glutWireSphere + glutSolidSphere + glutWireCone + glutSolidCone + glutWireCube + glutSolidCube + glutWireTorus + glutSolidTorus + glutWireDodecahedron + glutSolidDodecahedron + glutWireTeapot + glutSolidTeapot + glutWireOctahedron + glutSolidOctahedron + glutWireTetrahedron + glutSolidTetrahedron + glutWireIcosahedron + glutSolidIcosahedron + glutVideoResizeGet + glutSetupVideoResizing + glutStopVideoResizing + glutVideoResize + glutVideoPan + glutReportErrors diff --git a/xc/extras/Mesa/WIN32/RES/mesaglut32.rc b/xc/extras/Mesa/WIN32/RES/mesaglut32.rc new file mode 100644 index 000000000..dbf1ed3fd --- /dev/null +++ b/xc/extras/Mesa/WIN32/RES/mesaglut32.rc @@ -0,0 +1,32 @@ +#include <windows.h> + +#define IDR_VERSION1 1 +IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE + FILEVERSION 3,1,0,0 + PRODUCTVERSION 3,1,0,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS 0 + FILEOS VOS_DOS_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0 // not used +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + //language ID = U.S. English, char set = Windows, Multilingual + + BEGIN + VALUE "FileDescription", "mesaglut32 Graphics Library Utility Toolkit\0" + VALUE "FileVersion", "3.1\0" + VALUE "InternalName", "MESAGLUT32\0" + VALUE "OriginalFilename", "GLUT32.DLL\0" + VALUE "ProductName", "GLUT32.DLL\0" + VALUE "Comments", "Thanks to Mark Kilgard for making this possible\r\n\0" + VALUE "LegalCopyright", "Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1252 + END +END diff --git a/xc/extras/Mesa/WIN32/RES/s3Mesa32.def b/xc/extras/Mesa/WIN32/RES/s3Mesa32.def new file mode 100644 index 000000000..5c092a027 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RES/s3Mesa32.def @@ -0,0 +1,463 @@ +DESCRIPTION '"""Mesa 3D graphics library for Win32 S3TK"""' + +VERSION 3.1 + +HEAPSIZE 1048576,4096 + +EXPORTS + glAccum + glAlphaFunc + glAreTexturesResident + glArrayElement + glBegin + glBindTexture + glBitmap + glBlendFunc + glCallList + glCallLists + glClear + glClearAccum + glClearIndex + glClearColor + glClearDepth + glClearStencil + glClipPlane + glColor3b + glColor3d + glColor3f + glColor3i + glColor3s + glColor3ub + glColor3ui + glColor3us + glColor4b + glColor4d + glColor4f + glColor4i + glColor4s + glColor4ub + glColor4ui + glColor4us + glColor3bv + glColor3dv + glColor3fv + glColor3iv + glColor3sv + glColor3ubv + glColor3uiv + glColor3usv + glColor4bv + glColor4dv + glColor4fv + glColor4iv + glColor4sv + glColor4ubv + glColor4uiv + glColor4usv + glColorMask + glColorMaterial + glColorPointer + glColorTableEXT + glColorSubTableEXT + glCopyPixels + glCopyTexImage1D + glCopyTexImage2D + glCopyTexSubImage1D + glCopyTexSubImage2D + glCullFace + glDepthFunc + glDepthMask + glDepthRange + glDeleteLists + glDeleteTextures + glDisable + glDisableClientState + glDrawArrays + glDrawBuffer + glDrawElements + glDrawPixels + glEnable + glEnableClientState + glEnd + glEndList + glEvalCoord1d + glEvalCoord1f + glEvalCoord1dv + glEvalCoord1fv + glEvalCoord2d + glEvalCoord2f + glEvalCoord2dv + glEvalCoord2fv + glEvalPoint1 + glEvalPoint2 + glEvalMesh1 + glEdgeFlag + glEdgeFlagv + glEdgeFlagPointer + glEvalMesh2 + glFeedbackBuffer + glFinish + glFlush + glFogf + glFogi + glFogfv + glFogiv + glFrontFace + glFrustum + glGenLists + glGenTextures + glGetBooleanv + glGetClipPlane + glGetColorTableEXT + glGetColorTableParameterivEXT + glGetColorTableParameterfvEXT + glGetDoublev + glGetError + glGetFloatv + glGetIntegerv + glGetLightfv + glGetLightiv + glGetMapdv + glGetMapfv + glGetMapiv + glGetMaterialfv + glGetMaterialiv + glGetPixelMapfv + glGetPixelMapuiv + glGetPixelMapusv + glGetPointerv + glGetPolygonStipple + glGetString + glGetTexEnvfv + glGetTexEnviv + glGetTexGeniv + glGetTexGendv + glGetTexGenfv + glGetTexImage + glGetTexLevelParameterfv + glGetTexLevelParameteriv + glGetTexParameterfv + glGetTexParameteriv + glHint + glIndexd + glIndexf + glIndexi + glIndexs + glIndexub + glIndexdv + glIndexfv + glIndexiv + glIndexsv + glIndexubv + glIndexMask + glIndexPointer + glInterleavedArrays + glInitNames + glIsList + glIsTexture + glLightf + glLighti + glLightfv + glLightiv + glLightModelf + glLightModeli + glLightModelfv + glLightModeliv + glLineWidth + glLineStipple + glListBase + glLoadIdentity + glLoadMatrixd + glLoadMatrixf + glLoadName + glLogicOp + glMap1d + glMap1f + glMap2d + glMap2f + glMapGrid1d + glMapGrid1f + glMapGrid2d + glMapGrid2f + glMaterialf + glMateriali + glMaterialfv + glMaterialiv + glMatrixMode + glMultMatrixd + glMultMatrixf + glNewList + glNormal3b + glNormal3d + glNormal3f + glNormal3i + glNormal3s + glNormal3bv + glNormal3dv + glNormal3fv + glNormal3iv + glNormal3sv + glNormalPointer + glOrtho + glPassThrough + glPixelMapfv + glPixelMapuiv + glPixelMapusv + glPixelStoref + glPixelStorei + glPixelTransferf + glPixelTransferi + glPixelZoom + glPointSize + glPolygonMode + glPolygonOffset + glPolygonOffsetEXT + glPolygonStipple + glPopAttrib + glPopClientAttrib + glPopMatrix + glPopName + glPrioritizeTextures + glPushMatrix + glRasterPos2d + glRasterPos2f + glRasterPos2i + glRasterPos2s + glRasterPos3d + glRasterPos3f + glRasterPos3i + glRasterPos3s + glRasterPos4d + glRasterPos4f + glRasterPos4i + glRasterPos4s + glRasterPos2dv + glRasterPos2fv + glRasterPos2iv + glRasterPos2sv + glRasterPos3dv + glRasterPos3fv + glRasterPos3iv + glRasterPos3sv + glRasterPos4dv + glRasterPos4fv + glRasterPos4iv + glRasterPos4sv + glReadBuffer + glReadPixels + glRectd + glRectf + glRecti + glRects + glRectdv + glRectfv + glRectiv + glRectsv + glScissor + glIsEnabled + glPushAttrib + glPushClientAttrib + glPushName + glRenderMode + glRotated + glRotatef + glSelectBuffer + glScaled + glScalef + glShadeModel + glStencilFunc + glStencilMask + glStencilOp + glTexCoord1d + glTexCoord1f + glTexCoord1i + glTexCoord1s + glTexCoord2d + glTexCoord2f + glTexCoord2i + glTexCoord2s + glTexCoord3d + glTexCoord3f + glTexCoord3i + glTexCoord3s + glTexCoord4d + glTexCoord4f + glTexCoord4i + glTexCoord4s + glTexCoord1dv + glTexCoord1fv + glTexCoord1iv + glTexCoord1sv + glTexCoord2dv + glTexCoord2fv + glTexCoord2iv + glTexCoord2sv + glTexCoord3dv + glTexCoord3fv + glTexCoord3iv + glTexCoord3sv + glTexCoord4dv + glTexCoord4fv + glTexCoord4iv + glTexCoord4sv + glTexCoordPointer + glTexGend + glTexGenf + glTexGeni + glTexGendv + glTexGeniv + glTexGenfv + glTexEnvf + glTexEnvi + glTexEnvfv + glTexEnviv + glTexImage1D + glTexImage2D + glTexParameterf + glTexParameteri + glTexParameterfv + glTexParameteriv + glTexSubImage1D + glTexSubImage2D + glTranslated + glTranslatef + glVertex2d + glVertex2f + glVertex2i + glVertex2s + glVertex3d + glVertex3f + glVertex3i + glVertex3s + glVertex4d + glVertex4f + glVertex4i + glVertex4s + glVertex2dv + glVertex2fv + glVertex2iv + glVertex2sv + glVertex3dv + glVertex3fv + glVertex3iv + glVertex3sv + glVertex4dv + glVertex4fv + glVertex4iv + glVertex4sv + glVertexPointer + glViewport + glBlendEquationEXT + glBlendColorEXT + glVertexPointerEXT + glNormalPointerEXT + glColorPointerEXT + glIndexPointerEXT + glTexCoordPointerEXT + glEdgeFlagPointerEXT + glGetPointervEXT + glArrayElementEXT + glDrawArraysEXT + glBindTextureEXT + glDeleteTexturesEXT + glGenTexturesEXT + glPrioritizeTexturesEXT + glCopyTexSubImage3DEXT + glTexImage3DEXT + glTexSubImage3DEXT + glWindowPos4fMESA + glWindowPos2iMESA + glWindowPos2sMESA + glWindowPos2fMESA + glWindowPos2dMESA + glWindowPos2ivMESA + glWindowPos2svMESA + glWindowPos2fvMESA + glWindowPos2dvMESA + glWindowPos3iMESA + glWindowPos3sMESA + glWindowPos3fMESA + glWindowPos3dMESA + glWindowPos3ivMESA + glWindowPos3svMESA + glWindowPos3fvMESA + glWindowPos3dvMESA + glWindowPos4iMESA + glWindowPos4sMESA + glWindowPos4dMESA + glWindowPos4ivMESA + glWindowPos4svMESA + glWindowPos4fvMESA + glWindowPos4dvMESA + glResizeBuffersMESA + wglCopyContext + wglCreateContext + wglCreateLayerContext + wglDeleteContext +;wglDescribeLayerPlane + wglGetCurrentContext + wglGetCurrentDC +;wglGetLayerPaletteEntries + wglGetProcAddress + wglMakeCurrent +;wglRealizeLayerPalette +;wglSetLayerPaletteEntries + wglShareLists + wglSwapLayerBuffers + wglUseFontBitmapsA + wglUseFontBitmapsW + wglUseFontOutlinesA + wglUseFontOutlinesW + wglChoosePixelFormat + ChoosePixelFormat + wglDescribePixelFormat + DescribePixelFormat + wglGetPixelFormat + GetPixelFormat + wglSetPixelFormat + SetPixelFormat + wglSwapBuffers + SwapBuffers + gl3DfxSetPaletteEXT + glMultiTexCoord1dSGIS + glMultiTexCoord1dvSGIS + glMultiTexCoord1fSGIS + glMultiTexCoord1fvSGIS + glMultiTexCoord1iSGIS + glMultiTexCoord1ivSGIS + glMultiTexCoord1sSGIS + glMultiTexCoord1svSGIS + glMultiTexCoord2dSGIS + glMultiTexCoord2dvSGIS + glMultiTexCoord2fSGIS + glMultiTexCoord2fvSGIS + glMultiTexCoord2iSGIS + glMultiTexCoord2ivSGIS + glMultiTexCoord2sSGIS + glMultiTexCoord2svSGIS + glMultiTexCoord3dSGIS + glMultiTexCoord3dvSGIS + glMultiTexCoord3fSGIS + glMultiTexCoord3fvSGIS + glMultiTexCoord3iSGIS + glMultiTexCoord3ivSGIS + glMultiTexCoord3sSGIS + glMultiTexCoord3svSGIS + glMultiTexCoord4dSGIS + glMultiTexCoord4dvSGIS + glMultiTexCoord4fSGIS + glMultiTexCoord4fvSGIS + glMultiTexCoord4iSGIS + glMultiTexCoord4ivSGIS + glMultiTexCoord4sSGIS + glMultiTexCoord4svSGIS + glMultiTexCoordPointerSGIS + glSelectTextureSGIS + glSelectTextureCoordSetSGIS + OSMesaCreateContext + OSMesaDestroyContext + OSMesaGetCurrentContext + OSMesaGetDepthBuffer + OSMesaGetIntegerv + OSMesaMakeCurrent + OSMesaPixelStore diff --git a/xc/extras/Mesa/WIN32/RES/s3Mesa32.rc b/xc/extras/Mesa/WIN32/RES/s3Mesa32.rc new file mode 100644 index 000000000..4b4c686c9 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RES/s3Mesa32.rc @@ -0,0 +1,32 @@ +#include <windows.h> + +#define IDR_VERSION1 1 +IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE + FILEVERSION 3,1,0,0 + PRODUCTVERSION 3,1,0,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS 0 + FILEOS VOS_DOS_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0 // not used +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + //language ID = U.S. English, char set = Windows, Multilingual + + BEGIN + VALUE "FileDescription", "s3MesaGL32 3D Graphics Library\0" + VALUE "FileVersion", "3.1\0" + VALUE "InternalName", "S3MESAGL32\0" + VALUE "OriginalFilename", "S3MESAGL32.DLL\0" + VALUE "ProductName", "S3MESAGL32.DLL\0" + VALUE "Comments", "Thanks to Brian Paul for making this possible\r\nRequires S3TK.DLL for S3/Virge.\0" + VALUE "LegalCopyright", "Copyright (C) 1995-1997 Brian Paul\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1252 + END +END diff --git a/xc/extras/Mesa/WIN32/RULES/lib.fxmesa b/xc/extras/Mesa/WIN32/RULES/lib.fxmesa new file mode 100644 index 000000000..21e09e84b --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/lib.fxmesa @@ -0,0 +1,40 @@ + +!IF "$(STATIC_MESA)" == "0" +!ERROR lib.$(LIBBASE) : This file require STATIC_MESA be set to 1. +!ENDIF + +!IF "$(GLIDE2SDK)" == "" +!ERROR lib.$(LIBBASE) : 'GLIDE2SDK' environment var not set, can't find Glide SDK +!ENDIF + +LIBCOMMENTS=Requires Glide 2.x Runtime for 3Dfx Voodoo Graphics, Voodoo Rush, or Voodoo2. + +!INCLUDE .\rules\lib.mesa.core + +USE_CRTDLL=0 +STATIC_MESA=1 + +SRCALT2 = .\$(MESAROOT)\src\FX +SRCALT3 = .\$(MESAROOT)\src\OSmesa + +CPPOPTS = $(CPPOPTS) /DFX /DFX_V2 /DMESA_FX_DDRAW /DFX_SILENT /I$(GLIDE2SDK)\src\include +EXELIBS = $(GLIDE2SDK)\src\lib\win32\glide2x.lib + +SRCFILES = $(MESA_CORE)\ + fxapi.c fxcva.c fxdd.c fxddspan.c fxddtex.c fxrender.c fxsetup.c fxspan.c fxtexman.c\ + fxtrifuncs.c fxvsetup.c fxwgl.c\ + OSmesa.c + +!IF "$(NASM)" != "" + +SRCALT4 = .\$(MESAROOT)\src\X86 + +SRCFILES = $(SRCFILES) x86.c x86a.S common_x86.c common_x86asm.S mmx_blend.S 3dnow.c 3dnow_norm_raw.S\ + 3dnow_xform_masked1.S 3dnow_xform_masked2.S 3dnow_xform_masked3.S 3dnow_xform_masked4.S\ + 3dnow_xform_raw1.S 3dnow_xform_raw2.S 3dnow_xform_raw3.S 3dnow_xform_raw4.S\ + +!ENDIF + +OBJDIR_R = $(MESAROOT)\lib\FX + +# derecated ? -- fxpoints.c
\ No newline at end of file diff --git a/xc/extras/Mesa/WIN32/RULES/lib.fxmesa32 b/xc/extras/Mesa/WIN32/RULES/lib.fxmesa32 new file mode 100644 index 000000000..2fc97c0a2 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/lib.fxmesa32 @@ -0,0 +1,41 @@ + +!IF "$(STATIC_MESA)" == "1" +!ERROR lib.$(LIBBASE) : This file require STATIC_MESA be set to 0. +!ENDIF + +!IF "$(GLIDE2SDK)" == "" +!ERROR lib.$(LIBBASE) : 'GLIDE2SDK' environment var not set, can't find Glide SDK +!ENDIF + +LIBCOMMENTS=Requires Glide 2.x Runtime for 3Dfx Voodoo Graphics, Voodoo Rush, or Voodoo2. + +!INCLUDE .\rules\lib.mesa.core + +USE_CRTDLL=1 + +SRCALT2 = .\$(MESAROOT)\src\FX +SRCALT3 = .\$(MESAROOT)\src\OSmesa + +DEFFILE = res\fxmesa32.def +RCFILE = res\fxmesa32.rc + +CPPOPTS = $(CPPOPTS) /DFX /DFX_V2 /DFX_SILENT /DMESA_FX_DDRAW /DBUILD_GL32 /I$(GLIDE2SDK)\src\include + +SRCFILES = $(MESA_CORE)\ + fxapi.c fxclip.c fxcva.c fxdd.c fxddspan.c fxddtex.c fxfastpath.c fxpipeline.c\ + fxrender.c fxsetup.c fxtexman.c fxtrifuncs.c fxvsetup.c fxwgl.c fxglidew.c\ + OSmesa.c + +!IF "$(NASM)" != "" + +SRCALT4 = .\$(MESAROOT)\src\X86 + +SRCFILES = $(SRCFILES) x86.c x86a.S common_x86.c common_x86asm.S mmx_blend.S 3dnow.c 3dnow_norm_raw.S\ + 3dnow_xform_masked1.S 3dnow_xform_masked2.S 3dnow_xform_masked3.S 3dnow_xform_masked4.S\ + 3dnow_xform_raw1.S 3dnow_xform_raw2.S 3dnow_xform_raw3.S 3dnow_xform_raw4.S\ + +!ENDIF + +DLLLIBS = $(GLIDE2SDK)\src\lib\win32\glide2x.lib ole32.lib dxguid.lib +DLLBASE = OpenGL32 +OBJDIR_R = $(MESAROOT)\lib\FX diff --git a/xc/extras/Mesa/WIN32/RULES/lib.glu32 b/xc/extras/Mesa/WIN32/RULES/lib.glu32 new file mode 100644 index 000000000..5d008c0a8 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/lib.glu32 @@ -0,0 +1,20 @@ + +!IF "$(STATIC_MESA)" == "1" +!ERROR lib.$(LIBBASE) : This file require STATIC_MESA be set to 0. +!ENDIF + +!INCLUDE .\rules\lib.mesaglu.core + +USE_CRTDLL=1 + +DEFFILE = res\mesaglu32.def +RCFILE = res\mesaglu32.rc + +!IF "$(DEBUG)" == "1" +DLLLIBS = OpenGL32d.lib +!ELSE +DLLLIBS = OpenGL32.lib +!ENDIF + +CPPOPTS = $(CPPOPTS) /DBUILD_GLU32 +DLLBASE = GLU32 diff --git a/xc/extras/Mesa/WIN32/RULES/lib.glut32 b/xc/extras/Mesa/WIN32/RULES/lib.glut32 new file mode 100644 index 000000000..bf0edbdf7 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/lib.glut32 @@ -0,0 +1,20 @@ + +!IF "$(STATIC_MESA)" == "1" +!ERROR lib.$(LIBBASE) : This file require STATIC_MESA be set to 0. +!ENDIF + +!INCLUDE .\rules\lib.mesaglut.core + +USE_CRTDLL=1 + +DEFFILE = res\mesaglut32.def +RCFILE = res\mesaglut32.rc + +!IF "$(DEBUG)" == "1" +DLLLIBS = GLU32d.lib OpenGL32d.lib winmm.lib +!ELSE +DLLLIBS = GLU32.lib OpenGL32.lib winmm.lib +!ENDIF + +CPPOPTS = $(CPPOPTS) /DBUILD_GLUT32 +DLLBASE = GLUT32 diff --git a/xc/extras/Mesa/WIN32/RULES/lib.mesa b/xc/extras/Mesa/WIN32/RULES/lib.mesa new file mode 100644 index 000000000..e9139cc3a --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/lib.mesa @@ -0,0 +1,9 @@ + +!INCLUDE .\rules\lib.mesa.core + +USE_CRTDLL=0 + +SRCALT2=.\$(MESAROOT)\src\OSmesa +SRCALT3=.\$(MESAROOT)\src\Windows + +SRCFILES = $(MESA_CORE) OSmesa.c Wmesa.c wgl.c diff --git a/xc/extras/Mesa/WIN32/RULES/lib.mesa.core b/xc/extras/Mesa/WIN32/RULES/lib.mesa.core new file mode 100644 index 000000000..9d6ffb359 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/lib.mesa.core @@ -0,0 +1,17 @@ + +SRCALT1=.\$(MESAROOT)\src + +CPPOPTS=$(CPPOPTS) /I$(MESAROOT)\src + +MESA_CORE = aatriangle.c hash.c pixeltex.c texture.c\ + accum.c debug_xform.c highpc.c points.c texutil.c alpha.c depth.c\ + hint.c polygon.c translate.c alphabuf.c dispatch.c image.c quads.c\ + triangle.c attrib.c dlist.c imaging.c rastpos.c varray.c bbox.c\ + drawpix.c light.c readpix.c vb.c bitmap.c enable.c lines.c rect.c\ + vbcull.c blend.c enums.c logic.c scissor.c vbfill.c buffers.c\ + eval.c lowpc.c shade.c vbindirect.c clip.c extensions.c masking.c\ + span.c vbrender.c colortab.c feedback.c matrix.c stages.c vbxform.c\ + config.c fog.c mem.c state.c vector.c context.c get.c mmath.c\ + stencil.c vertices.c convolve.c glapi.c pb.c teximage.c winpos.c\ + copypix.c glapinoop.c pipeline.c texobj.c xform.c cva.c glthread.c\ + pixel.c texstate.c zoom.c diff --git a/xc/extras/Mesa/WIN32/RULES/lib.mesa32 b/xc/extras/Mesa/WIN32/RULES/lib.mesa32 new file mode 100644 index 000000000..ccb49a7fe --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/lib.mesa32 @@ -0,0 +1,24 @@ + +!IF "$(STATIC_MESA)" == "1" +!ERROR lib.$(LIBBASE) : This file require STATIC_MESA be set to 0. +!ENDIF + +LIBCOMMENTS=CPU-based Rendering usable as a direct replacement for system OpenGL32.DLL + +!INCLUDE .\rules\lib.mesa.core + +USE_CRTDLL=1 + +SRCALT2=.\$(MESAROOT)\src\Windows +SRCALT3=.\$(MESAROOT)\src\OSmesa + +DEFFILE = res\mesa32.def +RCFILE = res\mesa32.rc + +CPPOPTS = $(CPPOPTS) /DBUILD_GL32 + +SRCFILES = $(MESA_CORE)\ + Wmesa.c wgl.c\ + OSmesa.c + +DLLBASE = OpenGL32 diff --git a/xc/extras/Mesa/WIN32/RULES/lib.mesaglu b/xc/extras/Mesa/WIN32/RULES/lib.mesaglu new file mode 100644 index 000000000..bd7443002 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/lib.mesaglu @@ -0,0 +1,4 @@ + +!INCLUDE .\rules\lib.mesaglu.core + +USE_CRTDLL=0 diff --git a/xc/extras/Mesa/WIN32/RULES/lib.mesaglu.core b/xc/extras/Mesa/WIN32/RULES/lib.mesaglu.core new file mode 100644 index 000000000..7ec3f38fd --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/lib.mesaglu.core @@ -0,0 +1,5 @@ + +SRCALT1=.\$(MESAROOT)\src-glu + +SRCFILES = glu.c mipmap.c nurbs.c nurbscrv.c nurbssrf.c nurbsutl.c\ + project.c quadric.c polytest.c tess.c tesselat.c diff --git a/xc/extras/Mesa/WIN32/RULES/lib.mesaglut b/xc/extras/Mesa/WIN32/RULES/lib.mesaglut new file mode 100644 index 000000000..08c370b2c --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/lib.mesaglut @@ -0,0 +1,10 @@ + +!IF "$(STATIC_MESA)" != "1" +!ERROR lib.$(LIBBASE) : This file require STATIC_MESA be set to 1. +!ENDIF + +!INCLUDE .\rules\lib.mesaglut.core + +USE_CRTDLL=0 + +CPPOPTS = /DW32_MESA $(CPPOPTS) diff --git a/xc/extras/Mesa/WIN32/RULES/lib.mesaglut.core b/xc/extras/Mesa/WIN32/RULES/lib.mesaglut.core new file mode 100644 index 000000000..f2d87e702 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/lib.mesaglut.core @@ -0,0 +1,19 @@ + +SRCALT1=.\$(MESAROOT)\src-glut + +SRCFILES = glut_8x13.c glut_9x15.c glut_bitmap.c glut_bwidth.c\ + glut_cindex.c glut_cmap.c glut_cursor.c glut_dials.c glut_dstr.c\ + glut_event.c glut_ext.c glut_fullscrn.c glut_gamemode.c glut_get.c\ + glut_hel10.c glut_hel12.c glut_hel18.c glut_init.c glut_input.c\ + glut_key.c glut_mesa.c glut_modifier.c glut_mroman.c glut_overlay.c\ + glut_roman.c glut_shapes.c glut_space.c glut_stroke.c glut_swap.c\ + glut_swidth.c glut_tablet.c glut_teapot.c glut_tr10.c glut_tr24.c\ + glut_util.c glut_vidresize.c glut_warp.c glut_win.c glut_winmisc.c\ + win32_glx.c win32_menu.c win32_util.c win32_winproc.c win32_x11.c + +!IF "$(USE_SYSGL)" != "0" +CPPDEPS=include\GL\glut.h +CPPOPTS=$(CPPOPTS) /I.\include +!ELSE +CPPOPTS=$(CPPOPTS) /I$(MESAROOT)\include +!ENDIF diff --git a/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos new file mode 100644 index 000000000..62ec5d85d --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos @@ -0,0 +1,25 @@ + +!IF "$(STATIC_MESA)" == "1" +EXELIBS = mesaglut$(LIBSFX).lib mesaglu$(LIBSFX).lib $(MESAROOT)\lib\FX\fxmesagl$(LIBSFX).lib $(GLIDE2SDK)\src\lib\win32\glide2x.lib +USE_CRTDLL = 0 +FORCELINK = 1 +!IF "$(GLIDE2SDK)" == "" +!ERROR lib.$(LIBBASE) : 'GLIDE2SDK' environment var not set, can't find Glide SDK +!ENDIF +!ELSE +EXELIBS = GLUT32$(LIBSFX).LIB GLU32$(LIBSFX).LIB $(MESAROOT)\lib\FX\OPENGL32$(LIBSFX).LIB +RUNTIMELIBS = GLUT32$(LIBSFX).DLL GLU32$(LIBSFX).DLL FX\OPENGL32$(LIBSFX).DLL +!ENDIF + +!IF ("$(USE_SYSGL)" == "0") && ("$(DEBUG)" == "1") +EXELIBS=$(EXELIBS:.lib=d.lib) +!IF "$(RUNTIMELIBS)" != "" +RUNTIMELIBS=$(RUNTIMELIBS:.dll=d.dll) +!ENDIF +!ENDIF + +SRCALT1 = .\$(MESAROOT)\3dfx\demos +EXELIBS = $(EXELIBS) winmm.lib +CPPOPTS = /DFX /DFX_SILENT $(CPPOPTS) +SUPLIBSROOT = .\rules\progs.3dfx.demos +SRCFILES = fire.c glbpaltx.c gltest.c ipers.c mesaland.c paltex.c ray.c teapot.c tunnel.c diff --git a/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.fire b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.fire new file mode 100644 index 000000000..e4486a644 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.fire @@ -0,0 +1 @@ +SRCFILESX = image.c diff --git a/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.ipers b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.ipers new file mode 100644 index 000000000..e4486a644 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.ipers @@ -0,0 +1 @@ +SRCFILESX = image.c diff --git a/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.rain b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.rain new file mode 100644 index 000000000..8625a746b --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.rain @@ -0,0 +1 @@ +SRCFILESX = particles.cxx image.c diff --git a/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.teapot b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.teapot new file mode 100644 index 000000000..b18a43442 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.teapot @@ -0,0 +1 @@ +SRCFILESX = image.c dteapot.c shadow.c diff --git a/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.tunnel b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.tunnel new file mode 100644 index 000000000..cb9999c02 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.tunnel @@ -0,0 +1 @@ +SRCFILESX = image.c sources.c diff --git a/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.tunnel2 b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.tunnel2 new file mode 100644 index 000000000..cb9999c02 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/progs.3dfx.demos.tunnel2 @@ -0,0 +1 @@ +SRCFILESX = image.c sources.c diff --git a/xc/extras/Mesa/WIN32/RULES/progs.book b/xc/extras/Mesa/WIN32/RULES/progs.book new file mode 100644 index 000000000..5295fa297 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/progs.book @@ -0,0 +1,38 @@ + +!IF "$(STATIC_MESA)" == "1" +EXELIBS = mesaglut$(LIBSFX).lib mesaglu$(LIBSFX).lib mesagl$(LIBSFX).lib +USE_CRTDLL = 0 +!ELSEIF "$(USE_SYSGL)" == "2" +EXELIBS = glut.lib glu.lib opengl.lib +RUNTIMELIBS = glut.dll +!ELSEIF "$(USE_SYSGL)" == "1" +EXELIBS = glut32.lib glu32.lib opengl32.lib +RUNTIMELIBS = glut32.dll +!ELSE +EXELIBS = glut32$(LIBSFX).lib glu32$(LIBSFX).lib opengl32$(LIBSFX).lib +RUNTIMELIBS = glut32$(LIBSFX).dll glu32$(LIBSFX).dll opengl32$(LIBSFX).dll +!ENDIF + +!IF ("$(USE_SYSGL)" == "0") && ("$(DEBUG)" == "1") +EXELIBS=$(EXELIBS:.lib=d.lib) +!IF "$(RUNTIMELIBS)" != "" +RUNTIMELIBS=$(RUNTIMELIBS:.dll=d.dll) +!ENDIF +!ENDIF + +!IF "$(STATIC_MESA)" == "1" +EXELIBS=$(EXELIBS) winmm.lib +!ENDIF + +SRCALT1 = .\$(MESAROOT)\book + +SRCFILES = aaindex.c aapoly.c aargb.c accanti.c accpersp.c alpha.c\ + alpha3D.c anti.c bezcurve.c bezmesh.c checker.c clip.c colormat.c\ + cube.c depthcue.c dof.c double.c drawf.c feedback.c fog.c\ + fogindex.c font.c hello.c image.c light.c lines.c list.c\ + material.c mipmap.c model.c movelight.c nurbs.c pickdepth.c\ + picksquare.c plane.c planet.c polyoff.c polys.c quadric.c robot.c\ + sccolorlight.c scene.c scenebamb.c sceneflat.c select.c smooth.c\ + stencil.c stroke.c surface.c teaambient.c teapots.c tess.c\ + tesswind.c texbind.c texgen.c texprox.c texsub.c texturesurf.c\ + torus.c trim.c unproject.c varray.c wrap.c diff --git a/xc/extras/Mesa/WIN32/RULES/progs.demos b/xc/extras/Mesa/WIN32/RULES/progs.demos new file mode 100644 index 000000000..2796c461f --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/progs.demos @@ -0,0 +1,35 @@ + +!IF "$(STATIC_MESA)" == "1" +EXELIBS = mesaglut.lib mesaglu.lib mesagl.lib +USE_CRTDLL = 0 +!ELSEIF "$(USE_SYSGL)" == "2" +EXELIBS = glut.lib glu.lib opengl.lib +RUNTIMELIBS = glut.dll +!ELSEIF "$(USE_SYSGL)" == "1" +EXELIBS = glut32.lib glu32.lib opengl32.lib +RUNTIMELIBS = glut32.dll +!ELSE +EXELIBS = glut32$(LIBSFX).lib glu32$(LIBSFX).lib opengl32$(LIBSFX).lib +RUNTIMELIBS = glut32$(LIBSFX).dll glu32$(LIBSFX).dll opengl32$(LIBSFX).dll +!ENDIF + +!IF ("$(USE_SYSGL)" == "0") && ("$(DEBUG)" == "1") +EXELIBS=$(EXELIBS:.lib=d.lib) +!IF "$(RUNTIMELIBS)" != "" +RUNTIMELIBS=$(RUNTIMELIBS:.dll=d.dll) +!ENDIF +!ENDIF + +!IF "$(STATIC_MESA)" == "1" +EXELIBS=$(EXELIBS) winmm.lib +!ENDIF + +SRCALT1 = .\$(MESAROOT)\demos + +SRCFILES = bounce.c clearspd.c drawpix.c gamma.c gears.c glinfo.c gloss.c\ + glutfx.c morph3d.c multiarb.c pointblast.c reflect.c spectex.c tessdemo.c\ + texcyl.c texobj.c trispd.c winpos.c + +!IF "$(USE_SYSGL)" == "0" +SRCFILES = $(SRCFILES) isosurf.c osdemo.c paltex.c renormal.c +!ENDIF diff --git a/xc/extras/Mesa/WIN32/RULES/progs.samples b/xc/extras/Mesa/WIN32/RULES/progs.samples new file mode 100644 index 000000000..7a1493925 --- /dev/null +++ b/xc/extras/Mesa/WIN32/RULES/progs.samples @@ -0,0 +1,40 @@ + +!IF "$(STATIC_MESA)" == "1" +EXELIBS = mesaglut.lib mesaglu.lib mesagl.lib +USE_CRTDLL = 0 +!ELSEIF "$(USE_SYSGL)" == "2" +EXELIBS = glut.lib glu.lib opengl.lib +RUNTIMELIBS = glut.dll +!ELSEIF "$(USE_SYSGL)" == "1" +EXELIBS = glut32.lib glu32.lib opengl32.lib +RUNTIMELIBS = glut32.dll +!ELSE +EXELIBS = glut32$(LIBSFX).lib glu32$(LIBSFX).lib opengl32$(LIBSFX).lib +RUNTIMELIBS = glut32$(LIBSFX).dll glu32$(LIBSFX).dll opengl32$(LIBSFX).dll +!ENDIF + +!IF ("$(USE_SYSGL)" == "0") && ("$(DEBUG)" == "1") +EXELIBS=$(EXELIBS:.lib=d.lib) +!IF "$(RUNTIMELIBS)" != "" +RUNTIMELIBS=$(RUNTIMELIBS:.dll=d.dll) +!ENDIF +!ENDIF + +!IF "$(STATIC_MESA)" == "1" +EXELIBS=$(EXELIBS) winmm.lib +!ENDIF + +SRCALT1 = .\$(MESAROOT)\samples + +SRCFILES = accum.c bitmap1.c bitmap2.c copy.c\ + cursor.c depth.c eval.c fog.c font.c line.c logo.c nurb.c\ + olympic.c overlay.c point.c prim.c quad.c rgbtoppm.c select.c\ + shape.c sphere.c star.c stencil.c stretch.c texture.c tri.c wave.c + +!IF "$(USE_SYSGL)" == "0" +SRCFILES = $(SRCFILES) blendeq.c blendxor.c +!ENDIF + +# The following items have not been ported to the environment... + +NAUGHTY = oglinfo.c |