| #!/bin/sh |
| |
| TOP_DIR=`cd \`echo "$0" | sed -n '/\//{s/\/[^\/]*$//;p;}'\`;pwd|dos2unix` |
| SELF_NAME=`basename "$0" .sh` |
| PKG=`echo ${SELF_NAME} | sed -e 's/\-[^\-]*\-[^\-]*$//'` |
| VER=`echo ${SELF_NAME} | sed -e 's/^[^\-]*\-//' -e 's/\-[^\-]*$//'` |
| REL=`echo ${SELF_NAME} | sed -e 's/^[^\-]*\-[^\-]*\-//'` |
| FULLPKG=${PKG}-${VER}-${REL} |
| |
| SOURCE_DIR="${TOP_DIR}/${PKG}-${VER}" |
| BINARY_DIR=${SOURCE_DIR}/.build |
| INSTALL_DIR=${SOURCE_DIR}/.inst |
| SPKG_DIR=${SOURCE_DIR}/.sinst |
| SOURCE_PACKAGE="${TOP_DIR}/${FULLPKG}-src.tar.bz2" |
| SOURCE_TARBALL="${TOP_DIR}/${PKG}-${VER}.tar.bz2" |
| SOURCE_PATCH="${TOP_DIR}/${FULLPKG}.patch" |
| PREFIX="/usr" |
| |
| BINARY_PACKAGE="${TOP_DIR}/${FULLPKG}.tar.bz2" |
| |
| mkdirs() |
| { |
| ( |
| mkdir -p "${BINARY_DIR}" "${INSTALL_DIR}" "${SPKG_DIR}" |
| ) |
| } |
| |
| prep() |
| { |
| ( |
| cd ${TOP_DIR} && |
| tar xvjf "${SOURCE_TARBALL}" && |
| patch -p0 < "${SOURCE_PATCH}" && |
| mkdirs |
| ) |
| } |
| |
| conf() |
| { |
| ( |
| cd ${BINARY_DIR} && |
| ( |
| cat >CMakeCache.txt <<EOF |
| BUILD_TESTING:BOOL=ON |
| EOF |
| ) && |
| ${SOURCE_DIR}/bootstrap --prefix=${PREFIX} --datadir=/share/${PKG}-${VER} \ |
| --docdir=/share/doc/${PKG}-${VER} --mandir=/share/man |
| ) |
| } |
| |
| build() |
| { |
| ( |
| cd ${BINARY_DIR} && |
| make && |
| ./bin/ctest |
| ) |
| } |
| |
| install() |
| { |
| ( |
| cd ${BINARY_DIR} && |
| make install DESTDIR="${INSTALL_DIR}" && |
| mkdir -p ${INSTALL_DIR}${PREFIX}/share/doc/Cygwin && |
| mkdir -p ${INSTALL_DIR}${PREFIX}/share/doc/${PKG}-${VER} && |
| cp ${SOURCE_DIR}/CYGWIN-PATCHES/cmake.README \ |
| ${INSTALL_DIR}${PREFIX}/share/doc/Cygwin/${FULLPKG}.README && |
| touch ${INSTALL_DIR}${PREFIX}/share/doc/${PKG}-${VER}/MANIFEST && |
| cd ${INSTALL_DIR} && |
| FILES=`/usr/bin/find .${PREFIX} -type f |sed 's/^\.\//\//'` && |
| ( |
| cat >> ${INSTALL_DIR}${PREFIX}/share/doc/${PKG}-${VER}/MANIFEST <<EOF |
| ${FILES} |
| EOF |
| ) |
| ) |
| } |
| |
| strip() |
| { |
| ( |
| cd ${INSTALL_DIR} && |
| /usr/bin/find . -name "*.dll" | xargs strip >/dev/null 2>&1 |
| /usr/bin/find . -name "*.exe" | xargs strip >/dev/null 2>&1 |
| true |
| ) |
| } |
| |
| clean() |
| { |
| ( |
| cd ${BINARY_DIR} && |
| make clean |
| ) |
| } |
| |
| pkg() |
| { |
| ( |
| cd ${INSTALL_DIR} && |
| tar cvjf "${BINARY_PACKAGE}" * |
| ) |
| } |
| |
| mkpatch() |
| { |
| ( |
| cd ${SOURCE_DIR} && |
| tar xvjf "${SOURCE_TARBALL}" && |
| mv ${PKG}-${VER} ../${PKG}-${VER}-orig && |
| cd ${TOP_DIR} && |
| diff -urN -x '.build' -x '.inst' -x '.sinst' \ |
| "${PKG}-${VER}-orig" "${PKG}-${VER}" > "${SPKG_DIR}/${FULLPKG}.patch" ; |
| rm -rf "${TOP_DIR}/${PKG}-${VER}-orig" |
| ) |
| } |
| |
| spkg() |
| { |
| ( |
| mkpatch && |
| cp ${SOURCE_TARBALL} ${SPKG_DIR} && |
| cp "$0" ${SPKG_DIR} && |
| cd ${SPKG_DIR} && |
| tar cvjf ${SOURCE_PACKAGE} * |
| ) |
| } |
| |
| finish() |
| { |
| ( |
| rm -rf "${SOURCE_DIR}" |
| ) |
| } |
| |
| case $1 in |
| prep) prep ; STATUS=$? ;; |
| mkdirs) mkdirs ; STATUS=$? ;; |
| conf) conf ; STATUS=$? ;; |
| build) build ; STATUS=$? ;; |
| check) check ; STATUS=$? ;; |
| clean) clean ; STATUS=$? ;; |
| install) install ; STATUS=$? ;; |
| strip) strip ; STATUS=$? ;; |
| package) pkg ; STATUS=$? ;; |
| pkg) pkg ; STATUS=$? ;; |
| mkpatch) mkpatch ; STATUS=$? ;; |
| src-package) spkg ; STATUS=$? ;; |
| spkg) spkg ; STATUS=$? ;; |
| finish) finish ; STATUS=$? ;; |
| all) ( |
| prep && conf && build && install && strip && pkg && spkg && finish ; |
| STATUS=$? |
| ) ;; |
| *) echo "Error: bad arguments" ; exit 1 ;; |
| esac |
| exit ${STATUS} |