📄 makefile
字号:
gwectrl btnctl_tpc btnctlview btnctlviewxp btnctl cmbctlview cmbctlviewxp cmbctl imectl \
edctl EditControlOs EditControlPpc EditControlTpc edimefe EdImeFeTpc imgctl lbctlview lbctlviewxp lbctl_ppc lbctl_tpc lbctl scbctl stcctlview \
stcctlviewxp stcctl cursor mcursor \
MouseCursorOnly TouchCursorOnly MouseAndTouchCursor msgbox msgbox_tpc column menu_hpc menu_ppc menu_tpc menuscrl menubc drawmbar mOverlap mNoOver mTapUI mNoTapUI cascade \
oom startup dlgmgr_hpc dlgmgr_ppc dlgmgr_tpc dlgmgr dlgmnem gweshare d3dmhook:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
# Get ready to link GWES. First clear the library and resource lists.
# Need to do some extra work for gwe resources. Some configs have gwe
# components but no gwe resources. GWES_RESOURCES is set to dummy, which
# is ignored by res2res. In addition, GWES_TARGET_RESOURCE is set only
# when a resource is used. It is used in the final link of gwes.exe.
# If no resources have been selected, it will be empty, so there won't
# be any link error.
gwes::
@set GWELIBS=
@set GWES_RESOURCES=dummy
set GWES_TARGET_RESOURCE=
# To build gwes.exe, we build up the replacements first followed by the
# regular components and then build the full gwes static library.
# Next, the library will be linked into an exe.
gwes::$(GWES_REPLACE) $(GWES_REPLACE_COMPONENTS) $(GWES_COMPONENTS) lib_gwes
@echo GWES_REPLACE: $(GWES_REPLACE)
@echo GWES_REPLACE_COMPONENTS: $(GWES_REPLACE_COMPONENTS)
@echo GWES_COMPONENTS: $(GWES_COMPONENTS)
@echo GWES_RESOURCES: %GWES_RESOURCES%
@echo GWES_TARGET_RESOURCE: %GWES_TARGET_RESOURCE%
# Set up the "sources file" environment variables for the link operation.
# The lib was built earlier. We build the lib and exe in two steps so that
# we can make sure that the stubs are added last. Base resources are copied
# into an 0409 subdirectory so that creating the resource file can be done consistently.
gwes:: 0409_base_resources gwestubs
# Always create the resources for the given locale.
$(RES2RES) %%GWES_RESOURCES%% -fo $(SG_OUTPUT_OAKTGT)\$(CURRENT_LANGID)\gwes.res
# Only need to relink for 0409 locale.
!IF "$(CURRENT_LANGID)" == "0409"
@set TARGETTYPE=PROGRAM
@set TARGETNAME=$@
@set RELEASETYPE=OAK
@set TARGETLIBS=$(SG_OUTPUT_SDKLIB)\coredll.lib $(SG_OUTPUT_OAKLIB)\gwes.lib $(SG_OUTPUT_SDKLIB)\gwestubs.lib %GWES_TARGET_RESOURCE%
@set SOURCELIBS=
@set EXEENTRY=WinMain
$(MAKECMD) /NOLOGO $(SG_OUTPUT_OAKTGT)\gwes.exe
!ENDIF
# Concatenate the modules in GWELIBS into gwes.lib. This will avoid possible
# linker complaints about duplicate symbols in gwestubs.lib. This only needs to
# be done once when we are creating the executable.
lib_gwes: ceosutil
!IF "$(CURRENT_LANGID)" == "0409"
@set TARGETTYPE=LIBRARY
@set TARGETNAME=gwes
@set RELEASETYPE=OAK
@set TARGETLIBS=
@set SOURCELIBS=%%GWELIBS%% $(SG_OUTPUT_SDKLIB)\ceosutil.lib
@set SOURCEPDBS=$(SG_INPUT_LIB)\mgdi.pdb
@echo Creating gwes.lib
$(MAKECMD) /NOLOGO $(SG_OUTPUT_OAKLIB)\gwes.lib
!ENDIF
filesys::
@set SOURCELIBS=
@set TARGETLIBS=$(SG_OUTPUT_SDKLIB)\coredll.lib $(SG_INPUT_LIB)\rsa32.lib $(SG_INPUT_LIB)\fsstubs.lib $(SG_INPUT_LIB)\fsdnot.lib $(SG_INPUT_LIB)\lockmgr.lib $(SG_INPUT_LIB)\$@.res
!IF "$(FILESYS_COMPONENTS)" != ""
$(FILESYS_COMPONENTS)::$(FILESYS_REPLACE_COMPONENTS)
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
!ENDIF
!IF "$(FILESYS_REPLACE_COMPONENTS)" != ""
$(FILESYS_REPLACE_COMPONENTS)::
@set SOURCELIBS=%%SOURCELIBS%% $(_PROJECTROOT)\oak\lib\$(_CPUINDPATH)\$@.lib
!ENDIF
filesys::$(FILESYS_COMPONENTS) $(FILESYS_REPLACE_COMPONENTS)
@set TARGETNAME=$@
@set RELEASETYPE=OAK
@set EXEENTRY=WinMain
$(MAKECMD) /NOLOGO $@.exe
!IF "$(PM_COMPONENTS)" != ""
pm:: pm_mdd_lib pm_default_pdd_lib pm_pda_pdd_lib pmstubs_lib pm_pdd_common_lib
pm::
@set SOURCELIBS=
@set TARGETLIBS=$(SG_OUTPUT_SDKLIB)\coredll.lib
pm_mdd pm_default_pdd pm_pda_pdd pmstubs pm_pdd_common:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@_lib.lib
pm:: $(PM_COMPONENTS)
@set RELEASETYPE=OAK
@set TARGETTYPE=DYNLINK
@set DLLENTRY=DllEntry
@set DEFFILE=$(_COMMONOAKROOT)\inc\$@.def
@set TARGETNAME=$@
$(MAKECMD) /NOLOGO $(SG_OUTPUT_OAKTGT)\$@.dll
!ELSE # "$(PM_COMPONENTS)" != ""
pm::
!ENDIF # "$(PM_COMPONENTS)" != ""
devmgr::
@set SOURCELIBS=
@set TARGETLIBS=$(SG_OUTPUT_SDKLIB)\coredll.lib
devmgr:: $(DEVICE_COMPONENTS)
@set RELEASETYPE=OAK
@set TARGETTYPE=DYNLINK
@set DLLENTRY=DllMain
@set DEFFILE=$(_COMMONOAKROOT)\inc\$@.def
@set TARGETNAME=$@
$(MAKECMD) /NOLOGO $(SG_OUTPUT_OAKTGT)\$@.dll
pmif::
@set TARGETLIBS=%%TARGETLIBS%% $(SG_OUTPUT_OAKLIB)\pm.lib
pmif nopmif devcore iorm::
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
device:: pm devmgr
@set SOURCELIBS=$(SG_INPUT_LIB)\devmain.lib
@set TARGETLIBS=$(SG_OUTPUT_OAKLIB)\devmgr.lib $(SG_OUTPUT_SDKLIB)\coredll.lib
@set TARGETNAME=$@
@set RELEASETYPE=OAK
@set EXEENTRY=WinMain
$(MAKECMD) /NOLOGO $@.exe
!IFNDEF FSDMGR_COMPONENTS
FSDMGR_COMPONENTS=fsdmain fsdserv storemgr fsdnot lockmgr
!ENDIF
fsdmgr::
@set SOURCELIBS=
@set TARGETLIBS=$(SG_OUTPUT_SDKLIB)\coredll.lib
fsdmgr::$(FSDMGR_COMPONENTS)
@set TARGETNAME=$@
@set RELEASETYPE=OAK
@set DLLENTRY=DllMain
@set DEFFILE=$(SG_INPUT_LIB)\$@.def
$(MAKECMD) /NOLOGO $@.dll
storemgr:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
-@xcopy /D /I $(SG_INPUT_LIB)\storeapi.lib $(SG_OUTPUT_OAKLIB)
fsdmain:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
fsdserv:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
fsdnot:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
lockmgr::
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
coredll::
@set SOURCELIBS=
@set COREDLL_RESOURCES=$(SG_INPUT_LIB)\$(CURRENT_LANGID)\coreres.res
coredll::$(COREDLL_REPLACE) $(COREDLL_REPLACE_COMPONENTS) $(COREDLL_MESSAGEDIALOGBOXCUSTOMIZE_COMPONENT) $(COREDLL_COMPONENTS) 0409_base_resources
@echo COREDLL_RESOURCES=%COREDLL_RESOURCES%
$(RES2RES) %%COREDLL_RESOURCES%% -fo $(SG_OUTPUT_OAKTGT)\$(CURRENT_LANGID)\$@.res
!IF "$(CURRENT_LANGID)" == "0409"
@set TARGETNAME=$@
@set RELEASETYPE=SDK
@set SOURCEPDBS=$(SG_INPUT_LIB)\mgdi.pdb
@set DLLENTRY=CoreDllInit
@set TARGETLIBS=$(SG_INPUT_LIB)\corestub.lib $(SG_OUTPUT_OAKTGT)\0409\$@.res
$(MAKECMD) /NOLOGO $@.dll
!ENDIF
# COREDLL_REPLACE needs to come *before* the explict rules for coredll components. That way the
# first rule (i.e. this one) will get used when we are replacing.
#
# If we are doing coredll component replacement or have the Message/Dialog Box component,
# then coredll is being built for a 2nd time during
# postproc. However during preproc the coredll_all.lib was already built. We now need to force it
# to be rebuilt. We do this by deleting it. Ugh.
# Component and resource files.
!IF "$(COREDLL_REPLACE)" != ""
$(COREDLL_REPLACE):
-@del $(DELFLAGS) $(SG_OUTPUT_OAKLIB)\coredll_ALL.lib > nul $(SG_XCOPYREDIRECT)
@set SOURCELIBS=%%SOURCELIBS%% $(_PROJECTROOT)\oak\lib\$(_CPUINDPATH)\$@.lib
@set COREDLL_RESOURCES=%%COREDLL_RESOURCES%% $(_PROJECTROOT)\oak\lib\$(_CPUINDPATH)\$(CURRENT_LANGID)\$@.res
!ENDIF
# Component only, no resource files.
!IF "$(COREDLL_REPLACE_COMPONENTS)" != ""
$(COREDLL_REPLACE_COMPONENTS):
-@del $(DELFLAGS) $(SG_OUTPUT_OAKLIB)\coredll_ALL.lib > nul $(SG_XCOPYREDIRECT)
@set SOURCELIBS=%%SOURCELIBS%% $(_PROJECTROOT)\oak\lib\$(_CPUINDPATH)\$@.lib
!ENDIF
# Message/Dialog Box component.
!IF "$(COREDLL_MESSAGEDIALOGBOXCUSTOMIZE_COMPONENT)" != ""
$(COREDLL_MESSAGEDIALOGBOXCUSTOMIZE_COMPONENT):
-@del $(DELFLAGS) $(SG_OUTPUT_OAKLIB)\coredll_ALL.lib > nul $(SG_XCOPYREDIRECT)
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
!ENDIF
## The components of COREDLL ##
coremain locusa lmem showerr thunks fiber acl serdev devload rectapi wmgr_c accel_c tapilib \
mmacm mmacmui mmwave mmsnd mmmix fmtmsg rsa32 mgdi_c fpemul corecrt coreimm coreimmstub \
coregwestub coresip asyncio multiui messagedialogboxthunk devmgmt fileinfo fileopen battery dsa \
tnotify snotify:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
cryptapi:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib $(SG_INPUT_LIB)\mincrypt_coredll.lib
## Filter only components of COREDLL, these filter in/out features from coredll.def
full_crt nostrsafe muireg secloader crypthash:
## Mini version of locale support. Uses LocUSA but restricts the API's supported
locmini:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\locusa.lib
# These components have RES files that go with them
shexec shcore shortcut shmisc coreloc:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
@set COREDLL_RESOURCES=%%COREDLL_RESOURCES%% $(SG_INPUT_LIB)\$(CURRENT_LANGID)\$@.res
# These components have ONLY RES files
fmtres timezones:
@set COREDLL_RESOURCES=%%COREDLL_RESOURCES%% $(SG_INPUT_LIB)\$(CURRENT_LANGID)\$@.res
# These components are used for filtering in sysgen. They aren't real libs ...
shellapis corestra corestrw coresioa coresiow:
corelibc::
@set SOURCELIBS=
@xcopy /I $(SG_INPUT_LIB)\ccrt*.pdb $(SG_OUTPUT_OAKLIB)
@xcopy /I $(SG_INPUT_LIB)\strsafea.pdb $(SG_OUTPUT_OAKLIB)
corelibc::$(CORELIBC_COMPONENTS)
@set TARGETNAME=$@
@set RELEASETYPE=SDK
@set TARGETLIBS=
@set SOURCEPDBS=
@set TARGETTYPE=LIBRARY
$(MAKECMD) /NOLOGO $(SG_OUTPUT_SDKLIB)\$@.lib
ccrtstrt:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
ws2::
@set SOURCELIBS=$(SG_INPUT_LIB)\ws2.lib
ws2::$(WS2_COMPONENTS)
@set TARGETNAME=$@
@set RELEASETYPE=SDK
@set TARGETLIBS=$(SG_OUTPUT_SDKLIB)\coredll.lib
@set DLLENTRY=dllentry
$(MAKECMD) /NOLOGO $@.dll
winsock::ws2
@set SOURCELIBS=$(SG_INPUT_LIB)\winsock.lib $(SG_OUTPUT_SDKLIB)\ws2.lib
winsock::$(WINSOCK_COMPONENTS)
@set TARGETNAME=$@
@set RELEASETYPE=SDK
@set TARGETLIBS=$(SG_OUTPUT_SDKLIB)\coredll.lib
@set DLLENTRY=dllentry
$(MAKECMD) /NOLOGO $@.dll
sslsock:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
crypt32:: msasn1
@set SOURCELIBS=$(SG_INPUT_LIB)\$@.lib $(SG_INPUT_LIB)\pkiutil.lib $(SG_INPUT_LIB)\certstor.lib $(SG_INPUT_LIB)\chain.lib
crypt32:: $(CRYPT32_COMPONENTS)
@set TARGETNAME=$@
@set RELEASETYPE=SDK
@set TARGETLIBS=$(SG_INPUT_LIB)\$@.res $(SG_INPUT_LIB)\mincrypt.lib $(SG_OUTPUT_OAKLIB)\msasn1.lib $(SG_OUTPUT_SDKLIB)\coredll.lib $(SG_INPUT_LIB)\rsa32.lib
@set DLLENTRY=DllEntry
$(MAKECMD) /NOLOGO $@.dll
wincrmsg:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
pfx:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
cxport::
@set SOURCELIBS=$(SG_INPUT_LIB)\cxport.lib
cxport::$(CXPORT_COMPONENTS)
@set TARGETNAME=$@
@set RELEASETYPE=SDK
@set TARGETLIBS=$(SG_OUTPUT_SDKLIB)\coredll.lib
@set DLLENTRY=_DllMainCRTStartup
$(MAKECMD) /NOLOGO $@.dll
dubftp:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
audevman:
@set TARGETNAME=$@
@set RELEASETYPE=OAK
@set TARGETLIBS=$(SG_OUTPUT_SDKLIB)\coredll.lib
@set DLLENTRY=DllMain
@set SOURCELIBS=$(SG_INPUT_LIB)\audevman.lib $(SG_INPUT_LIB)\swmixer.lib
@set TARGETTYPE=DYNLINK
@set DEFFILE=$(SG_INPUT_LIB)\$@.def
$(MAKECMD) /NOLOGO $(SG_OUTPUT_OAKTGT)\$@.dll
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -