73 lines
1.7 KiB
Makefile
73 lines
1.7 KiB
Makefile
COMPILER=cc
|
|
|
|
C = c
|
|
OBJ = o
|
|
OUTPUT_PATH = bin/
|
|
SOURCE_PATH = src/
|
|
TESTS_PATH = tests/
|
|
TESTS_BIN = bin/mbpfan-tests
|
|
|
|
BIN = bin/mbpfan
|
|
CONF = mbpfan.conf
|
|
DEPEND_MODULE = mbpfan.depend.conf
|
|
|
|
COPT =
|
|
CC ?= cc
|
|
OBJFLAG = -o
|
|
BINFLAG = -o
|
|
INCLUDES =
|
|
LIBS = -lm
|
|
LIBPATH =
|
|
CFLAGS += $(COPT) -g $(INCLUDES) -Wall -Wextra -Wno-unused-function -std=c99 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500
|
|
LDFLAGS += $(LIBPATH) -g
|
|
|
|
OBJS := $(patsubst %.$(C),%.$(OBJ),$(wildcard $(SOURCE_PATH)*.$(C)))
|
|
TESTS_OBJS := $(patsubst %.$(C),%.$(OBJ),$(wildcard $(TESTS_PATH)*.$(C)))
|
|
TESTS_OBJS += $(filter-out %main.$(OBJ),$(OBJS))
|
|
|
|
.PHONY: all clean tests uninstall install rebuild
|
|
|
|
%.$(OBJ):%.$(C)
|
|
mkdir -p bin
|
|
@echo Compiling $(basename $<)...
|
|
$(CC) -c $(CFLAGS) $< $(OBJFLAG)$@
|
|
|
|
all: $(BIN) $(TESTS_BIN)
|
|
|
|
$(BIN): $(OBJS)
|
|
@echo Linking...
|
|
$(CC) $(LDFLAGS) $^ $(LIBS) $(BINFLAG) $(BIN)
|
|
|
|
$(TESTS_BIN): $(TESTS_OBJS)
|
|
@echo Linking...
|
|
$(CC) $(LDFLAGS) $^ $(LIBS) $(BINFLAG) $(TESTS_BIN)
|
|
|
|
clean:
|
|
rm -rf $(SOURCE_PATH)*.$(OBJ) $(BIN)
|
|
rm -rf $(TESTS_PATH)*.$(OBJ) $(TESTS_BIN)
|
|
|
|
tests: all
|
|
./bin/mbpfan-tests
|
|
|
|
uninstall:
|
|
rm /usr/sbin/mbpfan
|
|
rm /etc/mbpfan.conf
|
|
|
|
install: all
|
|
install -d $(DESTDIR)/usr/sbin
|
|
install -d $(DESTDIR)/etc
|
|
install $(BIN) $(DESTDIR)/usr/sbin
|
|
install -m644 $(CONF) $(DESTDIR)/etc
|
|
@echo ""
|
|
@echo "******************"
|
|
@echo "INSTALL COMPLETED"
|
|
@echo "******************"
|
|
@echo ""
|
|
@echo "A configuration file has been copied (might overwrite existing file) to /etc/mbpfan.conf."
|
|
@echo "See README.md file to have mbpfan automatically started at system boot."
|
|
@echo ""
|
|
@echo "Please run the tests now with the command"
|
|
@echo " sudo make tests"
|
|
@echo ""
|
|
rebuild: clean all
|
|
#rebuild is not entirely correct
|