diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0a5bc8d --- /dev/null +++ b/Makefile @@ -0,0 +1,50 @@ +CC := clang +STD := c17 + +DEBUG ?= 1 +SANITIZE ?= 1 + +CFLAGS := -std=$(STD) \ + -Wall \ + -Wextra \ + -Wshadow \ + -Wpedantic \ + -Wconversion \ + -Wstrict-prototypes \ + -Wsign-conversion \ + -Wmissing-prototypes + +ifeq ($(DEBUG),1) +CFLAGS += -g -fno-omit-frame-pointer +else +CFLAGS += -O2 +endif + +ifeq ($(SANITIZE),1) +CFLAGS += -fsanitize=address,undefined +LDFLAGS += -fsanitize=address,undefined +endif + +TARGET := todo +SRC := todo.c + +PREFIX ?= /usr/local +bindir := $(DESTDIR)$(PREFIX)/bin + +all: $(TARGET) + +$(TARGET): $(SRC) + $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) + +clean: + rm -rf $(TARGET) $(TARGET).dSYM + +install: + make DEBUG=0 SANITIZE=0 clean all + install -d $(bindir) + install -m 755 $(TARGET) $(bindir)/$(TARGET) + +uninstall: + rm -f $(bindir)/$(TARGET) + +.PHONY: all clean install uninstall |
