Allow using external dmlc-core (#91)
* Set `RABIT_BUILD_DMLC=1` if use dmlc-core in rabit * remove dmlc-core
This commit is contained in:
parent
e3d51d3e62
commit
5c3b36f346
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -1,3 +0,0 @@
|
|||||||
[submodule "dmlc-core"]
|
|
||||||
path = dmlc-core
|
|
||||||
url = https://github.com/dmlc/dmlc-core
|
|
||||||
@ -48,6 +48,7 @@ addons:
|
|||||||
update: true
|
update: true
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
|
- git clone https://github.com/dmlc/dmlc-core
|
||||||
- export TRAVIS=dmlc-core/scripts/travis/
|
- export TRAVIS=dmlc-core/scripts/travis/
|
||||||
- source ${TRAVIS}/travis_setup_env.sh
|
- source ${TRAVIS}/travis_setup_env.sh
|
||||||
- ${TRAVIS}/travis_osx_install.sh
|
- ${TRAVIS}/travis_osx_install.sh
|
||||||
|
|||||||
@ -4,6 +4,7 @@ project(rabit VERSION 0.2.0)
|
|||||||
|
|
||||||
option(RABIT_BUILD_TESTS "Build rabit tests" OFF)
|
option(RABIT_BUILD_TESTS "Build rabit tests" OFF)
|
||||||
option(RABIT_BUILD_MPI "Build MPI" OFF)
|
option(RABIT_BUILD_MPI "Build MPI" OFF)
|
||||||
|
option(RABIT_BUILD_DMLC "Include DMLC_CORE in build" ON)
|
||||||
|
|
||||||
add_library(rabit src/allreduce_base.cc src/allreduce_robust.cc src/engine.cc src/c_api.cc)
|
add_library(rabit src/allreduce_base.cc src/allreduce_robust.cc src/engine.cc src/c_api.cc)
|
||||||
add_library(rabit_base src/allreduce_base.cc src/engine_base.cc src/c_api.cc)
|
add_library(rabit_base src/allreduce_base.cc src/engine_base.cc src/c_api.cc)
|
||||||
@ -26,13 +27,23 @@ if(RABIT_BUILD_TESTS)
|
|||||||
list(APPEND rabit_libs rabit_mock) # add to list to apply build settings, then remove
|
list(APPEND rabit_libs rabit_mock) # add to list to apply build settings, then remove
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
foreach(lib ${rabit_libs})
|
if(RABIT_BUILD_DMLC)
|
||||||
#include "./internal/utils.h"
|
foreach(lib ${rabit_libs})
|
||||||
target_include_directories(${lib} PUBLIC
|
#include "./internal/utils.h"
|
||||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
|
target_include_directories(${lib} PUBLIC
|
||||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/dmlc-core/include>"
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
|
||||||
)
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/dmlc-core/include>"
|
||||||
endforeach()
|
)
|
||||||
|
endforeach()
|
||||||
|
else()
|
||||||
|
foreach(lib ${rabit_libs})
|
||||||
|
#include "./internal/utils.h"
|
||||||
|
target_include_directories(${lib} PUBLIC
|
||||||
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
|
||||||
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/../dmlc_core/include>"
|
||||||
|
)
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
|
||||||
if(RABIT_BUILD_TESTS)
|
if(RABIT_BUILD_TESTS)
|
||||||
list(REMOVE_ITEM rabit_libs "rabit_mock") # remove here to avoid installing it
|
list(REMOVE_ITEM rabit_libs "rabit_mock") # remove here to avoid installing it
|
||||||
|
|||||||
9
Makefile
9
Makefile
@ -1,5 +1,13 @@
|
|||||||
OS := $(shell uname)
|
OS := $(shell uname)
|
||||||
|
|
||||||
|
RABIT_BUILD_DMLC = 0
|
||||||
|
|
||||||
|
ifeq ($(RABIT_BUILD_DMLC),1)
|
||||||
|
DMLC=dmlc-core
|
||||||
|
else
|
||||||
|
DMLC=../dmlc-core
|
||||||
|
endif
|
||||||
|
|
||||||
export WARNFLAGS= -Wall -Wextra -Wno-unused-parameter -Wno-unknown-pragmas -std=c++11
|
export WARNFLAGS= -Wall -Wextra -Wno-unused-parameter -Wno-unknown-pragmas -std=c++11
|
||||||
export CFLAGS = -O3 $(WARNFLAGS) -I $(DMLC)/include -I include/
|
export CFLAGS = -O3 $(WARNFLAGS) -I $(DMLC)/include -I include/
|
||||||
export LDFLAGS =-Llib
|
export LDFLAGS =-Llib
|
||||||
@ -74,7 +82,6 @@ ALIB= lib/librabit.a lib/librabit_empty.a lib/librabit_mock.a lib/librabit_base.
|
|||||||
MPISLIB= lib/librabit_mpi.so
|
MPISLIB= lib/librabit_mpi.so
|
||||||
MPIALIB= lib/librabit_mpi.a
|
MPIALIB= lib/librabit_mpi.a
|
||||||
HEADERS=src/*.h include/rabit/*.h include/rabit/internal/*.h
|
HEADERS=src/*.h include/rabit/*.h include/rabit/internal/*.h
|
||||||
DMLC=dmlc-core
|
|
||||||
|
|
||||||
.PHONY: clean all install mpi python lint doc doxygen
|
.PHONY: clean all install mpi python lint doc doxygen
|
||||||
|
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
Subproject commit 13d5acb8ba7e79550bbf2f730f1a3944ff0fa68b
|
|
||||||
@ -9,7 +9,10 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "./internal/utils.h"
|
#include "./internal/utils.h"
|
||||||
|
|
||||||
|
#ifndef DMLC_IO_H_
|
||||||
#include "../../dmlc-core/include/dmlc/io.h"
|
#include "../../dmlc-core/include/dmlc/io.h"
|
||||||
|
#endif // DMLC_IO_H_
|
||||||
|
|
||||||
namespace rabit {
|
namespace rabit {
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# main script of travis
|
# main script of travis
|
||||||
if [ ${TASK} == "lint" ]; then
|
if [ ${TASK} == "lint" ]; then
|
||||||
make lint || exit -1
|
make lint RABIT_BUILD_DMLC=1 || exit -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${TASK} == "doc" ]; then
|
if [ ${TASK} == "doc" ]; then
|
||||||
@ -11,24 +11,24 @@ if [ ${TASK} == "doc" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${TASK} == "build" ]; then
|
if [ ${TASK} == "build" ]; then
|
||||||
make all || exit -1
|
make all RABIT_BUILD_DMLC=1 || exit -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${TASK} == "mpi-build" ]; then
|
if [ ${TASK} == "mpi-build" ]; then
|
||||||
./scripts/mpi_build.sh
|
./scripts/mpi_build.sh
|
||||||
cd test
|
cd test
|
||||||
make mpi && make speed_test.mpi || exit -1
|
make mpi RABIT_BUILD_DMLC=1 && make speed_test.mpi RABIT_BUILD_DMLC=1 || exit -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${TASK} == "test" ]; then
|
if [ ${TASK} == "test" ]; then
|
||||||
cd test
|
cd test
|
||||||
make all || exit -1
|
make all RABIT_BUILD_DMLC=1 || exit -1
|
||||||
../scripts/travis_runtest.sh || exit -1
|
../scripts/travis_runtest.sh || exit -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${TASK} == "cmake-build" ]; then
|
if [ ${TASK} == "cmake-build" ]; then
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake ..
|
cmake .. -DRABIT_BUILD_DMLC=ON
|
||||||
make all || exit -1
|
make all || exit -1
|
||||||
fi
|
fi
|
||||||
@ -287,7 +287,7 @@ class TCPSocket : public Socket{
|
|||||||
struct linger sl;
|
struct linger sl;
|
||||||
sl.l_onoff = 1; /* non-zero value enables linger option in kernel */
|
sl.l_onoff = 1; /* non-zero value enables linger option in kernel */
|
||||||
sl.l_linger = timeout; /* timeout interval in seconds */
|
sl.l_linger = timeout; /* timeout interval in seconds */
|
||||||
if (setsockopt(sockfd, SOL_SOCKET, SO_LINGER, &sl, sizeof(sl)) == -1) {
|
if (setsockopt(sockfd, SOL_SOCKET, SO_LINGER, reinterpret_cast<char*>(&sl), sizeof(sl)) == -1) {
|
||||||
Socket::Error("SO_LINGER");
|
Socket::Error("SO_LINGER");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user