mirror of
https://github.com/mupen64plus/mupen64plus-oldsvn.git
synced 2025-04-02 10:52:35 -04:00
163 lines
3.4 KiB
Makefile
163 lines
3.4 KiB
Makefile
# Makefile for Glide64, in Mupen64Plus
|
|
|
|
# include pre-make file with a bunch of definitions
|
|
include ../pre.mk
|
|
|
|
# set BITS
|
|
ifeq ("$(ARCH)","64BITS")
|
|
BITS=64
|
|
MOPT=-m amd64
|
|
else
|
|
BITS=32
|
|
MOPT=
|
|
endif
|
|
|
|
# local CFLAGS, LIBS, and LDFLAGS
|
|
CFLAGS = -O3 -Wall -g -DGCC -DUSE_GTK $(SDL_CFLAGS) $(GTK_FLAGS) -Iwrapper/ -ffast-math -funroll-loops
|
|
LDFLAGS = -shared -Wl,-Bsymbolic -lGL -lGLU -L/usr/X11R6/lib $(SDL_LIBS)
|
|
|
|
# set special flags per-system
|
|
ifeq ($(CPU), X86)
|
|
ifeq ($(ARCH), 64BITS)
|
|
CFLAGS += -march=athlon64 -fPIC
|
|
else
|
|
CFLAGS += -march=i686 -mtune=pentium-m -mmmx -msse
|
|
ifneq ($(PROFILE), 1)
|
|
ifneq ($(VPDEBUG), 1)
|
|
CFLAGS += -fomit-frame-pointer
|
|
endif
|
|
endif
|
|
endif
|
|
# tweak flags for 32-bit build on 64-bit system
|
|
ifeq ($(ARCH), 64BITS_32)
|
|
CFLAGS += -m32
|
|
LDFLAGS += -m32 -m elf_i386
|
|
endif
|
|
endif
|
|
ifeq ($(CPU), PPC)
|
|
CFLAGS += -mcpu=powerpc
|
|
endif
|
|
|
|
# set options
|
|
ifeq ($(PROFILE), 1)
|
|
CFLAGS += -pg -g
|
|
LDFLAGS += -pg
|
|
STRIP = true
|
|
else
|
|
ifeq ($(DBGSYM), 1)
|
|
CFLAGS += -g
|
|
STRIP = true
|
|
endif
|
|
endif
|
|
ifeq ($(NO_ASM), 1)
|
|
CFLAGS += -DNO_ASM
|
|
endif
|
|
ifeq ($(VPDEBUG), 1)
|
|
CFLAGS += -DVPDEBUG
|
|
LDFLAGS += -lIL
|
|
endif
|
|
ifeq ($(RDP_LOG_ERR), 1)
|
|
CFLAGS += -DRDP_LOGGING -DRDP_ERROR_LOG
|
|
else
|
|
ifeq ($(RDP_LOG), 1)
|
|
CFLAGS += -DRDP_LOGGING
|
|
endif
|
|
endif
|
|
|
|
# list of object files to generate
|
|
OBJECTS = \
|
|
Main.o \
|
|
rdp.o \
|
|
Ini.o \
|
|
TexCache.o \
|
|
Debugger.o \
|
|
Util.o \
|
|
CRC.o \
|
|
Combine.o \
|
|
TexBuffer.o \
|
|
Config.o \
|
|
3dmath.o \
|
|
DepthBufferRender.o
|
|
|
|
WRAPPEROBJECTS = \
|
|
wrapper/combiner.o \
|
|
wrapper/textures.o \
|
|
wrapper/main.o \
|
|
wrapper/geometry.o \
|
|
wrapper/config.o \
|
|
wrapper/filter.o \
|
|
wrapper/2xsai.o \
|
|
wrapper/hq2x.o \
|
|
wrapper/hq4x.o
|
|
|
|
GTKOBJECTS = \
|
|
support.o \
|
|
messagebox.o
|
|
|
|
OBJECTS += $(GTKOBJECTS) $(WRAPPEROBJECTS)
|
|
TARGET = glide64.so
|
|
|
|
CFLAGS += -MMD -MP -MQ $@
|
|
DEPS := $(OBJECTS:.o=.d)
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
-include $(DEPS)
|
|
endif
|
|
|
|
# build targets
|
|
targets:
|
|
@echo "Glide64 Video Plugin + wrapper makefile. "
|
|
@echo " Targets:"
|
|
@echo " all == Build Glide64 video plugin"
|
|
@echo " clean == remove object files"
|
|
@echo " rebuild == clean and re-build all"
|
|
@echo " Options:"
|
|
@echo " BITS=32 == build 32-bit binaries on 64-bit machine"
|
|
@echo " PROFILE=1 == build gprof instrumentation into binaries for profiling"
|
|
@echo " DBGSYM=1 == add debugging symbols to binaries"
|
|
@echo " NO_ASM=1 == disable inline assembly language code"
|
|
@echo " VPDEBUG=1 == some kind of debugging"
|
|
@echo " RDP_LOG=1 == Dump out RDP instruction data"
|
|
@echo " RDP_LOG_ERR=1 == Dump out RDP instruction data + errors"
|
|
|
|
all: $(TARGET)
|
|
|
|
$(TARGET): $(OBJECTS)
|
|
$(LD) $(OBJECTS) $(GTK_LIBS) $(LDFLAGS) -o $@
|
|
$(STRIP) --strip-all $@
|
|
|
|
Main.o: font.h cursor.h
|
|
font.h: compiletex
|
|
./compiletex font.tex font.h font
|
|
|
|
cursor.h: compiletex
|
|
./compiletex cursor.tex cursor.h cursor
|
|
|
|
compiletex: compiletex.c
|
|
@rm -f compiletex compiletex.o
|
|
$(CC) -o compiletex.o -c $<
|
|
$(LD) -o $@ compiletex.o
|
|
|
|
rdp.o: ucode06.h
|
|
|
|
clean:
|
|
$(RM) -rf $(OBJECTS) $(TARGET) $(DEPS) compiletex compiletex.o font.h cursor.h
|
|
$(RM) -rf *.ii *.i *.s
|
|
|
|
rebuild: clean $(TARGET)
|
|
|
|
|
|
# build rules
|
|
|
|
.SUFFIXES: .o .cpp .c
|
|
.cpp.o:
|
|
# in case this was invoked because a header changed and the compilation fails,
|
|
# the record of dependency in the .d is gone, but not the .o
|
|
@rm -f $@
|
|
$(CXX) -o $@ $(CFLAGS) -c $<
|
|
|
|
.c.o:
|
|
@rm -f $@
|
|
$(CC) -o $@ $(CFLAGS) -c $<
|
|
|
|
.PHONY: all clean rebuild
|
|
|