diff --git a/Makefile b/Makefile index dea98db..ed34dc5 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # Compiler settings CC = gcc -CFLAGS = -Wall -g -O2 -Isrc -std=c11 -LDFLAGS = -lreadline +CFLAGS = -Wall -Wextra -Werror -g -O2 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fPIE -Isrc -std=c11 +LDFLAGS = -lreadline -pie -Wl,-z,relro,-z,now # Source directories SRC_DIR = src @@ -25,12 +25,14 @@ TEST_EXEC = test_suite # Main program target $(EXEC): $(MAIN_OBJ) $(CC) $(CFLAGS) $(MAIN_OBJ) -o $(EXEC) $(LDFLAGS) + chmod 750 $(EXEC) # Test suite target test: $(TEST_EXEC) $(TEST_EXEC): $(COMMON_OBJ) $(TEST_OBJ) $(CC) $(CFLAGS) $^ -o $(TEST_EXEC) $(LDFLAGS) + chmod 750 $(TEST_EXEC) # Object file rules %.o: %.c @@ -38,7 +40,8 @@ $(TEST_EXEC): $(COMMON_OBJ) $(TEST_OBJ) # Clean target clean: - rm -f $(EXEC) $(TEST_EXEC) $(SRC_DIR)/*.o $(TEST_DIR)/*.o + rm -f $(EXEC) $(TEST_EXEC) + find $(SRC_DIR) $(TEST_DIR) -name '*.o' -type f -delete 2>/dev/null || true # Phony targets .PHONY: clean test