Added Jenkins CI configs for some build machines
authorkhizmax <libcds.dev@gmail.com>
Sun, 26 Feb 2017 12:58:16 +0000 (15:58 +0300)
committerkhizmax <libcds.dev@gmail.com>
Sun, 26 Feb 2017 12:58:16 +0000 (15:58 +0300)
build/CI/VASEx-CI-2/cds-libs [new file with mode: 0644]
build/CI/VASEx-CI-2/ci-build [new file with mode: 0644]
build/CI/VASEx-CI-2/ci-env [new file with mode: 0644]
build/CI/VASEx-CI/cds-libs [new file with mode: 0644]
build/CI/VASEx-CI/ci-build [new file with mode: 0644]
build/CI/VASEx-CI/ci-env [new file with mode: 0644]
build/CI/cmake-gen [new file with mode: 0644]
build/CI/gen-all [new file with mode: 0644]

diff --git a/build/CI/VASEx-CI-2/cds-libs b/build/CI/VASEx-CI-2/cds-libs
new file mode 100644 (file)
index 0000000..cd4832f
--- /dev/null
@@ -0,0 +1,129 @@
+#########################################
+# Generic parameters
+
+workspace:              $WORKSPACE
+libcds-source:          source
+make-job:               10
+gtest-include:          $GTEST_ROOT/googletest/include
+
+#########################################
+#GCC-4.8
+gcc-4.8-root:           $GCC48_ROOT/bin
+gcc-4.8-cxx:            g++-4.8
+gcc-4.8-cc:             gcc-4.8
+gcc-4.8-ldflags:        -L$GCC48_ROOT/lib -Wl,-rpath=$GCC48_ROOT/lib
+gcc-4.8-extlib:         rt
+gcc-4.8-boost:          $BOOST_ROOT
+gcc-4.8-64-boost-lib:   stage64-gcc4.8/lib
+gcc-4.8-gtest:          $GTEST_ROOT
+gcc-4.8-64-gtest-lib:   $GTEST_ROOT/lib-gcc4.8/libgtest.a
+
+
+########################################
+#GCC-4.9
+gcc-4.9-root:           $GCC49_ROOT/bin
+gcc-4.9-cxx:            g++-4.9
+gcc-4.9-cc:             gcc-4.9
+gcc-4.9-ldflags:        -Wl,-rpath=$GCC49_ROOT/lib64
+gcc-4.9-extlib:         rt
+gcc-4.9-boost:          $BOOST_ROOT
+gcc-4.9-64-boost-lib:   stage64-gcc4.9/lib
+gcc-4.9-gtest:          $GTEST_ROOT
+gcc-4.9-64-gtest-lib:   $GTEST_ROOT/lib-gcc4.9/libgtest.a
+
+########################################
+#GCC-5
+gcc-5-root:           $GCC5_ROOT/bin
+gcc-5-cxx:            g++-5
+gcc-5-cc:             gcc-5
+gcc-5-boost:          $BOOST_ROOT
+gcc-5-ldflags:        -Wl,-rpath=$GCC5_ROOT/lib64
+gcc-5-extlib:         rt
+gcc-5-64-boost-lib:   stage64-gcc5/lib
+gcc-5-64-asan-boost-lib:   stage64-gcc5-asan
+gcc-5-64-tsan-boost-lib:   stage64-gcc5-tsan
+gcc-5-gtest:          $GTEST_ROOT
+gcc-5-64-gtest-lib:   $GTEST_ROOT/lib-gcc5/libgtest.a
+
+########################################
+#GCC-6
+gcc-6-root:           $GCC6_ROOT/bin
+gcc-6-cxx:            g++-6
+gcc-6-cc:             gcc-6
+gcc-6-boost:          $BOOST_ROOT
+gcc-6-ldflags:        -Wl,-rpath=$GCC6_ROOT/lib64
+gcc-6-extlib:         rt
+gcc-6-64-boost-lib:   stage64-gcc6/lib
+gcc-6-64-asan-boost-lib:   stage64-gcc6-asan
+gcc-6-64-tsan-boost-lib:   stage64-gcc6-tsan
+gcc-6-gtest:          $GTEST_ROOT
+gcc-6-64-gtest-lib:   $GTEST_ROOT/lib-gcc6/libgtest.a
+
+########################################
+# clang-3.6
+clang-3.6-root:           $CLANG36_ROOT/bin
+clang-3.6-ld-lib-path:    $GCC5_ROOT/lib64
+clang-3.6-cxx:            clang++
+clang-3.6-cc:             clang
+clang-3.6-cxxflags:       -Wdocumentation
+clang-3.6-ldflags:        -Wl,-rpath=$GCC5_ROOT/lib64
+clang-3.6-extlib:         rt atomic
+clang-3.6-boost:          $BOOST_ROOT
+clang-3.6-64-boost-lib:   stage64-clang3.6/lib
+clang-3.6-gtest:          $GTEST_ROOT
+clang-3.6-64-gtest-lib:   $GTEST_ROOT/lib-clang3.6/libgtest.a
+
+########################################
+# clang-3.7
+clang-3.7-root:           $CLANG37_ROOT/bin
+clang-3.7-ld-lib-path:    $GCC6_ROOT/lib64
+clang-3.7-cxx:            clang++
+clang-3.7-cc:             clang
+clang-3.7-cxxflags:       -stdlib=libc++ -Wdocumentation
+clang-3.7-ldflags:        -L$CLANG37_ROOT/lib -Wl,-rpath=$CLANG37_ROOT/lib
+clang-3.7-extlib:         rt c++abi
+clang-3.7-boost:          $BOOST_ROOT
+clang-3.7-64-boost-lib:   stage64-clang3.7/lib
+clang-3.7-gtest:          $GTEST_ROOT
+clang-3.7-64-gtest-lib:   $GTEST_ROOT/lib-clang3.7/libgtest.a
+
+
+########################################
+# clang-3.8
+clang-3.8-root:           $CLANG38_ROOT/bin
+clang-3.8-ld-lib-path:    $GCC6_ROOT/lib64
+clang-3.8-cxx:            clang++
+clang-3.8-cc:             clang
+clang-3.8-cxxflags:       -stdlib=libc++ -Wdocumentation
+clang-3.8-ldflags:        -L$CLANG38_ROOT/lib -Wl,-rpath=$CLANG38_ROOT/lib
+clang-3.8-extlib:         rt
+clang-3.8-boost:          $BOOST_ROOT
+clang-3.8-64-boost-lib:   stage64-clang3.8/lib
+clang-3.8-gtest:          $GTEST_ROOT
+clang-3.8-64-gtest-lib:   $GTEST_ROOT/lib-clang3.8/libgtest.a
+
+
+########################################
+# clang-3.9
+clang-3.9-root:           $CLANG39_ROOT/bin
+clang-3.9-ld-lib-path:    $GCC6_ROOT/lib64
+clang-3.9-cxx:            clang++
+clang-3.9-cc:             clang
+clang-3.9-cxxflags:       -stdlib=libc++ -Wdocumentation
+clang-3.9-ldflags:        -L$CLANG39_ROOT/lib -Wl,-rpath=$CLANG39_ROOT/lib
+clang-3.9-extlib:         rt
+clang-3.9-boost:          $BOOST_ROOT
+clang-3.9-64-boost-lib:   stage64-clang3.9/lib
+clang-3.9-64-asan-boost-lib:   stage64-clang3.9-asan
+clang-3.9-64-tsan-boost-lib:   stage64-clang3.9-tsan
+clang-3.9-gtest:          $GTEST_ROOT
+clang-3.9-64-gtest-lib:   $GTEST_ROOT/lib-clang3.9/libgtest.a
+
+
+
+
+
+
+
+
+
diff --git a/build/CI/VASEx-CI-2/ci-build b/build/CI/VASEx-CI-2/ci-build
new file mode 100644 (file)
index 0000000..2dddd2d
--- /dev/null
@@ -0,0 +1,58 @@
+#! /bin/bash
+
+# Useful envvars:
+# CI_SCRIPT_PATH - path where to find scripts
+# TOOLSET - toolset: x64-gcc-5, x64-clang-3.9 and so on
+# BUILD_TYPE - build type: 'dbg', 'rel', 'asan', 'tsan'
+# WORKSPACE - path where to build
+
+env|sort
+
+case "$TOOLSET" in
+    "x64-gcc-4.8")
+       echo "GCC-4.8 '$BUILD_TYPE', toolset root: $GCC48_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-gcc-4.8-64
+       EXIT_CODE=$?
+       ;;
+    "x64-gcc-4.9")
+       echo "GCC-4.9 '$BUILD_TYPE', toolset root: $GCC49_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-gcc-4.9-64
+       EXIT_CODE=$?
+       ;;
+    "x64-gcc-5")
+       echo "GCC-5 '$BUILD_TYPE', toolset root: $GCC5_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-gcc-5-64
+       EXIT_CODE=$?
+       ;;
+    "x64-gcc-6")
+       echo "GCC-6 '$BUILD_TYPE', toolset root: $GCC6_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-gcc-6-64
+       EXIT_CODE=$?
+       ;;
+    "x64-clang-3.6")
+       echo "clang-3.6 '$BUILD_TYPE', toolset root: $CLANG36_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-clang-3.6-64
+       EXIT_CODE=$?
+       ;;
+    "x64-clang-3.7")
+       echo "clang-3.7 '$BUILD_TYPE', toolset root: $CLANG37_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-clang-3.7-64
+       EXIT_CODE=$?
+       ;;
+    "x64-clang-3.8")
+       echo "clang-3.8 '$BUILD_TYPE', toolset root: $CLANG38_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-clang-3.8-64
+       EXIT_CODE=$?
+       ;;
+    "x64-clang-3.9")
+       echo "clang-3.9 '$BUILD_TYPE', toolset root: $CLANG39_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-clang-3.9-64
+       EXIT_CODE=$?
+       ;;
+    * )
+       echo "Undefined toolset '$TOOLSET'"
+       exit 1
+       ;;
+esac
+
+exit $EXIT_CODE
diff --git a/build/CI/VASEx-CI-2/ci-env b/build/CI/VASEx-CI-2/ci-env
new file mode 100644 (file)
index 0000000..189c56c
--- /dev/null
@@ -0,0 +1,26 @@
+#CMAKE_2_8_12=/home/libcds-ci/bin/cmake/cmake-2.8.12/bin
+#CMAKE_3_6_2=/home/libcds-ci/bin/cmake/cmake-3.6.2/bin
+#CMAKE3=$CMAKE_3_6_2
+
+#PATH=$CMAKE_2_8_12:$PATH:$HOME/.local/bin:$HOME/bin
+
+TOOLSET_ROOT=$HOME/bin
+
+GCC48_ROOT=$TOOLSET_ROOT/gcc-4.8
+GCC49_ROOT=$TOOLSET_ROOT/gcc-4.9
+GCC5_ROOT=$TOOLSET_ROOT/gcc-5
+GCC6_ROOT=$TOOLSET_ROOT/gcc-6
+
+CLANG36_ROOT=$TOOLSET_ROOT/clang-3.6
+CLANG37_ROOT=$TOOLSET_ROOT/clang-3.7
+CLANG38_ROOT=$TOOLSET_ROOT/clang-3.8
+CLANG39_ROOT=$TOOLSET_ROOT/clang-3.9
+
+CLANG_STDLIB="-stdlib=libc++"
+CLANG37_CXXFLAGS=$CLANG_STDLIB
+CLANG38_CXXFLAGS=$CLANG_STDLIB
+CLANG39_CXXFLAGS=$CLANG_STDLIB
+
+LIB_ROOT=$HOME/lib
+BOOST_ROOT=$LIB_ROOT/boost
+GTEST_ROOT=$LIB_ROOT/gtest
diff --git a/build/CI/VASEx-CI/cds-libs b/build/CI/VASEx-CI/cds-libs
new file mode 100644 (file)
index 0000000..e65c326
--- /dev/null
@@ -0,0 +1,117 @@
+#########################################
+# Generic parameters
+
+workspace:              $WORKSPACE
+libcds-source:          source
+make-job:               10
+gtest-include:          $GTEST_ROOT/googletest/include
+
+#########################################
+#GCC-4.8
+gcc-4.8-root:           $GCC48_ROOT/bin
+gcc-4.8-cxx:            g++-4.8
+gcc-4.8-cc:             gcc-4.8
+gcc-4.8-ldflags:        -L$GCC48_ROOT/lib -Wl,-rpath=$GCC48_ROOT/lib
+gcc-4.8-boost:          $BOOST_ROOT
+gcc-4.8-64-boost-lib:   stage64-gcc4.8/lib
+gcc-4.8-gtest:          $GTEST_ROOT
+gcc-4.8-64-gtest-lib:   $GTEST_ROOT/lib-gcc4.8/libgtest.a
+
+
+########################################
+#GCC-4.9
+gcc-4.9-root:           $GCC49_ROOT/bin
+gcc-4.9-cxx:            g++-4.9
+gcc-4.9-cc:             gcc-4.9
+gcc-4.9-ldflags:        -Wl,-rpath=$GCC49_ROOT/lib64
+gcc-4.9-boost:          $BOOST_ROOT
+gcc-4.9-64-boost-lib:   stage64-gcc4.9/lib
+gcc-4.9-gtest:          $GTEST_ROOT
+gcc-4.9-64-gtest-lib:   $GTEST_ROOT/lib-gcc4.9/libgtest.a
+
+########################################
+#GCC-5
+gcc-5-root:           $GCC5_ROOT/bin
+gcc-5-cxx:            g++-5
+gcc-5-cc:             gcc-5
+gcc-5-boost:          $BOOST_ROOT
+gcc-5-ldflags:        -Wl,-rpath=$GCC5_ROOT/lib64
+gcc-5-64-boost-lib:   stage64-gcc5/lib
+gcc-5-64-asan-boost-lib:   stage64-gcc5-asan
+gcc-5-64-tsan-boost-lib:   stage64-gcc5-tsan
+gcc-5-gtest:          $GTEST_ROOT
+gcc-5-64-gtest-lib:   $GTEST_ROOT/lib-gcc5/libgtest.a
+
+########################################
+#GCC-6
+gcc-6-root:           $GCC6_ROOT/bin
+gcc-6-cxx:            g++-6
+gcc-6-cc:             gcc-6
+gcc-6-boost:          $BOOST_ROOT
+gcc-6-ldflags:        -Wl,-rpath=$GCC6_ROOT/lib64
+gcc-6-64-boost-lib:   stage64-gcc6/lib
+gcc-6-64-asan-boost-lib:   stage64-gcc6-asan
+gcc-6-64-tsan-boost-lib:   stage64-gcc6-tsan
+gcc-6-gtest:          $GTEST_ROOT
+gcc-6-64-gtest-lib:   $GTEST_ROOT/lib-gcc6/libgtest.a
+
+########################################
+# clang-3.6
+clang-3.6-root:           $CLANG36_ROOT/bin
+clang-3.6-ld-lib-path:    $GCC5_ROOT/lib64
+clang-3.6-cxx:            clang++
+clang-3.6-cc:             clang
+clang-3.6-cxxflags:       -Wdocumentation
+clang-3.6-boost:          $BOOST_ROOT
+clang-3.6-64-boost-lib:   stage64-clang3.6/lib
+clang-3.6-gtest:          $GTEST_ROOT
+clang-3.6-64-gtest-lib:   $GTEST_ROOT/lib-clang3.6/libgtest.a
+
+########################################
+# clang-3.7
+clang-3.7-root:           $CLANG37_ROOT/bin
+clang-3.7-cxx:            clang++
+clang-3.7-cc:             clang
+clang-3.7-cxxflags:       -stdlib=libc++ -Wdocumentation
+clang-3.7-ldflags:        -L$CLANG37_ROOT/lib -Wl,-rpath=$CLANG37_ROOT/lib -lc++abi
+clang-3.7-boost:          $BOOST_ROOT
+clang-3.7-64-boost-lib:   stage64-clang3.7/lib
+clang-3.7-gtest:          $GTEST_ROOT
+clang-3.7-64-gtest-lib:   $GTEST_ROOT/lib-clang3.7/libgtest.a
+
+
+########################################
+# clang-3.8
+clang-3.8-root:           $CLANG38_ROOT/bin
+clang-3.8-cxx:            clang++
+clang-3.8-cc:             clang
+clang-3.8-cxxflags:       -stdlib=libc++ -Wdocumentation
+clang-3.8-ldflags:        -L$CLANG38_ROOT/lib -Wl,-rpath=$CLANG38_ROOT/lib
+clang-3.8-boost:          $BOOST_ROOT
+clang-3.8-64-boost-lib:   stage64-clang3.8/lib
+clang-3.8-gtest:          $GTEST_ROOT
+clang-3.8-64-gtest-lib:   $GTEST_ROOT/lib-clang3.8/libgtest.a
+
+
+########################################
+# clang-3.9
+clang-3.9-root:           $CLANG39_ROOT/bin
+clang-3.9-cxx:            clang++
+clang-3.9-cc:             clang
+clang-3.9-cxxflags:       -stdlib=libc++ -Wdocumentation
+clang-3.9-ldflags:        -L$CLANG39_ROOT/lib -Wl,-rpath=$CLANG39_ROOT/lib
+clang-3.9-boost:          $BOOST_ROOT
+clang-3.9-64-boost-lib:   stage64-clang3.9/lib
+clang-3.9-64-asan-boost-lib:   stage64-clang3.9-asan
+clang-3.9-64-tsan-boost-lib:   stage64-clang3.9-tsan
+clang-3.9-gtest:          $GTEST_ROOT
+clang-3.9-64-gtest-lib:   $GTEST_ROOT/lib-clang3.9/libgtest.a
+
+
+
+
+
+
+
+
+
diff --git a/build/CI/VASEx-CI/ci-build b/build/CI/VASEx-CI/ci-build
new file mode 100644 (file)
index 0000000..9923a19
--- /dev/null
@@ -0,0 +1,56 @@
+#! /bin/bash
+
+# Useful envvars:
+# CI_SCRIPT_PATH - path where to find scripts
+# TOOLSET - toolset: x64-gcc-5, x64-clang-3.9 and so on
+# BUILD_TYPE - build type: 'dbg', 'rel', 'asan', 'tsan'
+# WORKSPACE - path where to build
+
+env|sort
+
+case "$TOOLSET" in
+    "x64-gcc-4.8")
+       echo "GCC-4.8 '$BUILD_TYPE', toolset root: $GCC48_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-gcc-4.8-64
+       exit $?
+       ;;
+    "x64-gcc-4.9")
+       echo "GCC-4.9 '$BUILD_TYPE', toolset root: $GCC49_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-gcc-4.9-64
+       exit $?
+       ;;
+    "x64-gcc-5")
+       echo "GCC-5 '$BUILD_TYPE', toolset root: $GCC5_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-gcc-5-64
+       exit $?
+       ;;
+    "x64-gcc-6")
+       echo "GCC-6 '$BUILD_TYPE', toolset root: $GCC6_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-gcc-6-64
+       exit $?
+       ;;
+    "x64-clang-3.6")
+       echo "clang-3.6 '$BUILD_TYPE', toolset root: $CLANG36_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-clang-3.6-64
+       exit $?
+       ;;
+    "x64-clang-3.7")
+       echo "clang-3.7 '$BUILD_TYPE', toolset root: $CLANG37_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-clang-3.7-64
+       exit $?
+       ;;
+    "x64-clang-3.8")
+       echo "clang-3.8 '$BUILD_TYPE', toolset root: $CLANG38_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-clang-3.8-64
+       exit $?
+       ;;
+    "x64-clang-3.9")
+       echo "clang-3.9 '$BUILD_TYPE', toolset root: $CLANG39_ROOT"
+       $CI_SCRIPT_PATH/ci-script/cds-$BUILD_TYPE-clang-3.9-64
+       exit $?
+       ;;
+    * )
+       echo "Undefined toolset '$TOOLSET'"
+       exit 1
+       ;;
+esac
diff --git a/build/CI/VASEx-CI/ci-env b/build/CI/VASEx-CI/ci-env
new file mode 100644 (file)
index 0000000..f79eabb
--- /dev/null
@@ -0,0 +1,27 @@
+CMAKE_2_8_12=/home/libcds-ci/bin/cmake/cmake-2.8.12/bin
+CMAKE_3_6_2=/home/libcds-ci/bin/cmake/cmake-3.6.2/bin
+CMAKE3=$CMAKE_3_6_2
+
+PATH=$CMAKE_2_8_12:$PATH:$HOME/.local/bin:$HOME/bin
+
+TOOLSET_ROOT=$HOME/bin
+
+GCC48_ROOT=$TOOLSET_ROOT/gcc-4.8
+GCC49_ROOT=$TOOLSET_ROOT/gcc-4.9
+GCC5_ROOT=$TOOLSET_ROOT/gcc-5
+GCC6_ROOT=$TOOLSET_ROOT/gcc-6
+
+CLANG35_ROOT=$TOOLSET_ROOT/clang-3.5
+CLANG36_ROOT=$TOOLSET_ROOT/clang-3.6
+CLANG37_ROOT=$TOOLSET_ROOT/clang-3.7
+CLANG38_ROOT=$TOOLSET_ROOT/clang-3.8
+CLANG39_ROOT=$TOOLSET_ROOT/clang-3.9
+
+CLANG_STDLIB="-stdlib=libc++"
+CLANG37_CXXFLAGS=$CLANG_STDLIB
+CLANG38_CXXFLAGS=$CLANG_STDLIB
+CLANG39_CXXFLAGS=$CLANG_STDLIB
+
+LIB_ROOT=$HOME/lib
+BOOST_ROOT=$LIB_ROOT/boost
+GTEST_ROOT=$LIB_ROOT/gtest
diff --git a/build/CI/cmake-gen b/build/CI/cmake-gen
new file mode 100644 (file)
index 0000000..2151ba3
--- /dev/null
@@ -0,0 +1,115 @@
+#! /usr/bin/perl
+
+my $compiler=shift;
+my $bitness =shift;
+my $build   =shift;
+$build="rel" unless $build;
+
+my $cmake_build="RELEASE";
+$cmake_build="DEBUG" if $build eq 'dbg';
+
+my $cds_libs="cds-libs";
+
+# get generic props
+my $workspace=get_gen_prop("workspace") || "$HOME";
+my $cds_source=get_gen_prop("libcds-source") || "../libcds";
+my $make_jobs=get_gen_prop("make-job") || 2;
+
+# get compiler-specific props
+my $comp_root=get_prop("root");
+my $boost=get_prop( "boost" );
+my $boost_libs=get_prop( "boost-lib" );
+my $gtest=get_prop("gtest");
+my $gtest_lib=get_prop( "gtest-lib");
+my $gtest_inc=get_prop("gtest-include") || get_gen_prop("gtest-include");
+my $cxx=get_prop("cxx") or $compiler;
+my $cc=get_prop("cc") or $compiler;
+my $cxxflags=get_prop("cxxflags");
+my $ldflags=get_prop("ldflags");
+my $ext_lib=get_prop("extlib");
+my $ld_lib_path=get_prop("ld-lib-path");
+
+
+my $filename="cds-$build-$compiler-$bitness";
+open( my $out, ">", $filename )  or die "Cannot open cds-$build-$compiler-$bitness";
+
+print $out "#! /bin/sh\n\n";
+#print $out "PATH=$comp_root:\$PATH\n" if $comp_root;
+#print $out "BOOST_ROOT=$boost\n";
+print $out "root=$workspace\n";
+print $out "CDS_SOURCE=\$root/$cds_source\n";
+print $out "OBJ_ROOT=\$root/obj\n";
+print $out "BIN_ROOT=\$root/bin\n";
+print $out "GTEST_ROOT=$gtest\n" if $gtest;
+print $out "\n";
+print $out "rm -fr \$OBJ_ROOT\n";
+print $out "rm -fr \$BIN_ROOT\n";
+print $out "mkdir -p \$OBJ_ROOT\n";
+print $out "#cp -f run-ctest-rel \$OBJ_ROOT/run-ctest\n" if $build eq 'rel';
+print $out "#cp -f run-ctest-dbg \$OBJ_ROOT/run-ctest\n" unless $build eq 'rel';
+print $out "cd \$OBJ_ROOT\n";
+print $out "\n";
+#print $out "PATH=$comp_root:\$PATH \\\n" if $comp_root;
+print $out "LD_LIBRARY_PATH=$ld_lib_path:\$LD_LIBRARY_PATH \\\n" if $ld_lib_path;
+#print $out "CXX=$cxx \\\n";
+#print $out "CC=$cc \\\n";
+#print $out "CXXFLAGS=\"$cxxflags\" \\\n" if $cxxflags;
+print $out "LDFLAGS=\"$ldflags\" \\\n" if $ldflags;
+#print $out "GTEST_ROOT=\$GTEST_ROOT/$gtest_libs \\\n";
+print $out "cmake -G \"Unix Makefiles\" \\\n";
+print $out " -DCMAKE_BUILD_TYPE=$cmake_build \\\n";
+print $out " -DCMAKE_C_COMPILER=$comp_root/$cc \\\n";
+print $out " -DCMAKE_CXX_COMPILER=$comp_root/$cxx \\\n";
+print $out " -DCMAKE_CXX_FLAGS=\"$cxxflags\" \\\n" if $cxxflags;
+print $out " -DCDS_BIN_DIR=\$BIN_ROOT \\\n";
+print $out " -DWITH_TESTS=ON \\\n";
+print $out " -DWITH_ASAN=ON \\\n" if $build eq 'asan';
+print $out " -DWITH_TSAN=ON \\\n" if $build eq 'tsan';
+print $out " -DBOOSTROOT=$boost \\\n";
+print $out " -DBOOST_LIBRARYDIR=\$BOOST_ROOT/$boost_libs \\\n" if $boost_libs;
+print $out " -DGTEST_INCLUDE_DIRS=$gtest_inc \\\n" if $gtest_inc;
+print $out " -DGTEST_LIBRARY=$gtest_lib \\\n" if $gtest_lib;
+print $out " -DEXTERNAL_SYSTEM_LIBS=\"$ext_lib\" \\\n" if $ext_lib;
+print $out " \$CDS_SOURCE && \\\n";
+print $out "make -j $make_jobs \$* \n";
+
+close $out;
+chmod 0755, $filename;
+
+sub get_prop($@)
+{
+   my $what=shift;
+   my $key="$compiler-$bitness-$build-$what:";
+
+   my $grep = `grep -P $key $cds_libs`;
+   if ( $grep ) {
+      my @ret = $grep =~ /^$key\s+(\S.*\S*)\s+/;
+      return $ret[0] if @ret;
+   }
+
+   $key = "$compiler-$bitness-$what:";
+   my $grep = `grep -P $key $cds_libs`;
+   if ( $grep ) {
+      my @ret = $grep =~ /^$key\s+(\S.*\S*)\s+/;
+      return $ret[0] if @ret;
+   }
+
+   $key = "$compiler-$what:";
+   my $grep = `grep -P $key $cds_libs`;
+   if ( $grep ) {
+      my @ret = $grep =~ /^$key\s+(\S.*\S*)\s+/;
+      return $ret[0] if @ret;
+   }
+}
+
+sub get_gen_prop($@)
+{
+   my $key=shift;
+   $key = "$key:";
+
+   my $grep = `grep -P $key $cds_libs`;
+   if ( $grep ) {
+      my @ret = $grep =~ /^$key\s+(\S.*\S*)\s+/;
+      return $ret[0] if @ret;
+   }
+}
\ No newline at end of file
diff --git a/build/CI/gen-all b/build/CI/gen-all
new file mode 100644 (file)
index 0000000..01224a1
--- /dev/null
@@ -0,0 +1,24 @@
+#! /bin/sh
+
+./cmake-gen gcc-4.8 64 dbg
+./cmake-gen gcc-4.8 64 rel
+./cmake-gen gcc-4.9 64 dbg
+./cmake-gen gcc-4.9 64 rel
+./cmake-gen gcc-5 64 dbg
+./cmake-gen gcc-5 64 rel
+./cmake-gen gcc-5 64 tsan
+./cmake-gen gcc-5 64 asan
+./cmake-gen gcc-6 64 dbg
+./cmake-gen gcc-6 64 rel
+./cmake-gen gcc-6 64 tsan
+./cmake-gen gcc-6 64 asan
+./cmake-gen clang-3.6 64 dbg
+./cmake-gen clang-3.6 64 rel
+./cmake-gen clang-3.7 64 dbg
+./cmake-gen clang-3.7 64 rel
+./cmake-gen clang-3.8 64 dbg
+./cmake-gen clang-3.8 64 rel
+./cmake-gen clang-3.9 64 dbg
+./cmake-gen clang-3.9 64 rel
+./cmake-gen clang-3.9 64 asan
+./cmake-gen clang-3.9 64 tsan
\ No newline at end of file