mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@572 be3aeb3a-fb24-0410-a615-afba39da0efa
166 lines
5.6 KiB
Makefile
166 lines
5.6 KiB
Makefile
#######################################################################
|
|
### App specific part - this must be defined
|
|
#NAME="AnimatedStereogram"
|
|
#VENDOR="Pal Szasz"
|
|
#UID2=100039CE
|
|
#UID3=E0004201
|
|
#EPOCLIBS="euser.lib apparc.lib cone.lib eikcore.lib eikcoctl.lib qikcore.lib fbscli.lib estlib.lib"
|
|
#EPOCROOT=/opt/space/uiq3/
|
|
#######################################################################
|
|
|
|
APPNAME ?= "UIQ3 Program"
|
|
VENDOR ?= "Somebody"
|
|
UID2 ?= 100039CE
|
|
UID3 ?= E0001001
|
|
VER_MAJ ?= 1
|
|
VER_MIN ?= 0
|
|
STACK ?= 0x1000
|
|
HEAP ?= 0x1000,0x100000
|
|
EPOCROOT ?= /opt/space/uiq3/
|
|
GCCPREF ?= arm-none-symbianelf
|
|
GCCPATH ?= $(EPOCROOT)/gcc
|
|
GCCVER ?= 3.4.3
|
|
|
|
export EPOCROOT
|
|
|
|
NAME_ := $(shell echo $(APPNAME) | sed 's: ::g')
|
|
NAME := $(shell perl -e "print lc(\"$(NAME_)\")")
|
|
EPOCLIBS += euser.lib apparc.lib cone.lib eikcore.lib eikcoctl.lib qikcore.lib fbscli.lib estlib.lib qikallocdll.lib
|
|
EPOCREL = $(EPOCROOT)/epoc32/release/armv5
|
|
CC = $(GCCPREF)-gcc
|
|
CXX = $(GCCPREF)-g++
|
|
AS = $(GCCPREF)-as
|
|
LD = $(GCCPREF)-ld
|
|
ELF2E32 = elf2e32
|
|
BMCONV = bmconv
|
|
EPOCRC = EPOCROOT=$(EPOCROOT) epocrc
|
|
|
|
PATH := $(EPOCROOT)/bin:$(GCCPATH)/bin:$(PATH)
|
|
|
|
# -march=armv5t ?
|
|
CFLAGS += -Wall -pipe -nostdinc -msoft-float
|
|
CFLAGS += -DNDEBUG -D_UNICODE -D__GCCE__ -D__SYMBIAN32__ -D__EPOC32__ -D__MARM__
|
|
CFLAGS += -D__EABI__ -D__MARM_ARMV5__ -D__EXE__ -D__SUPPORT_CPP_EXCEPTIONS__ -D__MARM_ARMV5__
|
|
CFLAGS += -D__PRODUCT_INCLUDE__="$(EPOCROOT)/epoc32/include/variant/uiq_3.0.hrh"
|
|
CFLAGS += -include $(EPOCROOT)/epoc32/include/gcce/gcce.h
|
|
CFLAGS += -I$(EPOCROOT)/epoc32/include -I$(EPOCROOT)/epoc32/include/libc \
|
|
-I$(EPOCROOT)/epoc32/include/variant -I$(GCCPATH)/lib/gcc/arm-none-symbianelf/$(GCCVER)/include/
|
|
# can't optimize .cpp without -fno-unit-at-a-time
|
|
CXXFLAGS += $(CFLAGS) -c -x c++ -mapcs -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -fexceptions -fno-unit-at-a-time
|
|
|
|
LDFLAGS += -L$(GCCPATH)/lib -L$(GCCPATH)/lib/gcc/$(GCCPREF)/$(GCCVER) -L $(GCCPATH)/$(GCCPREF)/lib
|
|
LDFLAGS += --target1-abs --no-undefined -nostdlib -shared
|
|
LDFLAGS += -Ttext 0x8000 -Tdata 0x400000 --default-symver
|
|
LDFLAGS += -soname $(NAME){000a0000}\[$(UID3)\].exe --entry _E32Startup -u _E32Startup
|
|
LDFLAGS += $(EPOCROOT)/epoc32/release/armv5/urel/eexe.lib
|
|
LDFLAGS += -o $(NAME).elf.exe -Map $(NAME).exe.map
|
|
LDFLAGS2 = $(EPOCREL)/urel/qikalloc.lib $(EPOCREL)/lib/euser.dso
|
|
LDFLAGS2 += $(shell for i in $(EPOCLIBS); do echo -n " $(EPOCREL)/lib/$${i%%.lib}.dso "; done)
|
|
LDFLAGS2 += $(EPOCREL)/urel/usrt2_2.lib
|
|
LDFLAGS2 += $(shell for i in dfpaeabi dfprvct2_2 drtaeabi scppnwdl drtrvct2_2; do echo -n " $(EPOCREL)/lib/$$i.dso "; done)
|
|
LDFLAGS2 += -lsupc++ -lgcc
|
|
|
|
E32FLAGS += --sid=0x$(UID3) --uid1=0x1000007a --uid2=0x$(UID2) --uid3=0x$(UID3)
|
|
E32FLAGS += --capability=none --fpu=softvfp --targettype=EXE
|
|
E32FLAGS += --output=$(NAME).exe --elfinput=$(NAME).elf.exe
|
|
E32FLAGS += --stack=$(STACK)
|
|
E32FLAGS += --heap=$(HEAP)
|
|
E32FLAGS += --linkas=$(NAME){000a0000}[$(UID3)].exe --libpath=$(EPOCREL)/lib
|
|
|
|
EPOCRCFLAGS += -I../inc -I- -I$(EPOCROOT)/epoc32/include -I$(EPOCROOT)/epoc32/include/variant -DLANGUAGE_SC
|
|
|
|
ICONS ?= $(shell echo ../data/appicon/*.bmp)
|
|
APPICON ?= $(NAME)appicon.mbm
|
|
RSCDIR ?= ../rsc
|
|
REGDIR ?= ../reg
|
|
|
|
SRCH += $(shell echo ../inc/*.h)
|
|
SRC += $(shell echo ../src/*.cpp)
|
|
SRCRES ?= $(shell echo $(RSCDIR)/*.rss $(RSCDIR)/*.rls $(REGDIR)/*.rss $(REGDIR)/*.rls)
|
|
OBJ ?= $(SRC:.cpp=.o)
|
|
|
|
.PHONY : all mbm icon_mbm rsc reg loc bin sis run
|
|
|
|
#all : sis
|
|
|
|
sis : $(NAME).sis
|
|
|
|
icon_mbm : $(APPICON)
|
|
|
|
mbm :
|
|
|
|
$(NAME)appicon.mbg $(NAME)appicon.mbm : $(ICONS)
|
|
@echo "Creating multibitmap file..."
|
|
$(BMCONV) /h$(NAME)appicon.mbg $(NAME)appicon.mbm \
|
|
/c24../data/appicon/icon_small.bmp\
|
|
/8../data/appicon/icon_small_mask.bmp\
|
|
/c24../data/appicon/icon_large.bmp\
|
|
/8../data/appicon/icon_large_mask.bmp\
|
|
/c24../data/appicon/icon_xlarge.bmp\
|
|
/8../data/appicon/icon_xlarge_mask.bmp
|
|
|
|
rsc : $(RSCDIR)/$(NAME).rsc
|
|
|
|
$(RSCDIR)/$(NAME).rsc : $(RSCDIR)/$(NAME).rss # $(RSCDIR)/$(NAME).rls
|
|
@echo "Creating $@ ..."
|
|
$(EPOCRC) $(EPOCRCFLAGS) -I$(RSCDIR) -u $(RSCDIR)/$(NAME).rss \
|
|
-o$(RSCDIR)/$(NAME).rsc -h$(RSCDIR)/$(NAME).rsg -t/tmp -l$(RSCDIR)
|
|
|
|
reg : $(REGDIR)/$(NAME)_reg.rsc
|
|
|
|
$(REGDIR)/$(NAME)_reg.rsc : $(REGDIR)/$(NAME)_reg.rss
|
|
@echo "Creating $@ ..."
|
|
RC_UID2=0x101f8021 RC_UID3=0x$(UID3) $(EPOCRC) $(EPOCRCFLAGS) -I$(REGDIR) \
|
|
-u $(REGDIR)/$(NAME)_reg.rss -o$(REGDIR)/$(NAME)_reg.rsc -h$(REGDIR)/$(NAME)_reg.rsg -t/tmp -l$(REGDIR)
|
|
|
|
loc : $(REGDIR)/$(NAME)_loc.rsc
|
|
|
|
$(REGDIR)/$(NAME)_loc.rsc : $(REGDIR)/$(NAME)_loc.rss
|
|
@echo "Creating $@ ..."
|
|
$(EPOCRC) $(EPOCRCFLAGS) -I$(REGDIR) \
|
|
-u $(REGDIR)/$(NAME)_loc.rss -o$(REGDIR)/$(NAME)_loc.rsc -h$(REGDIR)/$(NAME)_loc.rsg -t/tmp -l$(REGDIR)
|
|
|
|
bin : bin_elf
|
|
@echo "Elf -> E32"
|
|
$(ELF2E32) $(E32FLAGS)
|
|
|
|
bin_elf : $(NAME).elf.exe
|
|
|
|
$(NAME).elf.exe : $(OBJ) $(EXTRALIB)
|
|
@echo "Linking..."
|
|
$(LD) $(LDFLAGS) $(OBJ) $(EXTRALIB) $(LDFLAGS2)
|
|
|
|
.cpp.o :
|
|
@echo "Compiling $< ..."
|
|
$(CXX) $(CXXFLAGS) -o $@ $<
|
|
|
|
$(NAME).sis : icon_mbm mbm rsc reg loc bin
|
|
rm -f $(NAME).sis
|
|
makesis $(NAME).pkg
|
|
mv $(NAME).SIS $(NAME).sis
|
|
|
|
#cat $(EPOCROOT)/extra/in.pkg extra.pkg | \
|
|
# sed "s:APPNAME:$(APPNAME):g" | \
|
|
# sed "s:NAME:$(NAME):g" | \
|
|
# sed "s:VER_MAJ:$(VER_MAJ):g" | \
|
|
# sed "s:VER_MIN:$(VER_MIN):g" | \
|
|
# sed "s:UID3:$(UID3):g" | \
|
|
# sed "s:VENDOR:$(VENDOR):g" > $(NAME).pkg
|
|
|
|
run : sis
|
|
xterm -e "to-phone m600 $(NAME).sis"
|
|
|
|
-include .deps
|
|
|
|
.deps : $(SRC) $(SRCH)
|
|
echo > $@
|
|
$(CXX) -M -DDEPS $(SRC) $(CXXFLAGS) >> $@
|
|
|
|
clean :
|
|
rm -f $(NAME).exe $(NAME).elf.exe $(OBJ) tags .deps $(NAME).exe.map
|
|
rm -f *.bkp ../src/*.bkp ../inc/*.bkp $(RSCDIR)/*.bkp $(REGDIR)/*.bkp
|
|
rm -f $(RSCDIR)/*.rsc $(RSCDIR)/*.rsg
|
|
rm -f $(REGDIR)/*.rsc $(REGDIR)/*.rsg
|
|
rm -f $(APPICON) $(NAME)appicon.mbg $(NAME).mbg
|
|
|
|
|