# Versão 1.0 # Ficheiros distribuídos por directórios TOPDIR = . SRCDIR = $(TOPDIR)/src GENDIR = $(TOPDIR)/gerais FUNCDIR = $(TOPDIR)/func DESTDIR = $(TOPDIR)/bin CC = gcc SRC0 = $(SRCDIR)/prog0.c $(GENDIR)/file_func.c $(FUNCDIR)/exemplo1.c SRC1 = $(SRCDIR)/prog1.c $(GENDIR)/file_func.c $(FUNCDIR)/exemplo1.c \ $(FUNCDIR)/exemplo2.c $(FUNCDIR)/exemplo3.c CFLAGS = -O3 -funroll-all-loops -fstrength-reduce -fgcse -finline-functions LDFLAGS = -lm VPATH = $(TOPDIR):$(DESTDIR) PROGS = prog0 prog1 all: $(PROGS) prog0: $(SRC0) Makefile $(CC) $(CFLAGS) $(SRC0) $(LDFLAGS) -o $(DESTDIR)/$@ prog1: $(SRC1) Makefile $(CC) $(CFLAGS) $(SRC1) $(LDFLAGS) -o $(DESTDIR)/$@ clean: - rm $(DESTDIR)/prog0 $(DESTDIR)/prog1 $(TOPDIR)/result.dat # execute all programs exec: $(PROGS) @for prog in $(PROGS) ; \ do \ echo -n "Running $$prog ..." ; \ $(DESTDIR)/$$prog dados_bbig.dat 370000 result.dat; \ echo ; \ done logging: $(PROGS) @for prog in $(PROGS) ; \ do \ echo -n "Running $$prog ... " >> $$prog.log ; \ $(DESTDIR)/$$prog dados_bbig.dat 370000 \ result.dat 2>&1 | tee -a $$prog.log; \ echo ; \ done testa: logging @echo $(PROGS) | { read primeiro segundo ; diff $$primeiro.log $$segundo.log; }