8b5037a6 |
1 | # Picklelauncher makefile |
2 | |
3 | PROGRAM = mupen64launcher |
4 | LIB_ZIP = libunzip.a |
5 | |
6 | # Build type |
7 | #BUILDTYPE = debug |
8 | BUILDTYPE = release |
9 | BUILDTARGET = PANDORA |
10 | |
11 | # Compiler flags |
12 | CXXFLAGS ?= -g -Wall -Wextra -O3 |
13 | ZIP_CFLAGS = $(CXXFLAGS) |
14 | # Linker flags |
15 | BASE_LDFLAGS = -L$(LIBRARY) -lSDL_ttf -lSDL_image -lSDL |
16 | ZIP_LDFLAGS = -L$(LIBRARY) -lz |
17 | |
18 | # Target compiler options |
19 | ifeq ($(BUILDTARGET),PANDORA) |
20 | PREFIX = /mnt/utmp/codeblocks |
21 | TOOLS = usr/bin |
22 | TARGET = |
23 | INCLUDE = $(PREFIX)/usr/include |
24 | LIBRARY = $(PREFIX)/usr/lib |
25 | CXXFLAGS += -DPANDORA |
26 | LDFLAGS = $(BASE_LDFLAGS) -lfreetype -ltiff -lpng12 -lz -ljpeg -lts |
27 | else |
28 | ifeq ($(BUILDTARGET),CAANOO) |
29 | PREFIX = /data/devel/toolchains/caanoo/GPH_SDK |
30 | TOOLS = tools/gcc-4.2.4-glibc-2.7-eabi/bin |
31 | TARGET = arm-gph-linux-gnueabi- |
32 | INCLUDE = $(PREFIX)/DGE/include |
33 | LIBRARY = $(PREFIX)/DGE/lib/target |
34 | CXXFLAGS += -DCAANOO |
35 | LDFLAGS = $(BASE_LDFLAGS) |
36 | else |
37 | ifeq ($(BUILDTARGET),WIZ) |
38 | PREFIX = /data/devel/toolchains/openwiz/arm-openwiz-linux-gnu |
39 | TOOLS = bin |
40 | TARGET = arm-openwiz-linux-gnu- |
41 | INCLUDE = $(PREFIX)/include |
42 | LIBRARY = $(PREFIX)/lib |
43 | CXXFLAGS += -DWIZ |
44 | LDFLAGS = $(BASE_LDFLAGS) -lfreetype -lz |
45 | else |
46 | ifeq ($(BUILDTARGET),GP2X) |
47 | PREFIX = /data/devel/toolchains/open2x/gcc-4.1.1-glibc-2.3.6 |
48 | TOOLS = bin |
49 | TARGET = arm-open2x-linux- |
50 | INCLUDE = $(PREFIX)/include |
51 | LIBRARY = $(PREFIX)/lib |
52 | CXXFLAGS += -DGP2X |
53 | LDFLAGS = -static $(BASE_LDFLAGS) -lfreetype -lz -lpng12 -lpthread -ldl |
54 | else |
55 | ifeq ($(BUILDTARGET),GCW) |
56 | PREFIX = /data/devel/toolchains/gcw_mips/buildroot/output/host/usr |
57 | TOOLS = bin |
58 | TARGET = mipsel-gcw0-linux-uclibc- |
59 | INCLUDE = $(PREFIX)/mipsel-gcw0-linux-uclibc/sysroot/usr/include |
60 | LIBRARY = $(PREFIX)/mipsel-gcw0-linux-uclibc/sysroot/usr/lib |
61 | CXXFLAGS += -DGCW |
62 | LDFLAGS = $(BASE_LDFLAGS) -lz -lpthread |
63 | else # default linux |
64 | PREFIX = /usr |
65 | TOOLS = bin |
66 | TARGET = |
67 | INCLUDE = $(PREFIX)/include |
68 | LIBRARY = $(PREFIX)/lib |
69 | LDFLAGS = $(BASE_LDFLAGS) |
70 | endif |
71 | endif |
72 | endif |
73 | endif |
74 | endif |
75 | |
76 | # Assign includes |
77 | CXXFLAGS += -I$(INCLUDE) -I$(INCLUDE)/SDL |
78 | |
79 | ifeq ($(BUILDTYPE),debug) |
80 | CXXFLAGS += -DDEBUG |
81 | endif |
82 | |
83 | # Source files |
84 | SRCS = main.cpp cselector.cpp cprofile.cpp cconfig.cpp csystem.cpp czip.cpp cbase.cpp |
85 | SRCS_ZIP = ioapi.c unzip.c |
86 | |
87 | # Assign paths to binaries/sources/objects |
88 | BUILD = build |
89 | SRCDIR = src |
90 | SRCDIR_ZIP = $(SRCDIR)/unzip |
91 | OBJDIR = $(BUILD)/objs/$(BUILDTYPE) |
92 | |
93 | SRCS := $(addprefix $(SRCDIR)/,$(SRCS)) |
94 | OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o)) |
95 | SRCS_ZIP := $(addprefix $(SRCDIR_ZIP)/,$(SRCS_ZIP)) |
96 | OBJS_ZIP := $(addprefix $(OBJDIR)/,$(SRCS_ZIP:.c=.o)) |
97 | |
98 | LIB_ZIP := $(addprefix $(OBJDIR)/,$(LIB_ZIP)) |
99 | PROGRAM := $(addprefix $(BUILD)/,$(PROGRAM)) |
100 | |
101 | # Assign Tools |
102 | CC = $(PREFIX)/$(TOOLS)/$(TARGET)gcc |
103 | CXX = $(PREFIX)/$(TOOLS)/$(TARGET)g++ |
104 | AR = $(PREFIX)/$(TOOLS)/$(TARGET)ar |
105 | |
106 | # Build rules |
107 | all : setup $(LIB_ZIP) $(PROGRAM) |
108 | |
109 | setup: |
110 | mkdir -p $(OBJDIR)/$(SRCDIR_ZIP) |
111 | |
112 | $(LIB_ZIP): $(OBJS_ZIP) |
113 | $(AR) rcs $(LIB_ZIP) $(OBJS_ZIP) |
114 | |
115 | $(PROGRAM): $(OBJS) |
116 | $(CXX) $(CXXFLAGS) -o $(PROGRAM) $(OBJS) $(LIB_ZIP) $(LDFLAGS) |
117 | |
118 | $(OBJDIR)/$(SRCDIR_ZIP)/%.o: $(SRCDIR_ZIP)/%.c |
119 | $(CC) $(ZIP_CFLAGS) -c $< -o $@ |
120 | |
121 | $(OBJDIR)/$(SRCDIR)/%.o: $(SRCDIR)/%.cpp |
122 | $(CXX) $(CXXFLAGS) -c $< -o $@ |
123 | |
124 | clean: |
125 | rm -f $(PROGRAM) $(OBJS) $(LIB_ZIP) $(OBJS_ZIP) |