about summary refs log tree commit diff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile38
1 files changed, 26 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index 0f25d88..72994be 100644
--- a/Makefile
+++ b/Makefile
@@ -10,11 +10,13 @@
 # Set this variable to either LNX or MAC
 SYS = LNX
 # Leave blank after "=" to disable; put "= 1" to enable
-WITH_LAPACK = 1
+SHOW_COMPILER_WARNINGS   =
+WITH_LAPACK     = 1
+WITH_OPENBLAS   =
 NO_INTEL_COMPAT =
-FORCE_32BIT =
-FORCE_DYNAMIC =
-DIST_NAME = gemma-0.97
+FORCE_32BIT     =
+FORCE_DYNAMIC   =
+DIST_NAME       = gemma-0.97
 
 # --------------------------------------------------------------------
 # Edit below this line with caution
@@ -28,12 +30,16 @@ SRC_DIR  = ./src
 
 CPP = g++
 
-CPPFLAGS = -Wall -Weffc++ -O3 -std=gnu++11 -I$(EIGEN_INCLUDE_PATH)
+CPPFLAGS = -O3 -std=gnu++11 -isystem$(EIGEN_INCLUDE_PATH)
+
+ifdef SHOW_COMPILER_WARNINGS
+  CPPFLAGS += -Wall
+endif
 
 ifdef FORCE_DYNAMIC
-LIBS = -lgsl -lgslcblas -lblas -pthread -lz
+  LIBS = -lgsl -lgslcblas -pthread -lz
 else
-LIBS = -lgsl -lgslcblas -pthread -lz
+  LIBS = -lgsl -lgslcblas -pthread -lz
 endif
 
 OUTPUT = $(BIN_DIR)/gemma
@@ -45,6 +51,8 @@ HDR =
 # Detailed libary paths, D for dynamic and S for static
 
 LIBS_LNX_D_LAPACK = -llapack
+LIBS_LNX_D_BLAS = -lblas
+LIBS_LNX_D_OPENBLAS = -lopenblas
 LIBS_MAC_D_LAPACK = -framework Veclib
 LIBS_LNX_S_LAPACK = /usr/lib/lapack/liblapack.a -lgfortran  /usr/lib/atlas-base/libatlas.a /usr/lib/libblas/libblas.a -Wl,--allow-multiple-definition
 
@@ -56,11 +64,14 @@ ifdef WITH_LAPACK
 ifeq ($(SYS), MAC)
   LIBS += $(LIBS_MAC_D_LAPACK)
 else
-ifdef FORCE_DYNAMIC
-  LIBS += $(LIBS_LNX_D_LAPACK)
-else
-  LIBS += $(LIBS_LNX_S_LAPACK)
-endif
+  ifdef FORCE_DYNAMIC
+    ifdef WITH_OPENBLAS
+      LIBS += $(LIBS_LNX_D_OPENBLAS)
+    else
+      LIBS += $(LIBS_LNX_D_BLAS)
+    endif
+    LIBS += $(LIBS_LNX_D_LAPACK)
+  endif
 endif
   SOURCES += $(SRC_DIR)/lapack.cpp
   HDR += $(SRC_DIR)/lapack.h
@@ -95,6 +106,9 @@ $(OBJS) : $(HDR)
 	$(CPP) $(CPPFLAGS) $(HEADERS) -c $*.cpp -o $*.o
 .SUFFIXES : .cpp .c .o $(SUFFIXES)
 
+check: all
+	cd test && ./test_suite.sh | tee ../test.log
+	grep -q 'success rate: 100%' test.log
 
 clean:
 	rm -rf ${SRC_DIR}/*.o ${SRC_DIR}/*~ *~ $(OUTPUT)