MODS := io CPPFLAGS := -I. CFLAGS := -std=c99 -Wall LDFLAGS := -lrt -lm CFLAGS += $(MODS:%=-DHAVE_MOD_%) OBJS := rosella.o gc.o builtin.o interp.o reader.o $(MODS:%=mods/mod_%.o) DEPS := $(OBJS:%.o=%.d) GCNO := $(OBJS:%.o=%.gcno) GCDA := $(OBJS:%.o=%.gcda) ifeq ($(DEBUG),yes) CFLAGS += -g PROFILE := no dummy := $(shell rm -f rosella $(OBJS) $(GCDA) $(GCNO)) else CFLAGS += -O3 -DNDEBUG -march=nocona endif ifeq ($(PROFILE),yes) CFLAGS += -fprofile-generate LDFLAGS += -fprofile-generate endif ifneq (,$(wildcard *.gcda mods/*.gcda)) CFLAGS += -fprofile-use dummy := $(shell rm -f rosella $(OBJS)) endif all: rosella depend: $(DEPS) .PHONY: all clean depend clean: -rm -f rosella $(OBJS) $(DEPS) $(GCDA) $(GCNO) %.d: %.c $(CC) $(CPPFLAGS) -MM $< -MF $@ -MT $(<:%.c=%.o) -MT $@ rosella: $(OBJS) -include $(DEPS)