home *** CD-ROM | disk | FTP | other *** search
Makefile | 1994-12-07 | 7.7 KB | 264 lines |
- #---------------------------------------------------------------------------------
- # File: MAKEFILE
- # Copyright (c) 1993 Microsoft Corp., All rights reserved
- #
- # Purpose:
- # This makefile will compile both 16 and 32-bit auto test DLL's. See
- # the documentation for the BUILD.EXE utility program for more details.
- #---------------------------------------------------------------------------------
-
-
-
- #-------------------------------------------------------------------------
- # When user specifies -o, this section is set
- #-------------------------------------------------------------------------
- #setenv:
-
-
- #-------------------------------------------------------------------------
- # Set platform compiler and linker flags
- #-------------------------------------------------------------------------
- !IF "$(ALPHA)" == "Y"
- CPLATFORM = _ALPHA_
- LPLATFORM = ALPHA
- !ELSEIF "$(MIPS)" == "Y"
- CPLATFORM = _MIPS_
- LPLATFORM = MIPS
- !ELSE
- CPLATFORM = _X86_
- LPLATFORM = i386
- !ENDIF
-
-
- #-------------------------------------------------------------------------
- # Set flags for 16-bit version
- #-------------------------------------------------------------------------
- !IF "$(WIN32)" == "N"
- cc = cl
- LINK = link $(LDEBUG)
- LIBDIR = ..\..\LIB\LIB16
- !IF "$(DEBUG)" == "Y"
- CDBG = -nologo -AL -G2sw -W2 -Zi -Od -NT$(@B) -D_DEBUG -DWINDOWS -DDLL_INVOKED
- LDEBUG = /NOD /NOE /align:32 /SEGMENTS:511 /CO
- RDEBUG = /dDEBUG
- OBJDIR = .\DEBUG
- OBJDIR = $(OBJDIRDBGY)
- EXEDIR = $(OBJDIRDBGY)
- !ELSE
- CDBG = -nologo -AL -Gsw -W2 -Ox -NT$(@B) -DWINDOWS -DDLL_INVOKED
- LDEBUG = /NOD /NOE /align:32
- OBJDIR = $(OBJDIRDBGN)
- EXEDIR = $(OBJDIRDBGN)
- !ENDIF
- !ELSE
- #-------------------------------------------------------------------------
- # Set flags for 32-bit version
- #-------------------------------------------------------------------------
- cc = cl
- LINK = link -entry:TstLibMain$(DLLENTRY) -machine:$(LPLATFORM) /PDB:NONE $(LDEBUG)
- LIBS = user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib ole32.lib shell32.lib odbc32.lib gtrtst32.lib
- LIBDIR = ..\..\LIB32
- !IF "$(DEBUG)" == "Y"
- CDBG = /nologo /W3 /Zi /D "$(CPLATFORM)" /D "_DEBUG" /D "WIN32" /DDLL_INVOKED /MT
- LDEBUG = -debug:full -debugtype:cv
- RDEBUG = -d_DEBUG
- OBJDIR = $(OBJDIRDBGY)
- EXEDIR = $(OBJDIRDBGY)
- !ELSE
- CDBG = /nologo /W3 /D "$(CPLATFORM)" /D "WIN32" -DDLL_INVOKED /MT
- LDEBUG =
- OBJDIR = $(OBJDIRDBGN)
- EXEDIR = $(OBJDIRDBGN)
- !ENDIF
- !ENDIF
-
-
- #-------------------------------------------------------------------------
- # List common dependencies
- #-------------------------------------------------------------------------
- SQLINC = ..\..\INCLUDE
- TSTINC = .
- INCTEST = $(SQLINC)\sql.h \
- $(SQLINC)\sqlext.h \
- $(TSTINC)\autotest.h
-
-
- #-------------------------------------------------------------------------
- # Entire makefile is dependent on the test DLL and the correct environment
- #-------------------------------------------------------------------------
- all: $(EXEDIR)\$(TSTNM).dll
-
-
- #-------------------------------------------------------------------------
- # Create the TEST.DEF file based on our values
- #-------------------------------------------------------------------------
- $(EXEDIR)\TEST.DEF:
- @echo LIBRARY $(TSTNM) > $@
- @echo DESCRIPTION '$(TSTNM) Test DLL' >> $@
- @echo CODE PRELOAD MOVEABLE LOADONCALL DISCARDABLE >> $@
- @echo DATA PRELOAD MOVEABLE >> $@
- @echo HEAPSIZE 5120 >> $@
- @echo PROTMODE >> $@
- @echo SEGMENTS >> $@
- !IF "$(WIN32)" == "N"
- @echo EXETYPE WINDOWS >> $@
- @echo STUB 'WINSTUB.EXE' >> $@
- !ENDIF
- @echo EXPORTS >> $@
- !IF "$(WIN32)" == "Y"
- @echo TstLibMain >> $@
- !ELSE
- @echo LibMain >> $@
- !ENDIF
- @echo AutoTestName >> $@
- @echo AutoTestDesc >> $@
- @echo AutoTestFunc >> $@
-
-
- #-------------------------------------------------------------------------
- # List the .OBJ dependencies
- #-------------------------------------------------------------------------
-
- #
- # The following will always be used
- #
- $(OBJDIR)\$(TSTNM).obj: $(SRCDIR)\$(TSTNM).C \
- .\DLLSTUB.C \
- .\MAKEFILE \
- !IF "$(HFILE)" == "Y"
- $(INCDIR)\$(TSTNM).H \
- !ENDIF
- $(INCTEST)
- $(cc) $(CDBG) -I$(INCDIR) -Fo$(OBJDIR)\$(@B).obj -c $(SRCDIR)\$(@B).c
-
- #
- # This dependency is for auto tests with more than one .C file.
- #
- !IF "$(ADDL1)" == "Y"
- $(OBJDIR)\$(TSTNM)1.obj: $(SRCDIR)\$(TSTNM)1.C \
- .\DLLSTUB.C \
- .\MAKEFILE \
- !IF "$(HFILE)" == "Y"
- $(INCDIR)\$(TSTNM).H \
- !ENDIF
- $(INCTEST)
- $(cc) $(CDBG) -DADDL_AUTO_TEST -I$(INCDIR) -Fo$(OBJDIR)\$(@B).obj -c $(SRCDIR)\$(@B).c
- !ENDIF
-
- !IF "$(ADDL2)" == "Y"
- $(OBJDIR)\$(TSTNM)2.obj: $(SRCDIR)\$(TSTNM)2.C \
- .\DLLSTUB.C \
- .\MAKEFILE \
- !IF "$(HFILE)" == "Y"
- $(INCDIR)\$(TSTNM).H \
- !ENDIF
- $(INCTEST)
- $(cc) $(CDBG) -DADDL_AUTO_TEST -I$(INCDIR) -Fo$(OBJDIR)\$(@B).obj -c $(SRCDIR)\$(@B).c
- !ENDIF
-
-
-
- #
- # The stub is required to make a full DLL
- #
- $(OBJDIR)\DLLSTUB.obj: .\DLLSTUB.C
- $(cc) $(CDBG) -Fo$(OBJDIR)\$(@B).obj -c .\$(@B).c
-
-
-
-
- #-------------------------------------------------------------------------
- # Build .res file
- #-------------------------------------------------------------------------
- !IF "$(RCFILE)" == "Y"
- $(OBJDIR)\$(TSTNM).res: $(INCDIR)\$(TSTNM).H \
- $(RCDIR)\$(TSTNM).rc
- rc $(RDEBUG) -r -i $(INCDIR) -FO$(OBJDIR)\$(TSTNM).res $(RCDIR)\$(TSTNM).rc
- !ENDIF
-
-
- #-------------------------------------------------------------------------
- # Do the .lib which is required for NT
- #-------------------------------------------------------------------------
- #!IF "$(WIN32)" == "Y"
- #$(OBJDIR)\$(TSTNM).LIB: $(EXEDIR)\TEST.DEF
- # $(LIB) -machine:$(CPU) \
- # -def:$(EXEDIR)\TEST.DEF \
- # -out:$(OBJDIR)\$(TSTNM).LIB \
- # $(OBJDIR)\$(TSTNM).OBJ \
- # $(OBJDIR)\DLLSTUB.OBJ
- #!ENDIF
-
-
- #-------------------------------------------------------------------------
- # Now do the executable
- #-------------------------------------------------------------------------
-
- # First do 16-bit
- !IF "$(WIN32)" == "N"
- $(EXEDIR)\$(TSTNM).dll: $(OBJDIR)\$(TSTNM).OBJ \
- $(OBJDIR)\DLLSTUB.OBJ \
- !IF "$(ADDL1)" == "Y"
- $(OBJDIR)\$(TSTNM)1.OBJ \
- !ENDIF
- !IF "$(ADDL2)" == "Y"
- $(OBJDIR)\$(TSTNM)2.OBJ \
- !ENDIF
- $(LIBDIR)\GATORTST.LIB \
- !IF "$(RCFILE)" == "Y"
- $(OBJDIR)\$(TSTNM).RES \
- !ENDIF
- $(EXEDIR)\TEST.DEF \
- .\MAKEFILE
- $(LINK) @<<
- /MAP +
- $(OBJDIR)\DLLSTUB.OBJ +
- !IF "$(ADDL1)" == "Y"
- $(OBJDIR)\$(TSTNM)1.OBJ +
- !ENDIF
- !IF "$(ADDL2)" == "Y"
- $(OBJDIR)\$(TSTNM)2.OBJ +
- !ENDIF
- $(OBJDIR)\$(TSTNM).OBJ,
- $(EXEDIR)\$(TSTNM).DLL,
- NUL,
- libw ldllcew commdlg odbc gatortst,
- $(EXEDIR)\TEST.DEF
- <<
- !IF "$(RCFILE)" == "Y"
- rc -K -31 -t $(OBJDIR)\$(TSTNM).RES $(EXEDIR)\$(TSTNM).DLL
- !ENDIF
- !ELSE
- # Now do 32-bit
- $(EXEDIR)\$(TSTNM).dll: $(OBJDIR)\$(TSTNM).OBJ $(OBJDIR)\DLLSTUB.OBJ $(LIBDIR)\GTRTST32.LIB $(EXEDIR)\TEST.DEF \
- !IF "$(ADDL1)" == "Y"
- $(OBJDIR)\$(TSTNM)1.OBJ \
- !ENDIF
- !IF "$(ADDL2)" == "Y"
- $(OBJDIR)\$(TSTNM)2.OBJ \
- !ENDIF
- !IF "$(RCFILE)" == "Y"
- $(OBJDIR)\$(TSTNM).res \
- !ENDIF
- .\MAKEFILE
- echo >NUL @<<$(TSTNM).CRF
- $(OBJDIR)\$(TSTNM).OBJ
- $(OBJDIR)\DLLSTUB.OBJ
- !IF "$(ADDL1)" == "Y"
- $(OBJDIR)\$(TSTNM)1.OBJ
- !ENDIF
- !IF "$(ADDL2)" == "Y"
- $(OBJDIR)\$(TSTNM)2.OBJ
- !ENDIF
- -DLL -OUT:$(EXEDIR)\$(TSTNM).dll
- !IF "$(RCFILE)" == "Y"
- $(OBJDIR)\$(TSTNM).res
- !ENDIF
- -def:$(OBJDIR)\TEST.DEF -implib:$(OBJDIR)\$(TSTNM).LIB
- <<
- $(LINK) $(LIBS) @$(TSTNM).CRF
- !ENDIF
-
- -@del $(OBJDIR)\TEST.DEF
-