]> Dogcows Code - chaz/rasterize/blobdiff - Makefile
add support for 3d scenes, depth testing, lighting
[chaz/rasterize] / Makefile
index b3e118f57f6faadb104bbb4f92ee613f6944f09b..0474ec9e1319692f700c1f5af503c24f5f5c92a9 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,14 +1,29 @@
 
-PROJECT = project1
-SRCS    = main.c common.c list.c pixmap.c scene.c tri.c
+PROJECT = project2
+IUSE    = CLIPPING DEPTH_TEST SMOOTH_COLOR \
+                 EXTRA_INLINE NDEBUG RASTER_STATS RENDER_PROGRESS RENDER_TIMER
+
+# BACKFACE_CULLING  avoid drawing triangles that are not facing forward
+# CLIPPING          turn on clipping (you really always want this)
+# DEPTH_TEST        enable the z buffer for depth testing
+# EXTRA_INLINE      allow the compiler to inline even more aggressively
+# LIGHTING          turn the lights on (experimental)
+# NDEBUG            disable assertions and other nonessential checks
+# FIND_NORMALS[=n]  pre-compute vertex normals at loading time
+#                   set to 1 for per-face normals, 2 for averaged normals
+# RASTER_STATS      print triangle count and optimization savings at the end
+# RENDER_PROGRESS   print progress while drawing the scene
+# RENDER_TIMER      add a timer to see how long the renderer takes
+# SMOOTH_COLOR      interpolate colors smoothly between triangle vertices
 
 VIEWER = feh
 
 CC      = gcc
-CFLAGS  = -std=c99 -O0 -ggdb
-CPPFLAGS= -MMD -DDEBUG
+CFLAGS  = -std=c99 -O2 -g -pg
+CPPFLAGS= -MMD $(IUSE:%=-D%)
 LDLIBS  = -lm
 
+SRCS    = main.c common.c list.c raster.c rbtree.c scene.c
 OBJS   = $(SRCS:%.c=%.o)
 DEPS   = $(OBJS:%.o=%.d)
 
@@ -21,7 +36,10 @@ clean:
        rm -f $(PROJECT) $(OBJS) $(DEPS)
 
 distclean: clean
-       rm -f scene.ppm scene.bmp
+       rm -f tags gmon.out scene.ppm scene.bmp
+
+dist:
+       git archive $(PROJECT) --prefix=$(PROJECT)/ --output=$(PROJECT).zip
 
 run: $(PROJECT)
        ./$< && $(VIEWER) scene.ppm
@@ -30,4 +48,7 @@ debug: $(PROJECT)
        gdb ./$<
 
 -include $(DEPS)
+$(OBJS): Makefile
+
+.PHONY: all clean distclean run debug
 
This page took 0.02033 seconds and 4 git commands to generate.