mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2025-04-10 19:15:14 +00:00

- Changed gear shifting behavior: neutral gear has its own button now. - Removed SUPERMODEL_SOUND. - DirectInput is the default input system for Windows now. - Multi-threading is on by default, replaced -multi-threaded w/ -no-threads. - Made crosshairs larger and more visible. - Added Nik to co-author list and began updating file copyright notices. - Fixed Virtua Striker 2 input names (player 2 inputs end with the number 2 instead of 1). - Added documentation to a Docs/ subdirectory. - Exported all default input configurations to Supermodel.ini and added that to the repository. Internally, Supermodel initializes all controls to "NONE" now.
207 lines
7.5 KiB
Makefile
207 lines
7.5 KiB
Makefile
##
|
|
## Supermodel
|
|
## A Sega Model 3 Arcade Emulator.
|
|
## Copyright 2011 Bart Trzynadlowski
|
|
##
|
|
## This file is part of Supermodel.
|
|
##
|
|
## Supermodel is free software: you can redistribute it and/or modify it under
|
|
## the terms of the GNU General Public License as published by the Free
|
|
## Software Foundation, either version 3 of the License, or (at your option)
|
|
## any later version.
|
|
##
|
|
## Supermodel is distributed in the hope that it will be useful, but WITHOUT
|
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
## more details.
|
|
##
|
|
## You should have received a copy of the GNU General Public License along
|
|
## with Supermodel. If not, see <http://www.gnu.org/licenses/>.
|
|
##
|
|
|
|
#
|
|
# Makefile.SDL.OSX.GCC
|
|
#
|
|
# GNU Makefile for SDL port using GCC on Mac OS X.
|
|
#
|
|
|
|
###############################################################################
|
|
# Build Options
|
|
###############################################################################
|
|
|
|
#
|
|
# Include console-based debugger in emulator ('yes' or 'no')
|
|
#
|
|
ENABLE_DEBUGGER = no
|
|
|
|
|
|
###############################################################################
|
|
# Required Libraries
|
|
#
|
|
# Edit these paths as necessary.
|
|
###############################################################################
|
|
|
|
#
|
|
# SDL
|
|
#
|
|
SDL_LDFLAGS = -framework SDL -framework AGL -framework OpenGL -framework GLUT -framework Cocoa
|
|
SDL_INCLUDEPATH =
|
|
|
|
|
|
###############################################################################
|
|
# Outputs
|
|
###############################################################################
|
|
|
|
OUTFILE = Supermodel
|
|
OBJ_DIR = obj
|
|
|
|
|
|
###############################################################################
|
|
# Compiler
|
|
###############################################################################
|
|
|
|
CC = gcc
|
|
OCC = gcc
|
|
LD = gcc
|
|
COMPILER_FLAGS = -I$(OBJ_DIR) -ISrc/ -ISrc/OSD -ISrc/OSD/SDL/ -ISrc/Pkgs/ -ISrc/CPU/68K/Musashi -ISrc/Sound/MPEG -c -Wall -O3 -DUSE_FILE32API -DSUPERMODEL_OSX
|
|
CFLAGS = $(COMPILER_FLAGS)
|
|
CPPFLAGS = $(COMPILER_FLAGS)
|
|
LFLAGS = -o $(OUTFILE) $(SDL_LDFLAGS) -lz -lm -lstdc++
|
|
|
|
#
|
|
# Build options...
|
|
#
|
|
|
|
# Add compiler flags for various options
|
|
ifeq ($(strip $(ENABLE_DEBUGGER)),yes)
|
|
COMPILER_FLAGS += -DSUPERMODEL_DEBUGGER
|
|
endif
|
|
|
|
|
|
###############################################################################
|
|
# Build Instructions
|
|
###############################################################################
|
|
|
|
#
|
|
# Objects and Dependencies
|
|
#
|
|
|
|
HEADERS = Src/Supermodel.h Src/Games.h Src/OSD/SDL/Types.h
|
|
OBJ = $(OBJ_DIR)/PPCDisasm.o $(OBJ_DIR)/Games.o $(OBJ_DIR)/INIFile.o $(OBJ_DIR)/BlockFile.o $(OBJ_DIR)/93C46.o \
|
|
$(OBJ_DIR)/ROMLoad.o $(OBJ_DIR)/unzip.o $(OBJ_DIR)/ioapi.o $(OBJ_DIR)/Error.o $(OBJ_DIR)/glew.o $(OBJ_DIR)/Shader.o \
|
|
$(OBJ_DIR)/Real3D.o $(OBJ_DIR)/Render3D.o $(OBJ_DIR)/Models.o $(OBJ_DIR)/Render2D.o $(OBJ_DIR)/TileGen.o \
|
|
$(OBJ_DIR)/Model3.o $(OBJ_DIR)/ppc.o $(OBJ_DIR)/Main.o $(OBJ_DIR)/Audio.o $(OBJ_DIR)/Thread.o $(OBJ_DIR)/SoundBoard.o \
|
|
$(OBJ_DIR)/SCSP.o $(OBJ_DIR)/SCSPDSP.o $(OBJ_DIR)/68K.o $(OBJ_DIR)/m68kcpu.o $(OBJ_DIR)/m68kopnz.o $(OBJ_DIR)/m68kopdm.o \
|
|
$(OBJ_DIR)/m68kopac.o $(OBJ_DIR)/m68kops.o $(OBJ_DIR)/DSB.o $(OBJ_DIR)/Z80.o \
|
|
$(OBJ_DIR)/IRQ.o $(OBJ_DIR)/53C810.o $(OBJ_DIR)/PCI.o $(OBJ_DIR)/RTC72421.o \
|
|
$(OBJ_DIR)/MPC10x.o $(OBJ_DIR)/Input.o $(OBJ_DIR)/Inputs.o $(OBJ_DIR)/InputSource.o $(OBJ_DIR)/InputSystem.o \
|
|
$(OBJ_DIR)/InputTypes.o $(OBJ_DIR)/MultiInputSource.o $(OBJ_DIR)/SDLInputSystem.o \
|
|
$(OBJ_DIR)/amp_audio.o $(OBJ_DIR)/amp_dump.o $(OBJ_DIR)/amp_getbits.o $(OBJ_DIR)/amp_getdata.o $(OBJ_DIR)/amp_huffman.o \
|
|
$(OBJ_DIR)/amp_layer2.o $(OBJ_DIR)/amp_layer3.o $(OBJ_DIR)/amp_misc2.o $(OBJ_DIR)/amp_position.o $(OBJ_DIR)/amp_transform.o \
|
|
$(OBJ_DIR)/amp_util.o $(OBJ_DIR)/SDLMain_tmpl.o
|
|
|
|
# If built-in debugger enabled, include all debugging classes
|
|
ifeq ($(strip $(ENABLE_DEBUGGER)),yes)
|
|
OBJ += $(OBJ_DIR)/Debugger.o $(OBJ_DIR)/ConsoleDebugger.o $(OBJ_DIR)/SupermodelDebugger.o $(OBJ_DIR)/CPUDebug.o \
|
|
$(OBJ_DIR)/AddressTable.o $(OBJ_DIR)/Breakpoint.o $(OBJ_DIR)/CodeAnalyser.o $(OBJ_DIR)/Exception.o \
|
|
$(OBJ_DIR)/Interrupt.o $(OBJ_DIR)/IO.o $(OBJ_DIR)/Label.o $(OBJ_DIR)/Register.o $(OBJ_DIR)/Watch.o \
|
|
$(OBJ_DIR)/PPCDebug.o
|
|
endif
|
|
|
|
#
|
|
# Rules
|
|
#
|
|
|
|
all: $(OBJ_DIR) $(OBJ)
|
|
$(LD) $(LFLAGS) $(OBJ_LIBS) $(OBJ)
|
|
|
|
$(OBJ_DIR):
|
|
mkdir $(OBJ_DIR)
|
|
|
|
clean:
|
|
rm -f $(OUTFILE)
|
|
rm -f $(OBJ_DIR)/*.o
|
|
|
|
#
|
|
# Musashi 68K emulator
|
|
#
|
|
# All generated source files are emitted to the object directory. For MSVC,
|
|
# INLINE must be redefined as "static __inline", which is the syntax in C mode.
|
|
#
|
|
$(OBJ_DIR)/m68kmake: Src/CPU/68K/Musashi/m68kmake.c
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/m68kmake.o
|
|
$(LD) -o $(OBJ_DIR)/m68kmake $(ARCH_LIBS) $(OBJ_DIR)/m68kmake.o
|
|
|
|
$(OBJ_DIR)/m68kops.h: $(OBJ_DIR)/m68kmake Src/CPU/68K/Musashi/m68k_in.c
|
|
$(OBJ_DIR)/m68kmake $(OBJ_DIR) Src/CPU/68K/Musashi/m68k_in.c
|
|
|
|
$(OBJ_DIR)/m68kcpu.o: Src/CPU/68K/Musashi/m68kcpu.c $(OBJ_DIR)/m68kops.h Src/CPU/68K/Musashi/m68k.h Src/CPU/68K/Musashi/m68kconf.h
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/m68kcpu.o
|
|
|
|
$(OBJ_DIR)/m68kops.o: $(OBJ_DIR)/m68kops.c $(OBJ_DIR)/m68kmake $(OBJ_DIR)/m68kops.h Src/CPU/68K/Musashi/m68k.h Src/CPU/68K/Musashi/m68kconf.h
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/m68kops.o
|
|
|
|
$(OBJ_DIR)/m68kopac.o: $(OBJ_DIR)/m68kopac.c $(OBJ_DIR)/m68kmake $(OBJ_DIR)/m68kops.h Src/CPU/68K/Musashi/m68k.h Src/CPU/68K/Musashi/m68kconf.h
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/m68kopac.o
|
|
|
|
$(OBJ_DIR)/m68kopdm.o: $(OBJ_DIR)/m68kopdm.c $(OBJ_DIR)/m68kmake $(OBJ_DIR)/m68kops.h Src/CPU/68K/Musashi/m68k.h Src/CPU/68K/Musashi/m68kconf.h
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/m68kopdm.o
|
|
|
|
$(OBJ_DIR)/m68kopnz.o: $(OBJ_DIR)/m68kopnz.c $(OBJ_DIR)/m68kmake $(OBJ_DIR)/m68kops.h Src/CPU/68K/Musashi/m68k.h Src/CPU/68K/Musashi/m68kconf.h
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/m68kopnz.o
|
|
|
|
$(OBJ_DIR)/%.o: Src/%.cpp Src/%.h $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/%.cpp $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/OSD/SDL/%.cpp Src/OSD/SDL/%.h $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/Model3/%.cpp Src/Model3/%.h $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/Graphics/%.cpp Src/Graphics/%.h $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/Graphics/%.cpp $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/Debugger/%.cpp Src/Debugger/%.h $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/Debugger/CPU/%.cpp Src/Debugger/CPU/%.h $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/CPU/PowerPC/%.cpp Src/CPU/PowerPC/%.h $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/CPU/68K/%.cpp Src/CPU/68K/%.h $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/CPU/Z80/%.cpp Src/CPU/Z80/%.h $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/Inputs/%.cpp Src/Inputs/%.h $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/Sound/%.cpp Src/Sound/%.h $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/Sound/MPEG/%.cpp
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/OSD/SDL/%.cpp $(HEADERS)
|
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/OSD/SDL/%.m $(HEADERS)
|
|
$(OCC) -x objective-c++ $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/Pkgs/%.c Src/Pkgs/%.h
|
|
$(CC) $< $(CFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|
|
$(OBJ_DIR)/%.o: Src/Pkgs/%.c
|
|
$(CC) $< $(CFLAGS) -o $(OBJ_DIR)/$(*F).o
|
|
|