Something went wrong on our end
-
Martin Beseda authored
ENH: Added -fPIC option to the linux_gcc_build_x64_debug.sh, so the Boost libraries will be always compiled as a position independent code, even if they're static. It makes possible to link them to the shared library lib4neuro.
Martin Beseda authoredENH: Added -fPIC option to the linux_gcc_build_x64_debug.sh, so the Boost libraries will be always compiled as a position independent code, even if they're static. It makes possible to link them to the shared library lib4neuro.
linux_gcc_build_x64_debug.sh 3.29 KiB
#!/bin/sh
clear
# Should we rebuild BOOST? (yes/no)
REBUILD_BOOST=yes
# Should we build the examples? (yes/no)
BUILD_EXAMPLES=yes
# Should we build the unit-tests? (yes/no)
BUILD_TESTS=yes
# Should we build the lib4neuro library? (yes)
BUILD_LIB=yes
# How should the external dependencies be linked? (shared/static)
DEPENDENCIES_LINK_TYPE=static
# C++ compiler
CXX_COMPILER="g++"
C_COMPILER="gcc"
#**********************DO NOT CHANGE BEYOND THIS LINE****************************************
RED='\033[0;31m'
CYAN='\033[0;36m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
WHITE='\033[1;37m'
NC='\033[0m' # No Color
echo "Building the '${CYAN}lib4neuro${NC}' project for ${WHITE}Debug${NC}"
BUILD_SOMETHING=no
BUILD_SOMETHING_LIB=no
if [ $BUILD_LIB = "yes" ]
then
echo "${CYAN}lib4neuro${NC} build type: ${WHITE}Debug${NC}"
echo "${CYAN}lib4neuro${NC} build architecture: ${WHITE}x64${NC}"
echo "${CYAN}lib4neuro${NC} will be built in '${YELLOW}build/lib/${NC}'"
BUILD_SOMETHING=yes
BUILD_SOMETHING_LIB=yes
fi
if [ $BUILD_TESTS = "yes" ]
then
echo "${CYAN}lib4neuro${NC} unit tests will be built in '${YELLOW}build/unit-tests${NC}'"
BUILD_SOMETHING=yes
BUILD_SOMETHING_LIB=yes
fi
if [ $BUILD_EXAMPLES = "yes" ]
then
echo "${CYAN}lib4neuro${NC} examples will be built in '${YELLOW}build/examples${NC}'"
BUILD_SOMETHING=yes
BUILD_SOMETHING_LIB=yes
fi
if [ $REBUILD_BOOST = "yes" ]
then
echo "The required '${CYAN}BOOST${NC}' library will be recompiled in the directory '${YELLOW}external_dependencies/boost${NC}'"
BUILD_SOMETHING=yes
BUILD_SOMETHING_LIB=yes
fi
# Boost rebuild
if [ $REBUILD_BOOST = "yes" ]
then
clear
echo "Rebuilding '${CYAN}BOOST${NC}' for ${WHITE}Debug${NC}"
cd ../..
rm -r external_dependencies/boost/stage
rm -r external_dependencies/boost/bin.v2
cd external_dependencies/boost
./b2 cxxflags=-fPIC --layout=system variant=debug link=${DEPENDENCIES_LINK_TYPE} address-model=64 --with-system --with-serialization --with-random
# ./b2 --layout=system variant=debug link=shared address-model=64 --with-system --with-serialization --with-random
cd ../../build_scripts/linux
fi
if [ $BUILD_SOMETHING_LIB = "yes" ]
then
if [ $BUILD_LIB = "yes" ]
then
./linux_clean_lib.sh
fi
if [ $BUILD_EXAMPLES = "yes" ]
then
./linux_clean_examples.sh
fi
if [ $BUILD_TESTS = "yes" ]
then
./linux_clean_tests.sh
fi
clear
echo "Building the '${CYAN}lib4neuro${NC}' project for ${WHITE}Debug${NC} (preparing makefiles)"
cd ../..
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=${CXX_COMPILER} -DCMAKE_C_COMPILER=${C_COMPILER} -DBOOST_ROOT=${BOOST_ROOT} -DBOOST_LIBRARYDIR=${BOOST_LIBRARYDIR} -DBOOST_INCLUDEDIR=${BOOST_INCLUDEDIR} -DBUILD_TESTS=${BUILD_TESTS} -DBUILD_EXAMPLES=${BUILD_EXAMPLES} -DBUILD_LIB=${BUILD_LIB} -DLIB4NEURO_DIR=${PWD}/build/lib -DDEPENDENCIES_LINK_TYPE=${DEPENDENCIES_LINK_TYPE} .
echo "Building the '${CYAN}lib4neuro${NC}' project for ${WHITE}Debug${NC} (building)"
( cmake --build . --config Debug -- -j${N_CORES} 2> build.log ) && ( echo "${GREEN}Build complete${NC}." ) || ( echo "${RED}Build finished with errors${NC}!"; exit 1; )
cd build_scripts/linux
./linux_clean_garbage.sh
fi