#PREFIX = x86_64-w64-mingw32- CC=$(PREFIX)gcc CXX=$(PREFIX)g++ OBJCOPY=$(PREFIX)objcopy OBJARCH = elf64-x86-64 OPT = -O0 -march=x86-64-v3 CSTD = -std=gnu23 CXXSTD = -std=gnu++23 CFLAGS += -g CFLAGS += -fpic CFLAGS += -I./include CFLAGS += -Wall -Werror -Wfatal-errors -Wno-error=unused-variable -Wno-error=unused-but-set-variable CFLAGS += -Wno-error=unknown-pragmas -Wno-unknown-pragmas CFLAGS += -fno-strict-aliasing ifdef READ_PACK_FILE CFLAGS += -DREAD_PACK_FILE endif LDFLAGS += -lm MINECRAFT_OBJS = \ minecraft/love2dworld/inthash.o \ minecraft/grandlecturn/inthash.o \ minecraft/midnightmeadow/inthash.o \ src/minecraft.o \ src/world/world.o \ src/world/entry_table.o OBJS = \ src/gl.o \ src/opengl.o \ src/test.o \ src/font/bitmap.o \ src/font/outline.o \ src/window.o \ src/bresenham.o \ src/file.o \ src/non_block.o \ src/view.o \ src/hud.o \ src/lighting.o \ src/collision_scene.o \ src/line_art.o \ src/boids.o \ src/boids_scene.o \ src/dds_validate.o \ src/collada/scene.o \ src/collada/effect.o \ src/collada/node_state.o \ src/collada/animate.o \ src/lua_api.o \ src/pixel_line_art.o \ src/flame.o \ data/scenes/ship20/ship20.o \ data/scenes/noodle/noodle.o \ data/scenes/shadow_test/shadow_test.o \ data/scenes/book/book.o \ $(MINECRAFT_OBJS) ifdef READ_PACK_FILE OBJS += test.pack.o endif all: test.so %.o: %.c $(CC) $(ARCH) $(CSTD) $(CFLAGS) $(OPT) -c $< -o $@ %.o: %.cpp $(CXX) $(ARCH) $(CXXSTD) $(CFLAGS) $(OPT) -c $< -o $@ test.pack: pack_main ./pack_main $@ $(shell cat filenames.txt) test.pack.o: test.pack $(OBJCOPY) -I binary -O $(OBJARCH) $< $@ test.so: $(OBJS) $(CC) $(ARCH) $(OPT) -Wl,-z noexecstack -shared -g $^ -o $@ -lSDL3 test.dll: $(OBJS) $(CXX) $(ARCH) $(OPT) -mthreads -static -mdll -static-libstdc++ -static-libgcc -g $^ -o $@ -L. -lSDL3 $(WINDOWS) main: $(OBJS) src/main.o $(CC) $(ARCH) $(LDFLAGS) $(OPT) -g $^ -o $@ clean: find . -type f ! -name "*.*" -delete pack_main: src/pack_main.o $(CC) $(ARCH) $(OPT) -g $^ -o $@ .SUFFIXES: .INTERMEDIATE: .SECONDARY: .PHONY: all clean phony %: RCS/%,v %: RCS/% %: %,v %: s.% %: SCCS/s.%