diff --git a/GNUmakefile.in b/GNUmakefile.in
index e6d01d0..d23cdee 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -13,6 +13,9 @@
 	$(MAKE) -C depends/thirdparty/googletest $@
 	$(MAKE) -C depends/libhdfs3 $@
 	$(MAKE) -C depends/libyarn $@
+	$(MAKE) -C depends/dbcommon $@
+	$(MAKE) -C depends/univplan $@
+	$(MAKE) -C depends/storage $@
 	$(MAKE) -C src $@
 	$(MAKE) -C config $@
 	$(MAKE) -C contrib $@
@@ -25,6 +28,9 @@
 	$(MAKE) -C depends/thirdparty/googletest $@ 
 	$(MAKE) -C depends/libhdfs3 $@
 	$(MAKE) -C depends/libyarn $@
+	$(MAKE) -C depends/dbcommon $@
+	$(MAKE) -C depends/univplan $@
+	$(MAKE) -C depends/storage $@
 	$(MAKE) -C src $@
 	$(MAKE) -C config $@
 	$(MAKE) -C contrib $@
@@ -66,6 +72,9 @@
 	-$(MAKE) -C depends/thirdparty/googletest $@ 
 	-$(MAKE) -C depends/libhdfs3 $@
 	-$(MAKE) -C depends/libyarn $@
+	-$(MAKE) -C depends/dbcommon $@
+	-$(MAKE) -C depends/univplan $@
+	-$(MAKE) -C depends/storage $@
 	$(MAKE) -C src $@
 	$(MAKE) -C config $@
 	$(MAKE) -C contrib $@
@@ -85,6 +94,9 @@
 	-$(MAKE) -C depends/thirdparty/googletest $@ 
 	-$(MAKE) -C depends/libhdfs3 $@
 	-$(MAKE) -C depends/libyarn $@
+	-$(MAKE) -C depends/dbcommon $@
+	-$(MAKE) -C depends/univplan $@
+	-$(MAKE) -C depends/storage $@
 	-$(MAKE) -C config $@
 	-$(MAKE) -C tools $@
 	-$(MAKE) -C src feature-test-clean
diff --git a/configure b/configure
index 2a442c4..3ca66a6 100755
--- a/configure
+++ b/configure
@@ -723,6 +723,9 @@
 with_system_tzdata
 with_libhdfs3
 with_libyarn
+with_dbcommon
+with_univplan
+with_storage
 with_openssl
 with_bonjour
 with_ldap
@@ -872,6 +875,9 @@
 with_readline
 with_libyarn
 with_libhdfs3
+with_dbcommon
+with_univplan
+with_storage
 with_libedit_preferred
 with_system_tzdata
 with_zlib
@@ -1563,6 +1569,9 @@
   --without-readline      do not use GNU Readline nor BSD Libedit for editing
   --without-libyarn       do not build libyarn
   --without-libhdfs3      do not build libhdfs3
+  --without-dbcommon      do not build dbcommon
+  --without-univplan      do not build univplan
+  --without-storage       do not build storage
   --without-libedit-preferred  Don't prefer BSD Libedit over GNU Readline
   --with-system-tzdata=DIR  use system time zone data in DIR
   --without-zlib          do not use Zlib
@@ -6234,6 +6243,95 @@
 
 
 #
+# dbcommon
+#
+
+pgac_args="$pgac_args with_dbcommon"
+
+
+# Check whether --with-dbcommon was given.
+if test "${with_dbcommon+set}" = set; then :
+  withval=$with_dbcommon;
+  case $withval in
+    yes)
+      :
+      ;;
+    no)
+      :
+      ;;
+    *)
+      as_fn_error $? "no argument expected for --with-dbcommon option" "$LINENO" 5
+      ;;
+  esac
+
+else
+  with_dbcommon=yes
+
+fi
+
+
+
+
+#
+# univplan
+#
+
+pgac_args="$pgac_args with_univplan"
+
+
+# Check whether --with-univplan was given.
+if test "${with_univplan+set}" = set; then :
+  withval=$with_univplan;
+  case $withval in
+    yes)
+      :
+      ;;
+    no)
+      :
+      ;;
+    *)
+      as_fn_error $? "no argument expected for --with-univplan option" "$LINENO" 5
+      ;;
+  esac
+
+else
+  with_univplan=yes
+
+fi
+
+
+
+
+#
+# storage
+#
+
+pgac_args="$pgac_args with_storage"
+
+
+# Check whether --with-storage was given.
+if test "${with_storage+set}" = set; then :
+  withval=$with_storage;
+  case $withval in
+    yes)
+      :
+      ;;
+    no)
+      :
+      ;;
+    *)
+      as_fn_error $? "no argument expected for --with-storage option" "$LINENO" 5
+      ;;
+  esac
+
+else
+  with_storage=yes
+
+fi
+
+
+
+#
 # Prefer libedit
 #
 # In GPDB we want the default to be yes, because we don't want to link with GPL code.
@@ -16837,7 +16935,7 @@
 fi
 
 
-ac_config_files="$ac_config_files GNUmakefile src/VERSIONS.mk depends/thirdparty/googletest/Makefile.global depends/libhdfs3/Makefile.global depends/libyarn/Makefile.global src/Makefile.global src/pl/pljava/src/java/Makefile.global ranger-plugin/Makefile.global"
+ac_config_files="$ac_config_files GNUmakefile src/VERSIONS.mk depends/thirdparty/googletest/Makefile.global depends/libhdfs3/Makefile.global depends/libyarn/Makefile.global depends/dbcommon/Makefile.global depends/univplan/Makefile.global depends/storage/Makefile.global src/Makefile.global src/pl/pljava/src/java/Makefile.global ranger-plugin/Makefile.global"
 
 
 ac_config_links="$ac_config_links src/backend/port/dynloader.c:src/backend/port/dynloader/${template}.c src/backend/port/pg_sema.c:${SEMA_IMPLEMENTATION} src/backend/port/pg_shmem.c:${SHMEM_IMPLEMENTATION} src/include/dynloader.h:src/backend/port/dynloader/${template}.h src/include/pg_config_os.h:src/include/port/${template}.h src/Makefile.port:src/makefiles/Makefile.${template}"
@@ -16848,9 +16946,12 @@
 
 fi
 
-# Remove build_timestamp file to make sure rebuild depends lib: libhdfs & libyarn
+# Remove build_timestamp file to make sure rebuild depends lib: libhdfs & libyarn & dbcommon & univplan & storage
 rm -f depends/libhdfs3/build/libhdfs3_build_timestamp
 rm -f depends/libyarn/build/libyarn_build_timestamp
+rm -f depends/dbcommon/build/dbcommon_build_timestamp
+rm -f depends/univplan/build/univplan_build_timestamp
+rm -f depends/storage/build/storage_build_timestamp
 rm -f depends/thirdparty/gporca_build_timestamp
 rm -f depends/thirdparty/gpos_build_timestamp
 rm -f depends/thirdparty/gp-xerces_build_timestamp
@@ -17568,6 +17669,9 @@
     "depends/thirdparty/googletest/Makefile.global") CONFIG_FILES="$CONFIG_FILES depends/thirdparty/googletest/Makefile.global" ;;
     "depends/libhdfs3/Makefile.global") CONFIG_FILES="$CONFIG_FILES depends/libhdfs3/Makefile.global" ;;
     "depends/libyarn/Makefile.global") CONFIG_FILES="$CONFIG_FILES depends/libyarn/Makefile.global" ;;
