#-----Macros---------------------------------

# for cs machines
#BASEDIR = /usr/project/courses/cps008/lib
# for acpub machines
BASEDIR = /home/build/Builds/OpenPL/OpenPL/opl_sdk
SRCDIR =  /home/build/Builds/OpenPL/OpenPL/opl_sdk/Source
INCDIR =  /home/build/Builds/OpenPL/OpenPL/opl_sdk/Header
OBJS = %.o
# TLIB = $(BASEDIR)/libtapestry.a
INCLUDES = -I. -I$(INCDIR)

# set up compiler and options
CXX = g++
CXXFLAGS = -g $(INCLUDES)

#-----Suffix Rules---------------------------
# set up C++ suffixes and relationship between .cc and .o files

.SUFFIXES: .c

.c.o:
   ->   $(CXX) $(CXXFLAGS) -c $<

.c :
   ->   $(CXX) $(CXXFLAGS) $< -o $@ -lm $(TLIB) -lg++

#-----File Dependencies----------------------

#Default target
all: opl_sdk.so

# Actual target and dependencies
opl_sdk.so: $(OBJ)

SRC = application.cc menu.cc menuitem.cc pixmap.cc usepix.cc \
      readcommand.cc quitcommand.cc filelister.cc templateapp.cc \
      displaycommand.cc

$(OBJS): $(SRCDIR)/%.c $(INCDIR)/%.h
	 @echo 'Building file: $<'
	 @echo 'Invoking: GCC C Compiler'
	 gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<"
OBJ = $(addsuffix .o, $(basename $(SRC)))

usepix: $(OBJ)
   ->   $(CXX) $(CXXFLAGS) -o $@ $(OBJ) -lm $(TLIB) -lg++

#-----Other stuff----------------------------
depend:
   ->   makedepend $(CXXFLAGS) -Y $(SRC)

clean:
   ->   rm -f $(OBJ)
