about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPjotr Prins2017-08-20 09:21:01 +0000
committerPjotr Prins2017-08-20 09:21:01 +0000
commite04e6e1d9cac2179bc449c916dc7fa9340dac349 (patch)
tree321b14efee4151e5800decab99bde5f5a613c637
parentd564a6f16613985340040cc7ab0ffc371cbce3d1 (diff)
downloadpangemma-e04e6e1d9cac2179bc449c916dc7fa9340dac349.tar.gz
Support files
-rw-r--r--.gitignore1
-rw-r--r--.travis.yml6
-rw-r--r--INSTALL.md2
-rw-r--r--Makefile22
-rw-r--r--README.md10
5 files changed, 27 insertions, 14 deletions
diff --git a/.gitignore b/.gitignore
index 5088ec4..ef520c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@ src/Eigen
 example/output
 test/output
 ./output
+bin/
 doc/manual.aux
 doc/manual.bbl
 doc/manual.blg
diff --git a/.travis.yml b/.travis.yml
index bc033f9..df74fb2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,4 @@
-language: g++
+language: C++
 compiler: gcc
 matrix:
   include:
@@ -36,11 +36,11 @@ script:
   - $CXX --version
   # build and test debug version
   - make CXX=$CXX FORCE_DYNAMIC=1 WITH_OPENBLAS=1 DEBUG=1 -j 4
-  - time make check
+  - time make CXX=$CXX FORCE_DYNAMIC=1 WITH_OPENBLAS=1 DEBUG=1 check
   - make clean
   # build and test release version
   - make CXX=$CXX FORCE_DYNAMIC=1 WITH_OPENBLAS=1 -j 4
-  - time make check
+  - time make CXX=$CXX FORCE_DYNAMIC=1 WITH_OPENBLAS=1 check
   # build static release (fast-check only)
   # - make clean
   # - make CXX=$CXX TRAVIS_CI=1 -j 4 fast-check
diff --git a/INSTALL.md b/INSTALL.md
index d373dc3..6f7f200 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -69,7 +69,7 @@ work
 
 another example overriding optimization and LIB flags (so as to link against gslv1) would be
 
-    make EIGEN_INCLUDE_PATH=~/.guix-profile/include/eigen3 WITH_OPENBLAS=1 DEBUG=1 FORCE_DYNAMIC=1 GCC_FLAGS="-O3" LIBS="$HOME/opt/gsl1/lib/libgsl.a $HOME/opt/gsl1/lib/libgslcblas.a -L$HOME/.guix-profile/lib -pthread -llapack -lblas -lz"
+    make EIGEN_INCLUDE_PATH=~/.guix-profile/include/eigen3 WITH_OPENBLAS=1 DEBUG=1 FORCE_DYNAMIC=1 GCC_FLAGS="-Wall" LIBS="$HOME/opt/gsl1/lib/libgsl.a $HOME/opt/gsl1/lib/libgslcblas.a -L$HOME/.guix-profile/lib -pthread -llapack -lblas -lz"
 
 to run GEMMA tests
 
diff --git a/Makefile b/Makefile
index 875573c..86eaff8 100644
--- a/Makefile
+++ b/Makefile
@@ -29,6 +29,7 @@ EIGEN_INCLUDE_PATH=/usr/include/eigen3
 BIN_DIR  = ./bin
 
 SRC_DIR  = ./src
+TEST_SRC_DIR  = ./test/src
 
 ifdef CXX
   CPP = $(CXX)
@@ -38,10 +39,10 @@ else
 endif
 
 ifdef DEBUG
-  CPPFLAGS = -g $(GCC_FLAGS) -std=gnu++11 -isystem/$(EIGEN_INCLUDE_PATH)
+  CPPFLAGS = -g $(GCC_FLAGS) -std=gnu++11 -isystem/$(EIGEN_INCLUDE_PATH) -Icontrib/catch-1.9.7 -Isrc
 else
   # release mode
-  CPPFLAGS = -DNDEBUG $(GCC_FLAGS) -std=gnu++11 -isystem/$(EIGEN_INCLUDE_PATH)
+  CPPFLAGS = -DNDEBUG $(GCC_FLAGS) -std=gnu++11 -isystem/$(EIGEN_INCLUDE_PATH) -Icontrib/catch-1.9.7 -Isrc
 endif
 
 ifdef SHOW_COMPILER_WARNINGS
