Makefile: split release/debug targets, add more compile flags #3
23
Makefile
23
Makefile
@@ -1,28 +1,39 @@
|
||||
CC = cc
|
||||
CFLAGS = -Wall -Wextra -O2
|
||||
|
||||
CFLAGS = -std=c17
|
||||
CFLAGS_WARNINGS = -Wall -Wextra
|
||||
CFLAGS_RELEASE = -O2 -fstack-protector-strong -fpie
|
||||
CFLAGS_DEBUG = -O0 -ggdb -DDEBUG -fsanitize=address -static-libasan
|
||||
|
||||
SOURCE_FOLDER = src
|
||||
SOURCE = main.c
|
||||
TARGET = wamf
|
||||
TARGET_DEBUG = wamf-debug
|
||||
OUTPUT_FOLDER = output
|
||||
OUTPUT = $(OUTPUT_FOLDER)/$(TARGET)
|
||||
OUTPUT_DEBUG = $(OUTPUT_FOLDER)/$(TARGET_DEBUG)
|
||||
|
||||
REMOTE_USER = root
|
||||
REMOTE_HOST = innovation.pvv.ntnu.no
|
||||
REMOTE_DIR = /tmp/wamf
|
||||
REMOTE_PATH = $(REMOTE_USER)@$(REMOTE_HOST):$(REMOTE_DIR)
|
||||
|
||||
.PHONY: all clean
|
||||
.PHONY: all release debug clean deploy remote-build remote-clean remote-run
|
||||
|
||||
all: $(OUTPUT)
|
||||
|
||||
$(OUTPUT_FOLDER):
|
||||
mkdir $(OUTPUT_FOLDER)
|
||||
$(OUTPUT): $(SOURCE_FOLDER)/$(SOURCE) $(OUTPUT_FOLDER)
|
||||
$(CC) $(CFLAGS) -o $(OUTPUT) $(SOURCE_FOLDER)/$(SOURCE)
|
||||
|
||||
$(OUTPUT) release: $(SOURCE_FOLDER)/$(SOURCE) $(OUTPUT_FOLDER)
|
||||
$(CC) $(CFLAGS) $(CFLAGS_WARNINGS) $(CFLAGS_RELEASE) -o $(OUTPUT) $(SOURCE_FOLDER)/$(SOURCE)
|
||||
|
||||
$(OUTPUT_DEBUG) debug: $(SOURCE_FOLDER)/$(SOURCE) $(OUTPUT_FOLDER)
|
||||
$(CC) $(CFLAGS) $(CFLAGS_WARNINGS) $(CFLAGS_DEBUG) -o $(OUTPUT_DEBUG) $(SOURCE_FOLDER)/$(SOURCE)
|
||||
|
||||
clean:
|
||||
rm -rf $(OUTPUT_FOLDER)
|
||||
|
||||
.PHONY: deploy remote-build remote-clean remote-run
|
||||
|
||||
deploy:
|
||||
@echo "Creating remote directory..."
|
||||
ssh $(REMOTE_USER)@$(REMOTE_HOST) "mkdir -p $(REMOTE_DIR)"
|
||||
|
||||
Reference in New Issue
Block a user