46 lines
851 B
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)
|