Exercise mycp a basic GNU cp clone
This commit is contained in:
56
exercises/mycp/Makefile
Normal file
56
exercises/mycp/Makefile
Normal file
@@ -0,0 +1,56 @@
|
||||
# Nome del file eseguibile
|
||||
TARGET = mycp
|
||||
|
||||
# Compilatore
|
||||
CC = gcc
|
||||
|
||||
# Opzioni di compilazione (C11 + warning utili + debug info)
|
||||
CFLAGS = -Wall -Wextra -fsanitize=address -lasan -std=c11 -g
|
||||
|
||||
# File sorgente
|
||||
SRC = main.c
|
||||
|
||||
LOGFILE = test_results.log
|
||||
|
||||
HTMLREPORT = test_report.html
|
||||
|
||||
VALGRIND_OUTPUT = valgrind_output.txt
|
||||
|
||||
.PHONY: all clean clean-tests test
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(SRC)
|
||||
$(CC) $(CFLAGS) -o $@ $^
|
||||
|
||||
test: clean-tests $(TARGET)
|
||||
./test_mycp.sh
|
||||
|
||||
clean-tests:
|
||||
@echo "[CLEANUP] Removing test files and logs..."
|
||||
rm -f \
|
||||
test_input.txt \
|
||||
test_output.txt \
|
||||
bin_input \
|
||||
bin_output \
|
||||
readonly.txt \
|
||||
existing.txt \
|
||||
bigfile \
|
||||
bigfile_copy \
|
||||
*.copy \
|
||||
$(LOGFILE) \
|
||||
$(HTMLREPORT) \
|
||||
$(VALGRIND_OUTPUT)
|
||||
|
||||
clean: clean-tests
|
||||
rm -f $(TARGET)
|
||||
|
||||
report: test
|
||||
./generate_report.sh
|
||||
|
||||
valgrind: $(TARGET)
|
||||
valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes ./mycp test_input.txt test_output.txt
|
||||
|
||||
valgrind-test: $(TARGET)
|
||||
./valgrind_test.sh
|
||||
|
||||
Reference in New Issue
Block a user