📄 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 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=devmain pmapi
!ENDIF
!IF "$(GWES_LANGID)" == ""
GWES_LANGID=.
!ENDIF
!IF "$(COREDLL_LANGID)" == ""
COREDLL_LANGID=.
!ENDIF
!IF "$(COMMCTRL_LANGID)" == ""
COMMCTRL_LANGID=.
!ENDIF
!IF "$(OS_COMPONENT_DIR)" == ""
OS_COMPONENT_DIR=$(_PUBLICROOT)\$(_TGTPROJ)\oak\lib\$(_CPUINDPATH)
!ENDIF
au1x00_drivers_ceddk = au1x00_ddk_dma au1x00_ddk_intr au1x00_ddk_io au1x00_ddk_map au1x00_ddk_stall
au1x00_drivers = au1x00_ethernet au1x00_gpio au1x00_cardserv au1x00_au16550 au1x00_sermouse au1x00_ausir au1x00_auusb au1x00_usbsl au1x00_wavemdd au1x00_wavepdd $(au1x00_drivers_ceddk)
au1x00_csp: $(au1x00_drivers)
preproc:makedirs corelibc fulllibc coredll driverlibs $(CE_MODULES) includes files tokens nls tools
postproc:$(COPY_OS_MODULES) $(REPLACE_MODULES) postlocalize
driverlibs:\
aablt emul emulrotate wrap2bpp wrap2dr wavemdd cardserv pcc_com tch_cal ser_card ser_card2 com_mdd com_mdd2 ser16550 ceosutil authhlp \
ddk_bus ddk_map ddk_io ddk_dma ddk_time ohcdmdd2 hcdlib uhcdmdd ntcompat bclib lci ldi loadauth mincrypt traverse cclib libc \
usbclient i486oal csp_mips csp_sh3 csp_sh4 csp_arm csp_arm720t csp_arm920t csp_sa11x0 csp_xscale \
SLCD2LIB sa11dma \
LayoutManager PS2_AT_00000409 PS2_AT_00000411 PS2_AT_00000412 PS2_AT_00010411 NumPadRmp \
InputLang_0409 InputLang_0411 InputLang_0412 KeybdIst PS2_8042_KbdCommon Nop_KbdCommon Nop_PddList \
SA11X1_KbdCommon sa11uart sa11ohci \
HD465irda HD465_KbdCommon HD465ccuart HD465ohcdpdd HD465wavedev \
Vr412x_serial VR4173_KbdCommon VR4173_KbdPddList Vr4173_wavedev Vr4173_touch Vr4173_ohci Vr4173_pcmcia vr4122_irsir Vr4122_irmacutl \
smc8xx_SCToVK ppc_lcd8xx \
swg ctblt rctblt drvgradfill rdrvgradfill gpe gperotate ddgpe dxdrvguid rndismini bthguid tchmdd tch_trns tchbasic battdrvr_lib kerbcomm pm_mdd_lib pm_battery_lib pm_default_pdd_lib pm_pda_pdd_lib pmstubs_lib $(au1x00_drivers)
tools:kd kd2 hd dbg ethdbg kitl kitleth ne2kdbg rtl8139dbg dp83815dbg dec21140dbg am79c970dbg cs8900dbg vbridge vbridgestub smc9000 smsc100 net2890lib rne_mdd 3c90xdbg eboot blcommon bootpart memtool nkprof schedlog celog shimeng kcover PCIreg cecap \
fal ecclib sdnpcik stratak
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 GWES_LANGID=$@
$(MAKE) /NOLOGO gwes
@set COREDLL_LANGID=$@
$(MAKE) /NOLOGO coredll
!IF EXIST($(SG_OUTPUT_SDKLIB)\commctrl.lib)
@set COMMCTRL_LANGID=$@
$(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_seh:
crt_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)\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_COMPONENTS)
echo $(GWE2_COMPONENTS)
echo $(GWE3_COMPONENTS)
echo $(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
@set GWE_RESOURCES=%%GWE_RESOURCES%% $(REPLACE_ROOT)\oak\lib\$(_CPUINDPATH)\$(GWES_LANGID)\$@.res
!ENDIF
!IF "$(GWES_REPLACE_COMPONENTS)" != ""
$(GWES_REPLACE_COMPONENTS):
@set GWELIBS=%%GWELIBS%% $(REPLACE_ROOT)\oak\lib\$(_CPUINDPATH)\$@.lib
!ENDIF
calibrui oomui menu startui notifpub msgbox_hpc msgbox_ppc gcacheview gcacheviewxp:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
@set GWE_RESOURCES=%%GWE_RESOURCES%% $(SG_INPUT_LIB)\$(GWES_LANGID)\$@.res
cursor2 cursor8 mcursor1:
@set GWE_RESOURCES=%%GWE_RESOURCES%% $(SG_INPUT_LIB)\$(GWES_LANGID)\$@.res
# Backward compatibility rule
mcursor8: mcursor1
# These are arranged in order of dependencies
ceptr wmbase immthunk gwesmain msgque gsetwinlong \
uibase accessib kbdui journal hotkey foregnd idle getpower nled msgbeep audio \
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 \
gwectrl btnctl_tpc btnctlview btnctlviewxp btnctl cmbctlview cmbctlviewxp cmbctl cdlctl \
edctl EditControlOs EditControlPpc EditControlTpc edimefe edimefek EdImeFeTpc edimejpn edimechn edimekor 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 notify notifmin gweshare:
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
gwes::
@set GWELIBS=
@set GWE_RESOURCES=dummy
gwes::$(GWES_REPLACE) $(GWES_REPLACE_COMPONENTS) $(GWES_COMPONENTS) ceosutil
gwes::
@set TARGETTYPE=LIBRARY
@set TARGETNAME=$@
@set RELEASETYPE=OAK
@set TARGETLIBS=
@set SOURCELIBS=%%GWELIBS%% $(SG_OUTPUT_SDKLIB)\ceosutil.lib
@set SOURCEPDBS=$(SG_INPUT_LIB)\mgdi.pdb
!IF "$(GWES_LANGID)" != "."
echo %%GWE_RESOURCES%%
-res2res -c %%GWE_RESOURCES%% -fo $(SG_OUTPUT_OAKTGT)\$(GWES_LANGID)\$@.res
!ELSE
xcopy /I /D /Q $(SG_INPUT_LIB)\gwestubs.* $(SG_OUTPUT_OAKLIB)
$(MAKECMD) /NOLOGO $(SG_OUTPUT_OAKLIB)\$@.lib
echo %%GWE_RESOURCES%%
res2res -c %%GWE_RESOURCES%% -fo $(SG_OUTPUT_OAKTGT)\0409\$@.res
!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)\$@.res
!IF "$(FILESYS_COMPONENTS)" != ""
$(FILESYS_COMPONENTS)::$(FILESYS_REPLACE_COMPONENTS)
@set SOURCELIBS=%%SOURCELIBS%% $(SG_INPUT_LIB)\$@.lib
!ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -