📄 makefile
字号:
!if 0
Copyright (c) Microsoft Corporation. All rights reserved.
!endif
!if 0
Use of this source code is subject to the terms of the Microsoft end-user
license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
If you did not accept the terms of the EULA, you are not authorized to use
this source code. For a copy of the EULA, please see the LICENSE.RTF on your
install media.
!endif
WINCEPROJ=common
#
# Include shared SYSGEN makefile
#
!INCLUDE $(_PUBLICROOT)\common\cesysgen\cesysgen.mak
!IFNDEF RES2RES
RES2RES=res2res
!ENDIF
!IFNDEF NK_COMPONENTS
NK_COMPONENTS=nkcompr nkmapfile
!ENDIF
!IFNDEF CORELIBC_COMPONENTS
CORELIBC_COMPONENTS=ccrtstrt
COREDLL_COMPONENTS=$(COREDLL_COMPONENTS) corecrt corestrw
!ENDIF
!IFNDEF FATFS_COMPONENTS
FATFS_COMPONENTS=fatmain fatui
!ENDIF
!IFNDEF DEVICE_COMPONENTS
DEVICE_COMPONENTS=devcore iorm nopmif
!ENDIF
# Temporary support to name the GPE components correctly
!IFNDEF GPE_COMPONENTS
GPE_COMPONENTS=$(GPE_MODULES)
!ENDIF
# The first (and possibly only) time the makefile is invoked,
# the xxx_LANGID variables will not be set. This is used to
# create the default, 0409, versions of dll's and exe's that
# have resources. Once this is done, the makefile will be
# re-invoked once for each locale in order to generate the
# other necessary locale resources. (Search for _LANGIDLIST.)
# The dll's and exe's themselves are not regenerated.
# The resource switching for a specific
# locale does not happen until later when makeimg is used.
!IF "$(CURRENT_LANGID)" == ""
CURRENT_LANGID=0409
!ENDIF
!IF "$(OS_COMPONENT_DIR)" == ""
OS_COMPONENT_DIR=$(_PUBLICROOT)\$(_TGTPROJ)\oak\lib\$(_CPUINDPATH)
!ENDIF
preproc:makedirs 0409_base_resources corelibc fulllibc xlock coredll driverlibs $(CE_MODULES) includes files tokens nls tools
postproc:$(COPY_OS_MODULES) 0409_base_replace_resources $(REPLACE_MODULES) postlocalize
driverlibs:\
wrap2bpp wrap2dr wavemdd cardserv defbuslib pcc_com tch_cal ser_card ser_card2 com_mdd2 ser16550 serpddcm oo16550 ceosutil authhlp \
ddk_bus ddk_map ddk_io ddk_dma ddk_time ddk_power ohcdmdd2 hcdlib uhcdmdd hcd2lib ehcdmdd ntcompat bclib lci ldi loadauth mincrypt traverse cclib libc \
usbclient hidmdd i486oal \
sdcardlibbase sdhclib smclib \
LayoutManager NumPadRmp \
InputLang_0401 InputLang_040D InputLang_04TH0 InputLang_041E InputLang_0439 InputLang_044E InputLang_0446 InputLang_044A InputLang_0447 InputLang_044B InputLang_0449 \
InputLang_0409 InputLang_0411 InputLang_0412 KeybdIst PS2_8042_KbdCommon Nop_KbdCommon Nop_PddList \
kbdus_lib kbdjpn_lib kbdjpn1_lib kbdkor_lib \
HD465irda HD465_KbdCommon HD465ccuart HD465ohcdpdd HD465wavedev \
smc8xx_SCToVK ppc_lcd8xx \
scsi2dad rndismini2 \
rndismini nativemp bthguid tchmdd tch_trns tchbasic battdrvr_lib nleddrvr_lib kerbcomm \
SC2410_SDHCBase \
SC2440_SDHCBase \
pxa27x_sdhc \
smc8xx_SCToVK ppc_lcd8xx \
ufnmddbase ufnclientlibbase scsi2dad rndismini2 pxa25xusbfn_lib pxa25xufnlib \
aablt emul emulstub emulrotate ctblt ctbltstub rctblt drvalphablend drvalphablendstub drvgradfill drvgradfillstub rdrvgradfill gpe gperotate ddgpe dxdrvguid \
pm_mdd_lib pm_default_pdd_lib pm_pda_pdd_lib pmstubs_lib pm_pdd_common_lib \
wdmutil \
au1pcc_lib \
gwestubs \
atapi_common_lib atapi_pcio_lib atapi_pcio_cd_lib atapi_pcip_pdc20262_lib atapi_pcmcia_lib
tools:kd hd osaxst0 osaxst1 dbg ethdbg kitl kitleth ne2kdbg rtl8139dbg dp83815dbg dec21140dbg am79c970dbg am79c973dbg cs8900dbg vbridge vbridgestub smc9000 smsc100 net2890lib net2890klib rne_mdd 3c90xdbg eboot blcommon bootpart memtool nkprof celog caplog shimeng kcover PCIreg cecap \
fal ecclib sdnpcik stratak faslk xllp
rt_tests: iltiming osbench celogflush oscapture coversrv
# Empty rule to allow components target in sysgen
keybd pointer nled stansdk:
clean:
@echo Cleaning up sysgen directories
-@del $(DELRECURSEFLAG) $(DELFLAGS) $(SG_OUTPUT_SDKLIB)\*.* > nul $(SG_XCOPYREDIRECT)
-@del $(DELRECURSEFLAG) $(DELFLAGS) $(SG_OUTPUT_OAKLIB)\*.* > nul $(SG_XCOPYREDIRECT)
-@del $(DELRECURSEFLAG) $(DELFLAGS) $(SG_OUTPUT_OAKTGT)\*.* > nul $(SG_XCOPYREDIRECT)
-@del $(DELFLAGS) $(SG_OUTPUT_ROOT)\sdk\inc\*.* > nul $(SG_XCOPYREDIRECT)
-@del $(DELFLAGS) $(SG_OUTPUT_ROOT)\oak\inc\*.* > nul $(SG_XCOPYREDIRECT)
-@del $(DELFLAGS) $(SG_OUTPUT_ROOT)\ddk\inc\*.* > nul $(SG_XCOPYREDIRECT)
-@del $(DELFLAGS) $(SG_OUTPUT_ROOT)\oak\java\*.* > nul $(SG_XCOPYREDIRECT)
-@del $(DELFLAGS) $(SG_OUTPUT_ROOT)\oak\files\*.* > nul $(SG_XCOPYREDIRECT)
-@del $(DELFLAGS) $(SG_OUTPUT_ROOT)\oak\tokens\jpn\*.* > nul $(SG_XCOPYREDIRECT)
-@del $(DELFLAGS) $(SG_OUTPUT_ROOT)\oak\tokens\ger\*.* > nul $(SG_XCOPYREDIRECT)
-@del $(DELFLAGS) $(SG_OUTPUT_ROOT)\oak\tokens\*.* > nul $(SG_XCOPYREDIRECT)
makedirs:
@echo Creating appropriate directories and deleting COMMON.LOC
-@del $(DELFLAGS) $(SG_OUTPUT_OAKTGT)\*.loc > nul $(SG_XCOPYREDIRECT)
-@xcopy /T /I *.* $(SG_OUTPUT_SDKLIB)
-@xcopy /T /I *.* $(SG_OUTPUT_OAKLIB)
-@xcopy /T /I *.* $(SG_OUTPUT_OAKTGT)
-@xcopy /T /I *.* $(SG_OUTPUT_ROOT)\sdk\inc
-@xcopy /T /I *.* $(SG_OUTPUT_ROOT)\oak\inc
-@xcopy /T /I *.* $(SG_OUTPUT_ROOT)\ddk\inc
-@xcopy /T /I *.* $(SG_OUTPUT_ROOT)\oak\java
-@xcopy /T /I *.* $(SG_OUTPUT_ROOT)\oak\files
-@xcopy /T /I *.* $(SG_OUTPUT_ROOT)\oak\tokens
-@xcopy /T /I *.* $(SG_OUTPUT_ROOT)\ddk\lib\$(_CPUINDPATH)
-@mkdir $(SG_OUTPUT_OAKTGT)\0409 > nul $(SG_XCOPYREDIRECT)
# At END of SYSGEN we recurse for each language in _LANGIDLIST to build
# the combined RESs for GWES & COREDLL once for each language.
# See comments below near GWES & COREDLL resp.
!IF "$(_LANGIDLIST)" != ""
$(_LANGIDLIST)::
@set CURRENT_LANGID=$@
$(MAKE) /NOLOGO coredll
!IF "$(GWES_COMPONENTS)" != ""
$(MAKE) /NOLOGO gwes
!ENDIF
!IF EXIST($(SG_OUTPUT_SDKLIB)\commctrl.lib)
$(MAKE) /NOLOGO commctrl
!ENDIF
# !IF "$(WINCEREL)" == "1"
# -@echo WINCEREL set--Copying GWES/COREDLL resources from $(SG_OUTPUT_OAKTGT)\$@ to $(_FLATRELEASEDIR)\$@
# -@xcopy /I $(SG_OUTPUT_OAKTGT)\$@\gwes.res $(_FLATRELEASEDIR)\$@ > nul
# -@xcopy /I $(SG_OUTPUT_OAKTGT)\$@\coredll.res $(_FLATRELEASEDIR)\$@ > nul
# !ENDIF
!ENDIF
#
# These are parts of the sysgen process not associated with any modules. They are
# always run.
includes:
@echo Processing include files
$(SG_TOKENFILTER) $(SG_INPUT_ROOT)\sdk\inc\*.* $(SG_OUTPUT_ROOT)\sdk\inc
$(SG_TOKENFILTER) $(SG_INPUT_ROOT)\oak\inc\*.* $(SG_OUTPUT_ROOT)\oak\inc
$(SG_TOKENFILTER) $(SG_INPUT_ROOT)\ddk\inc\*.* $(SG_OUTPUT_ROOT)\ddk\inc
copy $(SG_OUTPUT_ROOT)\sdk\inc\ceconfig.h $(SG_OUTPUT_ROOT)\oak\files\ceconfig.h
fonts:
files:
-@xcopy /D /I $(SG_INPUT_ROOT)\oak\files\*.lex $(SG_OUTPUT_ROOT)\oak\files
-@xcopy /D /I $(SG_INPUT_ROOT)\oak\files\*.2bp $(SG_OUTPUT_ROOT)\oak\files
-@xcopy /D /I $(SG_INPUT_ROOT)\oak\files\*.bmp $(SG_OUTPUT_ROOT)\oak\files
-@xcopy /D /I $(SG_INPUT_ROOT)\oak\files\*.wav $(SG_OUTPUT_ROOT)\oak\files
-@xcopy /D /I $(SG_INPUT_ROOT)\oak\files\*.p7b $(SG_OUTPUT_ROOT)\oak\files
$(SG_TOKENFILTER) $(SG_INPUT_ROOT)\oak\files\common.* $(SG_OUTPUT_ROOT)\oak\files
tokens:
-@xcopy /i /e /q /c /D $(SG_INPUT_ROOT)\oak\tokens $(SG_OUTPUT_ROOT)\oak\tokens
-@xcopy /i /e /q /c /D $(SG_INPUT_ROOT)\oak\files\intltrns $(SG_OUTPUT_ROOT)\oak\files\intltrns
remove:
crt_cpp_eh_and_rtti:
NLSSRC=$(SG_INPUT_ROOT)\oak\files\
$(SG_OUTPUT_ROOT)\oak\files\nlssrc.txt: \
$(NLSSRC)\codepage.txt $(NLSSRC)\unicode.txt \
$(NLSSRC)\ctype.txt $(NLSSRC)\unisort.txt $(NLSSRC)\l_intl.txt
-@copy $(NLSSRC)\codepage.txt+$(NLSSRC)\unicode.txt+$(NLSSRC)\ctype.txt+$(NLSSRC)\unisort.txt+$(NLSSRC)\l_intl.txt $(SG_OUTPUT_ROOT)\oak\files\nlssrc.txt /B
nlscopy: \
$(NLSSRC)\437.txt $(NLSSRC)\708.txt $(NLSSRC)\720.txt $(NLSSRC)\737.txt $(NLSSRC)\775.txt \
$(NLSSRC)\850.txt $(NLSSRC)\852.txt $(NLSSRC)\855.txt $(NLSSRC)\857.txt $(NLSSRC)\860.txt \
$(NLSSRC)\861.txt $(NLSSRC)\862.txt $(NLSSRC)\863.txt $(NLSSRC)\864.txt $(NLSSRC)\865.txt \
$(NLSSRC)\866.txt $(NLSSRC)\869.txt $(NLSSRC)\874.txt $(NLSSRC)\932.txt $(NLSSRC)\936.txt \
$(NLSSRC)\949.txt $(NLSSRC)\950.txt $(NLSSRC)\1250.txt $(NLSSRC)\858.txt \
$(NLSSRC)\20000.txt $(NLSSRC)\20001.txt $(NLSSRC)\20002.txt $(NLSSRC)\20003.txt $(NLSSRC)\20004.txt $(NLSSRC)\20005.txt \
$(NLSSRC)\20127.txt $(NLSSRC)\20261.txt $(NLSSRC)\20866.txt $(NLSSRC)\21027.txt $(NLSSRC)\21866.txt $(NLSSRC)\29001.txt \
$(NLSSRC)\20269.txt $(NLSSRC)\28591.txt $(NLSSRC)\28592.txt $(NLSSRC)\28593.txt $(NLSSRC)\28594.txt $(NLSSRC)\28595.txt \
$(NLSSRC)\28596.txt $(NLSSRC)\28597.txt $(NLSSRC)\28598.txt $(NLSSRC)\28599.txt $(NLSSRC)\28603.txt $(NLSSRC)\28605.txt \
$(NLSSRC)\1251.txt $(NLSSRC)\1252.txt $(NLSSRC)\1253.txt \
$(NLSSRC)\1254.txt $(NLSSRC)\1255.txt $(NLSSRC)\1256.txt \
$(NLSSRC)\1257.txt $(NLSSRC)\1258.txt $(NLSSRC)\1361.txt \
$(NLSSRC)\big5.txt $(NLSSRC)\ksc.txt $(NLSSRC)\prc.txt $(NLSSRC)\prcp.txt \
$(NLSSRC)\xjis.txt $(NLSSRC)\bopomofo.txt $(NLSSRC)\nlscfg.inf $(NLSSRC)\locale.txt
!xcopy /I /D /Q $? $(SG_OUTPUT_ROOT)\oak\files
nlsextra:
nls:$(SG_OUTPUT_ROOT)\oak\files\nlssrc.txt nlscopy nlsextra
!IF "$(COPY_OS_MODULES)" != ""
$(COPY_OS_MODULES):
@echo copying $*_$(_TGTPROJ) to $*
@copy $(OS_COMPONENT_DIR)\$*_$(_TGTPROJ).lib $(OS_COMPONENT_DIR)\$*.lib
@copy $(OS_COMPONENT_DIR)\$*_$(_TGTPROJ).pdb $(OS_COMPONENT_DIR)\$*.pdb
-@copy $(OS_COMPONENT_DIR)\$*_$(_TGTPROJ).res $(OS_COMPONENT_DIR)\$*.res
!ENDIF
#
# This part has the "sources" files for every componentized module. This part lists every
# component which is part of a module. There are some default rules to build actual dll/exes
# using a two phase link process so that you avoid picking imports from stub libraries
#
# GWES link modifications for Localization: We localize the individual GWES resources, not the
# combined resource file. This is because doing the latter is incompatible with component
# replacement, and is also harder for the loc folks.
#
# So the component selection & RES2RES step to build the big RES file has to happen once
# for EACH language. We first build the straight US RES & LIB, and then recurse for each language
#
gwe1 gwe2 gwe3 gwe4::
@echo GWE1 - $(GWE1_COMPONENTS)
@echo GWE2 - $(GWE2_COMPONENTS)
@echo GWE3 - $(GWE3_COMPONENTS)
@echo GWE4 - $(GWE4_COMPONENTS)
@set SOURCELIBS=
gwe1::$(GWE1_COMPONENTS)
gwe2::$(GWE2_COMPONENTS)
gwe3::$(GWE3_COMPONENTS)
gwe4::$(GWE4_COMPONENTS)
gwe1 gwe2 gwe3 gwe4::
@set TARGETNAME=$@
@set RELEASETYPE=OAK
@set TARGETLIBS=
@set TARGETTYPE=LIBRARY
$(MAKECMD) /NOLOGO $(SG_OUTPUT_OAKLIB)\$@.lib
@set GWELIBS=%%GWELIBS%% $(SG_OUTPUT_OAKLIB)\$@.lib
# OEM can specify where to place their replaced components
!IF "$(REPLACE_ROOT)" == ""
REPLACE_ROOT=$(_PROJECTROOT)
!ENDIF
!IF "$(GWES_REPLACE)" != ""
$(GWES_REPLACE):
@set GWELIBS=%%GWELIBS%% $(REPLACE_ROOT)\oak\lib\$(_CPUINDPATH)\$@.lib
!IF EXIST($(REPLACE_ROOT)\oak\lib\$(_CPUINDPATH)\$(CURRENT_LANGID)\*.res)
@set GWES_RESOURCES=%%GWES_RESOURCES%% $(REPLACE_ROOT)\oak\lib\$(_CPUINDPATH)\$(CURRENT_LANGID)\$@.res
!ELSE
!MESSAGE public\common\cesysgen\makefile: Warning: No replace resources found for $(CURRENT_LANGID). Using 0409 instead.
@set GWES_RESOURCES=%%GWES_RESOURCES%% $(REPLACE_ROOT)\oak\lib\$(_CPUINDPATH)\0409\$@.res
!ENDIF
@set GWES_TARGET_RESOURCE=$(SG_OUTPUT_OAKTGT)\$(CURRENT_LANGID)\gwes.res
!ENDIF
!IF "$(GWES_REPLACE_COMPONENTS)" != ""
$(GWES_REPLACE_COMPONENTS):
@set GWELIBS=%%GWELIBS%% $(REPLACE_ROOT)\oak\lib\$(_CPUINDPATH)\$@.lib
!ENDIF
calibrui oomui menu startui msgbox_hpc msgbox_ppc gcacheview gcacheviewxp:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
@set GWES_RESOURCES=%%GWES_RESOURCES%% $(SG_INPUT_LIB)\$(CURRENT_LANGID)\$@.res
@set GWES_TARGET_RESOURCE=$(SG_OUTPUT_OAKTGT)\$(CURRENT_LANGID)\gwes.res
startui_w_lass:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
@set GWES_RESOURCES=%%GWES_RESOURCES%% $(SG_INPUT_LIB)\$(CURRENT_LANGID)\startui.res
@set GWES_TARGET_RESOURCE=$(SG_OUTPUT_OAKTGT)\$(CURRENT_LANGID)\gwes.res
cursor2 cursor8 mcursor1:
@set GWES_RESOURCES=%%GWES_RESOURCES%% $(SG_INPUT_LIB)\$(CURRENT_LANGID)\$@.res
@set GWES_TARGET_RESOURCE=$(SG_OUTPUT_OAKTGT)\$(CURRENT_LANGID)\gwes.res
# Backward compatibility rule
mcursor8: mcursor1
# These are arranged in order of dependencies
ceptr pixeldouble wmbase immthunk gwesmain msgque gsetwinlong \
uibase accessib kbdui journal hotkey foregnd idle getpower msgbeep audio \
mgalphablend mgalphablendstub mgbase mgblt mgblt2 mgbitmap mgdc mgdibsec mgdraw mggradfill mggradfillstub mgpalmin mgrgn mgwinmgr mgrast mgrast2 decompdrv mgtt \
mgfntfix mgpal mgprint mgdrwtxt mgpalnat mgdx mgtci mgfe mgalias \
tchui iconcmn icon iconcurs \
atom winmgr defwndproc gcache nclientview nclientviewxp nclient sbcmnview sbcmnviewxp \
sbcmn syscolor loadimg loadbmp caret accel clipbd timer \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -