diff --git a/Makefile b/Makefile index 9e626a3..8dc0ecc 100644 --- a/Makefile +++ b/Makefile @@ -16,9 +16,10 @@ CFLAGS += -Wno-error=unused-const-variable CFLAGS += -Wno-error=unused-but-set-variable CFLAGS += -Wno-error=unused-variable CFLAGS += -I$(MAKEFILE_PATH)/include +CXXFLAGS += -fno-exceptions #CFLAGS += -DDEBUG_BUTTONS #CFLAGS += -DDEBUG_AXES -LDFLAGS += -lm +LDFLAGS += -nostdlib++ -lm -static-libgcc ifeq ($(OS),Windows_NT) LDFLAGS += -Wl,--subsystem,windows -mwindows endif @@ -27,13 +28,29 @@ ifndef GLFW $(error GLFW undefined) endif -ifeq ($(shell uname),Linux) -OBJARCH = -O elf64-x86-64 -LDFLAGS += -z noexecstack -else -OBJARCH = -O pe-x86-64 -B i386:x86-64 +ifdef I386 +ARCH='-m32' endif +ifeq ($(shell uname),Linux) + +LDFLAGS += -z noexecstack +ifdef I386 +OBJARCH = -O elf32-i386 -B i386 +else +OBJARCH = -O elf64-x86-64 -B i386:x86-64 +endif + +else + +ifdef I386 +OBJARCH += -O pe-i386 -B i386 +else +OBJARCH += -O pe-x86-64 -B i386:x86-64 +endif + +endif # ifeq ($(shell uname),Linux) + DEPFLAGS = -MMD -MP OPT = -Og @@ -98,10 +115,10 @@ clean: rm -f main %.o: %.cpp - $(CXX) $(CXXSTD) $(CFLAGS) $(OPT) $(DEBUG) $(DEPFLAGS) -MF ${<}.d -c $< -o $@ + $(CXX) $(CXXSTD) $(ARCH) $(CFLAGS) $(OPT) $(DEBUG) $(DEPFLAGS) -MF ${<}.d -c $< -o $@ %.o: %.c - $(CC) $(CSTD) $(CFLAGS) $(OPT) $(DEBUG) $(DEPFLAGS) -MF ${<}.d -c $< -o $@ + $(CC) $(CSTD) $(ARCH) $(CFLAGS) $(CXXFLAGS) $(OPT) $(DEBUG) $(DEPFLAGS) -MF ${<}.d -c $< -o $@ MAIN_OBJS = \ src/main.o \ @@ -119,7 +136,7 @@ MAIN_OBJS = \ $(GLFW) main: $(MAIN_OBJS) - $(CXX) $^ -o $@ $(LDFLAGS) + $(CXX) $^ $(CXXFLAGS) $(ARCH) -o $@ $(LDFLAGS) #-include $(shell find -type f -name 'src/*.d') diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..ab3a5d5 --- /dev/null +++ b/build.sh @@ -0,0 +1,12 @@ +set -eux + +make \ + GLFW=$HOME/glfw-3.4/src/libglfw3.a \ + -B -j$(nproc) +mv main engineless-any-percent-speedrun.x86_64.elf + +make \ + GLFW=$HOME/glfw-3.4-i386/src/libglfw3.a \ + I386=1 \ + -B -j$(nproc) +mv main engineless-any-percent-speedrun.x86_32.elf diff --git a/windows_build.sh b/windows_build.sh deleted file mode 100644 index e309326..0000000 --- a/windows_build.sh +++ /dev/null @@ -1,3 +0,0 @@ -set -eux - -GLFW=$HOME/glfw-3.4/src/libglfw3.a make -j$(nproc)