#
# PROGRAM:    polymorph
#
    
# Compiler variables
CXX = g++
CXXFLAGS = -Wall -Werror -std=c++11
        
# Rule to link object code files to create executable file
polymorph: polymorph.o employee.o hourly.o commission.o salaried.o base_commission.o
	$(CXX) $(CXXFLAGS) -o polymorph $^

# Rules to compile source code file to object code
polymorph.o: polymorph.cpp hourly.h commission.h salaried.h base_commission.h
employee.o: employee.cpp employee.h
hourly.o: hourly.cpp hourly.h
commission.o: commission.cpp commission.h
salaried.o: salaried.cpp salaried.h
base_commission.o: base_commission.cpp commission.h

commission.h: employee.h
hourly.h: employee.h
salaried.h: employee.h
base_commission: commission.h
   
# Pseudo-target to remove object code and executable files
clean:
	rm -f polymorph *.o
