3dtoys/Makefile
2024-08-15 03:58:22 -04:00

43 lines
966 B
Makefile

# Compiler and other things
CC = gcc
CFLAGS = -std=c99 -Wall -Wextra
BUILDD = build
ifdef MARCH # Allows you to define the architecture (usually not required)
CFLAGS += -march=$(MARCH)
endif
ifndef FORCE # Force the build to move past warnings (disable warnings as errors)
CFLAGS += -Werror
endif
ifdef DEBUG # Build in debug mode, usable in gdb/valgrind/etc
CFLAGS += -O2 -g
else
CFLAGS += -O3 -flto
endif
HALOOLIB = haloo3d/build/haloo3d_full.a
.PHONY: clean
.PHONY: full
full:
echo "Please specify a sample to build (ends with .exe)"
$(HALOOLIB):
cd haloo3d && $(MAKE) full
# Rule to build .o files in main folder
$(BUILDD)/%.o: %.c %.h
mkdir -p $(BUILDD)
$(CC) $(CFLAGS) -c $< -o $@
# Rule to build any sample. We ALWAYS need math so... link it
%.exe: %.o $(HALOOLIB)
$(CC) $(CFLAGS) $< $(HALOOLIB) -o $@ -lm -lSDL
# Rule to clean the build files
clean:
rm -rf $(BUILDD)
find . -name "*.exe" -type f -delete
cd haloo3d && $(MAKE) clean