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