Home | History | Annotate | Download | only in common
      1 #!/usr/bin/make -f
      2 
      3 #define path variables
      4 IPP_INCLUDE_DIR = ../../ext/ipp/sources/ippcp/src
      5 GTEST_INCLUDE_DIR = ../../ext
      6 
      7 LIB_INSTALL_DIR = $(epidinstalldir)/lib/posix-$(ARCH)/
      8 TEST_INSTALL_DIR = $(epidinstalldir)/test/
      9 HEADERS_INSTALL_DIR :=  $(epidinstalldir)/include/epid/common/
     10 HEADERS_11_INSTALL_DIR :=  $(epidinstalldir)/include/epid/common/1.1
     11 
     12 API_HEADERS_INSTALL = $(wildcard ./*.h)
     13 
     14 API_11_HEADERS_INSTALL = $(wildcard ./1.1/*.h)
     15 
     16 COMMON_INCLUDE_DIR = ../../
     17 COMMON_MATH_INCLUDE_DIR = ./math
     18 COMMON_SRC =  $(wildcard ./src/*.c)
     19 COMMON_SRC +=  $(wildcard ./math/src/*.c)
     20 COMMON_SRC +=  $(wildcard ./1.1/src/*.c)
     21 COMMON_OBJ = $(COMMON_SRC:.c=.o)
     22 COMMON_LIB = ./libcommon.a
     23 
     24 COMMON_UTEST_EXE = ./common-utest$(EXE_EXTENSION)
     25 COMMON_UTEST_SRC = $(wildcard ./math/unittests/*.cc)
     26 COMMON_UTEST_SRC += $(wildcard ./unittests/*.cc)
     27 COMMON_UTEST_SRC += $(wildcard ./1.1/unittests/*.cc)
     28 COMMON_UTEST_OBJ = $(COMMON_UTEST_SRC:.cc=.o)
     29 LIB_COMMON_DIR = .
     30 LIB_COMMON_TESTHELPER_DIR = ../common-testhelper
     31 LIB_IPPCP_DIR = ../../ext/ipp/sources/ippcp/src
     32 
     33 #set flags for linker
     34 LDFLAGS += -L$(GTEST_INCLUDE_DIR)/gtest  -L$(LIB_COMMON_TESTHELPER_DIR)  \
     35 	-L$(LIB_COMMON_DIR) -L$(LIB_IPPCP_DIR) \
     36 	-lgtest -lcommon-testhelper -lcommon -lippcp
     37 
     38 #target part
     39 $(COMMON_OBJ): %.o: %.c
     40 	$(CC) $(CFLAGS) -I$(IPP_INCLUDE_DIR) -I$(COMMON_MATH_INCLUDE_DIR) -I$(COMMON_INCLUDE_DIR) -c $^ -o $@
     41 
     42 $(COMMON_LIB): $(COMMON_OBJ)
     43 	$(AR) rc $(COMMON_LIB) $(COMMON_OBJ)
     44 	$(RANLIB) $(COMMON_LIB)
     45 
     46 $(COMMON_UTEST_EXE): $(COMMON_UTEST_OBJ)
     47 	$(CXX) -o $@ $^ $(LDFLAGS)
     48 
     49 $(COMMON_UTEST_OBJ): %.o: %.cc
     50 	$(CXX) -o $@ $(CXXFLAGS) $(GTEST_DEFINES) -I$(COMMON_INCLUDE_DIR) -I$(GTEST_INCLUDE_DIR) -c $^
     51 
     52 build: all
     53 
     54 all: $(COMMON_LIB)
     55 
     56 install:
     57 	mkdir -p '$(LIB_INSTALL_DIR)'
     58 	mkdir -p '$(HEADERS_INSTALL_DIR)'
     59 	mkdir -p '$(HEADERS_11_INSTALL_DIR)'
     60 	cp $(COMMON_LIB) '$(LIB_INSTALL_DIR)'
     61 	cp $(API_HEADERS_INSTALL) '$(HEADERS_INSTALL_DIR)'
     62 	cp $(API_11_HEADERS_INSTALL) '$(HEADERS_11_INSTALL_DIR)'
     63 #install tests if they exist
     64 ifneq (,$(wildcard $(COMMON_UTEST_EXE)))
     65 	mkdir -p '$(TEST_INSTALL_DIR)'
     66 	cp $(COMMON_UTEST_EXE) '$(TEST_INSTALL_DIR)'
     67 endif
     68 
     69 utest:  $(COMMON_UTEST_EXE)
     70 
     71 run_utest:
     72 	$(COMMON_UTEST_EXE) $(GTEST_FLAGS)
     73 
     74 check:  utest run_utest
     75 
     76 clean:
     77 	rm -f  $(COMMON_OBJ) \
     78 		$(COMMON_LIB) \
     79 		$(COMMON_UTEST_OBJ) \
     80 		$(COMMON_UTEST_EXE) \
     81 		*.xml
     82