summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-11-22 20:24:01 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-11-22 20:43:05 +0530
commit1541d44afc30bb2695095bad9e4b06b9bb7a8806 (patch)
tree8344c1319cfde4f7fc05b4143bbd1e258d2e5603 /build
parentf798b61871ef169c9dccad75e301e2c4f667323d (diff)
Enhanced scripts to support command line build from source.
Diffstat (limited to 'build')
-rwxr-xr-xbuild/gmc-build.sh123
-rwxr-xr-xbuild/package-backend.sh7
-rwxr-xr-xbuild/package-gateway.sh20
3 files changed, 124 insertions, 26 deletions
diff --git a/build/gmc-build.sh b/build/gmc-build.sh
index d227ffb1..c25713a9 100755
--- a/build/gmc-build.sh
+++ b/build/gmc-build.sh
@@ -1,12 +1,13 @@
USAGE_ERR=1
-BUILD_DIR=/tmp/buckminster/glustermc
-BUCKMINSTER_URL=http://download.eclipse.org/tools/buckminster/headless-3.6/
-TARGET_PLATFORM_URL=/data/private/gmc-target.git
-SRC_URL=/data/private/gmc-src.git
+BUCKMINSTER_URL=http://download.eclipse.org/tools/buckminster/headless-3.7/
+TARGET_PLATFORM_URL=git@github.com:gluster/gmc.git
+SRC_URL=git@github.com:gluster/gmc-target.git
BUCKMINSTER_PRODUCT_NAME=org.eclipse.buckminster.cmdline.product
-MAIN_FEATURE=com.gluster.storage.management.console.feature.webstart
+GMC_WEBSTART_PROJECT=com.gluster.storage.management.console.feature.webstart
+GMC_CORE_PROJECT=com.gluster.storage.management.core
+GMG_PROJECT=com.gluster.storage.management.gateway
TYPE_ALL="a"
TYPE_SETUP="s"
@@ -30,6 +31,10 @@ showBold() {
# Get the director that can be used to install headless buckminster
get_director()
{
+ rm -rf ${TOOLS_DIR}
+ mkdir -p ${TOOLS_DIR}
+ cd ${TOOLS_DIR}
+
echo "Downloading `startBold`director`stopBold`..."
wget http://ftp.daum.net/eclipse//tools/buckminster/products/director_latest.zip
echo "Installing director..."
@@ -38,46 +43,114 @@ get_director()
install_buckminster()
{
+ rm -rf ${BUCKMINSTER_HOME}
+ mkdir -p ${BUCKMINSTER_HOME}
+
echo "Installing `startBold`Buckminster`stopBold`..."
- cd director
+ cd ${TOOLS_DIR}/director
./director -r ${BUCKMINSTER_URL} -d ${BUCKMINSTER_HOME} -p Buckminster -i ${BUCKMINSTER_PRODUCT_NAME}
echo "Setting up Buckminster..."
cd ${BUCKMINSTER_HOME}
+ echo " => core"
./buckminster install ${BUCKMINSTER_URL} org.eclipse.buckminster.core.headless.feature
+ echo " => pde"
./buckminster install ${BUCKMINSTER_URL} org.eclipse.buckminster.pde.headless.feature
+ echo " => git"
./buckminster install ${BUCKMINSTER_URL} org.eclipse.buckminster.git.headless.feature
+ echo " => emma"
./buckminster install ${BUCKMINSTER_URL} org.eclipse.buckminster.emma.headless.feature
}
configure_workspace()
{
echo "Configuring the workspace..."
+ rm -rf ${WORKSPACE_DIR}
+ mkdir -p ${WORKSPACE_DIR}
cd ${WORKSPACE_DIR}
- rm -rf *
- git clone ${TARGET_PLATFORM_URL}
- git clone ${SRC_URL}
+ #git clone ${TARGET_PLATFORM_URL}
+ #git clone ${SRC_URL}
+
+ cp -R ${BASE_DIR}/gmc/* . 2>/dev/null
+ ln -fs ${BASE_DIR}/gmc-target .
echo "Importing target platform..."
- ../buckminster importtarget --active gmc-src/com.gluster.storage.management.releng/gluster-management-console.target
+ ${BUCKMINSTER_HOME}/buckminster importtarget -data ${WORKSPACE_DIR} --active gmc-target/com.gluster.storage.management.console.target/gmc.target
echo "Importing component query for glustermc..."
- ../buckminster import gmc-src/com.gluster.storage.management.releng/com.gluster.storage.management.console.feature.webstart.cquery
+ ${BUCKMINSTER_HOME}/buckminster import -data ${WORKSPACE_DIR} build/com.gluster.storage.management.console.feature.webstart.cquery
+ #${BUCKMINSTER_HOME}/buckminster import -data ${WORKSPACE_DIR} build/com.gluster.storage.management.core.cquery
+ echo "Importing component query for glustermg..."
+ ${BUCKMINSTER_HOME}/buckminster import -data ${WORKSPACE_DIR} build/com.gluster.storage.management.gateway.cquery
cd -
}
-build()
+build_gmc()
{
- echo "Cleaning build directory..."
- rm -rf ${BUILD_DIR}/*
+ os=${1}
+ ws=${2}
+ arch=${3}
+ cd ${WORKSPACE_DIR}
+ DIST_DIR=${DIST_BASE}/gmc/${os}.${ws}.${arch}
+ if [ ! -d ${DIST_DIR} ]; then
+ mkdir -p ${DIST_DIR}
+ fi
- echo "Exporting the product..."
- ./buckminster perform --properties ${PROPERTIES_FILE} ${MAIN_FEATURE}#create.eclipse.jnlp.product
- ./buckminster perform --properties ${PROPERTIES_FILE} ${MAIN_FEATURE}#copy.root.files
+ echo "Building GMC for [${os}.${ws}.${arch}"
+ ${BUCKMINSTER_HOME}/buckminster perform -Dbuckminster.output.root=${DIST_DIR} -data ${WORKSPACE_DIR} -Dtarget.os=${os} -Dtarget.ws=${ws} -Dtarget.arch=${arch} -Dcbi.include.source=false --properties ${PROPERTIES_FILE} ${GMC_WEBSTART_PROJECT}#create.eclipse.jnlp.product
+ ${BUCKMINSTER_HOME}/buckminster perform -Dbuckminster.output.root=${DIST_DIR} --properties ${PROPERTIES_FILE} ${GMC_WEBSTART_PROJECT}#copy.root.files
# buckminster signs the jars using eclipse certificate - hence unsign and sign them again
echo "Signing product jars..."
- ./buckminster perform --properties ${PROPERTIES_FILE} ${MAIN_FEATURE}#unsign.jars
- ./buckminster perform --properties ${PROPERTIES_FILE} ${MAIN_FEATURE}#sign.jars
+ ${BUCKMINSTER_HOME}/buckminster perform --properties ${PROPERTIES_FILE} ${GMC_WEBSTART_PROJECT}#unsign.jars
+ ${BUCKMINSTER_HOME}/buckminster perform --properties ${PROPERTIES_FILE} ${GMC_WEBSTART_PROJECT}#sign.jars
+}
+
+build_gmg()
+{
+ cd ${WORKSPACE_DIR}
+ export DIST_DIR=${DIST_BASE}/gmg
+ if [ ! -d ${DIST_DIR} ]; then
+ mkdir -p ${DIST_DIR}
+ fi
+
+ echo "Building CORE..."
+ ${BUCKMINSTER_HOME}/buckminster perform -Dbuckminster.output.root=${DIST_DIR} -data ${WORKSPACE_DIR} -Dcbi.include.source=false --properties ${PROPERTIES_FILE} ${GMC_CORE_PROJECT}#bundle.jar
+ echo "Building Gateway..."
+ ${BUCKMINSTER_HOME}/buckminster perform -Dbuckminster.output.root=${DIST_DIR} -data ${WORKSPACE_DIR} -Dcbi.include.source=false --properties ${PROPERTIES_FILE} ${GMG_PROJECT}#archive
+
+ echo "Packaging Gateway..."
+ ${SCRIPT_DIR}/package-gateway.sh ${DIST_DIR} ${DIST_BASE}/gmc
+}
+
+package_backend()
+{
+ cd ${WORKSPACE_DIR}
+
+ echo "Packaging backend scripts"
+ export DIST_DIR=${DIST_BASE}/gmg-backend
+ if [ ! -d ${DIST_DIR} ]; then
+ mkdir -p ${DIST_DIR}
+ fi
+
+ ${SCRIPT_DIR}/package-backend.sh ${DIST_DIR}
+}
+
+build_gmc_all()
+{
+ build_gmc linux gtk x86
+ build_gmc linux gtk x86_64
+ build_gmc win32 win32 x86
+ build_gmc win32 win32 x86_64
+ build_gmc macosx cocoa x86
+ build_gmc macosx cocoa x86_64
+}
+
+build()
+{
+ export VERSION=1.0.0
+ build_gmc_all
+ build_gmg
+ package_backend
}
#-----------------------------------
@@ -85,8 +158,8 @@ build()
#-----------------------------------
echo
-if [ $# -ne 2 ]; then
- echo "Usage: ${0} <build-type> <build-directory>"
+if [ $# -ne 1 ]; then
+ echo "Usage: ${0} <build-type>"
echo "build-type value can be one of:"
echo " `startBold` ${TYPE_ALL}`stopBold` - Sets up the build directoryand then triggers a full build"
echo " `startBold` ${TYPE_SETUP}`stopBold` - Sets up the build directory; doesn't trigger build"
@@ -96,9 +169,13 @@ if [ $# -ne 2 ]; then
fi
BUILD_MODE=${1}
-BUCKMINSTER_HOME=${2}
+BASE_DIR=${PWD}/../..
+TOOLS_DIR=${BASE_DIR}/tools
+DIST_BASE=${BASE_DIR}/dist
+BUCKMINSTER_HOME=${TOOLS_DIR}/buckminster
WORKSPACE_DIR=${BUCKMINSTER_HOME}/workspace
-PROPERTIES_FILE=${WORKSPACE_DIR}/gmc-src/com.gluster.storage.management.releng/glustermc_build.properties
+PROPERTIES_FILE=${WORKSPACE_DIR}/build/glustermc_build.properties
+SCRIPT_DIR=${PWD}
if [ "${BUILD_MODE}" == "${TYPE_ALL}" -o "${BUILD_MODE}" == "${TYPE_SETUP}" ]; then
get_director
diff --git a/build/package-backend.sh b/build/package-backend.sh
index 03664381..f9fc57be 100755
--- a/build/package-backend.sh
+++ b/build/package-backend.sh
@@ -22,6 +22,9 @@ get-scripts()
#---------------------------------------------
# Main Action Body
#---------------------------------------------
+if [ $? -eq 1 ]; then
+ DIST_DIR=${1}
+fi
echo "Packaging Gluster Management Gateway Back-end Scripts..."
prepare-script-dir
@@ -30,5 +33,9 @@ get-scripts
/bin/rm -rf ${TAR_NAME} ${TAR_NAME}.gz
tar cvf ${TAR_NAME} ${ROOT_DIR}
gzip ${TAR_NAME}
+if [ ! -z "${DIST_DIR}" ]; then
+ mv ${TAR_NAME}.gz ${DIST_DIR}
+fi
+/bin/rm -rf ${ROOT_DIR}
echo "Done!"
diff --git a/build/package-gateway.sh b/build/package-gateway.sh
index 6dc1e9db..bce436d9 100755
--- a/build/package-gateway.sh
+++ b/build/package-gateway.sh
@@ -2,7 +2,7 @@ WAR_NAME="glustermg.war"
WAR_SCRIPTS_DIR=${WAR_NAME}/scripts
NEW_WAR_NAME="glustermg"
TAR_NAME=${NEW_WAR_NAME}-${VERSION}.war.tar
-SERVER_DIST_DIR="${WORKSPACE}/buckminster.output"
+SERVER_DIST_DIR=${DIST_DIR:-${WORKSPACE}/buckminster.output}
prepare-dist-dir()
{
@@ -48,7 +48,11 @@ get-dist()
OS=${2}
WS=${3}
- OUT_DIR="${WORKSPACE}/../../${BRANCH}-glustermc/workspace/arch/${ARCH}/os/${OS}/ws/${WS}/buckminster.output/com.gluster.storage.management.console.feature.webstart*.feature/glustermc"
+ if [ -z "${GMC_DIST_DIR}" ]; then
+ OUT_DIR="${WORKSPACE}/../../${BRANCH}-glustermc/workspace/arch/${ARCH}/os/${OS}/ws/${WS}/buckminster.output/com.gluster.storage.management.console.feature.webstart*.feature/glustermc"
+ else
+ OUT_DIR="${GMC_DIST_DIR}/${OS}.${WS}.${ARCH}/com.gluster.storage.management.console.feature.webstart*.feature/glustermc"
+ fi
NEW_DIR=${WAR_NAME}/${OS}.${WS}.${ARCH}
cp -R ${OUT_DIR} ${NEW_DIR}
@@ -75,7 +79,13 @@ get-scripts()
#---------------------------------------------
# Main Action Body
#---------------------------------------------
-echo "Packaging Gluster Management Server..."
+
+if [ $# -eq 2 ]; then
+ DIST_DIR=${1}
+ GMC_DIST_DIR=${2}
+fi
+
+echo "Packaging GlusterFS Management Gateway..."
prepare-dist-dir
get-scripts
@@ -87,4 +97,8 @@ get-console-dists
tar cvf ${TAR_NAME} ${NEW_WAR_NAME}
gzip ${TAR_NAME}
+if [ ! -z "${DIST_DIR}" ]; then
+ mv ${TAR_NAME}.gz ${DIST_DIR}
+fi
+
echo "Done!"