diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..832a17c --- /dev/null +++ b/Makefile @@ -0,0 +1,38 @@ +CC=gcc +CFLAGS=-c -Wall -std=c99 +SRCS = $(shell find . -maxdepth 1 -type f -name "*.c") +BUILD_DIR = $(shell git rev-parse --show-toplevel)/build +OBJS = $(patsubst ./%, $(BUILD_DIR)/%, $(SRCS:.c=.o)) +AR=ar +ARFLAGS=rcs +INSTALL_DIR=/usr +LIB_DIR=$(INSTALL_DIR)/lib +INCLUDE_DIR=$(INSTALL_DIR)/include/cct + +all: $(BUILD_DIR)/libcct.a + +$(BUILD_DIR)/libcct.a: $(OBJS) + $(AR) $(ARFLAGS) $@ $^ + +$(BUILD_DIR)/%.o: ./%.c + @mkdir -p $(dir $@) + $(CC) $(CFLAGS) -c $< -o $@ + +$(BUILD_DIR): + @mkdir -p $@ + +$(OBJS): | $(BUILD_DIR) + +install: $(BUILD_DIR)/libcct.a + sudo mkdir -p $(INCLUDE_DIR) + sudo cp *.h $(INCLUDE_DIR) + sudo cp $(BUILD_DIR)/libcct.a $(LIB_DIR) + +clean: + rm -rf $(BUILD_DIR) + +uninstall: + sudo rm -f $(LIB_DIR)/libcct.a + sudo rm -f $(INCLUDE_DIR)/*.h + sudo rmdir $(INCLUDE_DIR) + rm -f $(BUILD_DIR)/libcct.a