aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorYaroslav de la Peña Smirnov <yps@yaroslavps.com>2021-11-08 17:44:18 +0300
committerYaroslav de la Peña Smirnov <yps@yaroslavps.com>2021-11-08 17:44:18 +0300
commit6b35ae81a38573dcc42a944ebd8c2e6317cf5ad3 (patch)
treed9118b0db831d878db8acd33f7a69a0dbbf96849 /Makefile
parentdc6d7befaa0de08814d4aaf85838faaf3fec8671 (diff)
downloadparcini-master.tar.gz
parcini-master.zip
slicecpy: fix buffer overflowHEADmaster
on sections shorter than 3 chars.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile47
1 files changed, 24 insertions, 23 deletions
diff --git a/Makefile b/Makefile
index a21748b..6576a87 100644
--- a/Makefile
+++ b/Makefile
@@ -1,38 +1,39 @@
CC?=gcc
-RM:=rm -rf
-SRC_DIR:=src
-OBJ_DIR:=obj
+CFLAGS:=-std=c99 -O0 -g -Wall -DDEBUG
+
INC_DIRS=$(addprefix -iquote,include)
-PARCINI_SOURCES:=$(wildcard $(SRC_DIR)/*.c)
-PARCINI_OBJECTS:=$(PARCINI_SOURCES:%.c=$(OBJ_DIR)/%.o)
-BUILD_DIR:=build
+BUILDIR:=build
+OBJDIR:=$(BUILDIR)/obj
+
+PARCINI_SRCS:=$(wildcard src/*.c)
+PARCINI_OBJS:=$(PARCINI_SRCS:%.c=$(OBJDIR)/%.o)
-test: CFLAGS := -std=c99 -O0 -g -Wall -DDEBUG
-test: $(BUILD_DIR) tests/parcini
+ifdef ASAN
+CFLAGS+= -fsanitize=address -fno-omit-frame-pointer
+endif
-tests/%: $(OBJ_DIR)/src/tests/%.o $(PARCINI_OBJECTS)
- $(CC) $(LDFLAGS) -o $(BUILD_DIR)/$@ $^
- $(BUILD_DIR)/$@
+test:
+test: $(BUILDIR) tests/parcini
+
+tests/%: $(OBJDIR)/src/tests/%.o $(PARCINI_OBJS)
+ mkdir -p $(BUILDIR)/$(@D)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $(BUILDIR)/$@ $^
+ $(BUILDIR)/$@
example: CFLAGS := -std=c99 -O2 -Wall
-example: $(OBJ_DIR)/example/example.o $(PARCINI_OBJECTS)
- $(CC) $(LDFLAGS) -o $(BUILD_DIR)/example/$@ $^
+example: $(OBJDIR)/example/example.o $(PARCINI_OBJS)
+ mkdir -p $(@D)
+ $(CC) $(LDFLAGS) -o $(BUILDIR)/example/$@ $^
-$(OBJ_DIR)/%.o: %.c
+$(OBJDIR)/%.o: %.c
+ mkdir -p $(@D)
$(CC) -c $(CFLAGS) $(INC_DIRS) -o $@ $<
-$(BUILD_DIR):
- mkdir -p $(BUILD_DIR)/tests
- mkdir -p $(BUILD_DIR)/example
- mkdir -p $(OBJ_DIR)/src/tests
- mkdir -p $(OBJ_DIR)/example
-
clean:
- $(RM) $(OBJ_DIR)
- $(RM) $(BUILD_DIR)
+ rm -r $(BUILDIR)
.PHONY: clean test
-.PRECIOUS: $(OBJ_DIR)/tests/%.o $(OBJ_DIR)/%.o
+.PRECIOUS: $(OBJDIR)/tests/%.o $(OBJDIR)/%.o