working macOS build
This commit is contained in:
parent
1b8459aaae
commit
d73c2be344
7
.gitignore
vendored
7
.gitignore
vendored
@ -1,4 +1,9 @@
|
||||
*~
|
||||
.#*
|
||||
*.o
|
||||
*.d
|
||||
*.s
|
||||
*.blend1
|
||||
main
|
||||
*.zip
|
||||
main
|
||||
main*
|
||||
|
||||
59
Makefile
59
Makefile
@ -13,14 +13,10 @@ CXXSTD += -std=gnu++14
|
||||
CFLAGS += -Wall -Werror -Wfatal-errors
|
||||
CFLAGS += -Wno-error=unused-function
|
||||
CFLAGS += -Wno-error=unused-const-variable
|
||||
CFLAGS += -Wno-error=unused-but-set-variable
|
||||
#CFLAGS += -Wno-error=unused-but-set-variable
|
||||
CFLAGS += -Wno-error=unused-variable
|
||||
CFLAGS += -I$(MAKEFILE_PATH)/include
|
||||
ifeq ($(shell uname),Darwin)
|
||||
CFLAGS += $(shell pkg-config --cflags glfw3)
|
||||
else
|
||||
CFLAGS += -I$(dir $(GLFW))../include
|
||||
endif
|
||||
CXXFLAGS += -fno-exceptions
|
||||
#CFLAGS += -DDEBUG_BUTTONS
|
||||
#CFLAGS += -DDEBUG_AXES
|
||||
@ -32,17 +28,14 @@ ifeq ($(OS),Windows_NT)
|
||||
LDFLAGS += -Wl,--subsystem,windows -mwindows
|
||||
endif
|
||||
ifeq ($(shell uname),Darwin)
|
||||
LDFLAGS += $(shell pkg-config --libs glfw3)
|
||||
LDFLAGS += -framework Foundation -framework IOKit -framework AppKit
|
||||
endif
|
||||
|
||||
|
||||
OBJCOPY ?= objcopy
|
||||
|
||||
ifneq ($(shell uname),Darwin)
|
||||
ifndef GLFW
|
||||
$(error GLFW undefined)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef I386
|
||||
ARCH='-m32'
|
||||
@ -77,20 +70,22 @@ OPT = -Og
|
||||
|
||||
all: main
|
||||
|
||||
define BUILD_BINARY_O
|
||||
$(OBJCOPY) \
|
||||
-I binary $(OBJARCH) \
|
||||
--rename-section .data=.data.$(basename $@) \
|
||||
$< $@
|
||||
endef
|
||||
|
||||
#makefile_relative = $(shell realpath --relative-to $(makefile_path) $(1))
|
||||
makefile_path := $(dir $(abspath $(firstword $(MAKEFILE_LIST))))
|
||||
makefile_relative = $(shell realpath --relative-to $(makefile_path) $(1))
|
||||
as_obj_binary = $(subst -,_,$(subst .,_,$(subst /,_,$(subst .h,,$(call makefile_relative,$(1))))))
|
||||
as_obj_binary = $(subst -,_,$(subst .,_,$(subst /,_,$(subst .h,,$(1)))))
|
||||
as_obj_binary_p = _binary_$(call as_obj_binary,$(1))
|
||||
|
||||
define BUILD_BINARY_S
|
||||
@echo build_binary_h $@
|
||||
@echo '.global $(call as_obj_binary_p,$<)_start' > $@
|
||||
@echo '.global $(call as_obj_binary_p,$<)_end' >> $@
|
||||
@echo '$(call as_obj_binary_p,$<)_start:' >> $@
|
||||
@printf '\t.incbin "$<"\n' >> $@
|
||||
@echo '$(call as_obj_binary_p,$<)_end:' >> $@
|
||||
endef
|
||||
|
||||
define BUILD_BINARY_H
|
||||
@echo gen $(call makefile_relative,$@)
|
||||
@echo build_binary_h $@
|
||||
@echo '#pragma once' > $@
|
||||
@echo '' >> $@
|
||||
@echo '#include <stdint.h>' >> $@
|
||||
@ -101,7 +96,6 @@ define BUILD_BINARY_H
|
||||
@echo '' >> $@
|
||||
@echo 'extern uint32_t $(call as_obj_binary_p,$<)_start __asm("$(call as_obj_binary_p,$<)_start");' >> $@
|
||||
@echo 'extern uint32_t $(call as_obj_binary_p,$<)_end __asm("$(call as_obj_binary_p,$<)_end");' >> $@
|
||||
@echo 'extern uint32_t $(call as_obj_binary_p,$<)_size __asm("$(call as_obj_binary_p,$<)_size");' >> $@
|
||||
@echo '' >> $@
|
||||
@echo '#define $(call as_obj_binary,$<)_start ((const char *)&$(call as_obj_binary_p,$<)_start)' >> $@
|
||||
@echo '#define $(call as_obj_binary,$<)_end ((const char *)&$(call as_obj_binary_p,$<)_end)' >> $@
|
||||
@ -112,21 +106,21 @@ define BUILD_BINARY_H
|
||||
@echo '#endif' >> $@
|
||||
endef
|
||||
|
||||
%.glsl.o: %.glsl
|
||||
$(BUILD_BINARY_O)
|
||||
%.glsl.s: %.glsl
|
||||
$(BUILD_BINARY_S)
|
||||
|
||||
%.data.s: %.data
|
||||
$(BUILD_BINARY_S)
|
||||
|
||||
%.data.pal.s: %.data.pal
|
||||
$(BUILD_BINARY_S)
|
||||
|
||||
include/%.glsl.h: src/%.glsl
|
||||
$(BUILD_BINARY_H)
|
||||
|
||||
%.data.o: %.data
|
||||
$(BUILD_BINARY_O)
|
||||
|
||||
include/%.data.h: src/%.data
|
||||
$(BUILD_BINARY_H)
|
||||
|
||||
%.data.pal.o: %.data.pal
|
||||
$(BUILD_BINARY_O)
|
||||
|
||||
include/%.data.pal.h: src/%.data.pal
|
||||
$(BUILD_BINARY_H)
|
||||
|
||||
@ -134,11 +128,14 @@ clean:
|
||||
rm -f *.o *.d *.gch
|
||||
rm -f main
|
||||
|
||||
%.o: %.s
|
||||
$(AS) $< -o $@ $(TARGET)
|
||||
|
||||
%.o: %.cpp
|
||||
$(CXX) $(CXXSTD) $(ARCH) $(CFLAGS) $(OPT) $(DEBUG) $(DEPFLAGS) -MF ${<}.d -c $< -o $@
|
||||
$(CXX) $(CXXSTD) $(ARCH) $(CFLAGS) $(OPT) $(DEBUG) $(DEPFLAGS) -MF ${<}.d -c $< -o $@ $(TARGET)
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CSTD) $(ARCH) $(CFLAGS) $(CXXFLAGS) $(OPT) $(DEBUG) $(DEPFLAGS) -MF ${<}.d -c $< -o $@
|
||||
$(CC) $(CSTD) $(ARCH) $(CFLAGS) $(CXXFLAGS) $(OPT) $(DEBUG) $(DEPFLAGS) -MF ${<}.d -c $< -o $@ $(TARGET)
|
||||
|
||||
MAIN_OBJS = \
|
||||
src/main.o \
|
||||
@ -156,7 +153,7 @@ MAIN_OBJS = \
|
||||
$(GLFW)
|
||||
|
||||
main: $(MAIN_OBJS)
|
||||
$(CXX) $^ $(CXXFLAGS) $(ARCH) -o $@ $(LDFLAGS)
|
||||
$(CXX) $^ $(CXXFLAGS) $(ARCH) -o $@ $(LDFLAGS) $(TARGET)
|
||||
|
||||
#-include $(shell find -type f -name 'src/*.d')
|
||||
|
||||
|
||||
6
build_macos.sh
Normal file
6
build_macos.sh
Normal file
@ -0,0 +1,6 @@
|
||||
make \
|
||||
TARGET='-target x86_64-apple-macos10.15' \
|
||||
GLFW=$HOME/glfw-3.4-x86_64/src/libglfw3.a \
|
||||
-j -B
|
||||
mv main engineless-any-percent-speedrun.x86_64-macos10.15
|
||||
zip engineless-any-percent-speedrun.x86_64-macos10.15.zip engineless-any-percent-speedrun.x86_64-macos10.15
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_font_ter_u32n_data_start __asm("_binary_src_font_ter_u32n_data_start");
|
||||
extern uint32_t _binary_src_font_ter_u32n_data_end __asm("_binary_src_font_ter_u32n_data_end");
|
||||
extern uint32_t _binary_src_font_ter_u32n_data_size __asm("_binary_src_font_ter_u32n_data_size");
|
||||
|
||||
#define src_font_ter_u32n_data_start ((const char *)&_binary_src_font_ter_u32n_data_start)
|
||||
#define src_font_ter_u32n_data_end ((const char *)&_binary_src_font_ter_u32n_data_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_level_level1_data_start __asm("_binary_src_level_level1_data_start");
|
||||
extern uint32_t _binary_src_level_level1_data_end __asm("_binary_src_level_level1_data_end");
|
||||
extern uint32_t _binary_src_level_level1_data_size __asm("_binary_src_level_level1_data_size");
|
||||
|
||||
#define src_level_level1_data_start ((const char *)&_binary_src_level_level1_data_start)
|
||||
#define src_level_level1_data_end ((const char *)&_binary_src_level_level1_data_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_level_level1_data_pal_start __asm("_binary_src_level_level1_data_pal_start");
|
||||
extern uint32_t _binary_src_level_level1_data_pal_end __asm("_binary_src_level_level1_data_pal_end");
|
||||
extern uint32_t _binary_src_level_level1_data_pal_size __asm("_binary_src_level_level1_data_pal_size");
|
||||
|
||||
#define src_level_level1_data_pal_start ((const char *)&_binary_src_level_level1_data_pal_start)
|
||||
#define src_level_level1_data_pal_end ((const char *)&_binary_src_level_level1_data_pal_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_level_level2_data_start __asm("_binary_src_level_level2_data_start");
|
||||
extern uint32_t _binary_src_level_level2_data_end __asm("_binary_src_level_level2_data_end");
|
||||
extern uint32_t _binary_src_level_level2_data_size __asm("_binary_src_level_level2_data_size");
|
||||
|
||||
#define src_level_level2_data_start ((const char *)&_binary_src_level_level2_data_start)
|
||||
#define src_level_level2_data_end ((const char *)&_binary_src_level_level2_data_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_level_level2_data_pal_start __asm("_binary_src_level_level2_data_pal_start");
|
||||
extern uint32_t _binary_src_level_level2_data_pal_end __asm("_binary_src_level_level2_data_pal_end");
|
||||
extern uint32_t _binary_src_level_level2_data_pal_size __asm("_binary_src_level_level2_data_pal_size");
|
||||
|
||||
#define src_level_level2_data_pal_start ((const char *)&_binary_src_level_level2_data_pal_start)
|
||||
#define src_level_level2_data_pal_end ((const char *)&_binary_src_level_level2_data_pal_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_level_level3_data_start __asm("_binary_src_level_level3_data_start");
|
||||
extern uint32_t _binary_src_level_level3_data_end __asm("_binary_src_level_level3_data_end");
|
||||
extern uint32_t _binary_src_level_level3_data_size __asm("_binary_src_level_level3_data_size");
|
||||
|
||||
#define src_level_level3_data_start ((const char *)&_binary_src_level_level3_data_start)
|
||||
#define src_level_level3_data_end ((const char *)&_binary_src_level_level3_data_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_level_level3_data_pal_start __asm("_binary_src_level_level3_data_pal_start");
|
||||
extern uint32_t _binary_src_level_level3_data_pal_end __asm("_binary_src_level_level3_data_pal_end");
|
||||
extern uint32_t _binary_src_level_level3_data_pal_size __asm("_binary_src_level_level3_data_pal_size");
|
||||
|
||||
#define src_level_level3_data_pal_start ((const char *)&_binary_src_level_level3_data_pal_start)
|
||||
#define src_level_level3_data_pal_end ((const char *)&_binary_src_level_level3_data_pal_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_level_level4_data_start __asm("_binary_src_level_level4_data_start");
|
||||
extern uint32_t _binary_src_level_level4_data_end __asm("_binary_src_level_level4_data_end");
|
||||
extern uint32_t _binary_src_level_level4_data_size __asm("_binary_src_level_level4_data_size");
|
||||
|
||||
#define src_level_level4_data_start ((const char *)&_binary_src_level_level4_data_start)
|
||||
#define src_level_level4_data_end ((const char *)&_binary_src_level_level4_data_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_level_level4_data_pal_start __asm("_binary_src_level_level4_data_pal_start");
|
||||
extern uint32_t _binary_src_level_level4_data_pal_end __asm("_binary_src_level_level4_data_pal_end");
|
||||
extern uint32_t _binary_src_level_level4_data_pal_size __asm("_binary_src_level_level4_data_pal_size");
|
||||
|
||||
#define src_level_level4_data_pal_start ((const char *)&_binary_src_level_level4_data_pal_start)
|
||||
#define src_level_level4_data_pal_end ((const char *)&_binary_src_level_level4_data_pal_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_level_level5_data_start __asm("_binary_src_level_level5_data_start");
|
||||
extern uint32_t _binary_src_level_level5_data_end __asm("_binary_src_level_level5_data_end");
|
||||
extern uint32_t _binary_src_level_level5_data_size __asm("_binary_src_level_level5_data_size");
|
||||
|
||||
#define src_level_level5_data_start ((const char *)&_binary_src_level_level5_data_start)
|
||||
#define src_level_level5_data_end ((const char *)&_binary_src_level_level5_data_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_level_level5_data_pal_start __asm("_binary_src_level_level5_data_pal_start");
|
||||
extern uint32_t _binary_src_level_level5_data_pal_end __asm("_binary_src_level_level5_data_pal_end");
|
||||
extern uint32_t _binary_src_level_level5_data_pal_size __asm("_binary_src_level_level5_data_pal_size");
|
||||
|
||||
#define src_level_level5_data_pal_start ((const char *)&_binary_src_level_level5_data_pal_start)
|
||||
#define src_level_level5_data_pal_end ((const char *)&_binary_src_level_level5_data_pal_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_shader_background_fp_glsl_start __asm("_binary_src_shader_background_fp_glsl_start");
|
||||
extern uint32_t _binary_src_shader_background_fp_glsl_end __asm("_binary_src_shader_background_fp_glsl_end");
|
||||
extern uint32_t _binary_src_shader_background_fp_glsl_size __asm("_binary_src_shader_background_fp_glsl_size");
|
||||
|
||||
#define src_shader_background_fp_glsl_start ((const char *)&_binary_src_shader_background_fp_glsl_start)
|
||||
#define src_shader_background_fp_glsl_end ((const char *)&_binary_src_shader_background_fp_glsl_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_shader_background_vp_glsl_start __asm("_binary_src_shader_background_vp_glsl_start");
|
||||
extern uint32_t _binary_src_shader_background_vp_glsl_end __asm("_binary_src_shader_background_vp_glsl_end");
|
||||
extern uint32_t _binary_src_shader_background_vp_glsl_size __asm("_binary_src_shader_background_vp_glsl_size");
|
||||
|
||||
#define src_shader_background_vp_glsl_start ((const char *)&_binary_src_shader_background_vp_glsl_start)
|
||||
#define src_shader_background_vp_glsl_end ((const char *)&_binary_src_shader_background_vp_glsl_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_shader_block_fp_glsl_start __asm("_binary_src_shader_block_fp_glsl_start");
|
||||
extern uint32_t _binary_src_shader_block_fp_glsl_end __asm("_binary_src_shader_block_fp_glsl_end");
|
||||
extern uint32_t _binary_src_shader_block_fp_glsl_size __asm("_binary_src_shader_block_fp_glsl_size");
|
||||
|
||||
#define src_shader_block_fp_glsl_start ((const char *)&_binary_src_shader_block_fp_glsl_start)
|
||||
#define src_shader_block_fp_glsl_end ((const char *)&_binary_src_shader_block_fp_glsl_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_shader_font_fp_glsl_start __asm("_binary_src_shader_font_fp_glsl_start");
|
||||
extern uint32_t _binary_src_shader_font_fp_glsl_end __asm("_binary_src_shader_font_fp_glsl_end");
|
||||
extern uint32_t _binary_src_shader_font_fp_glsl_size __asm("_binary_src_shader_font_fp_glsl_size");
|
||||
|
||||
#define src_shader_font_fp_glsl_start ((const char *)&_binary_src_shader_font_fp_glsl_start)
|
||||
#define src_shader_font_fp_glsl_end ((const char *)&_binary_src_shader_font_fp_glsl_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_shader_font_vp_glsl_start __asm("_binary_src_shader_font_vp_glsl_start");
|
||||
extern uint32_t _binary_src_shader_font_vp_glsl_end __asm("_binary_src_shader_font_vp_glsl_end");
|
||||
extern uint32_t _binary_src_shader_font_vp_glsl_size __asm("_binary_src_shader_font_vp_glsl_size");
|
||||
|
||||
#define src_shader_font_vp_glsl_start ((const char *)&_binary_src_shader_font_vp_glsl_start)
|
||||
#define src_shader_font_vp_glsl_end ((const char *)&_binary_src_shader_font_vp_glsl_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_shader_paddle_fp_glsl_start __asm("_binary_src_shader_paddle_fp_glsl_start");
|
||||
extern uint32_t _binary_src_shader_paddle_fp_glsl_end __asm("_binary_src_shader_paddle_fp_glsl_end");
|
||||
extern uint32_t _binary_src_shader_paddle_fp_glsl_size __asm("_binary_src_shader_paddle_fp_glsl_size");
|
||||
|
||||
#define src_shader_paddle_fp_glsl_start ((const char *)&_binary_src_shader_paddle_fp_glsl_start)
|
||||
#define src_shader_paddle_fp_glsl_end ((const char *)&_binary_src_shader_paddle_fp_glsl_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_shader_vertex_color_fp_glsl_start __asm("_binary_src_shader_vertex_color_fp_glsl_start");
|
||||
extern uint32_t _binary_src_shader_vertex_color_fp_glsl_end __asm("_binary_src_shader_vertex_color_fp_glsl_end");
|
||||
extern uint32_t _binary_src_shader_vertex_color_fp_glsl_size __asm("_binary_src_shader_vertex_color_fp_glsl_size");
|
||||
|
||||
#define src_shader_vertex_color_fp_glsl_start ((const char *)&_binary_src_shader_vertex_color_fp_glsl_start)
|
||||
#define src_shader_vertex_color_fp_glsl_end ((const char *)&_binary_src_shader_vertex_color_fp_glsl_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_shader_vertex_color_vp_glsl_start __asm("_binary_src_shader_vertex_color_vp_glsl_start");
|
||||
extern uint32_t _binary_src_shader_vertex_color_vp_glsl_end __asm("_binary_src_shader_vertex_color_vp_glsl_end");
|
||||
extern uint32_t _binary_src_shader_vertex_color_vp_glsl_size __asm("_binary_src_shader_vertex_color_vp_glsl_size");
|
||||
|
||||
#define src_shader_vertex_color_vp_glsl_start ((const char *)&_binary_src_shader_vertex_color_vp_glsl_start)
|
||||
#define src_shader_vertex_color_vp_glsl_end ((const char *)&_binary_src_shader_vertex_color_vp_glsl_end)
|
||||
|
||||
@ -8,7 +8,6 @@ extern "C" {
|
||||
|
||||
extern uint32_t _binary_src_texture_noise_data_start __asm("_binary_src_texture_noise_data_start");
|
||||
extern uint32_t _binary_src_texture_noise_data_end __asm("_binary_src_texture_noise_data_end");
|
||||
extern uint32_t _binary_src_texture_noise_data_size __asm("_binary_src_texture_noise_data_size");
|
||||
|
||||
#define src_texture_noise_data_start ((const char *)&_binary_src_texture_noise_data_start)
|
||||
#define src_texture_noise_data_end ((const char *)&_binary_src_texture_noise_data_end)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user