#------------------------------------------------------------------------
#   Copyright (C) 2014  Serge Iovleff, University Lille1, Inria
#
#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
#------------------------------------------------------------------------
#   Project:    rtkpp
#   Created on: Feb 17, 2014
#   Authors:    Serge IOVLEFF <serge_DOT_iov..._AT_stkpp_DOT_org>
#               Vincent KUBICKI <vincent_DOT_kub..._AT_inria_DOT_fr>
#-----------------------------------------------------------------------
# Name of the STK++ library
LIB_STKPP_A = libSTKpp.a

STKPP_DIR = ../inst
STKPP_LIB_DIR = $(STKPP_DIR)/lib
STKPP_LIB = $(STKPP_LIB_DIR)/$(R_ARCH)/$(LIB_STKPP_A)

# no more specific flags
STK_FLAGS =

## Use the R_HOME indirection to support installations of multiple R version
## define PKG_CPPFLAGS (preprocessor & includes) and PKG_CXXFLAGS (compiler flags)
PKG_CPPFLAGS = -I../inst/projects/ -I../inst/include/ -DIS_RTKPP_LIB  -DSTKUSELAPACK
PKG_CXXFLAGS = `${R_HOME}/bin/Rscript -e "Rcpp:::CxxFlags()"` $(STK_FLAGS) $(SHLIB_OPENMP_CXXFLAGS)
PKG_LIBS     = `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"` $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) $(STKPP_LIB) $(SHLIB_OPENMP_CXXFLAGS)

## Define STK_CPPFLAGS flags and STK_CXXFLAGS here (moved from inst/makevars)
STK_CXXFLAGS = $(PKG_CXXFLAGS)
STK_CPPFLAGS = -DIS_RTKPP_LIB -DSTKUSELAPACK

## And export
export

## $(SHLIB) is the usual default target that is built automatically from all source
## files in this directory. pkglib is an additional target for the library
## that will be installed in inst/ and which users can link against.
.PHONY: all pkglib

all: $(SHLIB)
$(SHLIB): pkglib

pkglib:
	-@if test ! -e $(STKPP_LIB__DIR)/$(R_ARCH); then mkdir -p $(STKPP_LIB_DIR)/$(R_ARCH); fi
	($(MAKE) -C $(STKPP_DIR))
	(cd $(STKPP_DIR) && $(MAKE) clean_obj)
