fix broken Makefile for valgrind + fix day02 memory leak.
This commit is contained in:
@@ -40,20 +40,25 @@ CFLAGS += -Wno-unused-result
|
|||||||
CFLAGS += -DDEBUG_DEBUG # activate general debug (debug.c)
|
CFLAGS += -DDEBUG_DEBUG # activate general debug (debug.c)
|
||||||
CFLAGS += -DDEBUG_POOL # memory pools management
|
CFLAGS += -DDEBUG_POOL # memory pools management
|
||||||
|
|
||||||
|
VALGRIND := valgrind
|
||||||
|
VALGRINDFLAGS := -q -s --leak-check=full --show-leak-kinds=all --track-origins=yes
|
||||||
|
|
||||||
|
|
||||||
TIME := \time -f "\ttime: %E real, %U user, %S sys\n\tcontext-switch:\t%c+%w, page-faults: %F+%R\n"
|
TIME := \time -f "\ttime: %E real, %U user, %S sys\n\tcontext-switch:\t%c+%w, page-faults: %F+%R\n"
|
||||||
export PATH := .:$(PATH)
|
export PATH := .:$(PATH)
|
||||||
|
|
||||||
.PHONY: clean all compile assembly memcheck memcheck1 memcheck2 ex1 ex2
|
.PHONY: clean all compile assembly memcheck memcheck1 memcheck2 ex1 ex2
|
||||||
|
|
||||||
all: ex1 ex2
|
all: README.org ex1 ex2
|
||||||
|
|
||||||
memcheck: memcheck1
|
memcheck: memcheck1
|
||||||
|
|
||||||
memcheck1:
|
memcheck1: aoc-c
|
||||||
@valgrind -q -s --track-origins=yes aoc-c -p 1 < $(INPUT)
|
@$(VALGRIND) $(VALGRINDFLAGS) aoc-c -p 1 < $(INPUT)
|
||||||
|
|
||||||
memcheck2:
|
memcheck2: aoc-c
|
||||||
@valgrind -q -s --track-origins=yes aoc-c -p 2 < $(INPUT)
|
@$(VALGRIND) $(VALGRINDFLAGS) aoc-c -p 2 < $(INPUT)
|
||||||
|
@#@valgrind -s --track-origins=yes aoc-c -p 2 < $(INPUT)
|
||||||
|
|
||||||
compile: aoc-c
|
compile: aoc-c
|
||||||
|
|
||||||
@@ -66,12 +71,22 @@ ex2: aoc-c
|
|||||||
@$(TIME) aoc-c -p 2 < $(INPUT)
|
@$(TIME) aoc-c -p 2 < $(INPUT)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm -f aoc-c core* vgcore* gmon.out aoc-c.s
|
@rm -f aoc-c core* vgcore* gmon.out aoc-c.s aoc-c.i README.html
|
||||||
|
|
||||||
.c:
|
.c:
|
||||||
@echo compiling $<
|
@echo compiling $<
|
||||||
@$(CC) $(CFLAGS) $(LDFLAGS) -I $(INCDIR) $< $(LDLIB) -o $@
|
@$(CC) $(CFLAGS) $(LDFLAGS) -I $(INCDIR) $< $(LDLIB) -o $@
|
||||||
|
|
||||||
.c.s:
|
# generate pre-processed file (.i) and assembler (.s)
|
||||||
|
%.i: %.c
|
||||||
|
@echo generating $@
|
||||||
|
@$(CC) -E $(CFLAGS) -I $(INCDIR) $< -o $@
|
||||||
|
|
||||||
|
%.s: %.c
|
||||||
@echo generating $@
|
@echo generating $@
|
||||||
@$(CC) -S -fverbose-asm $(CFLAGS) -I $(INCDIR) $< -o $@
|
@$(CC) -S -fverbose-asm $(CFLAGS) -I $(INCDIR) $< -o $@
|
||||||
|
|
||||||
|
# generate README.org from README.html (must cleanup !)
|
||||||
|
%.org: %.html
|
||||||
|
@echo generating $@. Cleanup before commit !
|
||||||
|
@pandoc $< -o $@
|
||||||
|
@@ -40,20 +40,25 @@ CFLAGS += -Wno-unused-result
|
|||||||
CFLAGS += -DDEBUG_DEBUG # activate general debug (debug.c)
|
CFLAGS += -DDEBUG_DEBUG # activate general debug (debug.c)
|
||||||
CFLAGS += -DDEBUG_POOL # memory pools management
|
CFLAGS += -DDEBUG_POOL # memory pools management
|
||||||
|
|
||||||
|
VALGRIND := valgrind
|
||||||
|
VALGRINDFLAGS := -q -s --leak-check=full --show-leak-kinds=all --track-origins=yes
|
||||||
|
|
||||||
|
|
||||||
TIME := \time -f "\ttime: %E real, %U user, %S sys\n\tcontext-switch:\t%c+%w, page-faults: %F+%R\n"
|
TIME := \time -f "\ttime: %E real, %U user, %S sys\n\tcontext-switch:\t%c+%w, page-faults: %F+%R\n"
|
||||||
export PATH := .:$(PATH)
|
export PATH := .:$(PATH)
|
||||||
|
|
||||||
.PHONY: clean all compile assembly memcheck memcheck1 memcheck2 ex1 ex2
|
.PHONY: clean all compile assembly memcheck memcheck1 memcheck2 ex1 ex2
|
||||||
|
|
||||||
all: ex1 ex2
|
all: README.org ex1 ex2
|
||||||
|
|
||||||
memcheck: memcheck1
|
memcheck: memcheck1
|
||||||
|
|
||||||
memcheck1:
|
memcheck1: aoc-c
|
||||||
@valgrind -q -s --track-origins=yes aoc-c -p 1 < $(INPUT)
|
@$(VALGRIND) $(VALGRINDFLAGS) aoc-c -p 1 < $(INPUT)
|
||||||
|
|
||||||
memcheck2:
|
memcheck2: aoc-c
|
||||||
@valgrind -q -s --track-origins=yes aoc-c -p 2 < $(INPUT)
|
@$(VALGRIND) $(VALGRINDFLAGS) aoc-c -p 2 < $(INPUT)
|
||||||
|
@#@valgrind -s --track-origins=yes aoc-c -p 2 < $(INPUT)
|
||||||
|
|
||||||
compile: aoc-c
|
compile: aoc-c
|
||||||
|
|
||||||
@@ -66,12 +71,22 @@ ex2: aoc-c
|
|||||||
@$(TIME) aoc-c -p 2 < $(INPUT)
|
@$(TIME) aoc-c -p 2 < $(INPUT)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm -f aoc-c core* vgcore* gmon.out aoc-c.s
|
@rm -f aoc-c core* vgcore* gmon.out aoc-c.s aoc-c.i README.html
|
||||||
|
|
||||||
.c:
|
.c:
|
||||||
@echo compiling $<
|
@echo compiling $<
|
||||||
@$(CC) $(CFLAGS) $(LDFLAGS) -I $(INCDIR) $< $(LDLIB) -o $@
|
@$(CC) $(CFLAGS) $(LDFLAGS) -I $(INCDIR) $< $(LDLIB) -o $@
|
||||||
|
|
||||||
.c.s:
|
# generate pre-processed file (.i) and assembler (.s)
|
||||||
|
%.i: %.c
|
||||||
|
@echo generating $@
|
||||||
|
@$(CC) -E $(CFLAGS) -I $(INCDIR) $< -o $@
|
||||||
|
|
||||||
|
%.s: %.c
|
||||||
@echo generating $@
|
@echo generating $@
|
||||||
@$(CC) -S -fverbose-asm $(CFLAGS) -I $(INCDIR) $< -o $@
|
@$(CC) -S -fverbose-asm $(CFLAGS) -I $(INCDIR) $< -o $@
|
||||||
|
|
||||||
|
# generate README.org from README.html (must cleanup !)
|
||||||
|
%.org: %.html
|
||||||
|
@echo generating $@. Cleanup before commit !
|
||||||
|
@pandoc $< -o $@
|
||||||
|
@@ -145,6 +145,6 @@ int main(int ac, char **av)
|
|||||||
return usage(*av);
|
return usage(*av);
|
||||||
p = parse();
|
p = parse();
|
||||||
printf("%s : res=%d\n", *av, part == 1? part1(p): part2(p));
|
printf("%s : res=%d\n", *av, part == 1? part1(p): part2(p));
|
||||||
|
free(p);
|
||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user