+    "depends/dbcommon/Makefile.global") CONFIG_FILES="$CONFIG_FILES depends/dbcommon/Makefile.global" ;;
+    "depends/univplan/Makefile.global") CONFIG_FILES="$CONFIG_FILES depends/univplan/Makefile.global" ;;
+    "depends/storage/Makefile.global") CONFIG_FILES="$CONFIG_FILES depends/storage/Makefile.global" ;;
     "src/Makefile.global") CONFIG_FILES="$CONFIG_FILES src/Makefile.global" ;;
     "src/pl/pljava/src/java/Makefile.global") CONFIG_FILES="$CONFIG_FILES src/pl/pljava/src/java/Makefile.global" ;;
     "ranger-plugin/Makefile.global") CONFIG_FILES="$CONFIG_FILES ranger-plugin/Makefile.global" ;;
diff --git a/configure.in b/configure.in
index 10024e4..b65bee5 100644
--- a/configure.in
+++ b/configure.in
@@ -843,6 +843,27 @@
 AC_SUBST(with_libhdfs3)
 
 #
+# dbcommon
+#
+PGAC_ARG_BOOL(with, dbcommon, yes,
+              [  --without-dbcommon      do not build dbcommon])
+AC_SUBST(with_dbcommon)
+
+#
+# univplan
+#
+PGAC_ARG_BOOL(with, univplan, yes,
+              [  --without-univplan      do not build univplan])
+AC_SUBST(with_univplan)
+
+#
+# storage
+#
+PGAC_ARG_BOOL(with, storage, yes,
+              [  --without-storage      do not build storage])
+AC_SUBST(with_storage)
+
+#
 # Prefer libedit
 #
 # In GPDB we want the default to be yes, because we don't want to link with GPL code.
@@ -2185,7 +2206,7 @@
 fi
 AC_SUBST(vpath_build)
 
-AC_CONFIG_FILES([GNUmakefile src/VERSIONS.mk depends/thirdparty/googletest/Makefile.global depends/libhdfs3/Makefile.global depends/libyarn/Makefile.global src/Makefile.global src/pl/pljava/src/java/Makefile.global ranger-plugin/Makefile.global])
+AC_CONFIG_FILES([GNUmakefile src/VERSIONS.mk depends/thirdparty/googletest/Makefile.global depends/libhdfs3/Makefile.global depends/libyarn/Makefile.global depends/dbcommon/Makefile.global depends/univplan/Makefile.global depends/storage/Makefile.global src/Makefile.global src/pl/pljava/src/java/Makefile.global ranger-plugin/Makefile.global])
 
 AC_CONFIG_LINKS([
   src/backend/port/dynloader.c:src/backend/port/dynloader/${template}.c
@@ -2208,9 +2229,12 @@
 ])
 fi
 
-# Remove build_timestamp file to make sure rebuild depends lib: libhdfs & libyarn 
+# Remove build_timestamp file to make sure rebuild depends lib: libhdfs & libyarn & dbcommon & univplan & storage
 rm -f depends/libhdfs3/build/libhdfs3_build_timestamp
 rm -f depends/libyarn/build/libyarn_build_timestamp
+rm -f depends/dbcommon/build/dbcommon_build_timestamp
+rm -f depends/univplan/build/univplan_build_timestamp
+rm -f depends/storage/build/storage_build_timestamp
 rm -f depends/thirdparty/gporca_build_timestamp
 rm -f depends/thirdparty/gpos_build_timestamp
 rm -f depends/thirdparty/gp-xerces_build_timestamp
diff --git a/depends/Makefile b/depends/Makefile
deleted file mode 100644
index 739e200..0000000
--- a/depends/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-.PHONY: release debug
-
-incremental:
-	./build-all.sh incremental
-
-release:
-	./build-all.sh release
-
-debug: 
-	./build-all.sh debug
-
-coverage:
-	./build-all.sh coverage
-
-noavx:
-	./build-all.sh noavx
diff --git a/depends/README b/depends/README
deleted file mode 100644
index e69de29..0000000
--- a/depends/README
+++ /dev/null
diff --git a/depends/bootstrap b/depends/bootstrap
deleted file mode 100755
index 1851fd2..0000000
--- a/depends/bootstrap
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash -e
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-source_dir=`cd "\`dirname \"$0\"\`";pwd`
-if [ $source_dir = `pwd` ]; then
-	echo 'Error: Don''t bootstrap in the source folder'
-	exit
-fi
-
-cp $source_dir/Makefile .
-cat $source_dir/build-all.sh| sed "s|../bootstrap|$source_dir/\$MODULE/bootstrap|g" > ./build-all.sh
-chmod +x ./build-all.sh
diff --git a/depends/build-all.sh b/depends/build-all.sh
deleted file mode 100755
index 29d7782..0000000
--- a/depends/build-all.sh
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/bin/bash -e
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-DIR="$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-PREFIX="/opt/dependency/package"
-export LD_LIBRARY_PATH=$PREFIX/lib:$LD_LIBRARY_PATH
-export DYLD_FALLBACK_LIBRARY_PATH=$PREFIX/lib:$DYLD_FALLBACK_LIBRARY_PATH
-
-if [[ -z $RUN_UNITTEST ]]; then
-   RUN_UNITTEST=YES
-fi
-OPTION=""
-case $1 in
-    release)
-        echo "Build Release Version ..."
-        OPTION=""
-        ;;
-    debug)
-        echo "Build Debug Version ..."
-        OPTION="--enable-debug"
-        ;;
-    coverage)
-        echo "Build Coverage Version ..."
-        OPTION="--enable-coverage"
-        ;;
-    noavx)
-        echo "Build AVX Version ..."
-        OPTION="--enable-avx=OFF"
-        ;;
-    incremental)
-        echo "Build incremental ..."
-        OPTION="incremental"
-        ;;
-    *)
-        echo "Build Release Version ..."
-        OPTION="";
-        ;;
-esac
-
-function build() {
-  echo "Build $1 ..."
-  
-  MODULE=$1
-  MAGMA_OPTION=""
-  ###kv_client && kv_server#####
-  if [ $1 = "magma_client" ] ;then
-    MAGMA_OPTION="--enable-client"
-    MODULE=magma
-  fi
-  if [ $1 = "magma_server" ] ;then
-    MAGMA_OPTION="--enable-server"
-    MODULE=magma
-  fi
-   
-  if [ "$OPTION" != "incremental" ]; then
-    echo "rm $DIR/$MODULE/build"
-    rm -rf $DIR/$MODULE/build
-
-    mkdir -p $DIR/$MODULE/build
-    cd $DIR/$MODULE/build
-    echo "../bootstrap $OPTION $MAGMA_OPTION"
-    ../bootstrap $OPTION $MAGMA_OPTION
-    CMAKE_OPTION=$OPTION
-  else
-    if [ ! -d $DIR/$MODULE/build ]; then mkdir -p $DIR/$MODULE/build; fi
-    cd $DIR/$MODULE/build
-    CMAKE_OPTION=$(grep 'CMAKE_BUILD_TYPE:STRING=' CMakeCache.txt | cut -d'=' -f2)
-    case $CMAKE_OPTION in
-      Release)
-        CMAKE_OPTION=""
-        ;;
-      Debug)
-        CMAKE_OPTION="--enable-debug"
-        codecov=$(grep 'ENABLE_COVERAGE:BOOL=' CMakeCache.txt | cut -d'=' -f2)
-        if [ $codecov = 'ON' ]; then
-          CMAKE_OPTION="--enable-coverage"
-        fi
-        ;;
-      *)
-        CMAKE_OPTION="";
-        ;;
-      esac
-    echo "../bootstrap $CMAKE_OPTION $MAGMA_OPTION"
-    ../bootstrap $CMAKE_OPTION $MAGMA_OPTION
-  fi
-
-  if [[ $OPTION == "--enable-coverage" || $CMAKE_OPTION == "--enable-coverage" ]]
-  then
-    make coverage
-  else
-    make -j8 ;
-    if [[ $RUN_UNITTEST == "YES" ]]; then
-        echo "Run unittest ...."
-        make -j8 punittest
-    else
-        echo "Do not run unittest...."
-    fi
-  fi
-  make -j8 install
-
-  echo "Done."
-}
-echo "Delete headers in ${PREFIX}/include ..."
-rm -rf $PREFIX/include/dbcommon
-rm -rf $PREFIX/include/univplan
-rm -rf $PREFIX/include/storage
-echo "Done."
-
-echo "Delete libs in ${PREFIX}/lib ..."
-rm -rf $PREFIX/lib/libdbcommon*
-rm -rf $PREFIX/lib/libunivplan*
-rm -rf $PREFIX/lib/libstorage*
-echo "Done."
-
-build dbcommon
-build univplan
-build storage
diff --git a/depends/dbcommon/CMake/FindJSON.cmake b/depends/dbcommon/CMake/FindJSON.cmake
index a334948..ff5008b 100644
--- a/depends/dbcommon/CMake/FindJSON.cmake
+++ b/depends/dbcommon/CMake/FindJSON.cmake
@@ -20,7 +20,7 @@
 #  License text for the above reference.)
 
 # Look for the header file.
