# Opções de compilação
CXXFLAGS=-g -Wall -ansi -pedantic

# Comandos a usar na construção:
# Para o pré-processamento e compilação:
CXX=c++

# Para a fusão:
CC=c++

# Arquivos a usar na fusão:
LDLIBS=

# Um ficheiro de construção consiste num conjunto de regras que
# indicam que ficheiros dependem de que outros ficheiros.  A regra
# típica tem a forma:
#
# alvo : dependências
#
# onde alvo é o nome do ficheiro alvo e dependências é a lista de
# ficheiros de que o alvo depende.  É possível indicar que comando
# deve ser usado para actualizar o alvo a partir das dependências.
# Nesse caso a regra terá o seguinte aspecto:
#
# alvo : dependências
#         comando
#
# onde tem de existir um tabulador antes do comando!

# O primeiro alvo explícito encontrado num ficheiro de construção é o
# alvo que o construtor tenta construir se não lhe for indicado nenhum
# outro.  Neste caso esse alvo (fictício) chama-se tudo.  É fictício
# porque serve apenas para dizer que o objectivo é na realidade
# construir dois executáveis.

# Este ficheiro de construção serve para criar dois programas: media e procura
tudo: media procura

# O ficheiro executável (programa) media depende dos ficheiros objecto
# listados:
media: media.o aluno.o
	$(CC) $(CXXFLAGS) -o media media.o aluno.o

# O ficheiro executável (programa) procura depende dos ficheiros
# objecto listados:
procura: procura.o aluno.o
	$(CC) $(CXXFLAGS) -o procura procura.o aluno.o

# Os ficheiros objecto dependem dos ficheiros fonte listados (não é
# necessário dizer que os ficheiros objecto dependem dos respectivos
# ficheiros de implementação, pois o construtor sabe-o):
aluno.o: aluno.H
media.o: aluno.H
procura.o: aluno.H