From d73c2be3441843bca391260be56de2d159480361 Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Mon, 15 Dec 2025 14:14:18 -0600 Subject: [PATCH] working macOS build --- .gitignore | 7 +++- Makefile | 59 +++++++++++++-------------- build_macos.sh | 6 +++ include/font/ter_u32n.data.h | 1 - include/level/level1.data.h | 1 - include/level/level1.data.pal.h | 1 - include/level/level2.data.h | 1 - include/level/level2.data.pal.h | 1 - include/level/level3.data.h | 1 - include/level/level3.data.pal.h | 1 - include/level/level4.data.h | 1 - include/level/level4.data.pal.h | 1 - include/level/level5.data.h | 1 - include/level/level5.data.pal.h | 1 - include/shader/background.fp.glsl.h | 1 - include/shader/background.vp.glsl.h | 1 - include/shader/block.fp.glsl.h | 1 - include/shader/font.fp.glsl.h | 1 - include/shader/font.vp.glsl.h | 1 - include/shader/paddle.fp.glsl.h | 1 - include/shader/vertex_color.fp.glsl.h | 1 - include/shader/vertex_color.vp.glsl.h | 1 - include/texture/noise.data.h | 1 - 23 files changed, 40 insertions(+), 52 deletions(-) create mode 100644 build_macos.sh diff --git a/.gitignore b/.gitignore index bfa7192..16f58b6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,9 @@ +*~ +.#* *.o *.d +*.s *.blend1 -main \ No newline at end of file +*.zip +main +main* diff --git a/Makefile b/Makefile index f93366a..202a564 100644 --- a/Makefile +++ b/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 ' >> $@ @@ -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') diff --git a/build_macos.sh b/build_macos.sh new file mode 100644 index 0000000..7a71566 --- /dev/null +++ b/build_macos.sh @@ -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 diff --git a/include/font/ter_u32n.data.h b/include/font/ter_u32n.data.h index 0709d3f..9369f47 100644 --- a/include/font/ter_u32n.data.h +++ b/include/font/ter_u32n.data.h @@ -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) diff --git a/include/level/level1.data.h b/include/level/level1.data.h index 526f991..6c4670b 100644 --- a/include/level/level1.data.h +++ b/include/level/level1.data.h @@ -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) diff --git a/include/level/level1.data.pal.h b/include/level/level1.data.pal.h index be43ff9..4e59864 100644 --- a/include/level/level1.data.pal.h +++ b/include/level/level1.data.pal.h @@ -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) diff --git a/include/level/level2.data.h b/include/level/level2.data.h index 8e0e6bd..46c2e56 100644 --- a/include/level/level2.data.h +++ b/include/level/level2.data.h @@ -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) diff --git a/include/level/level2.data.pal.h b/include/level/level2.data.pal.h index aa086a8..30f66df 100644 --- a/include/level/level2.data.pal.h +++ b/include/level/level2.data.pal.h @@ -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) diff --git a/include/level/level3.data.h b/include/level/level3.data.h index ee90f00..9e8818c 100644 --- a/include/level/level3.data.h +++ b/include/level/level3.data.h @@ -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) diff --git a/include/level/level3.data.pal.h b/include/level/level3.data.pal.h index 2bd4793..4b1873c 100644 --- a/include/level/level3.data.pal.h +++ b/include/level/level3.data.pal.h @@ -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) diff --git a/include/level/level4.data.h b/include/level/level4.data.h index 06e441f..559c376 100644 --- a/include/level/level4.data.h +++ b/include/level/level4.data.h @@ -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) diff --git a/include/level/level4.data.pal.h b/include/level/level4.data.pal.h index ca63746..2eee357 100644 --- a/include/level/level4.data.pal.h +++ b/include/level/level4.data.pal.h @@ -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) diff --git a/include/level/level5.data.h b/include/level/level5.data.h index 9988110..94efb94 100644 --- a/include/level/level5.data.h +++ b/include/level/level5.data.h @@ -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) diff --git a/include/level/level5.data.pal.h b/include/level/level5.data.pal.h index 131a2d0..40c1c62 100644 --- a/include/level/level5.data.pal.h +++ b/include/level/level5.data.pal.h @@ -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) diff --git a/include/shader/background.fp.glsl.h b/include/shader/background.fp.glsl.h index d7ecda1..ad39a72 100644 --- a/include/shader/background.fp.glsl.h +++ b/include/shader/background.fp.glsl.h @@ -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) diff --git a/include/shader/background.vp.glsl.h b/include/shader/background.vp.glsl.h index 08437d7..e3c9475 100644 --- a/include/shader/background.vp.glsl.h +++ b/include/shader/background.vp.glsl.h @@ -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) diff --git a/include/shader/block.fp.glsl.h b/include/shader/block.fp.glsl.h index ba59ae3..10f12e2 100644 --- a/include/shader/block.fp.glsl.h +++ b/include/shader/block.fp.glsl.h @@ -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) diff --git a/include/shader/font.fp.glsl.h b/include/shader/font.fp.glsl.h index cc18a75..7be228e 100644 --- a/include/shader/font.fp.glsl.h +++ b/include/shader/font.fp.glsl.h @@ -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) diff --git a/include/shader/font.vp.glsl.h b/include/shader/font.vp.glsl.h index ff038fd..93f36fd 100644 --- a/include/shader/font.vp.glsl.h +++ b/include/shader/font.vp.glsl.h @@ -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) diff --git a/include/shader/paddle.fp.glsl.h b/include/shader/paddle.fp.glsl.h index 872062d..5a936a6 100644 --- a/include/shader/paddle.fp.glsl.h +++ b/include/shader/paddle.fp.glsl.h @@ -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) diff --git a/include/shader/vertex_color.fp.glsl.h b/include/shader/vertex_color.fp.glsl.h index 68dbdc2..f1aa606 100644 --- a/include/shader/vertex_color.fp.glsl.h +++ b/include/shader/vertex_color.fp.glsl.h @@ -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) diff --git a/include/shader/vertex_color.vp.glsl.h b/include/shader/vertex_color.vp.glsl.h index 44bc649..cc408bd 100644 --- a/include/shader/vertex_color.vp.glsl.h +++ b/include/shader/vertex_color.vp.glsl.h @@ -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) diff --git a/include/texture/noise.data.h b/include/texture/noise.data.h index 15f09aa..b1a4b92 100644 --- a/include/texture/noise.data.h +++ b/include/texture/noise.data.h @@ -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)