Fixed MacOS Build (r807)

Linux geeks and Mac OS hipsters unite! A board for discussion of Supermodel on non-Windows platforms.
Forum rules
Keep it classy!

  • No ROM requests or links.
  • Do not ask to be a play tester.
  • Do not ask about release dates.
  • No drama!

Fixed MacOS Build (r807)

Postby rrshier » Thu Jul 23, 2020 5:30 pm

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:
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/"
rrshier
 
Posts: 1
Joined: Sun Apr 02, 2017 5:32 pm

Re: Fixed MacOS Build (r807)

Postby Bart » Thu Jul 23, 2020 8:44 pm

This is great! Let me give this a shot this weekend.
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Fixed MacOS Build (r807)

Postby Bart » Sat Jul 25, 2020 1:15 pm

This does not work for me. It complains that it cannot find the header file SDL.h. It appears that clang isn't finding the framework in /Library/Frameworks (and I can confirm SDL2.framework is definitely there).

EDIT: I have to actually include it as SDL2/SDL.h
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Fixed MacOS Build (r807)

Postby Bart » Sat Jul 25, 2020 2:55 pm

So I've got it working in Mac OS. But I notice a few weird things. Namely, when I run -config-inputs and press 'down' enough times, it just auto-quits as if I had pressed 'q'. WTF?
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Fixed MacOS Build (r807)

Postby 2DForever » Wed Sep 23, 2020 4:12 am

I no longer have Xcode setup on my machine, is there any chance you could post a build as well? (I realise this is a bit old now, but thought I'd check! Thank you!)
2DForever
 
Posts: 32
Joined: Mon Feb 17, 2014 4:46 am

Re: Fixed MacOS Build (r807)

Postby fearbefore » Sun Nov 08, 2020 4:14 pm

2DForever wrote:I no longer have Xcode setup on my machine, is there any chance you could post a build as well? (I realise this is a bit old now, but thought I'd check! Thank you!)


Same here, would love the build as well!
fearbefore
 
Posts: 10
Joined: Wed Nov 04, 2020 6:35 pm


Return to Alternative Fashion

Who is online

Users browsing this forum: No registered users and 0 guests

cron