GLES2GLIDE: Added LTO Optim back to Makefile
[mupen64plus-pandora.git] / source / gles2glide64 / Makefile
CommitLineData
98e75f2d 1PIC ?= 1
2NO_ASM := 1
ac32fc3a 3CFLAGS += -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -mtune=cortex-a8 -fsigned-char -DNO_ASM -DPAULSCODE -Ofast -flto -fuse-linker-plugin
98e75f2d 4CFLAGS += -I ../../../../mupen64plus-bundle-src-2.0/source/mupen64plus-core/src/api/
5CFLAGS += `sdl-config --cflags`
6
7SHARED = -shared
8SRCDIR := src
9
10MODULE := gles2glide64
11SHARED_LIBRARIES := SDL core
12STATIC_LIBRARIES := png
13ARM_MODE := arm
14
15C_INCLUDES := \
16 $(M64P_API_INCLUDES) \
17 $(SDL_INCLUDES) \
18
19SOURCE := \
20 $(SRCDIR)/Glitch64/combiner.cpp \
21 $(SRCDIR)/Glitch64/geometry.cpp \
22 $(SRCDIR)/Glitch64/glitchmain.cpp \
23 $(SRCDIR)/Glitch64/textures.cpp \
24 $(SRCDIR)/Glide64/osal_dynamiclib_unix.c \
25 $(SRCDIR)/Glide64/3dmath.cpp \
26 $(SRCDIR)/Glide64/Combine.cpp \
27 $(SRCDIR)/Glide64/Config.cpp \
28 $(SRCDIR)/Glide64/CRC.cpp \
29 $(SRCDIR)/Glide64/Debugger.cpp \
30 $(SRCDIR)/Glide64/DepthBufferRender.cpp \
31 $(SRCDIR)/Glide64/FBtoScreen.cpp \
32 $(SRCDIR)/Glide64/FrameSkipper.cpp \
33 $(SRCDIR)/Glide64/Ini.cpp \
34 $(SRCDIR)/Glide64/Keys.cpp \
35 $(SRCDIR)/Glide64/Main.cpp \
36 $(SRCDIR)/Glide64/rdp.cpp \
37 $(SRCDIR)/Glide64/TexBuffer.cpp \
38 $(SRCDIR)/Glide64/TexCache.cpp \
39 $(SRCDIR)/Glide64/ticks.c \
40 $(SRCDIR)/Glide64/Util.cpp \
41
42CFLAGS += \
43 $(COMMON_CFLAGS) \
44 -D__CRC_OPT \
45 -D__HASHMAP_OPT \
46 -D__TRIBUFFER_OPT \
47 -D__VEC4_OPT \
48 -DUSE_SDL \
49 -fsigned-char \
50 #-DSDL_NO_COMPAT \
51
52ifeq ($(PIC), 1)
53 CFLAGS += -fPIC
54else
55 CFLAGS += -fno-PIC
56endif
57
58CPPFLAGS := $(CPPFLAGS)
59
60LDLIBS := \
61 -lGLESv2 \
62 -lEGL \
63 -lrt \
64
65# Use for ARM7a:
66CFLAGS += -DARM_ASM
67CFLAGS += -D__NEON_OPT
68
69LDFLAGS += $(SHARED)
70
71include $(BUILD_SHARED_LIBRARY)
72
73# set base program pointers and flags
74CC = $(CROSS_COMPILE)gcc
75CXX = $(CROSS_COMPILE)g++
76RM ?= rm -f
77INSTALL ?= install
78MKDIR ?= mkdir -p
ac32fc3a 79COMPILE.c = $(Q_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -gdwarf-2 -flto -fuse-linker-plugin -c
80COMPILE.cc = $(Q_CXX)$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -gdwarf-2 -flto -fuse-linker-plugin -c
81LINK.o = $(Q_LD)$(CXX) $(CXXFLAGS) $(LDFLAGS) $(TARGET_ARCH) -gdwarf-2 -flto -fuse-linker-plugin
98e75f2d 82
83# set installation options
84ifeq ($(PREFIX),)
85 PREFIX := /usr/local
86endif
87ifeq ($(SHAREDIR),)
88 SHAREDIR := $(PREFIX)/share/mupen64plus
89endif
90ifeq ($(LIBDIR),)
91 LIBDIR := $(PREFIX)/lib
92endif
93ifeq ($(PLUGINDIR),)
94 PLUGINDIR := $(LIBDIR)/mupen64plus
95endif
96
97OBJDIR = _obj$(POSTFIX)
98
99# generate a list of object files build, make a temporary directory for them
100OBJECTS := $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(filter %.c, $(SOURCE)))
101OBJECTS += $(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(filter %.cpp, $(SOURCE)))
102OBJDIRS = $(dir $(OBJECTS))
103$(shell $(MKDIR) $(OBJDIRS))
104
105# build targets
106TARGET = mupen64plus-video-gles2n64.so
107
108targets:
109 @echo "Mupen64plus-video-rice N64 Graphics plugin makefile. "
110 @echo " Targets:"
111 @echo " all == Build Mupen64plus-video-rice plugin"
112 @echo " clean == remove object files"
113 @echo " rebuild == clean and re-build all"
114 @echo " install == Install Mupen64Plus-video-rice plugin"
115 @echo " uninstall == Uninstall Mupen64Plus-video-rice plugin"
116 @echo " Options:"
117 @echo " BITS=32 == build 32-bit binaries on 64-bit machine"
118 @echo " NO_ASM=1 == build without inline assembly code (x86 MMX/SSE)"
119 @echo " APIDIR=path == path to find Mupen64Plus Core headers"
120 @echo " OPTFLAGS=flag == compiler optimization (default: -O3)"
121 @echo " WARNFLAGS=flag == compiler warning levels (default: -Wall)"
122 @echo " PIC=(1|0) == Force enable/disable of position independent code"
123 @echo " POSTFIX=name == String added to the name of the the build (default: '')"
124 @echo " Install Options:"
125 @echo " PREFIX=path == install/uninstall prefix (default: /usr/local)"
126 @echo " SHAREDIR=path == path to install shared data files (default: PREFIX/share/mupen64plus)"
127 @echo " LIBDIR=path == library prefix (default: PREFIX/lib)"
128 @echo " PLUGINDIR=path == path to install plugin libraries (default: LIBDIR/mupen64plus)"
129 @echo " DESTDIR=path == path to prepend to all installation paths (only for packagers)"
130 @echo " Debugging Options:"
131 @echo " DEBUG=1 == add debugging symbols"
132 @echo " V=1 == show verbose compiler output"
133
134all: $(TARGET)
135
136install: $(TARGET)
137 $(INSTALL) -d "$(DESTDIR)$(PLUGINDIR)"
138 $(INSTALL) -m 0644 $(INSTALL_STRIP_FLAG) $(TARGET) "$(DESTDIR)$(PLUGINDIR)"
139 $(INSTALL) -d "$(DESTDIR)$(SHAREDIR)"
140
141uninstall:
142 $(RM) "$(DESTDIR)$(PLUGINDIR)/$(TARGET)"
143
144clean:
145 $(RM) -r $(OBJDIR) $(TARGET)
146
147rebuild: clean all
148
149# build dependency files
150CFLAGS += -MD
151-include $(OBJECTS:.o=.d)
152
153CXXFLAGS += $(CFLAGS)
154
155# standard build rules
156$(OBJDIR)/%.o: $(SRCDIR)/%.c
157 $(COMPILE.c) -o $@ $<
158
159$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
160 $(COMPILE.cc) -o $@ $<
161
162$(TARGET): $(OBJECTS)
163 $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@
164
165.PHONY: all clean install uninstall targets