#!/usr/bin/make -f

#define path variables
IPP_INCLUDE_DIR = ../../ext/ipp/sources/ippcp/src
GTEST_INCLUDE_DIR = ../../ext

LIB_INSTALL_DIR = $(epidinstalldir)/lib/posix-$(ARCH)/
TEST_INSTALL_DIR = $(epidinstalldir)/test/
HEADERS_INSTALL_DIR :=  $(epidinstalldir)/include/epid/common/
HEADERS_11_INSTALL_DIR :=  $(epidinstalldir)/include/epid/common/1.1

API_HEADERS_INSTALL = $(wildcard ./*.h)

API_11_HEADERS_INSTALL = $(wildcard ./1.1/*.h)

COMMON_INCLUDE_DIR = ../../
COMMON_MATH_INCLUDE_DIR = ./math
COMMON_SRC =  $(wildcard ./src/*.c)
COMMON_SRC +=  $(wildcard ./math/src/*.c)
COMMON_SRC +=  $(wildcard ./1.1/src/*.c)
COMMON_OBJ = $(COMMON_SRC:.c=.o)
COMMON_LIB = ./libcommon.a

COMMON_UTEST_EXE = ./common-utest$(EXE_EXTENSION)
COMMON_UTEST_SRC = $(wildcard ./math/unittests/*.cc)
COMMON_UTEST_SRC += $(wildcard ./unittests/*.cc)
COMMON_UTEST_SRC += $(wildcard ./1.1/unittests/*.cc)
COMMON_UTEST_OBJ = $(COMMON_UTEST_SRC:.cc=.o)
LIB_COMMON_DIR = .
LIB_COMMON_TESTHELPER_DIR = ../common-testhelper
LIB_IPPCP_DIR = ../../ext/ipp/sources/ippcp/src

#set flags for linker
LDFLAGS += -L$(GTEST_INCLUDE_DIR)/gtest  -L$(LIB_COMMON_TESTHELPER_DIR)  \
	-L$(LIB_COMMON_DIR) -L$(LIB_IPPCP_DIR) \
	-lgtest -lcommon-testhelper -lcommon -lippcp

#target part
$(COMMON_OBJ): %.o: %.c
	$(CC) $(CFLAGS) -I$(IPP_INCLUDE_DIR) -I$(COMMON_MATH_INCLUDE_DIR) -I$(COMMON_INCLUDE_DIR) -c $^ -o $@

$(COMMON_LIB): $(COMMON_OBJ)
	$(AR) rc $(COMMON_LIB) $(COMMON_OBJ)
	$(RANLIB) $(COMMON_LIB)

$(COMMON_UTEST_EXE): $(COMMON_UTEST_OBJ)
	$(CXX) -o $@ $^ $(LDFLAGS)

$(COMMON_UTEST_OBJ): %.o: %.cc
	$(CXX) -o $@ $(CXXFLAGS) $(GTEST_DEFINES) -I$(COMMON_INCLUDE_DIR) -I$(GTEST_INCLUDE_DIR) -c $^

build: all

all: $(COMMON_LIB)

install:
	mkdir -p '$(LIB_INSTALL_DIR)'
	mkdir -p '$(HEADERS_INSTALL_DIR)'
	mkdir -p '$(HEADERS_11_INSTALL_DIR)'
	cp $(COMMON_LIB) '$(LIB_INSTALL_DIR)'
	cp $(API_HEADERS_INSTALL) '$(HEADERS_INSTALL_DIR)'
	cp $(API_11_HEADERS_INSTALL) '$(HEADERS_11_INSTALL_DIR)'
#install tests if they exist
ifneq (,$(wildcard $(COMMON_UTEST_EXE)))
	mkdir -p '$(TEST_INSTALL_DIR)'
	cp $(COMMON_UTEST_EXE) '$(TEST_INSTALL_DIR)'
endif

utest:  $(COMMON_UTEST_EXE)

run_utest:
	$(COMMON_UTEST_EXE) $(GTEST_FLAGS)

check:  utest run_utest

clean:
	rm -f  $(COMMON_OBJ) \
		$(COMMON_LIB) \
		$(COMMON_UTEST_OBJ) \
		$(COMMON_UTEST_EXE) \
		*.xml
