Launcher, based on PickleLauncher
[mupen64plus-pandora.git] / source / mupen64launcher / Makefile
diff --git a/source/mupen64launcher/Makefile b/source/mupen64launcher/Makefile
new file mode 100755 (executable)
index 0000000..50a8a4c
--- /dev/null
@@ -0,0 +1,125 @@
+# Picklelauncher makefile
+
+PROGRAM = mupen64launcher
+LIB_ZIP = libunzip.a
+
+# Build type
+#BUILDTYPE = debug
+BUILDTYPE = release
+BUILDTARGET = PANDORA
+
+# Compiler flags
+CXXFLAGS     ?= -g -Wall -Wextra -O3
+ZIP_CFLAGS   = $(CXXFLAGS)
+# Linker flags
+BASE_LDFLAGS = -L$(LIBRARY) -lSDL_ttf -lSDL_image -lSDL
+ZIP_LDFLAGS  = -L$(LIBRARY) -lz
+
+# Target compiler options
+ifeq ($(BUILDTARGET),PANDORA)
+PREFIX   = /mnt/utmp/codeblocks
+TOOLS    = usr/bin
+TARGET   = 
+INCLUDE  = $(PREFIX)/usr/include
+LIBRARY  = $(PREFIX)/usr/lib
+CXXFLAGS += -DPANDORA
+LDFLAGS  = $(BASE_LDFLAGS) -lfreetype -ltiff -lpng12 -lz -ljpeg -lts
+else
+ifeq ($(BUILDTARGET),CAANOO)
+PREFIX   = /data/devel/toolchains/caanoo/GPH_SDK
+TOOLS    = tools/gcc-4.2.4-glibc-2.7-eabi/bin
+TARGET   = arm-gph-linux-gnueabi-
+INCLUDE  = $(PREFIX)/DGE/include
+LIBRARY  = $(PREFIX)/DGE/lib/target
+CXXFLAGS += -DCAANOO
+LDFLAGS  = $(BASE_LDFLAGS)
+else
+ifeq ($(BUILDTARGET),WIZ)
+PREFIX   = /data/devel/toolchains/openwiz/arm-openwiz-linux-gnu
+TOOLS    = bin
+TARGET   = arm-openwiz-linux-gnu-
+INCLUDE  = $(PREFIX)/include
+LIBRARY  = $(PREFIX)/lib
+CXXFLAGS += -DWIZ
+LDFLAGS  = $(BASE_LDFLAGS) -lfreetype -lz
+else
+ifeq ($(BUILDTARGET),GP2X)
+PREFIX   = /data/devel/toolchains/open2x/gcc-4.1.1-glibc-2.3.6
+TOOLS    = bin
+TARGET   = arm-open2x-linux-
+INCLUDE  = $(PREFIX)/include
+LIBRARY  = $(PREFIX)/lib
+CXXFLAGS += -DGP2X
+LDFLAGS  = -static $(BASE_LDFLAGS) -lfreetype -lz -lpng12 -lpthread -ldl
+else
+ifeq ($(BUILDTARGET),GCW)
+PREFIX   = /data/devel/toolchains/gcw_mips/buildroot/output/host/usr
+TOOLS    = bin
+TARGET   = mipsel-gcw0-linux-uclibc-
+INCLUDE  = $(PREFIX)/mipsel-gcw0-linux-uclibc/sysroot/usr/include
+LIBRARY  = $(PREFIX)/mipsel-gcw0-linux-uclibc/sysroot/usr/lib
+CXXFLAGS += -DGCW
+LDFLAGS  = $(BASE_LDFLAGS) -lz -lpthread
+else # default linux
+PREFIX   = /usr
+TOOLS    = bin
+TARGET   =
+INCLUDE  = $(PREFIX)/include
+LIBRARY  = $(PREFIX)/lib
+LDFLAGS  = $(BASE_LDFLAGS)
+endif
+endif
+endif
+endif
+endif
+
+# Assign includes
+CXXFLAGS += -I$(INCLUDE) -I$(INCLUDE)/SDL
+
+ifeq ($(BUILDTYPE),debug)
+CXXFLAGS += -DDEBUG
+endif
+
+# Source files
+SRCS       = main.cpp cselector.cpp cprofile.cpp cconfig.cpp csystem.cpp czip.cpp cbase.cpp
+SRCS_ZIP   = ioapi.c unzip.c
+
+# Assign paths to binaries/sources/objects
+BUILD      = build
+SRCDIR     = src
+SRCDIR_ZIP = $(SRCDIR)/unzip
+OBJDIR     = $(BUILD)/objs/$(BUILDTYPE)
+
+SRCS       := $(addprefix $(SRCDIR)/,$(SRCS)) 
+OBJS       := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o)) 
+SRCS_ZIP   := $(addprefix $(SRCDIR_ZIP)/,$(SRCS_ZIP)) 
+OBJS_ZIP   := $(addprefix $(OBJDIR)/,$(SRCS_ZIP:.c=.o)) 
+
+LIB_ZIP    := $(addprefix $(OBJDIR)/,$(LIB_ZIP)) 
+PROGRAM    := $(addprefix $(BUILD)/,$(PROGRAM)) 
+
+# Assign Tools
+CC  = $(PREFIX)/$(TOOLS)/$(TARGET)gcc
+CXX = $(PREFIX)/$(TOOLS)/$(TARGET)g++
+AR  = $(PREFIX)/$(TOOLS)/$(TARGET)ar
+
+# Build rules
+all : setup $(LIB_ZIP) $(PROGRAM)
+
+setup:
+       mkdir -p $(OBJDIR)/$(SRCDIR_ZIP)
+
+$(LIB_ZIP): $(OBJS_ZIP)
+       $(AR) rcs $(LIB_ZIP) $(OBJS_ZIP)
+
+$(PROGRAM): $(OBJS)
+       $(CXX) $(CXXFLAGS) -o $(PROGRAM) $(OBJS) $(LIB_ZIP) $(LDFLAGS) 
+
+$(OBJDIR)/$(SRCDIR_ZIP)/%.o: $(SRCDIR_ZIP)/%.c
+       $(CC) $(ZIP_CFLAGS) -c $< -o $@
+
+$(OBJDIR)/$(SRCDIR)/%.o: $(SRCDIR)/%.cpp
+       $(CXX) $(CXXFLAGS) -c $< -o $@
+
+clean:
+       rm -f $(PROGRAM) $(OBJS) $(LIB_ZIP) $(OBJS_ZIP)