2 # basic build script example
6 update_cmake_repo_trusty() {
7 sudo apt-get install -y --allow-unauthenticated software-properties-common
8 sudo add-apt-repository --yes ppa:george-edison55/cmake-3.x
11 update_cmake_repo_centos() {
12 sudo cat << EOF > cmake.repo
15 baseurl=http://mirror.ghettoforge.org/distributions/gf/el/7/plus/x86_64/
19 sudo cat << EOF > jsoncpp.repo
22 baseurl=http://dl.fedoraproject.org/pub/epel/7/x86_64/
26 sudo mv cmake.repo /etc/yum.repos.d/cmake.repo
27 sudo mv jsoncpp.repo /etc/yum.repos.d/jsoncpp.repo
35 if ! [ -z ${REPO_NAME} ]; then
36 REPO_URL="${NEXUSPROXY}/content/repositories/fd.io.${REPO_NAME}"
37 echo "REPO_URL: ${REPO_URL}"
42 if [ $DISTRIB_ID == "Ubuntu" ]; then
43 if [ "$DISTRIB_CODENAME" == "trusty" ]; then
44 update_cmake_repo_trusty
47 echo "deb ${REPO_URL} ./" | sudo tee /etc/apt/sources.list.d/99fd.io.list
50 elif [ "$DISTRIB_ID" == "CentOS" ]; then
51 update_cmake_repo_centos
52 sudo cat << EOF > fdio-master.repo
54 name=fd.io master branch latest merge
59 sudo mv fdio-master.repo /etc/yum.repos.d/fdio-master.repo
65 ARCHITECTURE=`uname -m`
67 # Figure out what system we are running on
68 if [ -f /etc/lsb-release ];then
70 BUILD_TOOLS="build-essential cmake"
71 LIBSSL_LIBEVENT="libevent-dev libssl-dev"
73 LIBPARC_DEPS="longbow $LIBSSL_LIBEVENT"
74 LIBCCNX_COMMON_DEPS="$LIBPARC_DEPS libparc"
75 LIBCCNX_TRANSPORT_RTA_DEPS="$LIBCCNX_COMMON_DEPS libccnx-common"
76 LIBCCNX_PORTAL_DEPS="$LIBCCNX_TRANSPORT_RTA_DEPS libccnx-transport-rta"
77 LIBICNET_DEPS="$LIBCCNX_PORTAL_DEPS libboost-system-dev"
78 METIS_DEPS="$LIBCCNX_TRANSPORT_RTA_DEPS libccnx-transport-rta"
79 HTTP_SERVER_DEPS="$LIBICNET_DEPS libicnet libboost-regex-dev libboost-filesystem-dev"
85 if [ "$ARCHITECTURE" == "x86_64" ]; then
89 elif [ -f /etc/redhat-release ];then
91 BUILD_TOOLS_GROUP="'Development Tools'"
92 BUILD_TOOLS_SINGLE="cmake"
93 LIBSSL_LIBEVENT="libevent-devel openssl-devel"
95 LIBPARC_DEPS="longbow $LIBSSL_LIBEVENT"
96 LIBCCNX_COMMON_DEPS="$LIBPARC_DEPS libparc"
97 LIBCCNX_TRANSPORT_RTA_DEPS="$LIBCCNX_COMMON_DEPS libccnx-common"
98 LIBCCNX_PORTAL_DEPS="$LIBCCNX_TRANSPORT_RTA_DEPS libccnx-transport-rta"
99 LIBICNET_DEPS="$LIBCCNX_PORTAL_DEPS boost-devel"
100 METIS_DEPS="$LIBCCNX_TRANSPORT_RTA_DEPS libccnx-transport-rta"
101 HTTP_SERVER_DEPS="$LIBICNET_DEPS libicnet boost-devel"
103 sudo yum install -y redhat-lsb
104 DISTRIB_ID=`lsb_release -si`
105 DISTRIB_RELEASE=`lsb_release -sr`
106 DISTRIB_CODENAME=`lsb_release -sc`
107 DISTRIB_DESCRIPTION=`lsb_release -sd`
112 echo "ERROR: System configuration not recognized. Build failed"
116 echo ARCHITECTURE: $ARCHITECTURE
117 echo DISTRIB_ID: $DISTRIB_ID
118 echo DISTRIB_RELEASE: $DISTRIB_RELEASE
119 echo DISTRIB_CODENAME: $DISTRIB_CODENAME
120 echo DISTRIB_DESCRIPTION: $DISTRIB_DESCRIPTION
122 setup $DISTRIB_ID $DISTRIB_CODENAME
124 if [ $DISTRIB_ID == "Ubuntu" ]; then
125 echo $BUILD_TOOLS ${!PACKAGE_DEPS} | xargs sudo apt-get install -y --allow-unauthenticated
126 elif [ $DISTRIB_ID == "CentOS" ]; then
127 echo $BUILD_TOOLS_GROUP | xargs sudo yum groupinstall -y --nogpgcheck || true
128 echo $BUILD_TOOLS_SINGLE | xargs sudo yum install -y --nogpgcheck || true
129 echo ${!PACKAGE_DEPS} | xargs sudo yum install -y --nogpgcheck || true
132 # do nothing but print the current slave hostname
135 # Install package dependencies
137 export CCACHE_DIR=/tmp/ccache
138 if [ -d $CCACHE_DIR ];then
139 echo $CCACHE_DIR exists
142 echo $CCACHE_DIR does not exist. This must be a new slave.
145 echo "cat /etc/bootstrap.sha"
146 if [ -f /etc/bootstrap.sha ];then
147 cat /etc/bootstrap.sha
149 echo "Cannot find cat /etc/bootstrap.sha"
152 echo "cat /etc/bootstrap-functions.sha"
153 if [ -f /etc/bootstrap-functions.sha ];then
154 cat /etc/bootstrap-functions.sha
156 echo "Cannot find cat /etc/bootstrap-functions.sha"
159 echo "sha1sum of this script: ${0}"
163 mkdir -p build && pushd build
166 cmake -DCMAKE_INSTALL_PREFIX=/usr -DRPM_PACKAGE=$RPM -DDEB_PACKAGE=$DEB -DDISTRIBUTION=$DISTRIB_CODENAME -DARCHITECTURE=$ARCHITECTURE ..
169 echo "*******************************************************************"
170 echo "* $PACKAGE_NAME BUILD SUCCESSFULLY COMPLETED"
171 echo "*******************************************************************"