diff --git a/.gitignore b/.gitignore index ba2906d0666cf726c7eaadd2cd3db615dedfdf3a..0b0db53f5f5481ff4caee0a6d6ae95fb6fd6fb34 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -main +# Build artefacts +bin/ diff --git a/Makefile b/Makefile index c31d5f51776b6c9f923a7355ba605f724ebb1836..0b8e929aac2d9245f0a0ff871cf8cc0d9a2390af 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,10 @@ SYSTEM := $(shell uname -s) SOURCES := main.c ppm.c keyboard.c mouse.c +GAME := bin/game +HEXDUMP := bin/hexdump +PACKER := bin/packer + ifeq ($(SYSTEM), Linux) LDFLAGS += -lGL -lglut endif @@ -13,5 +17,27 @@ ifeq ($(SYSTEM), Darwin) LDFLAGS += -framework OpenGL -framework GLUT endif -main: $(SOURCES) - clang $(CFLAGS) $(SOURCES) -o main $(LDFLAGS) +build: mkdirs info $(HEXDUMP) $(PACKER) $(GAME) + +info: # Print out information about the build + $(info CC : $(CC)) + $(info SYSTEM : $(SYSTEM)) + $(info CFLAGS : $(CFLAGS)) + $(info LDFLAGS : $(LDFLAGS)) + +$(GAME): $(SOURCES) + $(CC) $(CFLAGS) $(SOURCES) -o $(GAME) $(LDFLAGS) + +$(HEXDUMP): tools/hexdump.c + $(CC) -std=c99 -o $(HEXDUMP) tools/hexdump.c + +$(PACKER): tools/packer.c + $(CC) -std=c99 -o $(PACKER) tools/packer.c + +mkdirs: + mkdir -p bin + +clean: + rm -rf bin/ + +.PHONY: mkdirs game clean info