aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile38
1 files changed, 38 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..96789b8
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,38 @@
+CC=gcc
+
+# Enable debugging
+CFLAGS=-ggdb
+
+# We need math
+LDFLAGS=-lm
+
+# Output and build options
+BINARY=raytrace
+BUILD_DIR=build
+
+# Input files
+c_files=$(wildcard *.c)
+OBJ=$(patsubst %.c, $(BUILD_DIR)/%.o, $(c_files))
+
+# Build rules
+# $@ is the %.o file and $^ is the %.c file
+$(BUILD_DIR)/%.o: %.c
+ mkdir -p $(dir $@)
+ $(CC) -c -o $@ $^ $(CFLAGS)
+
+# $@ becomes left part thus linked
+$(BINARY): $(OBJ)
+ $(CC) -o $@ $^ $(LDFLAGS)
+
+.PHONY: run show clean
+
+# This will also generate the image
+run: $(BINARY)
+ ./$(BINARY) | convert - test.png
+
+show: run
+ xdg-open test.png
+
+clean:
+ rm -f $(OBJ) $(BINARY)
+ rmdir $(BUILD_DIR)