mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-22 03:55:11 +00:00
Merge pull request #133 from Hyenadae/osx_build_clean
OSX_BUILD cleaned commit (new rebase from Master)
This commit is contained in:
commit
ed58f0b0c7
7 changed files with 82 additions and 23 deletions
31
Makefile
31
Makefile
|
@ -23,8 +23,9 @@ TARGET_N64 = 0
|
|||
|
||||
# Build and optimize for Raspberry Pi(s)
|
||||
TARGET_RPI ?= 0
|
||||
# Compiler to use (ido or gcc)
|
||||
# COMPILER ?= ido // Old Default
|
||||
|
||||
# Makeflag to enable OSX fixes
|
||||
OSX_BUILD ?= 0
|
||||
|
||||
# Disable better camera by default
|
||||
BETTERCAMERA ?= 0
|
||||
|
@ -142,6 +143,10 @@ ifeq ($(TARGET_RPI),1) # Define RPi to change SDL2 title & GLES2 hints
|
|||
VERSION_CFLAGS += -DUSE_GLES
|
||||
endif
|
||||
|
||||
ifeq ($(OSX_BUILD),1) # Modify GFX & SDL2 for OSX GL
|
||||
VERSION_CFLAGS += -DOSX_BUILD
|
||||
endif
|
||||
|
||||
VERSION_ASFLAGS := --defsym AVOID_UB=1
|
||||
COMPARE := 0
|
||||
|
||||
|
@ -168,7 +173,7 @@ endif
|
|||
endif
|
||||
|
||||
# Make tools if out of date
|
||||
DUMMY != make -s -C tools >&2 || echo FAIL
|
||||
DUMMY != make -C tools >&2 || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to build tools)
|
||||
endif
|
||||
|
@ -411,6 +416,10 @@ ENDIAN_BITWIDTH := $(BUILD_DIR)/endian-and-bitwidth
|
|||
|
||||
AS := as
|
||||
|
||||
ifeq ($(OSX_BUILD),1)
|
||||
AS := i686-w64-mingw32-as
|
||||
endif
|
||||
|
||||
ifneq ($(TARGET_WEB),1) # As in, not-web PC port
|
||||
CC := $(CROSS)gcc
|
||||
CXX := $(CROSS)g++
|
||||
|
@ -433,11 +442,19 @@ endif
|
|||
ifeq ($(WINDOWS_BUILD),1) # fixes compilation in MXE on Linux and WSL
|
||||
CPP := cpp -P
|
||||
OBJCOPY := objcopy
|
||||
OBJDUMP := $(CROSS)objdump
|
||||
else
|
||||
ifeq ($(OSX_BUILD),1)
|
||||
CPP := cpp-9 -P
|
||||
OBJDUMP := i686-w64-mingw32-objdump
|
||||
OBJCOPY := i686-w64-mingw32-objcopy
|
||||
else # Linux & other builds
|
||||
CPP := $(CROSS)cpp -P
|
||||
OBJCOPY := $(CROSS)objcopy
|
||||
endif
|
||||
OBJDUMP := $(CROSS)objdump
|
||||
endif
|
||||
endif
|
||||
|
||||
PYTHON := python3
|
||||
SDLCONFIG := $(CROSS)sdl2-config
|
||||
|
||||
|
@ -500,9 +517,12 @@ else ifeq ($(TARGET_RPI),1)
|
|||
# Linux / Other builds below
|
||||
LDFLAGS := $(OPT_FLAGS) -lm -lGLESv2 `$(SDLCONFIG) --libs` -no-pie
|
||||
else
|
||||
ifeq ($(OSX_BUILD),1)
|
||||
LDFLAGS := -lm -framework OpenGL `$(SDLCONFIG) --libs` -no-pie -lpthread `pkg-config --libs libusb-1.0 glfw3 glew`
|
||||
else
|
||||
LDFLAGS := $(BITS) -march=$(TARGET_ARCH) -lm -lGL `$(SDLCONFIG) --libs` -no-pie -lpthread
|
||||
endif
|
||||
|
||||
endif # End of LDFLAGS
|
||||
|
||||
# Prevent a crash with -sopt
|
||||
export LANG := C
|
||||
|
@ -755,7 +775,6 @@ $(BUILD_DIR)/src/audio/%.copt: $(BUILD_DIR)/src/audio/%.acpp
|
|||
$(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/lib/copt -signed -I=$< -CMP=$@ -cp=i -scalaroptimize=1
|
||||
endif
|
||||
|
||||
|
||||
# Rebuild files with 'GLOBAL_ASM' if the NON_MATCHING flag changes.
|
||||
$(GLOBAL_ASM_O_FILES): $(GLOBAL_ASM_DEP).$(NON_MATCHING)
|
||||
$(GLOBAL_ASM_DEP).$(NON_MATCHING):
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "libultra_internal.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifndef OSX_BUILD
|
||||
lldiv_t lldiv(long long num, long long denom) {
|
||||
lldiv_t ret;
|
||||
|
||||
|
@ -13,6 +14,7 @@ lldiv_t lldiv(long long num, long long denom) {
|
|||
|
||||
return ret;
|
||||
}
|
||||
#endif // OSX_BUILD cannot use this
|
||||
|
||||
ldiv_t ldiv(long num, long denom) {
|
||||
ldiv_t ret;
|
||||
|
|
|
@ -33,6 +33,7 @@ static const du pilo = {
|
|||
static const fu zero = {0.0};
|
||||
extern const fu NAN;
|
||||
|
||||
#ifndef OSX_BUILD
|
||||
float cosf(float x)
|
||||
{
|
||||
double dx; // double x
|
||||
|
@ -92,3 +93,5 @@ float cosf(float x)
|
|||
|
||||
return zero.f;
|
||||
}
|
||||
#endif // OSX_BUILD cannot use this
|
||||
|
||||
|
|
|
@ -18,12 +18,19 @@
|
|||
#include <SDL2/SDL.h>
|
||||
#define GL_GLEXT_PROTOTYPES 1
|
||||
#include <SDL2/SDL_opengl.h>
|
||||
|
||||
#else
|
||||
#include <SDL2/SDL.h>
|
||||
#define GL_GLEXT_PROTOTYPES 1
|
||||
|
||||
#ifdef OSX_BUILD
|
||||
#include <SDL2/SDL_opengl.h>
|
||||
#else
|
||||
#include <SDL2/SDL_opengles2.h>
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#include "gfx_cc.h"
|
||||
#include "gfx_rendering_api.h"
|
||||
|
||||
|
@ -187,7 +194,11 @@ static struct ShaderProgram *gfx_opengl_create_and_load_new_shader(uint32_t shad
|
|||
size_t num_floats = 4;
|
||||
|
||||
// Vertex shader
|
||||
#ifdef OSX_BUILD
|
||||
append_line(vs_buf, &vs_len, "");
|
||||
#else
|
||||
append_line(vs_buf, &vs_len, "#version 100");
|
||||
#endif
|
||||
append_line(vs_buf, &vs_len, "attribute vec4 aVtxPos;");
|
||||
if (used_textures[0] || used_textures[1]) {
|
||||
append_line(vs_buf, &vs_len, "attribute vec2 aTexCoord;");
|
||||
|
@ -218,8 +229,13 @@ static struct ShaderProgram *gfx_opengl_create_and_load_new_shader(uint32_t shad
|
|||
append_line(vs_buf, &vs_len, "}");
|
||||
|
||||
// Fragment shader
|
||||
#ifdef OSX_BUILD
|
||||
append_line(fs_buf, &fs_len, "");
|
||||
#else
|
||||
append_line(fs_buf, &fs_len, "#version 100");
|
||||
append_line(fs_buf, &fs_len, "precision mediump float;");
|
||||
#endif
|
||||
|
||||
if (used_textures[0] || used_textures[1]) {
|
||||
append_line(fs_buf, &fs_len, "varying vec2 vTexCoord;");
|
||||
}
|
||||
|
@ -465,6 +481,10 @@ static void gfx_opengl_init(void) {
|
|||
glewInit();
|
||||
#endif
|
||||
|
||||
#ifdef OSX_BUILD
|
||||
glewInit();
|
||||
#endif
|
||||
|
||||
glGenBuffers(1, &opengl_vbo);
|
||||
|
||||
glBindBuffer(GL_ARRAY_BUFFER, opengl_vbo);
|
||||
|
|
|
@ -13,9 +13,15 @@
|
|||
#else
|
||||
#include <SDL2/SDL.h>
|
||||
#define GL_GLEXT_PROTOTYPES 1
|
||||
|
||||
#ifdef OSX_BUILD
|
||||
#include <SDL2/SDL_opengl.h>
|
||||
#else
|
||||
#include <SDL2/SDL_opengles2.h>
|
||||
#endif
|
||||
|
||||
#endif // End of OS-Specific GL defines
|
||||
|
||||
#include "gfx_window_manager_api.h"
|
||||
#include "gfx_screen_config.h"
|
||||
#include "../configfile.h"
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
UNAME := $(shell uname)
|
||||
ifeq ($(UNAME),Darwin)
|
||||
OSX_BUILD := -DOSX_BUILD
|
||||
endif
|
||||
|
||||
CC := gcc
|
||||
CFLAGS := -Llib -Iinclude -I . -Wall -Wextra -Wno-unused-parameter -pedantic -std=c99 -O3 -s
|
||||
CFLAGS := -Llib -Iinclude -I . -Wall -Wextra -Wno-unused-parameter $(OSX_BUILD) -pedantic -std=c99 -O3 -s
|
||||
PROGRAMS := n64graphics n64graphics_ci mio0 n64cksum textconv patch_libultra_math iplfontutil aifc_decode aiff_extract_codebook vadpcm_enc tabledesign extract_data_for_mio skyconv
|
||||
|
||||
n64graphics_SOURCES := n64graphics.c utils.c
|
||||
|
@ -43,7 +48,7 @@ clean:
|
|||
|
||||
define COMPILE
|
||||
$(1): $($1_SOURCES)
|
||||
$(CC) $(CFLAGS) $$^ -lm -o $$@ $($1_CFLAGS)
|
||||
$(CC) $(CFLAGS) $(OSX_BUILD) $$^ -lm -o $$@ $($1_CFLAGS)
|
||||
endef
|
||||
|
||||
$(foreach p,$(PROGRAMS),$(eval $(call COMPILE,$(p))))
|
||||
|
|
|
@ -23,7 +23,11 @@ SOFTWARE.
|
|||
*/
|
||||
|
||||
#include "exoquant.h"
|
||||
|
||||
#ifndef OSX_BUILD // OSX build cannot have malloc defined
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
|
Loading…
Reference in a new issue