-find_path(JSON_INCLUDE_DIR NAMES json/json.h)
+find_path(JSON_INCLUDE_DIR NAMES json-c/json.h)
 mark_as_advanced(JSON_INCLUDE_DIR)
 
 # Look for the library (sorted from most current/relevant entry to least).
diff --git a/depends/dbcommon/CMake/Options.cmake b/depends/dbcommon/CMake/Options.cmake
index 36841ea..8be997e 100644
--- a/depends/dbcommon/CMake/Options.cmake
+++ b/depends/dbcommon/CMake/Options.cmake
@@ -5,7 +5,8 @@
 ##############################################################################
 # Setup build and dependencies information 
 ##############################################################################
-SET(DEPENDENCY_INSTALL_PREFIX "/opt/dependency")
+#SET(DEPENDENCY_INSTALL_PREFIX "/opt/dependency")
+SET(DEPENDENCY_INSTALL_PREFIX "/usr/local/hawq")
 IF($ENV{DEPENDENCY_INSTALL_PREFIX})
 	SET(DEPENDENCY_INSTALL_PREFIX $ENV{DEPENDENCY_INSTALL_PREFIX})
 ENDIF()
@@ -19,8 +20,10 @@
 SET(CMAKE_PREFIX_PATH "${DEPENDENCY_INSTALL_PREFIX}/package" ${CMAKE_PREFIX_PATH})
 SET(CMAKE_PREFIX_PATH "${DEPENDENCY_INSTALL_PREFIX}/tools" ${CMAKE_PREFIX_PATH})
 
-SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/package/lib:${DEPENDENCY_LIBRARY_PATH}")
-SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/package/lib64:${DEPENDENCY_LIBRARY_PATH}")
+#SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/package/lib:${DEPENDENCY_LIBRARY_PATH}")
+#SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/package/lib64:${DEPENDENCY_LIBRARY_PATH}")
+SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/lib:${DEPENDENCY_LIBRARY_PATH}")
+SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/lib64:${DEPENDENCY_LIBRARY_PATH}")
 
 ##############################################################################
 # Setup build flags
diff --git a/depends/dbcommon/CMakeLists.txt b/depends/dbcommon/CMakeLists.txt
index dd15bfc..67ef822 100644
--- a/depends/dbcommon/CMakeLists.txt
+++ b/depends/dbcommon/CMakeLists.txt
@@ -1,10 +1,13 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 PROJECT(dbcommon)
 
+SET(CMAKE_VERBOSE_MAKEFILE ON CACHE STRING "Verbose build." FORCE)
+
 ##############################################################################
 # General CMake initialization
 ##############################################################################
 SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
+SET(DOXYFILE_PATH ${CMAKE_SOURCE_DIR}/docs)
 SET(CMAKE_VERBOSE_MAKEFILE OFF CACHE STRING "Verbose build." FORCE)
 
 IF(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
diff --git a/depends/dbcommon/Makefile b/depends/dbcommon/Makefile
new file mode 100644
index 0000000..dd89703
--- /dev/null
+++ b/depends/dbcommon/Makefile
@@ -0,0 +1,76 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -*-makefile-*-
+#------------------------------------------------------------------------------
+# A makefile that integrate building this module with hawq
+#------------------------------------------------------------------------------
+subdir = depends/dbcommon
+top_builddir = ../../
+include Makefile.global
+
+PRE_CFG_ARG =
+# get argument for running ../boostrap
+ifeq ($(enable_debug), yes)
+	PRE_CFG_ARG += --enable-debug
+endif # enable_debug
+
+ifeq ($(enable_coverage), yes)
+	PRE_CFG_ARG += --enable-coverage
+endif # enable_coverage
+
+##########################################################################
+#
+
+.PHONY: build all install distclean maintainer-clean clean pre-config
+
+ifeq ($(with_dbcommon), yes)
+
+# We will need to install it temporarily under build/install for hawq building.
+all: build
+	cd $(top_builddir)/$(subdir)/build; mkdir -p install; \
+	$(MAKE) DESTDIR=$(abs_top_builddir)/$(subdir)/build/install install
+
+install: build
+	cd $(top_builddir)/$(subdir)/build && $(MAKE) install
+
+distclean:
+	rm -rf $(top_builddir)/$(subdir)/build
+
+maintainer-clean: distclean
+
+clean:
+	if [ -d $(top_builddir)/$(subdir)/build ]; then \
+		cd $(top_builddir)/$(subdir)/build && $(MAKE) clean && rm -f dbcommon_build_timestamp; \
+	fi
+
+build: pre-config
+	cd $(top_builddir)/$(subdir)/build && $(MAKE)
+
+# trigger bootstrap only once.
+pre-config:
+	cd $(top_builddir)/$(subdir)/; \
+	mkdir -p build; \
+	cd build; \
+	if [ ! -f dbcommon_build_timestamp ]; then \
+		$(abs_top_srcdir)/$(subdir)/bootstrap --prefix=$(prefix) $(PRE_CFG_ARG) && touch dbcommon_build_timestamp; \
+	fi
+
+else
+all install distclean maintainer-clean clean pre-config:
+
+endif
diff --git a/depends/dbcommon/Makefile.global b/depends/dbcommon/Makefile.global
new file mode 100644
index 0000000..de78d01
--- /dev/null
+++ b/depends/dbcommon/Makefile.global
@@ -0,0 +1,40 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -*-makefile-*-
+#------------------------------------------------------------------------------
+# A makefile that integrate building this module with hawq
+#------------------------------------------------------------------------------
+
+prefix := /usr/local/hawq
+enable_debug    = no
+enable_coverage = no
+with_dbcommon = yes
+
+# Support for VPATH builds
+vpath_build = no
+abs_top_srcdir = /Users/tuyu/hawq
+abs_top_builddir = /Users/tuyu/hawq
+
+ifneq ($(vpath_build),yes)
+top_srcdir = $(top_builddir)
+srcdir = .
+else # vpath_build = yes
+top_srcdir = $(abs_top_srcdir)
+srcdir = $(top_srcdir)/$(subdir)
+
+endif
diff --git a/depends/dbcommon/Makefile.global.in b/depends/dbcommon/Makefile.global.in
new file mode 100644
index 0000000..2d45b54
--- /dev/null
+++ b/depends/dbcommon/Makefile.global.in
@@ -0,0 +1,40 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -*-makefile-*-
+#------------------------------------------------------------------------------
+# A makefile that integrate building this module with hawq
+#------------------------------------------------------------------------------
+
+prefix := @prefix@
+enable_debug    = @enable_debug@
+enable_coverage = @enable_coverage@
+with_dbcommon = @with_dbcommon@
+
+# Support for VPATH builds
+vpath_build = @vpath_build@
+abs_top_srcdir = @abs_top_srcdir@
+abs_top_builddir = @abs_top_builddir@
+
+ifneq ($(vpath_build),yes)
+top_srcdir = $(top_builddir)
+srcdir = .
+else # vpath_build = yes
+top_srcdir = $(abs_top_srcdir)
+srcdir = $(top_srcdir)/$(subdir)
+VPATH = $(srcdir)
+endif
diff --git a/depends/dbcommon/README b/depends/dbcommon/README
index 207ecb0..25582c5 100644
--- a/depends/dbcommon/README
+++ b/depends/dbcommon/README
@@ -3,7 +3,7 @@
     cd dbcommon
     mkdir build
     cd build
-    ../bootstrap --prefix=/opt/dependency/package (default)
+    ../bootstrap --prefix=/usr/local/hawq (default)
 
 ## Build
 
diff --git a/depends/dbcommon/bootstrap b/depends/dbcommon/bootstrap
index 1554c7b..51a8a24 100755
--- a/depends/dbcommon/bootstrap
+++ b/depends/dbcommon/bootstrap
@@ -1,20 +1,45 @@
-#!/bin/sh
-
+#!/bin/bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
 die() {
     echo "$@" 1>&2 ; exit 1
 }
 
-arg ()
-{
-    echo "$1" | sed "s/^${2-[^=]*=}//"
+arg () {
+    echo "$1" | sed "s/^${2-[^=]*=}//" | sed "s/:/;/g"
 }
 
+export CMAKE_INCLUDE_PATH=/usr/local/include
+export CMAKE_LIBRARY_PATH=/usr/local/lib
+
 # Detect directory information.
 source_dir=`cd "\`dirname \"$0\"\`";pwd`
 binary_dir=`pwd`
 
 # Choose the default install prefix.
-default_prefix="/opt/dependency/package"
+default_prefix=${source_dir}/dist
+
+# Choose the default dependency install prefix
+default_dependency=${DEPENDENCY_INSTALL_PREFIX}
+
+if [ x"${default_dependency}" = x"" ]; then
+    default_dependency="/opt/dependency"
+fi
 
 # Display bootstrap usage
 usage() {
@@ -25,27 +50,52 @@
     --help                          print this message
     --prefix=PREFIX                 install files in tree rooted at PREFIX
                                     ['"${default_prefix}"']
-    --enable-coverage               enable code coverage, must be used together with --enable-debug
+    --dependency=DIRs               specify the dependencies at DIRs, separated by colon
+                                    ['"${default_dependency}"']
     --enable-debug                  enable debug build
-    --enable-avx                    enable avx for vector instruction optimization
+    --enable-boost                  force to enable boost
+    --enable-coverage               enable build with code coverage support
+    --enable-libc++                 using libc++ instead of libstdc++, only valid for clang compiler
+
+Dependencies:
+    c/c++ compiler
+    GNU make
+    cmake           http://www.cmake.org/
+    protobuf        https://code.google.com/p/protobuf/
+    kerberos        http://web.mit.edu/kerberos/
+    libgsasl        http://www.gnu.org/software/gsasl/
+    libxml2         http://xmlsoft.org/
+    libuuid         http://sourceforge.net/projects/libuuid/
+    boost 1.53+     http://www.boost.org/
+                    [boost is not required if c++ compiler is g++ 4.6.0+ or clang++ with stdc++]
+
+Example:
+    mkdir build
+    cd build
+    ../bootstrap --prefix=/path/to/install --dependency=/path/to/protobuf:/path/to/kerberos/:path/to/others
+    make
+    make install
 '
     exit 10
 }
 
 # Parse arguments
-prefix_dir="${default_prefix}"
+prefix_dirs="${default_prefix}"
+dependency_dir="${default_dependency}"
 build_type="Release"
+enable_boost="OFF"
 enable_coverage="OFF"
-enable_avx="ON"
+enable_clang_lib="OFF"
 while test $# != 0; do
     case "$1" in
     --prefix=*) dir=`arg "$1"`
-                prefix_dir="$dir";;
-	--enable-coverage) enable_coverage="ON"
-                       build_type="Debug";;
-    --enable-debug) build_type="Debug";;
-    --enable-avx=*) avx=`arg "$1"`
-                    enable_avx="$avx";;
+                prefix_dirs="$dir";;
+    --dependency=*) dir=`arg "$1"`
+                dependency_dir="$dir";;
+    --enable-debug) enable_build="ON";;
+    --enable-boost) enable_boost="ON";;
+    --enable-coverage) enable_coverage="ON";;
+    --enable-libc++) enable_clang_lib="ON";;
     --help) usage ;;
     *) die "Unknown option: $1" ;;
     esac
@@ -53,12 +103,7 @@
 done
 
 if [ ${source_dir} = ${binary_dir} ]; then
-	die "cannot build the project in the source directory! Out-of-source build is enforced!"
-fi
-
-enable_avx_upper=`echo "${enable_avx}" | tr [a-z] [A-Z]`
-if [ ${enable_avx_upper} != "ON" ] && [ ${enable_avx_upper} != "OFF" ]; then
-    die "unknown value for option enable-avx: ${enable_avx}, valid options are: on and off"
+    die "cannot build the project in the source directory! Out-of-source build is enforced!"
 fi
 
 # Check clang compiler
@@ -74,19 +119,23 @@
 cxx_compiler=`which ${CXX}`
 cmake=`which cmake`
 
-if [ ! -x ${c_compiler} ]; then
+if [[ ! -x ${c_compiler} ]]; then
     die "cannot found c compiler"
 fi
 
-if [ ! -x ${cxx_compiler} ]; then
-    die "cannot found c++ compiler"
+if [[ ! -x ${cxx_compiler} ]]; then
+    die "cannot found cplusplus compiler"
 fi
 
-if [ ! -x ${cmake} ]; then
+if [[ ! -x ${cmake} ]]; then
     die "cannot found cmake"
 fi
 
 # Configure 
-${cmake} -DCMAKE_BUILD_TYPE=${build_type} -DCMAKE_INSTALL_PREFIX=${prefix_dir} -DCMAKE_C_COMPILER=${c_compiler} -DCMAKE_CXX_COMPILER=${cxx_compiler} -DENABLE_COVERAGE=${enable_coverage} -DENABLE_AVX=${enable_avx_upper} ${source_dir} || die "failed to configure the project"
+${cmake} -DENABLE_DEBUG=${enable_build} -DCMAKE_INSTALL_PREFIX=${prefix_dirs} \
+    -DCMAKE_C_COMPILER=${c_compiler} -DCMAKE_CXX_COMPILER=${cxx_compiler} \
+    -DCMAKE_PREFIX_PATH=${dependency_dir} -DENABLE_BOOST=${enable_boost} \
+    -DENABLE_COVERAGE=${enable_coverage} -DENABLE_LIBCPP=${enable_clang_lib} ${source_dir} \
+    || die "failed to configure the project"
 
 echo 'bootstrap success. Run "make" to build.'
diff --git a/depends/dbcommon/src/CMakeLists.txt b/depends/dbcommon/src/CMakeLists.txt
index d322580..67a1b57 100644
--- a/depends/dbcommon/src/CMakeLists.txt
+++ b/depends/dbcommon/src/CMakeLists.txt
@@ -107,10 +107,11 @@
 INCLUDE_DIRECTORIES(${dbcommon_ROOT_DIR})
 INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/codegen/src)
 INCLUDE_DIRECTORIES(${GLOG_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/include)
+INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/include)
 INCLUDE_DIRECTORIES(/usr/local/include)
-LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/lib)
+LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/lib)
 LINK_DIRECTORIES(/usr/local/lib)
+LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../libhdfs3/build/install/usr/local/hawq/lib)
 
 ADD_LIBRARY(dbcommon-shared SHARED
         ${TEMPLATE_GENERATED_HEADERS}
diff --git a/depends/dbcommon/test/CMakeLists.txt b/depends/dbcommon/test/CMakeLists.txt
index 6552ff9..54d7599 100644
--- a/depends/dbcommon/test/CMakeLists.txt
+++ b/depends/dbcommon/test/CMakeLists.txt
@@ -8,10 +8,10 @@
 INCLUDE_DIRECTORIES(${dbcommon_ROOT_DIR})
 INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/codegen/src)
 INCLUDE_DIRECTORIES(${GLOG_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/include)
+INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/include)
 
 LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/src)
-LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/lib)
+LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/lib)
 
 ADD_SUBDIRECTORY(unit)
 
diff --git a/depends/storage/CMake/FindJSON.cmake b/depends/storage/CMake/FindJSON.cmake
index a334948..ff5008b 100644
--- a/depends/storage/CMake/FindJSON.cmake
+++ b/depends/storage/CMake/FindJSON.cmake
@@ -20,7 +20,7 @@
 #  License text for the above reference.)
 
 # Look for the header file.
-find_path(JSON_INCLUDE_DIR NAMES json/json.h)
+find_path(JSON_INCLUDE_DIR NAMES json-c/json.h)
 mark_as_advanced(JSON_INCLUDE_DIR)
 
 # Look for the library (sorted from most current/relevant entry to least).
diff --git a/depends/storage/CMake/Options.cmake b/depends/storage/CMake/Options.cmake
index 36841ea..8be997e 100644
--- a/depends/storage/CMake/Options.cmake
+++ b/depends/storage/CMake/Options.cmake
@@ -5,7 +5,8 @@
 ##############################################################################
 # Setup build and dependencies information 
 ##############################################################################
-SET(DEPENDENCY_INSTALL_PREFIX "/opt/dependency")
+#SET(DEPENDENCY_INSTALL_PREFIX "/opt/dependency")
+SET(DEPENDENCY_INSTALL_PREFIX "/usr/local/hawq")
 IF($ENV{DEPENDENCY_INSTALL_PREFIX})
 	SET(DEPENDENCY_INSTALL_PREFIX $ENV{DEPENDENCY_INSTALL_PREFIX})
 ENDIF()
@@ -19,8 +20,10 @@
 SET(CMAKE_PREFIX_PATH "${DEPENDENCY_INSTALL_PREFIX}/package" ${CMAKE_PREFIX_PATH})
 SET(CMAKE_PREFIX_PATH "${DEPENDENCY_INSTALL_PREFIX}/tools" ${CMAKE_PREFIX_PATH})
 
-SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/package/lib:${DEPENDENCY_LIBRARY_PATH}")
-SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/package/lib64:${DEPENDENCY_LIBRARY_PATH}")
+#SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/package/lib:${DEPENDENCY_LIBRARY_PATH}")
+#SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/package/lib64:${DEPENDENCY_LIBRARY_PATH}")
+SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/lib:${DEPENDENCY_LIBRARY_PATH}")
+SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/lib64:${DEPENDENCY_LIBRARY_PATH}")
 
 ##############################################################################
 # Setup build flags
diff --git a/depends/storage/CMakeLists.txt b/depends/storage/CMakeLists.txt
index d2a64c6..e8eb968 100644
--- a/depends/storage/CMakeLists.txt
+++ b/depends/storage/CMakeLists.txt
@@ -1,10 +1,13 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 PROJECT(storage)
 
+SET(CMAKE_VERBOSE_MAKEFILE ON CACHE STRING "Verbose build." FORCE)
+
 ##############################################################################
 # General CMake initialization
 ##############################################################################
 SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
+SET(DOXYFILE_PATH ${CMAKE_SOURCE_DIR}/docs)
 SET(CMAKE_VERBOSE_MAKEFILE OFF CACHE STRING "Verbose build." FORCE)
 
 IF(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
diff --git a/depends/storage/Makefile b/depends/storage/Makefile
new file mode 100644
index 0000000..3a2508e
--- /dev/null
+++ b/depends/storage/Makefile
@@ -0,0 +1,76 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -*-makefile-*-
+#------------------------------------------------------------------------------
+# A makefile that integrate building this module with hawq
+#------------------------------------------------------------------------------
+subdir = depends/storage
+top_builddir = ../../
+include Makefile.global
+
+PRE_CFG_ARG =
+# get argument for running ../boostrap
+ifeq ($(enable_debug), yes)
+	PRE_CFG_ARG += --enable-debug
+endif # enable_debug
+
+ifeq ($(enable_coverage), yes)
+	PRE_CFG_ARG += --enable-coverage
+endif # enable_coverage
+
+##########################################################################
+#
+.PHONY: build all install distclean maintainer-clean clean pre-config
+
+ifeq ($(with_storage), yes)
+
+# We will need to install it temporarily under build/install for hawq building.
+all: build
+	cd $(top_builddir)/$(subdir)/build; mkdir -p install; \
+	$(MAKE) DESTDIR=$(abs_top_builddir)/$(subdir)/build/install install
+
+install: build
+	cd $(top_builddir)/$(subdir)/build && $(MAKE) install
+
+distclean:
+	rm -rf $(top_builddir)/$(subdir)/build
+
+maintainer-clean: distclean
+
+clean:
+	if [ -d $(top_builddir)/$(subdir)/build ]; then \
+		cd $(top_builddir)/$(subdir)/build && $(MAKE) clean && rm -f storage_build_timestamp; \
+	fi
+
+build: pre-config
+	cd $(top_builddir)/$(subdir)/build && $(MAKE)
+
+# trigger bootstrap only once.
+pre-config:
+	cd $(top_builddir)/$(subdir)/; \
+	mkdir -p build; \
+	cd build; \
+	if [ ! -f storage_build_timestamp ]; then \
+		$(abs_top_srcdir)/$(subdir)/bootstrap --prefix=$(prefix) $(PRE_CFG_ARG) && touch storage_build_timestamp; \
+	fi
+
+else
+
+all install distclean maintainer-clean clean pre-config:
+
+endif
diff --git a/depends/storage/Makefile.global b/depends/storage/Makefile.global
new file mode 100644
index 0000000..a2e43f1
--- /dev/null
+++ b/depends/storage/Makefile.global
@@ -0,0 +1,40 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -*-makefile-*-
+#------------------------------------------------------------------------------
+# A makefile that integrate building this module with hawq
+#------------------------------------------------------------------------------
+
+prefix := /usr/local/hawq
+enable_debug    = no
+enable_coverage = no
+with_storage = yes
+
+# Support for VPATH builds
+vpath_build = no
+abs_top_srcdir = /Users/tuyu/hawq
+abs_top_builddir = /Users/tuyu/hawq
+
+ifneq ($(vpath_build),yes)
+top_srcdir = $(top_builddir)
+srcdir = .
+else # vpath_build = yes
+top_srcdir = $(abs_top_srcdir)
+srcdir = $(top_srcdir)/$(subdir)
+
+endif
diff --git a/depends/storage/Makefile.global.in b/depends/storage/Makefile.global.in
new file mode 100644
index 0000000..96791c3
--- /dev/null
+++ b/depends/storage/Makefile.global.in
@@ -0,0 +1,40 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -*-makefile-*-
+#------------------------------------------------------------------------------
+# A makefile that integrate building this module with hawq
+#------------------------------------------------------------------------------
+
+prefix := @prefix@
+enable_debug    = @enable_debug@
+enable_coverage = @enable_coverage@
+with_storage = @with_storage@
+
+# Support for VPATH builds
+vpath_build = @vpath_build@
+abs_top_srcdir = @abs_top_srcdir@
+abs_top_builddir = @abs_top_builddir@
+
+ifneq ($(vpath_build),yes)
+top_srcdir = $(top_builddir)
+srcdir = .
+else # vpath_build = yes
+top_srcdir = $(abs_top_srcdir)
+srcdir = $(top_srcdir)/$(subdir)
+VPATH = $(srcdir)
+endif
diff --git a/depends/storage/README b/depends/storage/README
index f67eafe..86c7984 100644
--- a/depends/storage/README
+++ b/depends/storage/README
@@ -4,7 +4,7 @@
     cd storage
     mkdir build
     cd build
-    ../bootstrap --prefix=/opt/dependency/package (default)
+	../bootstrap --prefix=/usr/local/hawq (default)
 
 ## Build
 
diff --git a/depends/storage/bootstrap b/depends/storage/bootstrap
index 36fd66c..51a8a24 100755
--- a/depends/storage/bootstrap
+++ b/depends/storage/bootstrap
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -16,22 +16,30 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-
 die() {
     echo "$@" 1>&2 ; exit 1
 }
 
-arg ()
-{
-    echo "$1" | sed "s/^${2-[^=]*=}//"
+arg () {
+    echo "$1" | sed "s/^${2-[^=]*=}//" | sed "s/:/;/g"
 }
 
+export CMAKE_INCLUDE_PATH=/usr/local/include
+export CMAKE_LIBRARY_PATH=/usr/local/lib
+
 # Detect directory information.
 source_dir=`cd "\`dirname \"$0\"\`";pwd`
 binary_dir=`pwd`
 
 # Choose the default install prefix.
-default_prefix="/opt/dependency/package"
+default_prefix=${source_dir}/dist
+
+# Choose the default dependency install prefix
+default_dependency=${DEPENDENCY_INSTALL_PREFIX}
+
+if [ x"${default_dependency}" = x"" ]; then
+    default_dependency="/opt/dependency"
+fi
 
 # Display bootstrap usage
 usage() {
@@ -42,27 +50,52 @@
     --help                          print this message
     --prefix=PREFIX                 install files in tree rooted at PREFIX
                                     ['"${default_prefix}"']
-    --enable-coverage               enable code coverage, must be used together with --enable-debug
+    --dependency=DIRs               specify the dependencies at DIRs, separated by colon
+                                    ['"${default_dependency}"']
     --enable-debug                  enable debug build
-    --enable-avx                    enable avx for vector instruction optimization
+    --enable-boost                  force to enable boost
+    --enable-coverage               enable build with code coverage support
+    --enable-libc++                 using libc++ instead of libstdc++, only valid for clang compiler
+
+Dependencies:
+    c/c++ compiler
+    GNU make
+    cmake           http://www.cmake.org/
+    protobuf        https://code.google.com/p/protobuf/
+    kerberos        http://web.mit.edu/kerberos/
+    libgsasl        http://www.gnu.org/software/gsasl/
+    libxml2         http://xmlsoft.org/
+    libuuid         http://sourceforge.net/projects/libuuid/
+    boost 1.53+     http://www.boost.org/
+                    [boost is not required if c++ compiler is g++ 4.6.0+ or clang++ with stdc++]
+
+Example:
+    mkdir build
+    cd build
+    ../bootstrap --prefix=/path/to/install --dependency=/path/to/protobuf:/path/to/kerberos/:path/to/others
+    make
+    make install
 '
     exit 10
 }
 
 # Parse arguments
-prefix_dir="${default_prefix}"
+prefix_dirs="${default_prefix}"
+dependency_dir="${default_dependency}"
 build_type="Release"
+enable_boost="OFF"
 enable_coverage="OFF"
-enable_avx="ON"
+enable_clang_lib="OFF"
 while test $# != 0; do
     case "$1" in
     --prefix=*) dir=`arg "$1"`
-                prefix_dir="$dir";;
-	--enable-coverage) enable_coverage="ON"
-                       build_type="Debug";;
-    --enable-debug) build_type="Debug";;
-    --enable-avx=*) avx=`arg "$1"`
-                    enable_avx="$avx";;
+                prefix_dirs="$dir";;
+    --dependency=*) dir=`arg "$1"`
+                dependency_dir="$dir";;
+    --enable-debug) enable_build="ON";;
+    --enable-boost) enable_boost="ON";;
+    --enable-coverage) enable_coverage="ON";;
+    --enable-libc++) enable_clang_lib="ON";;
     --help) usage ;;
     *) die "Unknown option: $1" ;;
     esac
