| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- #!/bin/sh
- TOP_DIR=`cd \`echo "$0" | sed -n '/\//{s/\/[^\/]*$//;p;}'\`;pwd`
- 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} &&
- ${SOURCE_DIR}/configure --prefix=${PREFIX}
- )
- }
- build()
- {
- (
- cd ${BINARY_DIR} &&
- make
- )
- }
- install()
- {
- (
- cd ${BINARY_DIR} &&
- make install DESTDIR="${INSTALL_DIR}" &&
- mkdir -p ${INSTALL_DIR}${PREFIX}/doc/Cygwin &&
- mkdir -p ${INSTALL_DIR}${PREFIX}/doc/${PKG}-${VER} &&
- cp ${SOURCE_DIR}/CMake.pdf ${INSTALL_DIR}${PREFIX}/doc/${PKG}-${VER} &&
- cp ${SOURCE_DIR}/CMake.rtf ${INSTALL_DIR}${PREFIX}/doc/${PKG}-${VER} &&
- cp ${SOURCE_DIR}/Copyright.txt ${INSTALL_DIR}${PREFIX}/doc/${PKG}-${VER} &&
- cp ${SOURCE_DIR}/CYGWIN-PATCHES/cmake.README \
- ${INSTALL_DIR}${PREFIX}/doc/Cygwin/${FULLPKG}.README &&
- touch ${INSTALL_DIR}${PREFIX}/doc/${PKG}-${VER}/MANIFEST &&
- cd ${INSTALL_DIR} &&
- FILES=`/usr/bin/find .${PREFIX} -type f |sed 's/^\.\//\//'` &&
- (
- cat >> ${INSTALL_DIR}${PREFIX}/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}
|