diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6bd154c --- /dev/null +++ b/Makefile @@ -0,0 +1,37 @@ +CC = gcc +CCFLAGS = -Wall +BUILDDIR = build +SRCS = main.c +OBJS = $(addprefix $(BUILDDIR)/, $(patsubst %.c,%.o,$(SRCS))) +OUT = cvec +INSTALL_PATH?=/usr/local +INSTALL_PATH_BIN=$(INSTALL_PATH)/bin + +.PHONY: all debug format clean +.PRECIOUS: $(BUILDDIR)/. $(BUILDDIR)%/. + +all: $(OUT) + +debug: CCFLAGS += -g +debug: all + +$(BUILDDIR)/.: + mkdir -p $@ + +$(BUILDDIR)%/.: + mkdir -p $@ + +$(OUT): $(OBJS) + $(CC) $^ -o $(OUT) + +.SECONDEXPANSION: + +$(BUILDDIR)/%.o: %.c | $$(@D)/. + $(CC) $(CCFLAGS) -c $< -o $@ + +format: + clang-format -i *.c *.h + +clean: + rm -rf $(BUILDDIR) + rm -f $(OUT)