@@ -70,12 +103,7 @@
 done
 
 if [ ${source_dir} = ${binary_dir} ]; then
-	die "cannot build the project in the source directory! Out-of-source build is enforced!"
-fi
-
-enable_avx_upper=`echo "${enable_avx}" | tr [a-z] [A-Z]`
-if [ ${enable_avx_upper} != "ON" ] && [ ${enable_avx_upper} != "OFF" ]; then
-    die "unknown value for option enable-avx: ${enable_avx}, valid options are: on and off"
+    die "cannot build the project in the source directory! Out-of-source build is enforced!"
 fi
 
 # Check clang compiler
@@ -91,19 +119,23 @@
 cxx_compiler=`which ${CXX}`
 cmake=`which cmake`
 
-if [ ! -x ${c_compiler} ]; then
+if [[ ! -x ${c_compiler} ]]; then
     die "cannot found c compiler"
 fi
 
-if [ ! -x ${cxx_compiler} ]; then
-    die "cannot found c++ compiler"
+if [[ ! -x ${cxx_compiler} ]]; then
+    die "cannot found cplusplus compiler"
 fi
 
-if [ ! -x ${cmake} ]; then
+if [[ ! -x ${cmake} ]]; then
     die "cannot found cmake"
 fi
 
 # Configure 
-${cmake} -DCMAKE_BUILD_TYPE=${build_type} -DCMAKE_INSTALL_PREFIX=${prefix_dir} -DCMAKE_C_COMPILER=${c_compiler} -DCMAKE_CXX_COMPILER=${cxx_compiler} -DENABLE_COVERAGE=${enable_coverage} -DENABLE_AVX=${enable_avx_upper} ${source_dir} || die "failed to configure the project"
+${cmake} -DENABLE_DEBUG=${enable_build} -DCMAKE_INSTALL_PREFIX=${prefix_dirs} \
+    -DCMAKE_C_COMPILER=${c_compiler} -DCMAKE_CXX_COMPILER=${cxx_compiler} \
+    -DCMAKE_PREFIX_PATH=${dependency_dir} -DENABLE_BOOST=${enable_boost} \
+    -DENABLE_COVERAGE=${enable_coverage} -DENABLE_LIBCPP=${enable_clang_lib} ${source_dir} \
+    || die "failed to configure the project"
 
 echo 'bootstrap success. Run "make" to build.'
diff --git a/depends/storage/src/CMakeLists.txt b/depends/storage/src/CMakeLists.txt
index dd7ed3b..dd6f1ac 100644
--- a/depends/storage/src/CMakeLists.txt
+++ b/depends/storage/src/CMakeLists.txt
@@ -42,11 +42,16 @@
 AUTO_SOURCES(testutil_HEADER "*.h" "${storage_SRC_DIR}/testutil")
 
 INCLUDE_DIRECTORIES(${storage_ROOT_DIR})
-INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/include)
+#INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/include)
+INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/include)
 INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/src)
 INCLUDE_DIRECTORIES(/usr/local/include)
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../univplan/build/install/usr/local/hawq/include)
 LINK_DIRECTORIES(/usr/local/lib)
-LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/lib)
+#LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/lib)
+LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/lib)
+LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../libhdfs3/build/install/usr/local/hawq/lib)
+LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../univplan/build/install/usr/local/hawq/lib)
 
 
 ADD_LIBRARY(storage-shared SHARED ${storage_SOURCES} ${storage_PROTO_SRCS} ${storage_PROTO_HDRS})
diff --git a/depends/storage/test/CMakeLists.txt b/depends/storage/test/CMakeLists.txt
index 2092b56..94b7b7e 100644
--- a/depends/storage/test/CMakeLists.txt
+++ b/depends/storage/test/CMakeLists.txt
@@ -7,7 +7,7 @@
 
 INCLUDE_DIRECTORIES(${storage_ROOT_DIR})
 INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/src)
-INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/include)
+INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/include)
 INCLUDE_DIRECTORIES(/usr/local/include)
 LINK_DIRECTORIES(/usr/local/lib)
 
diff --git a/depends/storage/test/unit/CMakeLists.txt b/depends/storage/test/unit/CMakeLists.txt
index e57aaeb..f922dce 100644
--- a/depends/storage/test/unit/CMakeLists.txt
+++ b/depends/storage/test/unit/CMakeLists.txt
@@ -14,7 +14,7 @@
 INCLUDE_DIRECTORIES(${GTEST_INCLUDE_DIRS})
 
 LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/src)
-LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/lib)
+LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/lib)
 
 ADD_EXECUTABLE(unit EXCLUDE_FROM_ALL
     ${unit_SOURCES}
diff --git a/depends/univplan/CMake/FindJSON.cmake b/depends/univplan/CMake/FindJSON.cmake
index a334948..ff5008b 100644
--- a/depends/univplan/CMake/FindJSON.cmake
+++ b/depends/univplan/CMake/FindJSON.cmake
@@ -20,7 +20,7 @@
 #  License text for the above reference.)
 
 # Look for the header file.
-find_path(JSON_INCLUDE_DIR NAMES json/json.h)
+find_path(JSON_INCLUDE_DIR NAMES json-c/json.h)
 mark_as_advanced(JSON_INCLUDE_DIR)
 
 # Look for the library (sorted from most current/relevant entry to least).
diff --git a/depends/univplan/CMake/Options.cmake b/depends/univplan/CMake/Options.cmake
index 36841ea..8be997e 100644
--- a/depends/univplan/CMake/Options.cmake
+++ b/depends/univplan/CMake/Options.cmake
@@ -5,7 +5,8 @@
 ##############################################################################
 # Setup build and dependencies information 
 ##############################################################################
-SET(DEPENDENCY_INSTALL_PREFIX "/opt/dependency")
+#SET(DEPENDENCY_INSTALL_PREFIX "/opt/dependency")
+SET(DEPENDENCY_INSTALL_PREFIX "/usr/local/hawq")
 IF($ENV{DEPENDENCY_INSTALL_PREFIX})
 	SET(DEPENDENCY_INSTALL_PREFIX $ENV{DEPENDENCY_INSTALL_PREFIX})
 ENDIF()
@@ -19,8 +20,10 @@
 SET(CMAKE_PREFIX_PATH "${DEPENDENCY_INSTALL_PREFIX}/package" ${CMAKE_PREFIX_PATH})
 SET(CMAKE_PREFIX_PATH "${DEPENDENCY_INSTALL_PREFIX}/tools" ${CMAKE_PREFIX_PATH})
 
-SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/package/lib:${DEPENDENCY_LIBRARY_PATH}")
-SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/package/lib64:${DEPENDENCY_LIBRARY_PATH}")
+#SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/package/lib:${DEPENDENCY_LIBRARY_PATH}")
+#SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/package/lib64:${DEPENDENCY_LIBRARY_PATH}")
+SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/lib:${DEPENDENCY_LIBRARY_PATH}")
+SET(DEPENDENCY_LIBRARY_PATH "${DEPENDENCY_INSTALL_PREFIX}/lib64:${DEPENDENCY_LIBRARY_PATH}")
 
 ##############################################################################
 # Setup build flags
diff --git a/depends/univplan/CMakeLists.txt b/depends/univplan/CMakeLists.txt
index f25ad2c..789ec87 100644
--- a/depends/univplan/CMakeLists.txt
+++ b/depends/univplan/CMakeLists.txt
@@ -1,10 +1,13 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 PROJECT(univplan)
 
+SET(CMAKE_VERBOSE_MAKEFILE ON CACHE STRING "Verbose build." FORCE)
+
 ##############################################################################
 # General CMake initialization
 ##############################################################################
 SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
+SET(DOXYFILE_PATH ${CMAKE_SOURCE_DIR}/docs)
 SET(CMAKE_VERBOSE_MAKEFILE OFF CACHE STRING "Verbose build." FORCE)
 
 IF(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
diff --git a/depends/univplan/Makefile b/depends/univplan/Makefile
new file mode 100644
index 0000000..b0c6f47
--- /dev/null
+++ b/depends/univplan/Makefile
@@ -0,0 +1,76 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -*-makefile-*-
+#------------------------------------------------------------------------------
+# A makefile that integrate building this module with hawq
+#------------------------------------------------------------------------------
+subdir = depends/univplan
+top_builddir = ../../
+include Makefile.global
+
+PRE_CFG_ARG =
+# get argument for running ../boostrap
+ifeq ($(enable_debug), yes)
+	PRE_CFG_ARG += --enable-debug
+endif # enable_debug
+
+ifeq ($(enable_coverage), yes)
+	PRE_CFG_ARG += --enable-coverage
+endif # enable_coverage
+
+##########################################################################
+#
+.PHONY: build all install distclean maintainer-clean clean pre-config
+
+ifeq ($(with_univplan), yes)
+
+# We will need to install it temporarily under build/install for hawq building.
+all: build
+	cd $(top_builddir)/$(subdir)/build; mkdir -p install; \
+	$(MAKE) DESTDIR=$(abs_top_builddir)/$(subdir)/build/install install
+
+install: build
+	cd $(top_builddir)/$(subdir)/build && $(MAKE) install
+
+distclean:
+	rm -rf $(top_builddir)/$(subdir)/build
+
+maintainer-clean: distclean
+
+clean:
+	if [ -d $(top_builddir)/$(subdir)/build ]; then \
+		cd $(top_builddir)/$(subdir)/build && $(MAKE) clean && rm -f univplan_build_timestamp; \
+	fi
+
+build: pre-config
+	cd $(top_builddir)/$(subdir)/build && $(MAKE)
+
+# trigger bootstrap only once.
+pre-config:
+	cd $(top_builddir)/$(subdir)/; \
+	mkdir -p build; \
+	cd build; \
+	if [ ! -f univplan_build_timestamp ]; then \
+		$(abs_top_srcdir)/$(subdir)/bootstrap --prefix=$(prefix) $(PRE_CFG_ARG) && touch univplan_build_timestamp; \
+	fi
+
+else
+
+all install distclean maintainer-clean clean pre-config:
+
+endif
diff --git a/depends/univplan/Makefile.global b/depends/univplan/Makefile.global
new file mode 100644
index 0000000..a981862
--- /dev/null
+++ b/depends/univplan/Makefile.global
@@ -0,0 +1,40 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -*-makefile-*-
+#------------------------------------------------------------------------------
+# A makefile that integrate building this module with hawq
+#------------------------------------------------------------------------------
+
+prefix := /usr/local/hawq
+enable_debug    = no
+enable_coverage = no
+with_univplan = yes
+
+# Support for VPATH builds
+vpath_build = no
+abs_top_srcdir = /Users/tuyu/hawq
+abs_top_builddir = /Users/tuyu/hawq
+
+ifneq ($(vpath_build),yes)
+top_srcdir = $(top_builddir)
+srcdir = .
+else # vpath_build = yes
+top_srcdir = $(abs_top_srcdir)
+srcdir = $(top_srcdir)/$(subdir)
+
+endif
diff --git a/depends/univplan/Makefile.global.in b/depends/univplan/Makefile.global.in
new file mode 100644
index 0000000..07bacea
--- /dev/null
+++ b/depends/univplan/Makefile.global.in
@@ -0,0 +1,40 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -*-makefile-*-
+#------------------------------------------------------------------------------
+# A makefile that integrate building this module with hawq
+#------------------------------------------------------------------------------
+
+prefix := @prefix@
+enable_debug    = @enable_debug@
+enable_coverage = @enable_coverage@
+with_univplan = @with_univplan@
+
+# Support for VPATH builds
+vpath_build = @vpath_build@
+abs_top_srcdir = @abs_top_srcdir@
+abs_top_builddir = @abs_top_builddir@
+
+ifneq ($(vpath_build),yes)
+top_srcdir = $(top_builddir)
+srcdir = .
+else # vpath_build = yes
+top_srcdir = $(abs_top_srcdir)
+srcdir = $(top_srcdir)/$(subdir)
+VPATH = $(srcdir)
+endif
diff --git a/depends/univplan/bootstrap b/depends/univplan/bootstrap
index 36fd66c..51a8a24 100755
--- a/depends/univplan/bootstrap
+++ b/depends/univplan/bootstrap
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -16,22 +16,30 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-
 die() {
     echo "$@" 1>&2 ; exit 1
 }
 
-arg ()
-{
-    echo "$1" | sed "s/^${2-[^=]*=}//"
+arg () {
+    echo "$1" | sed "s/^${2-[^=]*=}//" | sed "s/:/;/g"
 }
 
+export CMAKE_INCLUDE_PATH=/usr/local/include
+export CMAKE_LIBRARY_PATH=/usr/local/lib
+
 # Detect directory information.
 source_dir=`cd "\`dirname \"$0\"\`";pwd`
 binary_dir=`pwd`
 
 # Choose the default install prefix.
-default_prefix="/opt/dependency/package"
+default_prefix=${source_dir}/dist
+
+# Choose the default dependency install prefix
+default_dependency=${DEPENDENCY_INSTALL_PREFIX}
+
+if [ x"${default_dependency}" = x"" ]; then
+    default_dependency="/opt/dependency"
+fi
 
 # Display bootstrap usage
 usage() {
@@ -42,27 +50,52 @@
     --help                          print this message
     --prefix=PREFIX                 install files in tree rooted at PREFIX
                                     ['"${default_prefix}"']
-    --enable-coverage               enable code coverage, must be used together with --enable-debug
+    --dependency=DIRs               specify the dependencies at DIRs, separated by colon
+                                    ['"${default_dependency}"']
     --enable-debug                  enable debug build
-    --enable-avx                    enable avx for vector instruction optimization
+    --enable-boost                  force to enable boost
+    --enable-coverage               enable build with code coverage support
+    --enable-libc++                 using libc++ instead of libstdc++, only valid for clang compiler
+
+Dependencies:
+    c/c++ compiler
+    GNU make
+    cmake           http://www.cmake.org/
+    protobuf        https://code.google.com/p/protobuf/
+    kerberos        http://web.mit.edu/kerberos/
+    libgsasl        http://www.gnu.org/software/gsasl/
+    libxml2         http://xmlsoft.org/
+    libuuid         http://sourceforge.net/projects/libuuid/
+    boost 1.53+     http://www.boost.org/
+                    [boost is not required if c++ compiler is g++ 4.6.0+ or clang++ with stdc++]
+
+Example:
+    mkdir build
+    cd build
+    ../bootstrap --prefix=/path/to/install --dependency=/path/to/protobuf:/path/to/kerberos/:path/to/others
+    make
+    make install
 '
     exit 10
 }
 
 # Parse arguments
-prefix_dir="${default_prefix}"
+prefix_dirs="${default_prefix}"
+dependency_dir="${default_dependency}"
 build_type="Release"
+enable_boost="OFF"
 enable_coverage="OFF"
-enable_avx="ON"
+enable_clang_lib="OFF"
 while test $# != 0; do
     case "$1" in
     --prefix=*) dir=`arg "$1"`
-                prefix_dir="$dir";;
-	--enable-coverage) enable_coverage="ON"
-                       build_type="Debug";;
-    --enable-debug) build_type="Debug";;
-    --enable-avx=*) avx=`arg "$1"`
-                    enable_avx="$avx";;
+                prefix_dirs="$dir";;
+    --dependency=*) dir=`arg "$1"`
+                dependency_dir="$dir";;
+    --enable-debug) enable_build="ON";;
+    --enable-boost) enable_boost="ON";;
+    --enable-coverage) enable_coverage="ON";;
+    --enable-libc++) enable_clang_lib="ON";;
     --help) usage ;;
     *) die "Unknown option: $1" ;;
     esac
