#----------------------------#
#   Makefile for GnuRad      #
#----------------------------#




#-------- Defining Macos used in the Makefile  -----------

# GnuRad's C++ Header files are separated into 3 groups
 
HDRS1= struct.h wall.h
HDRS2= box.h media.h
HDRS3= model.h parser.h scan.h


# Name of the various object files needed to built GnuRad

OBJ= gnurad.o parser.o scan.o model.o box.o wall.o media.o


# The C++ Compiler command

CCP= g++


# The C++ options which are currently set to 
# debug info (-g) and create an object (-c)

CFLAGS= -c -O
DBG=  


# Libraries to use in building GnuRad

LIBS= -lm



#---------- Default make target (which is to build GnuRad) --------
gnurad : ${OBJ}
	${CCP} ${DBG} ${LIBS} -o gnurad.exe ${OBJ}


#------- Rules to build the object files ----------

gnurad.o : gnurad.cpp ${HDRS1} ${HDRS2} ${HDRS3}
	${CCP} ${DBG} ${CFLAGS} gnurad.cpp
#
parser.o : parser.cpp ${HDRS1} ${HDRS2} ${HDRS3}
	${CCP} ${DBG} ${CFLAGS} parser.cpp
#
scan.o : scan.cpp scan.h
	${CCP} ${DBG} ${CFLAGS} scan.cpp
#
model.o : model.cpp ${HDRS1} ${HDRS2} model.h
	${CCP} ${DBG} ${CFLAGS} model.cpp
#
box.o : box.cpp ${HDRS1} ${HDRS2}
	${CCP} ${DBG} ${CFLAGS} box.cpp
#
wall.o : wall.cpp ${HDRS1} ${HDRS2}
	${CCP} ${DBG} ${CFLAGS} wall.cpp
#
media.o : media.cpp ${HDRS1} ${HDRS2}
	${CCP} ${DBG} ${CFLAGS} media.cpp


#-------- Removes all object files and the gnurad executable ---------
clean : 
	rm *.o gnurad.exe

