#*****************************************************************************
# Makefile
# Developed by: XinHeng Huang email: huangxinheng@gmail.com
# Supervised by: Prof. Puneet Gupta
# Affiliation: University of California, Los Angeles, Department of Electrical
# Engineering
#
# Copyright (c) 2011.
#
#******************************************************************************

#***************************************************************************
# Replace it with your program's name
PROG = listLPP
#***************************************************************************

DEFAULT: $(PROG)
 
TOOLSDIR=/w/apps.icsl/puneet/tools/
CCPATH   = /usr/bin/g++
CXXOPTS  = -Wno-ctor-dtor-privacy


SYS_LD_SO = -shared
CXXPIC = -fPIC
SYSLIBS  = -ldl
LIB_SO_EXT = .so
DEBUG = -g

OA_LIB_DIR = $(TOOLSDIR)oa/lib/linux_rhel30_64/opt

OA_LIB_LIST = $(OA_LIB_DIR)/liboaCommon.so \
	      $(OA_LIB_DIR)/liboaBase.so \
	      $(OA_LIB_DIR)/liboaPlugIn.so \
	      $(OA_LIB_DIR)/liboaDM.so \
	      $(OA_LIB_DIR)/liboaTech$(LIB_SO_EXT) \
	      $(OA_LIB_DIR)/liboaDesign$(LIB_SO_EXT)
	     

# Compile the application code
$(PROG).o: $(PROG).cpp 
	$(CCPATH)   $(CXXOPTS) $(DEBUG) -o $(PROG).o -I$(TOOLSDIR)oa/include/oa \
         -I$(TOOLSDIR)boost_1_45_0  \
	 -I$(TOOLSDIR)          \
	 -c $(PROG).cpp

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# uclaShape:
# Making the header file and cpp file into an object file
# Please include the following two things: 
# -I $(PATH) boost_1_45_0
# -I $(PATH) your OpenAccess library
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
uclaShape.o: uclaShape.cpp uclaShape.h
	$(CCPATH)  $(CXXOPTS) $(DEBUG) -I$(TOOLSDIR)oa/include/oa \
         -I$(TOOLSDIR)boost_1_45_0  \
	 -I$(TOOLSDIR)          \
	 -c uclaShape.cpp

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Link the executable
# adding the uclaShape object file
$(PROG): $(PROG).o uclaShape.o $(OA_LIB_LIST) $(TOOLSDIR)boost_1_45_0
	$(CCPATH) $(CXXOPTS) -o $(PROG)  $(PROG).o uclaShape.o \
	 -L$(OA_LIB_DIR) \
	 -loaCommon \
	 -loaBase \
	 -loaPlugIn\
	 -loaDM\
	 -loaTech\
         -loaDesign\
	 $(SYSLIBS)

clean: 
	@/bin/rm  -rf $(PROG).o uclaShape.o
	@/bin/rm  -rf $(PROG) 