@@ -70,12 +103,7 @@
 done
 
 if [ ${source_dir} = ${binary_dir} ]; then
-	die "cannot build the project in the source directory! Out-of-source build is enforced!"
-fi
-
-enable_avx_upper=`echo "${enable_avx}" | tr [a-z] [A-Z]`
-if [ ${enable_avx_upper} != "ON" ] && [ ${enable_avx_upper} != "OFF" ]; then
-    die "unknown value for option enable-avx: ${enable_avx}, valid options are: on and off"
+    die "cannot build the project in the source directory! Out-of-source build is enforced!"
 fi
 
 # Check clang compiler
@@ -91,19 +119,23 @@
 cxx_compiler=`which ${CXX}`
 cmake=`which cmake`
 
-if [ ! -x ${c_compiler} ]; then
+if [[ ! -x ${c_compiler} ]]; then
     die "cannot found c compiler"
 fi
 
-if [ ! -x ${cxx_compiler} ]; then
-    die "cannot found c++ compiler"
+if [[ ! -x ${cxx_compiler} ]]; then
+    die "cannot found cplusplus compiler"
 fi
 
-if [ ! -x ${cmake} ]; then
+if [[ ! -x ${cmake} ]]; then
     die "cannot found cmake"
 fi
 
 # Configure 
-${cmake} -DCMAKE_BUILD_TYPE=${build_type} -DCMAKE_INSTALL_PREFIX=${prefix_dir} -DCMAKE_C_COMPILER=${c_compiler} -DCMAKE_CXX_COMPILER=${cxx_compiler} -DENABLE_COVERAGE=${enable_coverage} -DENABLE_AVX=${enable_avx_upper} ${source_dir} || die "failed to configure the project"
+${cmake} -DENABLE_DEBUG=${enable_build} -DCMAKE_INSTALL_PREFIX=${prefix_dirs} \
+    -DCMAKE_C_COMPILER=${c_compiler} -DCMAKE_CXX_COMPILER=${cxx_compiler} \
+    -DCMAKE_PREFIX_PATH=${dependency_dir} -DENABLE_BOOST=${enable_boost} \
+    -DENABLE_COVERAGE=${enable_coverage} -DENABLE_LIBCPP=${enable_clang_lib} ${source_dir} \
+    || die "failed to configure the project"
 
 echo 'bootstrap success. Run "make" to build.'
diff --git a/depends/univplan/src/CMakeLists.txt b/depends/univplan/src/CMakeLists.txt
index f53e3a7..ffc4380 100644
--- a/depends/univplan/src/CMakeLists.txt
+++ b/depends/univplan/src/CMakeLists.txt
@@ -44,9 +44,10 @@
 
 INCLUDE_DIRECTORIES(${univplan_ROOT_DIR})
 INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/src)
-INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/include)
-
-LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/lib)
+INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/include)
+INCLUDE_DIRECTORIES(/usr/local/include)
+LINK_DIRECTORIES(/usr/local/lib)
+LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/lib)
 
 
 ADD_LIBRARY(univplan-shared SHARED
diff --git a/depends/univplan/test/CMakeLists.txt b/depends/univplan/test/CMakeLists.txt
index 088ab7f..a98bb5b 100644
--- a/depends/univplan/test/CMakeLists.txt
+++ b/depends/univplan/test/CMakeLists.txt
@@ -7,10 +7,10 @@
 
 INCLUDE_DIRECTORIES(${univplan_ROOT_DIR})
 INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/src)
-INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/include)
+INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/include)
 
 LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/src)
-LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/package/lib)
+LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/lib)
 
 ADD_SUBDIRECTORY(unit)
 
