| 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) |