rosella/Makefile

46 lines
851 B
Makefile

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)