# subdirectory for objects O=obj TEST=test CC = gcc CFLAGS = -g -Wall -O0 INCLUDES = LDFLAGS = LIBS = -lm DEPDIR = .d $(shell mkdir -p $(DEPDIR) >/dev/null) DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Td POSTCOMPILE = mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d SRC = \ light.c \ main.c \ output.c \ raymath.c \ setup.c \ shade.c \ sphere.c \ stubs.c \ viewing.c OBJ = $(patsubst %.c,$(O)/%.o,$(SRC)) all: raytrace raytrace: $(O)/main.o $(OBJ) $(CC) $(CFLAGS) $(INCLUDES) $(LDFLAGS) -o $@ $^ $(LIBS) $(O)/%.o: %.c $(DEPDIR)/%.d $(CC) $(DEPFLAGS) $(CFLAGS) $(INCLUDES) -c $< -o $@ $(POSTCOMPILE) $(DEPDIR)/%.d: ; .PRECIOUS: $(DEPDIR)/%.d -include $(patsubst %,$(DEPDIR)/%.d,$(basename $(SRC))) # .PHONY: install # install: libk.a # mkdir -p $(PREFIX)/include/kak # cp -p *.h $(PREFIX)/include/kak/ # cp -p libk.a $(PREFIX)/lib/ # .PHONY: uninstall # uninstall: # rm -f $(PREFIX)/lib/libk.a # rm -f $(PREFIX)/include/kak/*.h .PHONY: clean clean: rm -f $(O)/*.o $(DEPDIR)/*.d raytrace # .PHONY: parsetest # parsetest: # ./raw2t -x -n -c TREC /tmp/alice.t # ./raw2t -x -n -c TRECQUERY /tmp/alice_query.t # ./t2mem /tmp/alice.mem # ./t2mem /tmp/alice_query.mem # ./ii -s /tmp/alice_query.t /tmp/alice.res # sort -k1,1 -k3,3nr /tmp/alice.res >/tmp/alice.rank # awk -f txt2trecrun.awk /tmp/alice.run # ~/ir/trec_eval.9.0/trec_eval -q test/alice.qrel /tmp/alice.run >/tmp/alice.eval # .PHONY: ap # ap: # ./raw2t -x -n -c TREC /tmp/ap.t # ./raw2t -x -n -c TRECQUERY /tmp/ap_query.t # ./t2mem /tmp/ap.mem # ./t2mem /tmp/ap_query.mem # ./ii -s /tmp/ap_query.t /tmp/ap.res # sort -k1,1 -k3,3nr /tmp/ap.res >/tmp/ap.rank # awk -f txt2trecrun.awk /tmp/ap.run # ~/ir/trec_eval.9.0/trec_eval -q test/ap.qrel /tmp/ap.run >/tmp/ap.eval