Fixed MacOS Build (r807)

I have a fixed build of the newest SVN for MacOS. It comes down to how the SDL2 framework is installed, its location, some minor changes to the make file, and the replacement of all references to "SDL/SDL.h" (and SDL_Sound, etc...) to remove the preceding "SDL/" (as the framework doesn't have a higher level SDL folder enclosing the files), and 3 linkage problems solved by removing the "64" at the end of fopen64, ftello64, and fseeko64 within ioapi.c.
The link I found good instructions for proper installation of the SDL2 framework is here:
http://lazyfoo.net/tutorials/SDL/01_hel ... /index.php
MAKE FILE:
Src/Pkgs/ioapi.c line 115
Src/Pkgs/ioapi.c Line 145
Src/Pkgs/ioapi.c Line 191
Mind you, these are the SIMPLE fixes, and really should be surrounded buy preprocessor control statements for MacOS building.
Almost all of the .cpp and .m files within Src/OSD/SDL/
need to have their headers changed to "SDL.h" from "SDL/SDL.h" and anything else that references the folder "SDL/"
The link I found good instructions for proper installation of the SDL2 framework is here:
http://lazyfoo.net/tutorials/SDL/01_hel ... /index.php
MAKE FILE:
- Code: Select all
#
# TODO: MacOS port is probably broken. Someone with MacOS needs to figure out
# how to compile with SDL2.
#
##
## Supermodel
## A Sega Model 3 Arcade Emulator.
## Copyright 2011-2017 Bart Trzynadlowski, Nik Henson, Ian Curtis
##
## 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.OSX
#
# Makefile for Mac OS X systems using gcc.
#
###############################################################################
# Build Options
###############################################################################
DELETE = rm -d -r -f
###############################################################################
# Platform Configuration
#
# Edit library and include paths as needed.
###############################################################################
#
# Toolchain
#
CC = gcc
CXX = g++
LD = gcc
#
# SDL
#
SDL_CFLAGS =
# THIS line changed to use SDL2 instead of SDL
SDL_LIBS = -framework SDL2 -framework AGL -framework OpenGL -framework GLUT -framework Cocoa
#
# OSX-specific
#
PLATFORM_CFLAGS = $(SDL_CFLAGS) -DSUPERMODEL_OSX -DUSE_FILE32API -F/Library/Frameworks/
PLATFORM_LDFLAGS = $(SDL_LIBS) -lz -lm -lstdc++ -F/Library/Frameworks/
###############################################################################
# Core Makefile
###############################################################################
include Makefiles/Makefile.inc
clean:
$(SILENT)echo Cleaning up \"$(BIN_DIR)\" and \"$(OBJ_DIR)\"...
$(SILENT)$(DELETE) $(BIN_DIR)
$(SILENT)$(DELETE) $(OBJ_DIR)
Src/Pkgs/ioapi.c line 115
- Code: Select all
file = fopen((const char*)filename, mode_fopen);
Src/Pkgs/ioapi.c Line 145
- Code: Select all
ret = ftello((FILE *)stream);
Src/Pkgs/ioapi.c Line 191
- Code: Select all
if(fseeko((FILE *)stream, offset, fseek_origin) != 0)
Mind you, these are the SIMPLE fixes, and really should be surrounded buy preprocessor control statements for MacOS building.
Almost all of the .cpp and .m files within Src/OSD/SDL/
need to have their headers changed to "SDL.h" from "SDL/SDL.h" and anything else that references the folder "SDL/"