Pārlūkot izejas kodu

ENH: Adding cygwin packaging script to release directory.

Brad King 23 gadi atpakaļ
vecāks
revīzija
c1e2b027c0
1 mainītis faili ar 155 papildinājumiem un 0 dzēšanām
  1. 155 0
      Utilities/Release/cmake-cygwin-package.sh

+ 155 - 0
Utilities/Release/cmake-cygwin-package.sh

@@ -0,0 +1,155 @@
+#!/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}