39 lines
804 B
Makefile
39 lines
804 B
Makefile
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
|