1 # Makefile for building PocketPC ARM binary from Linux using wine and EVC
3 # Inspired by HRET written by anpaza
4 # Requires GNU Make, wine, and stuff from EVC, read ReadMe.wine
6 #============================================== User-defined variables ======#
7 # The directory where your MSVC for StrongARM and the SDK is installed.
8 # You should set up WINE (see /etc/wine.reg) so that it "sees" this drive
10 BASE=d:\\msvc-arm\\bin
12 #=========================================================== Compilers ======#
13 # Set some env vars for msvc to use
22 # Makefile.project contains sources, target name, and libs
23 include Makefile.project
25 SUB1 = $(SRCS:.cpp=.obj)
26 SUB2 = $(SUB1:.asm=.obj)
27 SUB3 = $(SUB2:.rc=.res)
28 SUB4 = $(SUB3:%.obj=$(OUT)%.obj)
29 OBJS = $(SUB4:%.res=$(OUT)%-res.obj)
33 .SUFFIXES: .exe .obj .res .asm -res.obj
36 # You shouldn't need to change anything below.
38 CXX=$(WINE) $(BASE)\\clarm.exe -c
40 CXXFLAGS.DEF=-DARM -D_ARM_ -DUNICODE -D_UNICODE -DUNDER_CE=300 -D_WIN32_WCE=300
41 CXXFLAGS.INC=-Iinclude -I$(INCLUDE) $(CFLAGS)
44 # Uncomment this for Dell Axim
47 CXXFLAGS=-nologo -W3 $(CXXFLAGS.DEF) $(CXXFLAGS.INC)
50 ASM=$(WINE) $(BASE)\\armasm.exe
51 #ASMFLAGS=-arch 4 -cpu StrongARM1 -32
54 RC=$(WINE) $(BASE)\\rc.exe
55 #RCFLAGS=-r -l 0x409 $(CXXFLAGS.DEF) $(CXXFLAGS.INC)
56 RCFLAGS=$(CXXFLAGS.DEF) $(CXXFLAGS.INC)
59 CVTRES=$(WINE) $(BASE)\\cvtres.exe
60 CVTRESFLAGS=-machine:arm -windowsce
63 LD=$(WINE) $(BASE)\\link.exe
67 # From EVC project settings
70 -entry:"WinMainCRTStartup" \
73 -subsystem:windowsce,3.0 \
78 #export MSC_CMD_FLAGS=/c
81 #============================================================= Targets ======#
82 all: $(OUT) $(OUT)$(TARGETBIN)
89 # makedep -r $(CXXFLAGS.DEF) $(CXXFLAGS.INC) -p'$$(OUT)' -o.obj src/*.cpp
92 $(OUT)$(TARGETBIN): $(OBJS)
95 #=============================================================== Rules ======#
97 $(CXX) $(CXXFLAGS) -Fo$@ $<
100 $(ASM) $(ASMFLAGS) -o $@ $<
103 $(RC) $(RCFLAGS) -fo $@ $<
105 $(OUT)%-res.obj: $(OUT)%.res
106 $(CVTRES) $(CVTRESFLAGS) -out:$@ $<
109 $(LD) $(LDFLAGS) -out:$@ $(^) $(LIBS)