3 #CFLAGS += -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -mtune=cortex-a8
4 CFLAGS += -fsigned-char -DNO_ASM -DPAULSCODE -Ofast -ffast-math -fno-strict-aliasing
5 CFLAGS += -mcpu=native -mtune=native -marm -mfpu=neon
6 CFLAGS += -I ../mupen64plus-core/src/api/
7 CFLAGS += `sdl-config --cflags`
13 SHARED_LIBRARIES := SDL core
17 $(M64P_API_INCLUDES) \
22 $(SRCDIR)/3DMath.cpp \
23 $(SRCDIR)/Config.cpp \
25 $(SRCDIR)/DepthBuffer.cpp \
27 $(SRCDIR)/F3DCBFD.cpp \
28 $(SRCDIR)/F3DDKR.cpp \
30 $(SRCDIR)/F3DEX2.cpp \
32 $(SRCDIR)/F3DWRUS.cpp \
33 $(SRCDIR)/FrameSkipper.cpp \
36 $(SRCDIR)/gles2N64.cpp \
40 $(SRCDIR)/L3DEX2.cpp \
42 $(SRCDIR)/OpenGL.cpp \
46 $(SRCDIR)/S2DEX2.cpp \
47 $(SRCDIR)/ShaderCombiner.cpp \
48 $(SRCDIR)/Textures.cpp \
51 $(SRCDIR)/eglport.cpp \
69 CPPFLAGS := $(CPPFLAGS)
77 SOURCE += $(SRCDIR)/gSPNeon.cpp
78 SOURCE += $(SRCDIR)/3DMathNeon.cpp
80 CFLAGS += -D__NEON_OPT
84 include $(BUILD_SHARED_LIBRARY)
86 # set base program pointers and flags
87 CC = $(CROSS_COMPILE)gcc
88 CXX = $(CROSS_COMPILE)g++
92 COMPILE.c = $(Q_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -gdwarf-2 -c
93 COMPILE.cc = $(Q_CXX)$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -gdwarf-2 -c
94 LINK.o = $(Q_LD)$(CXX) $(CXXFLAGS) $(LDFLAGS) $(TARGET_ARCH) -gdwarf-2
96 # set installation options
101 SHAREDIR := $(PREFIX)/share/mupen64plus
104 LIBDIR := $(PREFIX)/lib
107 PLUGINDIR := $(LIBDIR)/mupen64plus
110 OBJDIR = _obj$(POSTFIX)
112 # generate a list of object files build, make a temporary directory for them
113 OBJECTS := $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(filter %.c, $(SOURCE)))
114 OBJECTS += $(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(filter %.cpp, $(SOURCE)))
115 OBJDIRS = $(dir $(OBJECTS))
116 $(shell $(MKDIR) $(OBJDIRS))
119 TARGET = mupen64plus-video-gles2n64.so
122 @echo "Mupen64plus-video-rice N64 Graphics plugin makefile. "
124 @echo " all == Build Mupen64plus-video-rice plugin"
125 @echo " clean == remove object files"
126 @echo " rebuild == clean and re-build all"
127 @echo " install == Install Mupen64Plus-video-rice plugin"
128 @echo " uninstall == Uninstall Mupen64Plus-video-rice plugin"
130 @echo " BITS=32 == build 32-bit binaries on 64-bit machine"
131 @echo " NO_ASM=1 == build without inline assembly code (x86 MMX/SSE)"
132 @echo " APIDIR=path == path to find Mupen64Plus Core headers"
133 @echo " OPTFLAGS=flag == compiler optimization (default: -O3)"
134 @echo " WARNFLAGS=flag == compiler warning levels (default: -Wall)"
135 @echo " PIC=(1|0) == Force enable/disable of position independent code"
136 @echo " POSTFIX=name == String added to the name of the the build (default: '')"
137 @echo " Install Options:"
138 @echo " PREFIX=path == install/uninstall prefix (default: /usr/local)"
139 @echo " SHAREDIR=path == path to install shared data files (default: PREFIX/share/mupen64plus)"
140 @echo " LIBDIR=path == library prefix (default: PREFIX/lib)"
141 @echo " PLUGINDIR=path == path to install plugin libraries (default: LIBDIR/mupen64plus)"
142 @echo " DESTDIR=path == path to prepend to all installation paths (only for packagers)"
143 @echo " Debugging Options:"
144 @echo " DEBUG=1 == add debugging symbols"
145 @echo " V=1 == show verbose compiler output"
150 $(INSTALL) -d "$(DESTDIR)$(PLUGINDIR)"
151 $(INSTALL) -m 0644 $(INSTALL_STRIP_FLAG) $(TARGET) "$(DESTDIR)$(PLUGINDIR)"
152 $(INSTALL) -d "$(DESTDIR)$(SHAREDIR)"
155 $(RM) "$(DESTDIR)$(PLUGINDIR)/$(TARGET)"
158 $(RM) -r $(OBJDIR) $(TARGET)
162 # build dependency files
164 -include $(OBJECTS:.o=.d)
166 CXXFLAGS += $(CFLAGS)
168 # standard build rules
169 $(OBJDIR)/%.o: $(SRCDIR)/%.c
170 $(COMPILE.c) -o $@ $<
172 $(OBJDIR)/%.o: $(SRCDIR)/%.cpp
173 $(COMPILE.cc) -o $@ $<
175 $(TARGET): $(OBJECTS)
176 $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@
178 .PHONY: all clean install uninstall targets