# Use C++11
CXX_STD = CXX11
# PATHS
INCPATH=../inst/include
BUILDPATH = ../inst/include
PKG_CPPFLAGS = $(CXXPICFLAGS) -I$(INCPATH) $(R_XTRA_CPPFLAGS)
PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS) `$(R_HOME)/bin/Rscript -e "Rcpp:::CxxFlags()"` `$(R_HOME)/bin/Rscript -e 'writeLines(paste("-I",system.file(package="BH"),"/include",sep = ""))'`
PKG_LIBS = $(SHLIB_OPENMP_CXXFLAGS) -L$(INCPATH) -lfull $(LIBM)
LIBS =-L./ -L/../inst
# -L Path to lib
# -l Path to lib implmentation
# -I Path to header

# Source Directories
DICHO_ESTIMATION = dichotomous/estimation
DICHO_MODEL 	 = dichotomous/model
DICHO_TYPE 		 = dichotomous/type
POLY_ESTIMATION  = polytomous/estimation
POLY_MODEL 	 	 = polytomous/model
POLY_TYPE 		 = polytomous/type
OTHER_TEST 		 = test
OTHER_UTIL 		 = util


MYSOURCES = $(DICHO_ESTIMATION)/estep.cpp $(DICHO_ESTIMATION)/estimation.cpp $(DICHO_ESTIMATION)/mstep.cpp $(DICHO_MODEL)/model.cpp $(DICHO_MODEL)/onepl.cpp $(DICHO_MODEL)/twopl.cpp $(DICHO_MODEL)/threepl.cpp $(DICHO_TYPE)/estimationdata.cpp $(POLY_ESTIMATION)/estep.cpp $(POLY_ESTIMATION)/mstep.cpp $(POLY_ESTIMATION)/estimation.cpp $(POLY_MODEL)/onepl.cpp $(POLY_MODEL)/twopl.cpp $(POLY_MODEL)/model.cpp $(POLY_TYPE)/estimationdata.cpp $(OTHER_TEST)/test.cpp $(OTHER_UTIL)/directories.cpp $(OTHER_UTIL)/initial_values.cpp $(OTHER_UTIL)/quadraturepoints.cpp $(OTHER_UTIL)/ramsay.cpp

MYOBJECTS	= $(MYSOURCES:.cpp=.o)

.PHONY: all mylibs
all: $(SHLIB) mylibs
$(SHLIB): mylibs

mylibs:	$(MYOBJECTS)
	$(AR) rcs ../inst/include/libfull.a $(MYOBJECTS)
	$(RANLIB) ../inst/include/libfull.a
	
$(MYOBJECTS): %.o: %.cpp
	$(CXX) $(PKG_CPPFLAGS) -c $< $(PKG_CXXFLAGS) -o $@

clean:
	rm -rf $(MYOBJECTS) $(INCPATH)/libfull.a
