2 # basic build script example
6 apt_get=`which apt-get`
9 # $1 = Distribution [trusty / CentOS]
15 if [ "$DISTRIBUTION" == "trusty" ]; then
16 sudo ${apt_get} install -y --allow-unauthenticated software-properties-common
17 sudo add-apt-repository --yes ppa:george-edison55/cmake-3.x
18 elif [ "$DISTRIBUTION" == "CentOS" ]; then
19 sudo cat << EOF > cmake.repo
22 baseurl=http://mirror.ghettoforge.org/distributions/gf/el/7/plus/x86_64/
26 sudo cat << EOF > jsoncpp.repo
29 baseurl=http://dl.fedoraproject.org/pub/epel/7/x86_64/
33 sudo mv cmake.repo /etc/yum.repos.d/cmake.repo
34 sudo mv jsoncpp.repo /etc/yum.repos.d/jsoncpp.repo
39 # $1 = Distribution codename
42 DISTRIBUTION_CODENAME=$1
44 if [ "$DISTRIBUTION_CODENAME" != "trusty" ] && [ "$DISTRIBUTION_CODENAME" != "xenial" ]; then
45 echo "No valid distribution specified when calling 'update_qt_repo'. Exiting.."
49 sudo ${apt_get} install -y --allow-unauthenticated software-properties-common
50 sudo add-apt-repository --yes ppa:beineri/opt-qt571-$DISTRIBUTION_CODENAME
52 wget -q -O - http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
53 sudo sh -c "echo 'deb http://archive.getdeb.net/ubuntu $DISTRIBUTION_CODENAME-getdeb apps' >> /etc/apt/sources.list.d/getdeb.list"
55 sudo ${apt_get} update
63 if ! [ -z ${REPO_NAME} ]; then
64 REPO_URL="${NEXUSPROXY}/content/repositories/fd.io.${REPO_NAME}"
65 echo "REPO_URL: ${REPO_URL}"
70 if [ $DISTRIB_ID == "Ubuntu" ]; then
71 if [ "$DISTRIB_CODENAME" == "trusty" ]; then
72 update_cmake_repo $DISTRIB_CODENAME
75 echo "deb ${REPO_URL} ./" | sudo tee /etc/apt/sources.list.d/99fd.io.list
77 sudo ${apt_get} update
78 elif [ "$DISTRIB_ID" == "CentOS" ]; then
79 update_cmake_repo $DISTRIB_ID
80 sudo cat << EOF > fdio-master.repo
82 name=fd.io master branch latest merge
87 sudo mv fdio-master.repo /etc/yum.repos.d/fdio-master.repo
93 ARCHITECTURE=`uname -m`
95 # Figure out what system we are running on
96 if [ -f /etc/lsb-release ];then
98 BUILD_TOOLS="build-essential cmake"
99 LIBSSL_LIBEVENT="libevent-dev libssl-dev"
101 LIBPARC_DEPS="longbow $LIBSSL_LIBEVENT"
102 LIBCCNX_COMMON_DEPS="$LIBPARC_DEPS libparc"
103 LIBCCNX_TRANSPORT_RTA_DEPS="$LIBCCNX_COMMON_DEPS libccnx-common"
104 LIBCCNX_PORTAL_DEPS="$LIBCCNX_TRANSPORT_RTA_DEPS libccnx-transport-rta"
105 LIBICNET_DEPS="$LIBCCNX_PORTAL_DEPS libboost-system-dev"
106 METIS_DEPS="$LIBCCNX_TRANSPORT_RTA_DEPS libccnx-transport-rta"
107 HTTP_SERVER_DEPS="$LIBICNET_DEPS libicnet libboost-regex-dev libboost-filesystem-dev"
108 VPP_PLUGIN_DEPS="vpp-dev vpp-dpkg-dev"
114 if [ "$ARCHITECTURE" == "x86_64" ]; then
118 elif [ -f /etc/redhat-release ];then
120 BUILD_TOOLS_GROUP="'Development Tools'"
121 BUILD_TOOLS_SINGLE="cmake"
122 LIBSSL_LIBEVENT="libevent-devel openssl-devel"
124 LIBPARC_DEPS="longbow $LIBSSL_LIBEVENT"
125 LIBCCNX_COMMON_DEPS="$LIBPARC_DEPS libparc"
126 LIBCCNX_TRANSPORT_RTA_DEPS="$LIBCCNX_COMMON_DEPS libccnx-common"
127 LIBCCNX_PORTAL_DEPS="$LIBCCNX_TRANSPORT_RTA_DEPS libccnx-transport-rta"
128 LIBICNET_DEPS="$LIBCCNX_PORTAL_DEPS boost-devel"
129 METIS_DEPS="$LIBCCNX_TRANSPORT_RTA_DEPS libccnx-transport-rta"
130 HTTP_SERVER_DEPS="$LIBICNET_DEPS libicnet boost-devel"
132 sudo yum install -y redhat-lsb
133 DISTRIB_ID=`lsb_release -si`
134 DISTRIB_RELEASE=`lsb_release -sr`
135 DISTRIB_CODENAME=`lsb_release -sc`
136 DISTRIB_DESCRIPTION=`lsb_release -sd`
141 echo "ERROR: System configuration not recognized. Build failed"
145 echo ARCHITECTURE: $ARCHITECTURE
146 echo DISTRIB_ID: $DISTRIB_ID
147 echo DISTRIB_RELEASE: $DISTRIB_RELEASE
148 echo DISTRIB_CODENAME: $DISTRIB_CODENAME
149 echo DISTRIB_DESCRIPTION: $DISTRIB_DESCRIPTION
151 setup $DISTRIB_ID $DISTRIB_CODENAME
153 if [ $DISTRIB_ID == "Ubuntu" ]; then
154 echo $BUILD_TOOLS ${!PACKAGE_DEPS} | xargs sudo ${apt_get} install -y --allow-unauthenticated
155 elif [ $DISTRIB_ID == "CentOS" ]; then
156 echo $BUILD_TOOLS_GROUP | xargs sudo yum groupinstall -y --nogpgcheck || true
157 echo $BUILD_TOOLS_SINGLE | xargs sudo yum install -y --nogpgcheck || true
158 echo ${!PACKAGE_DEPS} | xargs sudo yum install -y --nogpgcheck || true
161 # do nothing but print the current slave hostname
164 # Install package dependencies
166 export CCACHE_DIR=/tmp/ccache
167 if [ -d $CCACHE_DIR ];then
168 echo $CCACHE_DIR exists
171 echo $CCACHE_DIR does not exist. This must be a new slave.
174 echo "cat /etc/bootstrap.sha"
175 if [ -f /etc/bootstrap.sha ];then
176 cat /etc/bootstrap.sha
178 echo "Cannot find cat /etc/bootstrap.sha"
181 echo "cat /etc/bootstrap-functions.sha"
182 if [ -f /etc/bootstrap-functions.sha ];then
183 cat /etc/bootstrap-functions.sha
185 echo "Cannot find cat /etc/bootstrap-functions.sha"
188 echo "sha1sum of this script: ${0}"
192 mkdir -p build && pushd build
195 cmake -DCMAKE_INSTALL_PREFIX=/usr -DRPM_PACKAGE=$RPM -DDEB_PACKAGE=$DEB -DDISTRIBUTION=$DISTRIB_CODENAME -DARCHITECTURE=$ARCHITECTURE ..
198 echo "*******************************************************************"
199 echo "* $PACKAGE_NAME BUILD SUCCESSFULLY COMPLETED"
200 echo "*******************************************************************"