diff --git a/Makefile b/Makefile index e1b93d814..a41724291 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ export CC = gcc export CXX = g++ export MPICXX = mpicxx -export LDFLAGS= -Lrabit/lib -pthread -lm +export LDFLAGS= -pthread -lm export CFLAGS = -Wall -O3 -msse2 -Wno-unknown-pragmas -fPIC ifeq ($(no_omp),1) @@ -11,9 +11,9 @@ else endif # by default use c++11 -ifeq ($(no_cxx11),1) +ifeq ($(cxx11),1) + CFLAGS += -std=c++11 else - CFLAGS += endif # specify tensor path @@ -72,15 +72,18 @@ install: Rpack: make clean + cd subtree/rabit;make clean;cd - rm -rf xgboost xgboost*.tar.gz cp -r R-package xgboost rm -rf xgboost/inst/examples/*.buffer rm -rf xgboost/inst/examples/*.model rm -rf xgboost/inst/examples/dump* rm -rf xgboost/src/*.o xgboost/src/*.so xgboost/src/*.dll + rm -rf xgboost/subtree/rabit/src/*.o rm -rf xgboost/demo/*.model xgboost/demo/*.buffer xgboost/demo/*.txt rm -rf xgboost/demo/runall.R cp -r src xgboost/src/src + cp -r subtree xgboost/src/subtree mkdir xgboost/src/wrapper cp wrapper/xgboost_wrapper.h xgboost/src/wrapper cp wrapper/xgboost_wrapper.cpp xgboost/src/wrapper diff --git a/R-package/src/Makevars b/R-package/src/Makevars index 5cea1438c..cc933f099 100644 --- a/R-package/src/Makevars +++ b/R-package/src/Makevars @@ -1,7 +1,7 @@ # package root PKGROOT=../../ # _*_ mode: Makefile; _*_ -PKG_CPPFLAGS= -DXGBOOST_CUSTOMIZE_MSG_ -DXGBOOST_CUSTOMIZE_PRNG_ -DXGBOOST_STRICT_CXX98_ -I$(PKGROOT) +PKG_CPPFLAGS= -DXGBOOST_CUSTOMIZE_MSG_ -DXGBOOST_CUSTOMIZE_PRNG_ -DXGBOOST_STRICT_CXX98_ -DRABIT_CUSTOMIZE_MSG_ -DRABIT_STRICT_CXX98_ -I$(PKGROOT) PKG_CXXFLAGS= $(SHLIB_OPENMP_CFLAGS) PKG_LIBS = $(SHLIB_OPENMP_CFLAGS) -OBJECTS= xgboost_R.o xgboost_assert.o $(PKGROOT)/wrapper/xgboost_wrapper.o $(PKGROOT)/src/io/io.o $(PKGROOT)/src/gbm/gbm.o $(PKGROOT)/src/tree/updater.o $(PKGROOT)/src/sync/sync_empty.o +OBJECTS= xgboost_R.o xgboost_assert.o $(PKGROOT)/wrapper/xgboost_wrapper.o $(PKGROOT)/src/io/io.o $(PKGROOT)/src/gbm/gbm.o $(PKGROOT)/src/tree/updater.o $(PKGROOT)/subtree/rabit/src/engine_empty.o diff --git a/R-package/src/Makevars.win b/R-package/src/Makevars.win index 5cea1438c..0ae038561 100644 --- a/R-package/src/Makevars.win +++ b/R-package/src/Makevars.win @@ -1,7 +1,7 @@ # package root PKGROOT=../../ # _*_ mode: Makefile; _*_ -PKG_CPPFLAGS= -DXGBOOST_CUSTOMIZE_MSG_ -DXGBOOST_CUSTOMIZE_PRNG_ -DXGBOOST_STRICT_CXX98_ -I$(PKGROOT) +PKG_CPPFLAGS= -DXGBOOST_CUSTOMIZE_MSG_ -DXGBOOST_CUSTOMIZE_PRNG_ -DXGBOOST_STRICT_CXX98_ -DRABIT_CUSTOMIZE_MSG_ -DRABIT_STRICT_CXX98_ -I$(PKGROOT) PKG_CXXFLAGS= $(SHLIB_OPENMP_CFLAGS) PKG_LIBS = $(SHLIB_OPENMP_CFLAGS) OBJECTS= xgboost_R.o xgboost_assert.o $(PKGROOT)/wrapper/xgboost_wrapper.o $(PKGROOT)/src/io/io.o $(PKGROOT)/src/gbm/gbm.o $(PKGROOT)/src/tree/updater.o $(PKGROOT)/src/sync/sync_empty.o diff --git a/README.md b/README.md index 6bc92ed04..6c7a538e7 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,8 @@ Features Build ===== * Run ```bash build.sh``` (you can also type make) +* If you have C++11 compiler, it is recommended to type ```make cxx11=1``` + - C++11 is not used by default * If your compiler does not come with OpenMP support, it will fire an warning telling you that the code will compile into single thread mode, and you will get single thread xgboost * You may get a error: -lgomp is not found - You can type ```make no_omp=1```, this will get you single thread xgboost diff --git a/build.sh b/build.sh index f6fbcb74b..055e75c33 100755 --- a/build.sh +++ b/build.sh @@ -5,11 +5,7 @@ # In most cases, type make will give what you want # download rabit -if [ ! -d rabit ]; then - git clone https://github.com/tqchen/rabit.git -else - cd rabit; git pull; cd .. -fi + if make; then echo "Successfully build multi-thread xgboost" else