Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
########################################################################## # # Makefile for OUTLUI.DLL # # Usage: NMAKE (builds DEBUG library) # or: NMAKE RELEASE=1 (builds RELEASE library -- no debug symbols) # or: NMAKE clean (erase all compiled files) # # Environment variables: # DEVROOT_DIR=<path> (root dir for sample code development) # ##########################################################################
LIBNAME = outlui
!ifndef DEVROOT_DIR !error You must define DEVROOT_DIR (ole20 sub-tree) !endif !ifndef INCLUDE !error You must define INCLUDE (non ole20 include files) !endif !ifndef LIB !error You must deinfe LIB (non ole20 libraries) !endif !ifndef OLEBUILD OLEBUILD=NT !endif
OLE2_H=$(DEVROOT_DIR)\h OLE2_LIB=$(DEVROOT_DIR)\lib
!ifndef SAMPLE_DIR SAMPLE_DIR = $(DEVROOT_DIR)\samples !endif SRC_DIR = $(SAMPLE_DIR)\$(APP)
MAKEFILE = makefile.32
# ============================================================================ # File: M A K E F I L E # # NMAKE description file for the OLE2.0 User Interface DLL # # Copyright (C) Microsoft Corporation, 1992-1993. All Rights Reserved. # Microsoft Confidential. # ============================================================================
# ---------------------------------------------------------------------------- # U I M A K E . I N I # ----------------------------------------------------------------------------
!if "$(OLEBUILD)" == "DOS" || "$(OLEBUILD)" == "" DOS=1 !endif
!if "$(OLEBUILD)" == "NT" NT=1
!if "$(MACHINE)" == "i386" || "$(MACHINE)" == "" MACHINE = i386 MACHINE_D = _X86_ MACHINE_CC = cl386 !endif
!if "$(MACHINE)" == "MIPS" MACHINE = mips MACHINE_D = _MIPS_ MACHINE_CC = cc !endif
!endif
!include "uimake.ini"
!ifndef LANG LANG=USA !endif
!ifndef BUILD BUILD=dll !endif
GOAL: MAKEINI nmake -f $(MAKEFILE) PRELUDE SETFLAGS $(LIBNAME).$(BUILD)
MAKEINI: nmake -f $(MAKEFILE) LIBNAME=$(LIBNAME) LANG=$(LANG) BUILD=$(BUILD) RESOURCE=RESOUCE REL_DIR=$(OLEREL_DIR) DEBUG
!if "$(INSTALL_DIR)"=="" INSTALL_DIR = $(REL_DIR) !endif
#use src/tok pairs to build if localized version !if ("$(LANG)"!="USA") && ("$(LANG)"!="usa") SRCTOK=1 !endif
# ---------------------------------------------------------------------------- # O B J E C T F I L E L I S T # ----------------------------------------------------------------------------
UI_COBJS = \ D^\busy.obj\ D^\common.obj\ D^\convert.obj\ D^\dbgutil.obj\ D^\drawicon.obj\ D^\hatch.obj\ D^\icon.obj\ D^\iconbox.obj\ D^\insobj.obj\ D^\links.obj\ D^\msgfiltr.obj\ D^\enumfetc.obj\ D^\objfdbk.obj\ D^\ole2ui.obj\ D^\olestd.obj\ D^\targtdev.obj\ D^\oleutl.obj\ D^\pastespl.obj\ D^\regdb.obj\ D^\resimage.obj\ D^\utility.obj\
UI_NOPCOBJS = \ D^\geticon.obj\
UI_DLLOBJS = \ D^\dllfuncs.obj\
PRECOMPOBJ=$(O)precomp.obj
PRECOMP=$(O)precomp.pch
# ---------------------------------------------------------------------------- # R E S O U R C E L I S T # ---------------------------------------------------------------------------- RES = \ busy.h \ common.h \ convert.h \ edlinks.h \ geticon.h \ icon.h \ iconbox.h \ insobj.h \ msgfiltr.h \ enumfetc.h \ ole2ui.h \ pastespl.h \ resimage.h \ $(RESOURCE)\STATIC\default.ico \ $(RESOURCE)\STATIC\bang.ico \ $(RESOURCE)\STATIC\egares.bmp \ $(RESOURCE)\STATIC\hivgares.bmp \ $(RESOURCE)\STATIC\vgares.bmp \ $(RESOURCE)\$(LANG)\strings.rc \ $(RESOURCE)\$(LANG)\busy.dlg \ $(RESOURCE)\$(LANG)\convert.dlg \ $(RESOURCE)\$(LANG)\fileopen.dlg \ $(RESOURCE)\$(LANG)\icon.dlg \ $(RESOURCE)\$(LANG)\insobj.dlg \ $(RESOURCE)\$(LANG)\links.dlg \ $(RESOURCE)\$(LANG)\pastespl.dlg \ $(RESOURCE)\$(LANG)\prompt.dlg \ $(RESOURCE)\ole2ui.rcv \ $(RESOURCE)\$(LANG)\verlocal.h \
# ---------------------------------------------------------------------------- # D E B U G S T A T I C L I B M A K E P A R A M E T E R S # ---------------------------------------------------------------------------- DEBUGLIB: @echo Creating DEBUG LIB <<uimake.ini # This is the DEBUG static .LIB UILibrary INI file MSG=DEBUG Static LIB Version ($$(LANG)) DEBUG=1 MODEL=M # Make a static library called OLE2UI.LIB LIBNAME=OLE2UI REL_DIR=$(REL_DIR) OLEREL_DIR=$(OLEREL_DIR) OBJ=DEBUGLIB BUILD=LIB RESOURCE=RESOURCE CFLAGS=-c -Od -GA2s -W3 -Zpei -A$(MODEL) -D_DEBUG RFLAGS=-D DEBUG LFLAGS=/MAP:FULL /CO /LINE /NOD /NOE /SE:300 UILIBS=mlibcew libw ole2 storage shell commdlg toolhelp CC=cl AS=masm RS=rc LK=link LANG=$(LANG) LIBOBJS = $$(UI_COBJS:D^\=DEBUGLIB^\) $$(UI_NOPCOBJS:D^\=DEBUGLIB\NOPC^\) <<KEEP @echo Creating <<uiclass.h #define OLEUICLASS1 "$(LIBNAME)Class1" #define OLEUICLASS2 "$(LIBNAME)Class2" <<KEEP @echo Enter "$(MAKE)" to make Debug static LIB UILibrary
# ---------------------------------------------------------------------------- # R E T A I L S T A T I C L I B M A K E P A R A M E T E R S # ---------------------------------------------------------------------------- RETAILIB: @echo Creating RETAIL LIB <<uimake.ini # This is the RETAIL static .LIB UILibrary INI file MSG=RETAIL Static LIB Version ($$(LANG)) RETAIL=1 MODEL=M # Make a static library called OLE2UI.LIB LIBNAME=OLE2UI REL_DIR=$(REL_DIR) OLEREL_DIR=$(OLEREL_DIR) OBJ=RETAILIB BUILD=LIB RESOURCE=RESOURCE CFLAGS=-c -Os -GA2s -W3 -Zpe -A$(MODEL) RFLAGS= LFLAGS=/MAP:FULL /LINE /NOD /NOE /SE:300 UILIBS=mlibcew libw ole2 storage shell commdlg toolhelp CC=cl AS=masm RS=rc LK=link LANG=$(LANG) LIBOBJS = $$(UI_COBJS:D^\=RETAILIB^\) $$(UI_NOPCOBJS:D^\=RETAILIB\NOPC^\) <<KEEP @echo Creating <<uiclass.h #define OLEUICLASS1 "$(LIBNAME)Class1" #define OLEUICLASS2 "$(LIBNAME)Class2" <<KEEP @echo Enter "$(MAKE)" to make Retail static LIB UILibrary
# ---------------------------------------------------------------------------- # D E B U G M A K E P A R A M E T E R S # ---------------------------------------------------------------------------- !ifdef NT
DEBUG: @echo Creating DEBUG for NT <<uimake.ini # This is the DEBUG UILibrary INI file MSG=DEBUG Version ($$(LANG)) DEBUG=1 LIBNAME=$(LIBNAME) REL_DIR=$(REL_DIR) OLEREL_DIR=$(OLEREL_DIR) OBJ=DEBUG RESOURCE=RESOURCE
CC = $(MACHINE_CC) DEFS1 = /D$(MACHINE_D) /D_DEBUG /D_DEBUGTRACE=0 /DWIN32 /DOLE2SHIP DEFS2 = /D$(MACHINE)=1 /D_NTWIN /D_WINDOWS /DWINVER=0x030A /D_NTDLL /D_DLL CFLAGS = $$(DEFS1) $$(DEFS2) /Z7 /Od /c /Fc /G3 /W3 /nologo $(CL) LFLAGS = -subsystem:windows -machine:$(MACHINE) -debug:mapped,full -debugtype:both RFLAGS = /DWIN32 /D_DEBUG UILIBS1 = mpr.lib crtdll.lib ntdll.lib UILIBS2 = ole2w32.lib storag32.lib UILIBS3 = kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib comdlg32.lib UILIBS = $$(UILIBS1) $$(UILIBS2) $$(UILIBS3)
LK = link32
LANG = $(LANG) RS = rc
DLLOBJS = $$(UI_DLLOBJS:D^\=DEBUG^\) LIBOBJS = $$(UI_COBJS:D^\=DEBUG^\) $$(UI_NOPCOBJS:D^\=DEBUG\NOPC^\) <<KEEP @echo Enter "$(MAKE)" to make Debug UILibrary
!else
DEBUG: @echo Creating DEBUG <<uimake.ini # This is the DEBUG UILibrary INI file MSG=DEBUG DLL Version ($$(LANG)) DEBUG=1 MODEL=M LIBNAME=$(LIBNAME) REL_DIR=$(REL_DIR) OLEREL_DIR=$(OLEREL_DIR) OBJ=DEBUG BUILD=DLL RESOURCE=RESOURCE CFLAGS=-c -Od -GD2s -W3 -Zpei -AMw -D_DEBUG -DDLL_VER -D_WINDLL RFLAGS=-D DEBUG -D DLL_VER LFLAGS=/MAP:FULL /CO /LINE /NOD /NOE /SE:300 UILIBS=mdllcew libw ole2 storage shell commdlg toolhelp CC=cl RS=rc LK=link LANG=$(LANG) DLLOBJS = $$(UI_DLLOBJS:D^\=DEBUG^\) LIBOBJS = $$(UI_COBJS:D^\=DEBUG^\) $$(UI_NOPCOBJS:D^\=DEBUG\NOPC^\) <<KEEP @echo Creating <<uiclass.h #define OLEUICLASS1 "$(LIBNAME)Class1" #define OLEUICLASS2 "$(LIBNAME)Class2" <<KEEP @echo Enter "$(MAKE)" to make Debug UILibrary
!endif # ---------------------------------------------------------------------------- # R E T A I L D L L M A K E P A R A M E T E R S # ---------------------------------------------------------------------------- RETAIL: @echo Creating RETAIL <<uimake.ini # This is the RETAIL UILibrary INI file MSG=RETAIL DLL Version ($$(LANG)) RETAIL=1 MODEL=M LIBNAME=$(LIBNAME) REL_DIR=$(REL_DIR) OLEREL_DIR=$(OLEREL_DIR) OBJ=RETAIL BUILD=DLL RESOURCE=RESOURCE CFLAGS=-c -Os -GD2s -W3 -Zpe -AMw -DOPTIMIZE -DDLL_VER -D_WINDLL RFLAGS=-D DLL_VER LFLAGS=/MAP /NOD /NOE /SE:300 /AL:16 UILIBS=mdllcew libw ole2 storage shell commdlg toolhelp CC=cl RS=rc LK=link LANG=$(LANG) DLLOBJS = $$(UI_DLLOBJS:D^\=RETAIL^\) LIBOBJS = $$(UI_COBJS:D^\=RETAIL^\) $$(UI_NOPCOBJS:D^\=RETAIL\NOPC^\) <<KEEP @echo Creating <<uiclass.h #define OLEUICLASS1 "$(LIBNAME)Class1" #define OLEUICLASS2 "$(LIBNAME)Class2" <<KEEP @echo Enter "$(MAKE)" to make Retail UILibrary
!if [if not exist $(OBJ)\*. md $(OBJ) >nul] !error Object subdirectory $(OBJ)\ could not be created !endif !if [if not exist $(OBJ)\NOPC\*. md $(OBJ)\NOPC > nul] !error non-precompiled header object subdirectory $(OBJ)\NOPC\ could not be created !endif
#select language for version resource if localized version !if ("$(LANG)"!="USA") && ("$(LANG)"!="usa") RFLAGS=$(RFLAGS) -D VER_LOC !endif
!if ("$(LIBNAME)"=="PUBOLEUI") RFLAGS=$(RFLAGS) -D PUBLISHER !endif
.SUFFIXES: .c .asm .obj .res .rc .def .bmp .ico .exe .dll .cod .str
O=.\$(OBJ)^\
# ---------------------------------------------------------------------------- # I N F E R E N C E R U L E S # ---------------------------------------------------------------------------- # compile C file without precompiled headers into object directory\NOPC # dont compile c files etc for lcoalized builds. !ifndef SRCTOK
{}.c{$(O)NOPC\}.obj: @echo ������������������������� Compiling $(@B).c ������������������������� !ifdef DOS SET CL=$(CFLAGS) $(CC) -Fo$(O)NOPC\$(@B) $(@B).c !else $(CC) $(CFLAGS) -Fo$(O)NOPC\$(@B) $(@B).c !endif
# compile C file into object directory {}.c{$(O)}.obj: @echo ������������������������� Compiling $(@B).c ������������������������� !ifdef DOS SET CL=$(CFLAGS) -Yuole2ui.h -Fp$(O)precomp.pch $(CC) -Fo$(O)$(@B) $(@B).c !else $(CC) $(CFLAGS) -Yuole2ui.h -Fp$(O)precomp.pch -Fo$(O)$(@B) $(@B).c !endif
!endif #endif SRCTOK
{}.rc{$(O)}.res: @echo ������������������� Resource Compiling $(@B).res �������������������� $(RS) -I $(RESOURCE)\$(LANG);$(RESOURCE)\static;$(RESOURCE) -FO $(O)$(@B).res -R $(RFLAGS) $(@B).rc -del $(LIBNAME).dll
!ifndef SRCTOK {}.c.cod: @echo ����������������������� Making $(@B).cod ����������������������� !ifdef DOS SET CL=$(CFLAGS) -f -Fc $(CC) $(@B).c !else $(CC) $(CFLAGS) -f- -Fc $(@B).c !endif !endif #endif SRCTOK
# rules for creating rc & dlg files for localized verisons from src/tok pairs !ifdef SRCTOK
$(RESOURCE)\$(LANG)\busy.dlg : $(RESOURCE)\$(LANG)\busy.tok $(RESOURCE)\src\busy.src tok -q -f $*.tok $(RESOURCE)\src\$(@B).src > $@
$(RESOURCE)\$(LANG)\convert.dlg : $(RESOURCE)\$(LANG)\convert.tok $(RESOURCE)\src\convert.src tok -q -f $*.tok $(RESOURCE)\src\$(@B).src > $@
$(RESOURCE)\$(LANG)\fileopen.dlg : $(RESOURCE)\$(LANG)\fileopen.tok $(RESOURCE)\src\fileopen.src tok -q -f $*.tok $(RESOURCE)\src\$(@B).src > $@
$(RESOURCE)\$(LANG)\icon.dlg : $(RESOURCE)\$(LANG)\icon.tok $(RESOURCE)\src\icon.src tok -q -f $*.tok $(RESOURCE)\src\$(@B).src > $@
$(RESOURCE)\$(LANG)\insobj.dlg : $(RESOURCE)\$(LANG)\insobj.tok $(RESOURCE)\src\insobj.src tok -q -f $*.tok $(RESOURCE)\src\$(@B).src > $@
$(RESOURCE)\$(LANG)\links.dlg : $(RESOURCE)\$(LANG)\links.tok $(RESOURCE)\src\links.src tok -q -f $*.tok $(RESOURCE)\src\$(@B).src > $@
$(RESOURCE)\$(LANG)\pastespl.dlg : $(RESOURCE)\$(LANG)\pastespl.tok $(RESOURCE)\src\pastespl.src tok -q -f $*.tok $(RESOURCE)\src\$(@B).src > $@
$(RESOURCE)\$(LANG)\prompt.dlg : $(RESOURCE)\$(LANG)\prompt.tok $(RESOURCE)\src\prompt.src tok -q -f $*.tok $(RESOURCE)\src\$(@B).src > $@
$(RESOURCE)\$(LANG)\strings.rc : $(RESOURCE)\$(LANG)\strings.tok $(RESOURCE)\src\strings.src tok -q -f $*.tok $(RESOURCE)\src\$(@B).src > $@ !endif
# ---------------------------------------------------------------------------- # D E P E N D F I L E C R E A T I O N # ---------------------------------------------------------------------------- UI_CFILE = $(UI_COBJS:.obj=.c) $(UI_DLLOBJS:.obj=.c) UI_NOPCFILE = $(UI_NOPCOBJS:.obj=.c) DEPEND: nul @echo Making a NEW dependancy file. mkdep -p $$(O) -s .obj $(UI_CFILE:D^\=) > tmp.tmp sed "s/:/: $$(PRECOMP)/g" < tmp.tmp > depend -del tmp.tmp mkdep -p $$(O)NOPC\ -s .obj $(UI_NOPCFILE:D^\=) >> depend mkdep -p $$(O) -s .pch precomp.c >> depend
# ---------------------------------------------------------------------------- # W E L C O M E B A N N E R # ---------------------------------------------------------------------------- PRELUDE: @echo ������������������������ͻ @echo � Makefile for UILibrary � @echo ������������������������ͼ @echo $(MSG) !ifndef SRCTOK set INCLUDE=$(OLEREL_DIR);$(INCLUDE) set LIB=$(OLEREL_DIR);$(LIB) !endif
SETFLAGS: set INCLUDE=$(INCLUDE);$(OLE2_H) set LIB=$(LIB);$(OLE2_LIB)
# ---------------------------------------------------------------------------- # G O A L T A R G E T S # ---------------------------------------------------------------------------- !include "depend"
CLEAN: CleanUp GOAL
CleanUp: MAKEINI nmake -f $(MAKEFILE) SETFLAGS Delete
Delete: -echo y|del .\$(OBJ)\*.* -del $(LIBNAME).dll -del $(LIBNAME).lib
!ifndef SRCTOK
$(O)precomp.pch: precomp.c !ifdef DOS SET CL=$(CFLAGS) -Fp$(O)precomp.pch -Ycole2ui.h $(CC) -Fo$(O)$(@B) precomp.c !else $(CC) $(CFLAGS) -Fp$(O)precomp.pch -Ycole2ui.h -Fo$(O)$(@B) precomp.c !endif !endif #endif SRCTOK
$(O)ole2ui.res: ole2ui.rc $(RES)
ole2ui.rc : $(RESOURCE)\$(LANG)\strings.rc
# # Build .LIB static library #
$(LIBNAME).lib: $(LIBOBJS) $(PRECOMPOBJ) -del $(O)$(LIBNAME).lib lib @<< $(O)$(LIBNAME).lib y $(PRECOMPOBJ: = +) $(LIBOBJS: = +)
<< copy $(O)$(LIBNAME).lib $(LIBNAME).lib
# # Build .DLL dynamic-link library #
!if "$(OLEBUILD)" == "NT" !else $(O)$(LIBNAME).lib: $(LIBOBJS) $(PRECOMPOBJS) -del $(O)$(LIBNAME).lib lib @<< $(O)$(LIBNAME).lib y $(PRECOMPOBJ: = +) $(LIBOBJS: = +)
<< !endif
!if "$(OLEBUILD)" == "NT"
$(LIBNAME).dll: $(LIBNAME).d32 $(PRECOMPOBJS) $(LIBOBJS) $(DLLOBJS) $(O)ole2ui.res @echo Linking ... lib32 -out:$*.lib -def:$(LIBNAME).d32 -machine:$(MACHINE) $(LIBOBJS) $(DLLOBJS) cvtres -$(MACHINE) $(O)ole2ui.res -o $*.rs link32 $(LFLAGS) -entry:LibMain@12 @<<$(BUILD_DIR)\ole2util.lnk $(LIBNAME).exp $(LIBOBJS) $(DLLOBJS) $(PRECOMPOBJ) $(UILIBS) $*.rs -out:$@ -map:$*.map -dll $(UILIBS) <<KEEP
!else $(O)$(LIBNAME).exe: $(O)$(LIBNAME).lib $(DLLOBJS) $(O)ole2ui.res @echo �����������������������į Linking UILibrary ������������������������� @echo Creating <<$(O)$(@B).lnk $(LFLAGS) + $(PRECOMPOBJ: = +^ )+ $(DLLOBJS: = +^ )+
$(O)$(@B) $(@B).map $(UILIBS) $(O)$(LIBNAME).lib $(LIBNAME).def <<KEEP
$(LK) @$(O)$(@B).lnk $(RS) -31 $(RFLAGS) $(O)ole2ui.res $(O)$(LIBNAME).exe
!ifndef SRCTOK $(LIBNAME).dll: $(O)$(LIBNAME).exe ole2ui.def copy $(O)$(LIBNAME).exe $(LIBNAME).dll mapsym -n -l $(LIBNAME).map implib $(LIBNAME).lib $(LIBNAME).dll !else $(LIBNAME).dll: $(O)ole2ui.res copy $(RESOURCE)\USA\$(LIBNAME).dll $(LIBNAME).dll $(RS) -31 -K $(RFLAGS) $(O)ole2ui.res $(LIBNAME).dll !endif !endif #endif SRCTOK
install: MAKEINI nmake -f $(MAKEFILE) SETFLAGS InstallAll
# install built library to $(INSTALL_DIR) dir InstallAll: copy $(LIBNAME).dll $(INSTALL_DIR) copy $(LIBNAME).lib $(INSTALL_DIR) copy $(LIBNAME).sym $(INSTALL_DIR) copy ole2ui.h $(INSTALL_DIR) copy msgfiltr.h $(INSTALL_DIR) copy enumfetc.h $(INSTALL_DIR) copy regdb.h $(INSTALL_DIR) copy olestd.h $(INSTALL_DIR) copy geticon.h $(INSTALL_DIR) copy ole2ui.rc $(INSTALL_DIR) copy uiclass.h $(INSTALL_DIR) # EOF ========================================================================
|