signhome=c:\\local\\cvsprj\\secphone\\trunk\\thirdparty\\signingkeys smtools=C:/Program Files/Microsoft Visual Studio 8/Common7/Tools/Bin pfxfile=$(signhome)\\codesign-itsutils.pfx out=../build obj=../build/apihook src=. commonsrc=../common include ../local.mak TARGETLIST+=$(out)/loadhook.exe TARGETLIST+=$(out)/apihook.dll all: $(TARGETLIST) LOADHOOK_OBJS=loadhook.obj debug.obj stringutils.obj APIHOOK_OBJS=apihook.obj debug.obj stringutils.obj define link_ce_exe @mkdir -p "$(dir $1)" echo building exe $1 echo from $2 echo @"$(celd)" \ /libpath:"$(ppclib)" \ /libpath:"$(celib)" \ /nologo \ /pdb:"$(subst .exe,.pdb,$1)" \ /stack:0x10000,0x1000 \ $(celdtargetflags) \ /subsystem:windowsce,4.20 \ /align:"4096" \ /out:"$1" \ /debug \ /map \ coredll.lib \ corelibc.lib \ ccrtrtti.lib \ secchk.lib \ $2 endef define link_ce_dll @mkdir -p "$(dir $1)" echo building dll $1 echo from $2 echo @"$(celd)" \ /libpath:"$(ppclib)" \ /libpath:"$(celib)" \ /nologo \ /pdb:"$(subst .dll,.pdb,$1)" \ /stack:0x10000,0x1000 \ $(celdtargetflags) \ /subsystem:windowsce,4.20 \ /align:"4096" \ /entry:"_DllMainCRTStartup" \ /dll \ /out:"$1" \ /debug \ /map \ coredll.lib \ corelibc.lib \ ccrtrtti.lib \ secchk.lib \ $2 endef define compile_ce_obj @mkdir -p "$(dir $1)" echo building obj $1 echo from $2 echo @"$(cecc)" \ /I "f:\Users\itsme\sources\wince500\PRIVATE\WINCEOS\COREOS\NK\INC" \ /I "f:\Users\itsme\sources\wince500\PUBLIC\COMMON\OAK\INC" \ /I "$(cesdk)\include" \ /I "$(ceinclude)" \ /I "f:\Users\itsme\sources\wince500\PUBLIC\COMMON\SDK\INC" \ /I "$(commonsrc)" \ /nologo \ /W3 \ /O2 \ /c \ /Zi \ /EHsc \ /MT \ /D APIHOOK_EXPORTS \ /D "ARM" /D "_ARM_" /D "ARMV4" \ /D _WIN32_WCE=501 /D "WIN32_PLATFORM_PSPC=400" /D UNDER_CE=501 \ /D "UNICODE" /D "_UNICODE" \ /D _CRT_SECURE_NO_WARNINGS /D _SECURE_SCL=0 /D _HAS_ITERATOR_DEBUGGING=0 \ /Fo"$1" \ $2 endef define sign_binary @"$(smtools)/signtool" sign -f "$(pfxfile)" $1 endef $(out)/loadhook.exe: $(addprefix $(obj)/,$(LOADHOOK_OBJS)) $(call link_ce_exe,$@,$^) $(call sign_binary,$@) $(out)/apihook.dll: $(addprefix $(obj)/,$(APIHOOK_OBJS)) $(call link_ce_dll,$@,$^) $(call sign_binary,$@) vpath .cpp $(src) vpath .cpp $(commonsrc) $(obj)/%.obj: $(src)/%.cpp $(call compile_ce_obj,$@,$^) $(obj)/%.obj: $(commonsrc)/%.cpp $(call compile_ce_obj,$@,$^) install: $(TARGETLIST) pput -f $(TARGETLIST) /windows test: install pdebug -x loadhook.exe clean: -rm -rf $(obj) -rm -f $(addsuffix .*,$(basename $(TARGETLIST)))