46 lines
889 B
Makefile
46 lines
889 B
Makefile
CC=clang
|
|
CFLAGS=-Wall -MMD -pthread -D_XOPEN_SOURCE=700 -D_POSIX_C_SOURCE
|
|
LDFLAGS=-lpthread -lncurses
|
|
|
|
DIR_SRC=src
|
|
DIR_BUILD=build
|
|
DIR_OBJ=$(DIR_BUILD)/obj
|
|
DIR_BIN=$(DIR_BUILD)/bin
|
|
|
|
TARGET=$(DIR_BIN)/bytenuts
|
|
|
|
DEBUG ?= 0
|
|
ifeq ($(DEBUG), 1)
|
|
CFLAGS += -g
|
|
else
|
|
CFLAGS += -O2
|
|
endif
|
|
|
|
SRCS=$(wildcard $(DIR_SRC)/*.c)
|
|
OBJS=$(addprefix $(DIR_OBJ)/,$(addsuffix .o,$(basename $(SRCS))))
|
|
DEPS=$(addprefix $(DIR_OBJ)/,$(addsuffix .d,$(basename $(SRCS))))
|
|
|
|
.PHONY: all install uninstall clean
|
|
|
|
all: $(TARGET)
|
|
|
|
install:
|
|
ln -s $(realpath $(TARGET)) /usr/local/bin/bytenuts
|
|
|
|
uninstall:
|
|
rm -f /usr/local/bin/bytenuts
|
|
|
|
$(TARGET): $(OBJS)
|
|
@mkdir -p $(dir $@)
|
|
@echo "link and compile for $@"
|
|
@$(CC) $(CFLAGS) $(LDFLAGS) -o $(TARGET) $(OBJS)
|
|
|
|
$(DIR_OBJ)/$(DIR_SRC)/%.o: $(DIR_SRC)/%.c
|
|
@mkdir -p $(dir $@)
|
|
@echo "compile $<"
|
|
@$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
clean:
|
|
rm -rf $(DIR_BUILD)
|
|
|
|
-include $(DEPS)
|