commonsrc=../../itsutils/common MSVCINCDIRS=-I ../../itsutils/include/msvc COMMONINCDIRS=-I ../../../cpip/cpip-client -I $(commonsrc) MSVCDEFS=-D_SECURE_SCL=0 -D_CRT_SECURE_NO_WARNINGS -D_HAS_ITERATOR_DEBUGGING=0 # C4127: conditional expression is constant # C4296: ... : expression is always false # C4100: ... : unreferenced formal parameter # C4242: ... : conversion from ... to ..., possible loss of data # C4244: ... : conversion from ... to ..., possible loss of data # C4365: ... : conversion from ... to ..., signed/unsigned mismatch # C4512: ... : assignment operator could not be generated # C4514: ... : unreferenced inline function has been removed # C4571: Informational: catch(...) semantics changed since Visual C++ 7.1; structured exceptions (SEH) are no longer caught # C4619: #pragma warning : there is no warning number ... # C4668: ... is not defined as a preprocessor macro, replacing with ... for ... # C4710: ... : function not inlined # C4820: ... : ... bytes padding added after data member ... # C4826: Conversion from ... to ... is sign-extended. This may cause unexpected runtime behavior. ifeq ($(OS),Windows_NT) VC8:=$(subst \,/,$(PROGRAMFILES))/Microsoft Visual Studio 8/vc #BOOST=c:/local/boost/boost_1_39_0 CC=$(VC8)/bin/cl.exe CINCS=-I $(BOOST) -I "$(VC8)/include" -I "$(VC8)/PlatformSDK/Include" $(MSVCINCDIRS) $(COMMONINCDIRS) CDEFS=-D_NO_RAPI $(MSVCDEFS) CFLAGS=-EHsc -c -Zi -Wall -nologo -wd4100 -wd4242 -wd4244 -wd4365 -wd4512 -wd4514 -wd4571 -wd4619 -wd4668 -wd4710 -wd4820 -wd4826 LD=$(VC8)/bin/link.exe LDPATHS=-libpath:$(BOOST)/lib-x86 -libpath:"$(VC8)/lib" -libpath:"$(VC8)/PlatformSDK/Lib" LDLIBS=user32.lib msvcrt.lib libcmt.lib LDFLAGS=-debug -nodefaultlib:libcmt -nologo CCOUTF=-Fo LDOUTF=-out: E=.exe O=.obj OUT=build/x86/ OBJ=build/x86/o else ifeq ($(OS),Windows_CE) VCE8:=$(subst \,/,$(PROGRAMFILES))/Microsoft Visual Studio 8/vc/ce WM6:=$(subst \,/,$(PROGRAMFILES))/Windows Mobile 6 SDK/PocketPC #BOOST=c:/local/boost/boost_1_39_0 CC=$(VCE8)/bin/x86_arm/cl.exe CINCS=-I $(BOOST) -I "$(VCE8)/include" -I "$(WM6)/Include/Armv4i" $(MSVCINCDIRS) $(COMMONINCDIRS) CDEFS=-D_NO_RAPI $(MSVCDEFS) # wince specific defs CDEFS+=-DARM -D_ARM_ -DARMV4 CDEFS+=-DWINVER=0x0400 -DWIN32_PLATFORM_PSPC=400 -DUNDER_CE=420 -DUNICODE -D_UNICODE -D_WIN32_WCE=0x501 CDEFS+=-D_BOOST_LITE pb500src=z:/home/sources/wince500 CINCS+=-I $(pb500src)/PUBLIC/COMMON/OAK/INC CFLAGS=-EHsc -c -Zi -Wall -nologo -wd4191 -wd4201 -wd4567 -wd4100 -wd4242 -wd4244 -wd4365 -wd4512 -wd4514 -wd4571 -wd4619 -wd4668 -wd4710 -wd4820 LD=$(VCE8)/bin/x86_arm/link.exe LDPATHS=-libpath:$(BOOST)/lib-arm -libpath:"$(VCE8)/lib/armv4i" -libpath:"$(WM6)/Lib/Armv4i" LDLIBS=coredll.lib corelibc.lib # implicit : libcmt + libcpmt LDFLAGS=-debug -nologo #wince specific flags LDFLAGS+=-subsystem:windowsce,3.00 -machine:thumb CCOUTF=-Fo LDOUTF=-out: E=.exe O=.obj OUT=build/arm/ OBJ=build/arm/o else CC=g++-mp-4.3 CINCS=-I /opt/local/include $(COMMONINCDIRS) CDEFS=-D_NO_RAPI CFLAGS=-ggdb -Wall -c -Wno-format LDPATHS=-L/opt/local/lib LDLIBS=-liconv -lboost_thread-xgcc40-mt -lstdc++.6 -lc -lgcc_s.1 /usr/lib/crt1.o CCOUTF=-o LDOUTF=-o E= O=.o OUT=build/osx/ OBJ=build/osx/o endif endif ifeq ($(OS),Windows_CE) OBJS+=singlestepper else OBJS+=testemu endif OBJS+=bkptmanager codesnipmanager emulateinsn ThreadContext stringutils all: $(OUT)/ss$(E) ce: $(MAKE) OS=Windows_CE $(OUT)/ss$(E):$(addprefix $(OBJ)/,$(addsuffix $(O),$(OBJS))) @mkdir -p $(OUT)/ @"$(LD)" $(LDPATHS) $(LDFLAGS) $(LDLIBS) $(LDOUTF)"$@" $^ vpath .cpp . $(commonsrc) $(OBJ)/%$(O): %.cpp @mkdir -p $(OBJ)/ @"$(CC)" "$<" $(CCOUTF)"$@" $(CDEFS) $(CFLAGS) $(CINCS) $(OBJ)/%$(O): $(commonsrc)/%.cpp @mkdir -p $(OBJ)/ @"$(CC)" "$<" $(CCOUTF)"$@" $(CDEFS) $(CFLAGS) $(CINCS) clean: $(RM) -r $(OBJ) $(OUT) # dependencies $(OBJ)/ThreadContext$(O): ThreadContext.h $(OBJ)/bkptmanager$(O): bkptmanager.h $(OBJ)/codesnipmanager$(O): codesnipmanager.h $(OBJ)/emulateinsn$(O): insndecoder.h bitutils.h appexceptions.h bkptmanager.h codesnipmanager.h $(OBJ)/singlestepper$(O): insndecoder.h $(OBJ)/testemu$(O): emulateinsn.h insndecoder.h ThreadContext.h bkptmanager.h testce: pput -f ../../itsutils/build/tstarg.exe /windows/test.exe itssign.bat build/arm/ss.exe pput -f build/arm/ss.exe /windows prun ss.exe