@@ -72,7 +73,7 @@ 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
 
 
-SOURCES += $(SRC_DIR)/param.cpp $(SRC_DIR)/gemma.cpp $(SRC_DIR)/io.cpp $(SRC_DIR)/lm.cpp $(SRC_DIR)/lmm.cpp $(SRC_DIR)/vc.cpp $(SRC_DIR)/mvlmm.cpp $(SRC_DIR)/bslmm.cpp $(SRC_DIR)/prdt.cpp $(SRC_DIR)/mathfunc.cpp $(SRC_DIR)/gzstream.cpp $(SRC_DIR)/eigenlib.cpp $(SRC_DIR)/ldr.cpp $(SRC_DIR)/bslmmdap.cpp $(SRC_DIR)/logistic.cpp $(SRC_DIR)/varcov.cpp
+SOURCES += $(SRC_DIR)/param.cpp $(SRC_DIR)/gemma.cpp $(SRC_DIR)/io.cpp $(SRC_DIR)/lm.cpp $(SRC_DIR)/lmm.cpp $(SRC_DIR)/vc.cpp $(SRC_DIR)/mvlmm.cpp $(SRC_DIR)/bslmm.cpp $(SRC_DIR)/prdt.cpp $(SRC_DIR)/mathfunc.cpp $(SRC_DIR)/gzstream.cpp $(SRC_DIR)/eigenlib.cpp $(SRC_DIR)/ldr.cpp $(SRC_DIR)/bslmmdap.cpp $(SRC_DIR)/logistic.cpp $(SRC_DIR)/varcov.cpp $(SRC_DIR)/debug.cpp
 HDR += $(SRC_DIR)/param.h $(SRC_DIR)/gemma.h $(SRC_DIR)/io.h $(SRC_DIR)/lm.h $(SRC_DIR)/lmm.h $(SRC_DIR)/vc.h $(SRC_DIR)/mvlmm.h $(SRC_DIR)/bslmm.h $(SRC_DIR)/prdt.h $(SRC_DIR)/mathfunc.h $(SRC_DIR)/gzstream.h $(SRC_DIR)/eigenlib.h
 
 ifdef WITH_LAPACK
@@ -118,19 +119,28 @@ $(OBJS) : $(HDR)
 	$(CPP) $(CPPFLAGS) $(HEADERS) -c $*.cpp -o $*.o
 .SUFFIXES : .cpp .c .o $(SUFFIXES)
 
-fast-check: all
+unittests: all contrib/catch-1.9.7/catch.hpp $(TEST_SRC_DIR)/unittests-main.o $(TEST_SRC_DIR)/unittests-math.o
+	$(CPP) $(CPPFLAGS) $(TEST_SRC_DIR)/unittests-main.o  $(TEST_SRC_DIR)/unittests-math.o $(filter-out $(SRC_DIR)/main.o, $(OBJS)) $(LIBS) -o ./bin/unittests
+	./bin/unittests
+
+fast-check: all unittests
+	rm -vf test/output/*
 	cd test && ./dev_test_suite.sh | tee ../dev_test.log
 	grep -q 'success rate: 100%' dev_test.log
 
 slow-check: all
+	rm -vf test/output/*
 	cd test && ./test_suite.sh | tee ../test.log
 	grep -q 'success rate: 100%' test.log
 
 check: fast-check slow-check
 
 clean:
-	rm -rf ${SRC_DIR}/*.o ${SRC_DIR}/*~ *~ $(OUTPUT)
-	rm -f test/output/*
+	rm -vf $(SRC_DIR)/*.o
+	rm -vf $(SRC_DIR)/*~
+	rm -vf $(TEST_SRC_DIR)/*.o
+	rm -vf $(OUTPUT)
+	rm -vf ./bin/unittests
 
 DIST_COMMON = COPYING.txt README.txt Makefile
 DIST_SUBDIRS = src doc example bin
diff --git a/README.md b/README.md
index fa0bffa..d6209a8 100644
--- a/README.md
+++ b/README.md
@@ -101,16 +101,18 @@ warranty**; without even the implied warranty of **merchantability or
 fitness for a particular purpose**. See file [LICENSE](LICENSE) for
 the full text of the license.
 
-
-
 The source code for the
 [shUnit2](https://github.com/genenetwork/shunit2) unit testing
-framework, included in this repository [here](test/shunit2-2.0.3), is
+framework, included in this repository [here](contrib/shunit2-2.0.3), is
 distributed under the
-[GNU Lesser General Public License](test/shunit2-2.0.3/doc/LGPL-2.1),
+[GNU Lesser General Public License](contrib/shunit2-2.0.3/doc/LGPL-2.1),
 either version 2.1 of the License, or (at your option) any later
 revision.
 
+The source code for the included [Catch](http://catch-lib.net) unit
+testing framework is distributed under the
+[Boost Software Licence version 1](https://github.com/philsquared/Catch/blob/master/LICENSE.txt).
+
 ## What's included
 
 This is the current structure of the GEMMA source repository: