WHY2/Makefile

65 lines
1.7 KiB
Makefile
Raw Normal View History

# Compiler Settings
CC=cc
CFLAGS=-Wall -Wextra -Werror -Wcomment -Wformat -Wformat-security -Wmain -Wnonnull -Wunused -std=c11
# Source Code
2022-11-18 16:10:20 +01:00
SRC_CORE=./src/core/lib/*.c
SRC_CORE_APP=./src/core/app/*.c
2022-11-18 16:20:01 +01:00
SRC_LOGGER=./src/logger/*.c
2022-11-17 14:04:03 +01:00
INCLUDE_DIR=./include
2022-11-18 16:16:11 +01:00
INCLUDE_CORE=$(INCLUDE_DIR)/*.h
2022-11-18 16:20:01 +01:00
INCLUDE_LOGGER=$(INCLUDE_DIR)/logger/*.h
2022-11-17 14:04:03 +01:00
TEST=./src/lib/test/main.c
2022-06-11 17:13:27 +02:00
LIBS=-ljson-c -lcurl -lgit2
# Output Files
PROJECT_NAME=why2
OUTPUT=out
OUTPUT_TEST=$(OUTPUT)/$(PROJECT_NAME)-test
OUTPUT_APP=$(OUTPUT)/$(PROJECT_NAME)-app
# Install Files
INSTALL_INCLUDE=/usr/include
INSTALL_LIBRARY=/usr/lib
INSTALL_BIN=/usr/bin
# Misc
DOLLAR=$
##########
noTarget: # Do not use this, please <3
@echo Hey you... You have to enter your target, too. Use \'install\' target for installing $(PROJECT_NAME)-core.
installHeaderCore:
2022-11-18 16:16:11 +01:00
for file in $(INCLUDE_CORE); do install -m 755 -D $(DOLLAR)file -t $(INSTALL_INCLUDE)/$(PROJECT_NAME); done
ln -sf $(INSTALL_INCLUDE)/$(PROJECT_NAME)/$(PROJECT_NAME).h $(INSTALL_INCLUDE)/$(PROJECT_NAME).h
2022-11-18 16:23:23 +01:00
installHeaderLogger:
for file in $(INCLUDE_LOGGER); do install -m 755 -D $(DOLLAR)file -t $(INSTALL_INCLUDE)/$(PROJECT_NAME)/logger; done
2022-11-18 16:24:47 +01:00
buildLibCore:
2022-11-18 16:10:20 +01:00
$(CC) $(CFLAGS) -fPIC -c $(SRC_CORE)
$(CC) $(CFLAGS) -shared -o lib$(PROJECT_NAME).so *.o $(LIBS)
2022-11-18 16:25:17 +01:00
installLibCore: buildLibCore
2022-11-17 14:04:03 +01:00
install -m 755 ./lib$(PROJECT_NAME).so $(INSTALL_LIBRARY)/lib$(PROJECT_NAME).so
installApp: app
install -m 755 $(OUTPUT_APP) $(INSTALL_BIN)/$(PROJECT_NAME)
test:
$(CC) $(CFLAGS) -g $(TEST) -o $(OUTPUT_TEST) -l$(PROJECT_NAME)
app:
2022-11-18 16:10:20 +01:00
$(CC) $(CFLAGS) $(SRC_CORE_APP) -o $(OUTPUT_APP) -l$(PROJECT_NAME)
clean:
2022-06-01 17:32:27 +02:00
rm -rf $(OUTPUT)/* *.o *.so
installHeader: installHeaderCore installHeaderLogger
2022-11-18 16:25:17 +01:00
install: installHeader installLibCore installApp clean
installTest: install test
all: install