X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=source%2Fgles2n64%2FMakefile;fp=source%2Fgles2n64%2FMakefile;h=3048cfacd88ceea3d146c21cbaf59549f735b376;hb=34cf40586ac07c54d9bfc5be30f28743232b6d67;hp=0000000000000000000000000000000000000000;hpb=22726e4d55be26faa48b57b22689cbedde27ae44;p=mupen64plus-pandora.git diff --git a/source/gles2n64/Makefile b/source/gles2n64/Makefile new file mode 100755 index 0000000..3048cfa --- /dev/null +++ b/source/gles2n64/Makefile @@ -0,0 +1,176 @@ +PIC ?= 1 +NO_ASM := 1 +CFLAGS += -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -mtune=cortex-a8 -fsigned-char -DNO_ASM -DPAULSCODE -Ofast -ffast-math -fno-strict-aliasing +CFLAGS += -I ../mupen64plus-core/src/api/ +CFLAGS += `sdl-config --cflags` + +SHARED = -shared +SRCDIR := src + +MODULE := gles2n64 +SHARED_LIBRARIES := SDL core +ARM_MODE := arm + +C_INCLUDES := \ + $(M64P_API_INCLUDES) \ + $(SDL_INCLUDES) \ + +SOURCE := \ + $(SRCDIR)/2xSAI.cpp \ + $(SRCDIR)/3DMath.cpp \ + $(SRCDIR)/Config.cpp \ + $(SRCDIR)/CRC.cpp \ + $(SRCDIR)/DepthBuffer.cpp \ + $(SRCDIR)/F3D.cpp \ + $(SRCDIR)/F3DCBFD.cpp \ + $(SRCDIR)/F3DDKR.cpp \ + $(SRCDIR)/F3DEX.cpp \ + $(SRCDIR)/F3DEX2.cpp \ + $(SRCDIR)/F3DPD.cpp \ + $(SRCDIR)/F3DWRUS.cpp \ + $(SRCDIR)/FrameSkipper.cpp \ + $(SRCDIR)/GBI.cpp \ + $(SRCDIR)/gDP.cpp \ + $(SRCDIR)/gles2N64.cpp \ + $(SRCDIR)/gSP.cpp \ + $(SRCDIR)/L3D.cpp \ + $(SRCDIR)/L3DEX.cpp \ + $(SRCDIR)/L3DEX2.cpp \ + $(SRCDIR)/N64.cpp \ + $(SRCDIR)/OpenGL.cpp \ + $(SRCDIR)/RDP.cpp \ + $(SRCDIR)/RSP.cpp \ + $(SRCDIR)/S2DEX.cpp \ + $(SRCDIR)/S2DEX2.cpp \ + $(SRCDIR)/ShaderCombiner.cpp \ + $(SRCDIR)/Textures.cpp \ + $(SRCDIR)/ticks.c \ + $(SRCDIR)/VI.cpp \ + $(SRCDIR)/eglport.cpp \ + +CFLAGS += \ + $(COMMON_CFLAGS) \ + -D__CRC_OPT \ + -D__HASHMAP_OPT \ + -D__TRIBUFFER_OPT \ + -D__VEC4_OPT \ + -DUSE_SDL \ + -fsigned-char \ + #-DSDL_NO_COMPAT \ + +ifeq ($(PIC), 1) + CFLAGS += -fPIC +else + CFLAGS += -fno-PIC +endif + +CPPFLAGS := $(CPPFLAGS) + +LDLIBS := \ + -lGLESv2 \ + -lEGL \ + -lrt \ + +# Use for ARM7a: +SOURCE += $(SRCDIR)/gSPNeon.cpp +SOURCE += $(SRCDIR)/3DMathNeon.cpp +CFLAGS += -DARM_ASM +CFLAGS += -D__NEON_OPT + +LDFLAGS += $(SHARED) + +include $(BUILD_SHARED_LIBRARY) + +# set base program pointers and flags +CC = $(CROSS_COMPILE)gcc +CXX = $(CROSS_COMPILE)g++ +RM ?= rm -f +INSTALL ?= install +MKDIR ?= mkdir -p +COMPILE.c = $(Q_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -gdwarf-2 -c +COMPILE.cc = $(Q_CXX)$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -gdwarf-2 -c +LINK.o = $(Q_LD)$(CXX) $(CXXFLAGS) $(LDFLAGS) $(TARGET_ARCH) -gdwarf-2 + +# set installation options +ifeq ($(PREFIX),) + PREFIX := /usr/local +endif +ifeq ($(SHAREDIR),) + SHAREDIR := $(PREFIX)/share/mupen64plus +endif +ifeq ($(LIBDIR),) + LIBDIR := $(PREFIX)/lib +endif +ifeq ($(PLUGINDIR),) + PLUGINDIR := $(LIBDIR)/mupen64plus +endif + +OBJDIR = _obj$(POSTFIX) + +# generate a list of object files build, make a temporary directory for them +OBJECTS := $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(filter %.c, $(SOURCE))) +OBJECTS += $(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(filter %.cpp, $(SOURCE))) +OBJDIRS = $(dir $(OBJECTS)) +$(shell $(MKDIR) $(OBJDIRS)) + +# build targets +TARGET = mupen64plus-video-gles2n64.so + +targets: + @echo "Mupen64plus-video-rice N64 Graphics plugin makefile. " + @echo " Targets:" + @echo " all == Build Mupen64plus-video-rice plugin" + @echo " clean == remove object files" + @echo " rebuild == clean and re-build all" + @echo " install == Install Mupen64Plus-video-rice plugin" + @echo " uninstall == Uninstall Mupen64Plus-video-rice plugin" + @echo " Options:" + @echo " BITS=32 == build 32-bit binaries on 64-bit machine" + @echo " NO_ASM=1 == build without inline assembly code (x86 MMX/SSE)" + @echo " APIDIR=path == path to find Mupen64Plus Core headers" + @echo " OPTFLAGS=flag == compiler optimization (default: -O3)" + @echo " WARNFLAGS=flag == compiler warning levels (default: -Wall)" + @echo " PIC=(1|0) == Force enable/disable of position independent code" + @echo " POSTFIX=name == String added to the name of the the build (default: '')" + @echo " Install Options:" + @echo " PREFIX=path == install/uninstall prefix (default: /usr/local)" + @echo " SHAREDIR=path == path to install shared data files (default: PREFIX/share/mupen64plus)" + @echo " LIBDIR=path == library prefix (default: PREFIX/lib)" + @echo " PLUGINDIR=path == path to install plugin libraries (default: LIBDIR/mupen64plus)" + @echo " DESTDIR=path == path to prepend to all installation paths (only for packagers)" + @echo " Debugging Options:" + @echo " DEBUG=1 == add debugging symbols" + @echo " V=1 == show verbose compiler output" + +all: $(TARGET) + +install: $(TARGET) + $(INSTALL) -d "$(DESTDIR)$(PLUGINDIR)" + $(INSTALL) -m 0644 $(INSTALL_STRIP_FLAG) $(TARGET) "$(DESTDIR)$(PLUGINDIR)" + $(INSTALL) -d "$(DESTDIR)$(SHAREDIR)" + +uninstall: + $(RM) "$(DESTDIR)$(PLUGINDIR)/$(TARGET)" + +clean: + $(RM) -r $(OBJDIR) $(TARGET) + +rebuild: clean all + +# build dependency files +CFLAGS += -MD +-include $(OBJECTS:.o=.d) + +CXXFLAGS += $(CFLAGS) + +# standard build rules +$(OBJDIR)/%.o: $(SRCDIR)/%.c + $(COMPILE.c) -o $@ $< + +$(OBJDIR)/%.o: $(SRCDIR)/%.cpp + $(COMPILE.cc) -o $@ $< + +$(TARGET): $(OBJECTS) + $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@ + +.PHONY: all clean install uninstall targets