ifeq ($(origin CC),default)
    cc_check := $(shell $(CC) -v > /dev/null 2>&1 && echo "sane")
    ifneq ($(strip $(cc_check)),sane)
        CC := gcc
    endif
endif


src := $(wildcard *.c)
obj := $(patsubst %.c,%.o,$(src))
deps := $(patsubst %,%.d,$(src))

a.out: $(obj)
        $(CC) $^ $(LDFLAGS)

%.o: %.c
        $(CC) -c $(CPPFLAGS) $(CFLAGS) -MT $@ -MMD -MF $<.d $<

.PHONY: clean
clean:
        $(RM) a.out $(obj) $(deps)


-include $(deps)
