85 lines
2.3 KiB
Makefile
85 lines
2.3 KiB
Makefile
# Para revisar las opciones de compilacion y ejecucion,
|
|
# ingrese en el terminal el comando: make
|
|
#
|
|
#
|
|
|
|
PROB=suma
|
|
|
|
TEST=test-$(PROB)
|
|
HEADER=$(PROB)
|
|
|
|
SHELL=bash -o pipefail
|
|
|
|
INCLUDE=
|
|
CFLAGS=-Wall -Werror -std=c18 $(INCLUDE)
|
|
#CFLAGS=-Wall -Werror -pedantic -std=c18 $(INCLUDE)
|
|
LDLIBS=-lm -lpthread
|
|
|
|
MAK=make --no-print-directory
|
|
|
|
readme:
|
|
@less README.txt
|
|
|
|
$(PROB).bin $(PROB).bin-g $(PROB).bin-san $(PROB).bin-thr: $(PROB).c $(TEST).c $(HEADER).h
|
|
|
|
run-san: $(PROB).bin-san
|
|
@if grep -P '\t' $(PROB).c ; then echo "Su archivo $(PROB).c contiene tabs. Reemplacelos por espacios en blanco!" ; false ; else true; fi
|
|
./$(PROB).bin-san
|
|
|
|
run-thr: $(PROB).bin-thr
|
|
./$(PROB).bin-thr
|
|
|
|
run-g: $(PROB).bin-g
|
|
./$(PROB).bin-g
|
|
|
|
run: $(PROB).bin
|
|
./$(PROB).bin
|
|
|
|
ddd: $(PROB).ddd
|
|
|
|
ddd-san: $(PROB).ddd-san
|
|
|
|
zip:
|
|
@if grep -P '\t' $(PROB).c ; then echo "Su archivo $(PROB).c contiene tabs. Reemplacelos por espacios en blanco!" ; false ; else true; fi
|
|
@rm -f resultados.txt $(PROB).zip
|
|
@echo "Sistema operativo utilizado" > resultados.txt
|
|
@uname -a >> resultados.txt
|
|
@cat resultados.txt
|
|
@echo ==== run-san ==== | tee -a resultados.txt
|
|
@$(MAK) -B run-san | tee -a resultados.txt
|
|
@echo ==== run-thr ==== | tee -a resultados.txt
|
|
@$(MAK) -B run-thr | tee -a resultados.txt
|
|
@echo ==== run-g ==== | tee -a resultados.txt
|
|
@$(MAK) -B run-g | tee -a resultados.txt
|
|
@echo ==== run ==== | tee -a resultados.txt
|
|
@$(MAK) -B run | tee -a resultados.txt
|
|
@echo ==== zip ====
|
|
zip -r $(PROB).zip resultados.txt $(PROB).c
|
|
@echo "Entregue por u-cursos el archivo $(PROB).zip"
|
|
@echo "Descargue de u-cursos lo que entrego, descargue nuevamente los"
|
|
@echo "archivos adjuntos y vuelva a probar la tarea tal cual como"
|
|
@echo "la entrego. Esto es para evitar que Ud. reciba un 1.0 en su"
|
|
@echo "tarea porque entrego los archivos equivocados. Creame, sucede"
|
|
@echo "a menudo por ahorrarse esta verificacion."
|
|
|
|
%.bin: %.c
|
|
gcc -O -DOPT=1 $(CFLAGS) $^ $(LDLIBS) -o $@
|
|
|
|
%.bin-g: %.c
|
|
gcc -g $(CFLAGS) $^ $(LDLIBS) -o $@
|
|
|
|
%.bin-san: %.c
|
|
gcc -g -DSAN=1 -fsanitize=address -fsanitize=undefined $(CFLAGS) $^ $(LDLIBS) -o $@
|
|
|
|
%.bin-thr: %.c
|
|
gcc -g -DSAN=1 -fsanitize=thread -fsanitize=undefined $(CFLAGS) $^ $(LDLIBS) -o $@
|
|
|
|
%.ddd: %.bin-g
|
|
ddd $(*F).bin-g &
|
|
|
|
%.ddd-san: %.bin-san
|
|
ddd $(*F).bin-san &
|
|
|
|
clean:
|
|
rm -f *.o *.log *.bin* core
|