]> git.lyx.org Git - lyx.git/blobdiff - development/LyX-Mac-binary-release.sh
thinko: if we have requires, do not test package
[lyx.git] / development / LyX-Mac-binary-release.sh
index b48bc8652440613b7a611b12ba3d5bd615c0a34d..96b091233acdb00015cb2f4ffca16e843363687e 100644 (file)
@@ -4,11 +4,15 @@
 
 # This script automates creating universal binaries of LyX on Mac.
 # Author: Bennett Helm (and extended by Konrad Hofbauer)
 
 # This script automates creating universal binaries of LyX on Mac.
 # Author: Bennett Helm (and extended by Konrad Hofbauer)
-# modified by Stephan Witt
-# Last modified: 9 July 2010
+# latest changes by Stephan Witt
+# Last modified: August 2012
 
 
-#Qt4SourceVersion="qt-everywhere-opensource-src-4.7.0-beta1"
-#Qt4Build="qt4.7-beta"
+MAC_API=-cocoa
+Qt4Version=${Qt4Version:-"4.6.3"}
+Qt4SourceVersion="qt-everywhere-opensource-src-${Qt4Version}"
+Qt4BuildSubDir="qt-${Qt4Version}-build${MAC_API}"
+
+unset DYLD_LIBRARY_PATH LD_LIBRARY_PATH
 
 # Prerequisite:
 # * a decent checkout of LyX sources (probably you have it already)
 
 # Prerequisite:
 # * a decent checkout of LyX sources (probably you have it already)
@@ -20,8 +24,8 @@
 #   the hunspell sources placed in a sibling directory (variable HunSpellSourceVersion)
 # * for dictionary deployment (per default thesauri only):
 #   - aspell:   the dictionary files of macports (in /opt/local/share/aspell and /opt/local/lib/aspell-0.60)
 #   the hunspell sources placed in a sibling directory (variable HunSpellSourceVersion)
 # * for dictionary deployment (per default thesauri only):
 #   - aspell:   the dictionary files of macports (in /opt/local/share/aspell and /opt/local/lib/aspell-0.60)
-#   - hunspell: the dictionary files in the sibling directory Dictionaries/dict
-#   - mythes:   the data and idx files in the sibling directory Dictionaries/thes
+#   - hunspell: the dictionary files in the sibling directory dictionaries/dicts
+#   - mythes:   the data and idx files in the sibling directory dictionaries/thes
 
 LyXConfigureOptions="--enable-warnings --enable-optimization=-Os --with-included-gettext --with-x=no"
 AspellConfigureOptions="--enable-warnings --enable-optimization=-O0 --enable-debug --disable-nls --enable-compile-in-filters --disable-pspell-compatibility"
 
 LyXConfigureOptions="--enable-warnings --enable-optimization=-Os --with-included-gettext --with-x=no"
 AspellConfigureOptions="--enable-warnings --enable-optimization=-O0 --enable-debug --disable-nls --enable-compile-in-filters --disable-pspell-compatibility"
@@ -29,9 +33,10 @@ HunspellConfigureOptions="--with-warnings --disable-nls --with-included-gettext
 Qt4ConfigureOptions="-opensource -silent -shared -release -fast -no-exceptions"
 Qt4ConfigureOptions="${Qt4ConfigureOptions} -no-webkit -no-qt3support -no-javascript-jit -no-dbus"
 Qt4ConfigureOptions="${Qt4ConfigureOptions} -nomake examples -nomake demos -nomake docs -nomake tools"
 Qt4ConfigureOptions="-opensource -silent -shared -release -fast -no-exceptions"
 Qt4ConfigureOptions="${Qt4ConfigureOptions} -no-webkit -no-qt3support -no-javascript-jit -no-dbus"
 Qt4ConfigureOptions="${Qt4ConfigureOptions} -nomake examples -nomake demos -nomake docs -nomake tools"
+Qt4ConfigureOptions="${Qt4ConfigureOptions} ${MAC_API}"
 
 aspell_dictionaries="no"
 
 aspell_dictionaries="no"
-hunspell_dictionaries="no"
+hunspell_dictionaries="yes"
 
 aspell_deployment="yes"
 hunspell_deployment="yes"
 
 aspell_deployment="yes"
 hunspell_deployment="yes"
@@ -39,11 +44,41 @@ thesaurus_deployment="yes"
 
 qt4_deployment="yes"
 
 
 qt4_deployment="yes"
 
-MACOSX_DEPLOYMENT_TARGET="10.4" # Tiger support is default
-SDKROOT="/Developer/SDKs/MacOSX10.5.sdk" # Leopard build is default
+if [ -d "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs" ]; then
+       DEVELOPER_SDKS="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+       XCODE_DEVELOPER="/Applications/Xcode.app/Contents/Developer"
+       MACOSX_DEPLOYMENT_TARGET="10.7" # Tiger support is default
+       SDKROOT="${DEVELOPER_SDKS}/MacOSX10.7.sdk" # Leopard build is default
+elif [ -d "/Developer/SDKs" ]; then
+       DEVELOPER_SDKS="/Developer/SDKs"
+       XCODE_DEVELOPER="/Developer"
+       MACOSX_DEPLOYMENT_TARGET="10.4" # Tiger support is default
+       SDKROOT="${DEVELOPER_SDKS}/MacOSX10.5.sdk" # Leopard build is default
+fi
+
+# detection of script home
+LyxSourceDir=$(dirname "$0")
+if [ ! -d "${LyxSourceDir}" ]; then
+       echo Missing LyX source directory.
+       exit 2
+fi
+case "${LyxSourceDir}" in
+/*/development)
+       LyxSourceDir=$(dirname "${LyxSourceDir}")
+       ;;
+/*)
+       ;;
+*/development|development)
+       LyxSourceDir=$(dirname "${LyxSourceDir}")
+       LyxSourceDir=$(cd "${LyxSourceDir}";pwd)
+       ;;
+*)
+       LyxSourceDir=$(cd "${LyxSourceDir}";pwd)
+       ;;
+esac
 
 usage() {
 
 usage() {
-       echo Build script for LyX on Mac OS X
+       echo "*" Build script for LyX on Mac OS X
        echo
        echo Optional arguments:
        echo " --aspell-deployment=yes|no ." default yes
        echo
        echo Optional arguments:
        echo " --aspell-deployment=yes|no ." default yes
@@ -57,14 +92,19 @@ usage() {
        echo
        echo "All other arguments with -- are passed to configure"
        echo "including the defaults: ${LyXConfigureOptions}"
        echo
        echo "All other arguments with -- are passed to configure"
        echo "including the defaults: ${LyXConfigureOptions}"
-       echo
+       if [ -x "${LyxSourceDir}/configure" ]; then
+               echo
+               echo "*" Configure options of LyX
+               echo
+               "${LyxSourceDir}/configure" --help
+       fi
        exit 0
 }
 
 while [ $# -gt 0 ]; do
        case "${1}" in
        --with-qt4-frameworks=*)
        exit 0
 }
 
 while [ $# -gt 0 ]; do
        case "${1}" in
        --with-qt4-frameworks=*)
-               configure_qt4_frameworks=`echo ${1}|cut -d= -f2`
+               configure_qt4_frameworks=$(echo ${1}|cut -d= -f2)
                if [ "$configure_qt4_frameworks" = "yes" ]; then
                        unset QTDIR
                        qt4_deployment="no"
                if [ "$configure_qt4_frameworks" = "yes" ]; then
                        unset QTDIR
                        qt4_deployment="no"
@@ -72,24 +112,24 @@ while [ $# -gt 0 ]; do
                shift
                ;;
        --with-qt4-dir=*)
                shift
                ;;
        --with-qt4-dir=*)
-               QTDIR=`echo ${1}|cut -d= -f2`
+               QTDIR=$(echo ${1}|cut -d= -f2)
                shift
                ;;
        --with-macosx-target=*)
                shift
                ;;
        --with-macosx-target=*)
-               MACOSX_DEPLOYMENT_TARGET=`echo ${1}|cut -d= -f2`
+               MACOSX_DEPLOYMENT_TARGET=$(echo ${1}|cut -d= -f2)
                shift
                ;;
        --with-sdkroot=*)
                shift
                ;;
        --with-sdkroot=*)
-               SDKROOT=`echo ${1}|cut -d= -f2`
+               SDKROOT=$(echo ${1}|cut -d= -f2)
                case "${SDKROOT}" in
                10.4)
                case "${SDKROOT}" in
                10.4)
-                       SDKROOT="/Developer/SDKs/MacOSX10.4u.sdk"
+                       SDKROOT="${DEVELOPER_SDKS}/MacOSX10.4u.sdk"
                        export CC=gcc-4.0
                        export OBJC=gcc-4.0
                        export CXX=g++-4.0
                        ;;
                        export CC=gcc-4.0
                        export OBJC=gcc-4.0
                        export CXX=g++-4.0
                        ;;
-               10.5|10.6)
-                       SDKROOT="/Developer/SDKs/MacOSX${SDKROOT}.sdk"
+               10.5|10.6|10.7|10.8)
+                       SDKROOT="${DEVELOPER_SDKS}/MacOSX${SDKROOT}.sdk"
                        ;;
                *)
                        usage
                        ;;
                *)
                        usage
@@ -98,37 +138,37 @@ while [ $# -gt 0 ]; do
                shift
                ;;
        --aspell-deployment=*)
                shift
                ;;
        --aspell-deployment=*)
-               aspell_deployment=`echo ${1}|cut -d= -f2`
+               aspell_deployment=$(echo ${1}|cut -d= -f2)
                aspell_dictionaries=$aspell_deployment
                shift
                ;;
        --hunspell-deployment=*)
                aspell_dictionaries=$aspell_deployment
                shift
                ;;
        --hunspell-deployment=*)
-               hunspell_deployment=`echo ${1}|cut -d= -f2`
+               hunspell_deployment=$(echo ${1}|cut -d= -f2)
                hunspell_dictionaries=$hunspell_deployment
                shift
                ;;
        --thesaurus-deployment=*)
                hunspell_dictionaries=$hunspell_deployment
                shift
                ;;
        --thesaurus-deployment=*)
-               thesaurus_deployment=`echo ${1}|cut -d= -f2`
+               thesaurus_deployment=$(echo ${1}|cut -d= -f2)
                shift
                ;;
        --qt4-deployment=*)
                shift
                ;;
        --qt4-deployment=*)
-               qt4_deployment=`echo ${1}|cut -d= -f2`
+               qt4_deployment=$(echo ${1}|cut -d= -f2)
                shift
                ;;
        --with-arch=*)
                shift
                ;;
        --with-arch=*)
-               ARCH=`echo ${1}|cut -d= -f2|tr ',' ' '`
+               ARCH=$(echo ${1}|cut -d= -f2|tr ',' ' ')
                ARCH_LIST="${ARCH_LIST} ${ARCH}"
                shift
                ;;
        --with-dmg-location=*)
                ARCH_LIST="${ARCH_LIST} ${ARCH}"
                shift
                ;;
        --with-dmg-location=*)
-               DMGLocation=`echo ${1}|cut -d= -f2`
+               DMGLocation=$(echo ${1}|cut -d= -f2)
                shift
                ;;
        --with-build-path=*)
                shift
                ;;
        --with-build-path=*)
-               LyxBuildDir=`echo ${1}|cut -d= -f2`
+               LyxBuildDir=$(echo ${1}|cut -d= -f2)
                shift
                ;;
                shift
                ;;
-       --help)
+       --help|--help=*)
                usage
                ;;
        --without-aspell)
                usage
                ;;
        --without-aspell)
@@ -141,6 +181,10 @@ while [ $# -gt 0 ]; do
                hunspell_deployment="no"
                shift
                ;;
                hunspell_deployment="no"
                shift
                ;;
+       --only-package=*)
+               LyxOnlyPackage=$(echo ${1}|cut -d= -f2)
+               shift
+               ;;
        --*)
                LyXConfigureOptions="${LyXConfigureOptions} ${1}"
                shift
        --*)
                LyXConfigureOptions="${LyXConfigureOptions} ${1}"
                shift
@@ -151,66 +195,38 @@ while [ $# -gt 0 ]; do
        esac
 done
 
        esac
 done
 
-# Set these variables -- to
-# (1) the location of your Qt4 installation
-# (2) the location of resulting DMG
-# (3) the version of private aspell installation
-#     (to define the location assign ASpellSourceDir instead)
-# (4) the list of architectures to build for
-
 if [ "${configure_qt4_frameworks}" != "yes" ]; then
        QtInstallDir=${QTDIR:-"/opt/qt4"}
 fi
 QtFrameworkVersion="4"
 ASpellSourceVersion="aspell-0.60.6"
 if [ "${configure_qt4_frameworks}" != "yes" ]; then
        QtInstallDir=${QTDIR:-"/opt/qt4"}
 fi
 QtFrameworkVersion="4"
 ASpellSourceVersion="aspell-0.60.6"
-HunSpellSourceVersion="hunspell-1.2.9"
-Qt4SourceVersion=${Qt4SourceVersion:-"qt-everywhere-opensource-src-4.6.3"}
+HunSpellSourceVersion="hunspell-1.2.12"
 
 ARCH_LIST=${ARCH_LIST:-"ppc i386"}
 
 strip="-strip"
 aspellstrip=
 
 
 ARCH_LIST=${ARCH_LIST:-"ppc i386"}
 
 strip="-strip"
 aspellstrip=
 
-# detection of script home
-LyxSourceDir=${1:-`dirname "$0"`}
-if [ ! -d "${LyxSourceDir}" ]; then
-       echo Missing LyX source directory.
-       exit 2
-fi
-case "${LyxSourceDir}" in
-/*/development)
-       LyxSourceDir=`dirname "${LyxSourceDir}"`
-       ;;
-/*)
-       ;;
-*/development|development)
-       LyxSourceDir=`dirname "${LyxSourceDir}"`
-       LyxSourceDir=`cd "${LyxSourceDir}";pwd`
-       ;;
-*)
-       LyxSourceDir=`cd "${LyxSourceDir}";pwd`
-       ;;
-esac
-
-LyxBuildDir=${LyxBuildDir:-`dirname "${LyxSourceDir}"`/lyx-build}
+LyxBuildDir=${LyxBuildDir:-$(dirname "${LyxSourceDir}")/lyx-build}
 DMGLocation=${DMGLocation:-"${LyxBuildDir}"}
 
 DMGLocation=${DMGLocation:-"${LyxBuildDir}"}
 
-ASpellSourceDir=${ASPELLDIR:-`dirname "${LyxSourceDir}"`/${ASpellSourceVersion}}
+ASpellSourceDir=${ASPELLDIR:-$(dirname "${LyxSourceDir}")/${ASpellSourceVersion}}
 ASpellInstallDir=${ASpellInstallDir:-"${LyxBuildDir}"/SpellChecker.lib}
 ASpellInstallDir=${ASpellInstallDir:-"${LyxBuildDir}"/SpellChecker.lib}
-HunSpellSourceDir=${HUNSPELLDIR:-`dirname "${LyxSourceDir}"`/${HunSpellSourceVersion}}
+HunSpellSourceDir=${HUNSPELLDIR:-$(dirname "${LyxSourceDir}")/${HunSpellSourceVersion}}
 HunSpellInstallDir=${HunSpellInstallDir:-"${LyxBuildDir}"/SpellChecker.lib}
 HunSpellInstallDir=${HunSpellInstallDir:-"${LyxBuildDir}"/SpellChecker.lib}
-Qt4SourceDir=${QT4SOURCEDIR:-`dirname "${LyxSourceDir}"`/${Qt4SourceVersion}}
-Qt4BuildDir=${Qt4BuildDir:-"${LyxBuildDir}"/${Qt4Build:-"qt4-build"}}
-DictionarySourceDir=${DICTIONARYDIR:-`dirname "${LyxSourceDir}"`/Dictionaries}
+Qt4SourceDir=${QT4SOURCEDIR:-$(dirname "${LyxSourceDir}")/${Qt4SourceVersion}}
+Qt4BuildDir=${Qt4BuildDir:-"${LyxBuildDir}"/${Qt4BuildSubDir:-"qt4-build"}}
+DictionarySourceDir=${DICTIONARYDIR:-$(dirname "${LyxSourceDir}")/dictionaries}
+DocumentationDir=$(dirname "${LyxSourceDir}")/Documents
+DmgBackground="${LyxSourceDir}"/development/MacOSX/dmg-background.png
 
 ASpellInstallHdr="${ASpellInstallDir}/include/aspell.h"
 HunSpellInstallHdr="${HunSpellInstallDir}/include/hunspell/hunspell.h"
 
 if [ -z "${LyXVersion}" ]; then
 
 ASpellInstallHdr="${ASpellInstallDir}/include/aspell.h"
 HunSpellInstallHdr="${HunSpellInstallDir}/include/hunspell/hunspell.h"
 
 if [ -z "${LyXVersion}" ]; then
-       LyXVersion=`grep AC_INIT "${LyxSourceDir}"/configure.ac | cut -d, -f2 | tr -d " ()"`
-       LyXVersionSuffix=`echo "${LyXVersion}" | cut -d. -f1-2`
-       LyXVersionSuffix="${LyXVersionSuffix:-${LyXVersion}}"
+       LyXVersion=$(grep AC_INIT "${LyxSourceDir}"/configure.ac | cut -d, -f2 | tr -d " ()")
 fi
 fi
+LyXVersionSuffix=${LyXVersionSuffix:-$(echo "${LyXVersion}" | cut -d. -f1-2)}
 
 LyxName="LyX"
 LyxBase="${LyxName}-${LyXVersion}"
 
 LyxName="LyX"
 LyxBase="${LyxName}-${LyXVersion}"
@@ -221,8 +237,6 @@ LyxAppPrefix="${LyxAppDir}.app"
 # if zip file is needed... remove the comment sign
 #LyxAppZip="${LyxAppPrefix}.zip"
 
 # if zip file is needed... remove the comment sign
 #LyxAppZip="${LyxAppPrefix}.zip"
 
-BuildSystem=`"${LyxSourceDir}/config/config.guess"`
-
 # ---------------------------------
 # DON'T MODIFY ANYTHING BELOW HERE!
 # ---------------------------------
 # ---------------------------------
 # DON'T MODIFY ANYTHING BELOW HERE!
 # ---------------------------------
@@ -232,27 +246,26 @@ QtLibraries="QtSvg QtXml QtGui QtNetwork QtCore"
 
 DMGNAME="${LyxBase}"
 DMGSIZE="550m"
 
 DMGNAME="${LyxBase}"
 DMGSIZE="550m"
-BACKGROUND="${LyxAppDir}.app/Contents/Resources/images/banner.png"
 
 # Check for existing SDKs
 
 # Check for existing SDKs
-SDKs=`echo /Developer/SDKs/MacOSX10*sdk`
-case "$SDKs" in
-${SDKROOT})
+SDKs=$(echo ${DEVELOPER_SDKS}/MacOSX10*sdk)
+case $SDKs in
+*${SDKROOT}*)
        ;;
 *10.6*)
        MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET:-"10.5"}; export MACOSX_DEPLOYMENT_TARGET
        case "${MACOSX_DEPLOYMENT_TARGET}" in
        10.6)
        ;;
 *10.6*)
        MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET:-"10.5"}; export MACOSX_DEPLOYMENT_TARGET
        case "${MACOSX_DEPLOYMENT_TARGET}" in
        10.6)
-               SDKROOT="/Developer/SDKs/MacOSX10.6.sdk"; export SDKROOT
+               SDKROOT="${DEVELOPER_SDKS}/MacOSX10.6.sdk"; export SDKROOT
                ;;
        10.5|10.4)
                ;;
        10.5|10.4)
-               SDKROOT=${SDKROOT:-"/Developer/SDKs/MacOSX10.5.sdk"}; export SDKROOT
+               SDKROOT=${SDKROOT:-"${DEVELOPER_SDKS}/MacOSX10.5.sdk"}; export SDKROOT
                ;;
        esac
        ;;
 *10.5*)
        MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET:-"10.4"}; export MACOSX_DEPLOYMENT_TARGET
                ;;
        esac
        ;;
 *10.5*)
        MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET:-"10.4"}; export MACOSX_DEPLOYMENT_TARGET
-       SDKROOT=${SDKROOT:-"/Developer/SDKs/MacOSX10.5.sdk"}; export SDKROOT
+       SDKROOT=${SDKROOT:-"${DEVELOPER_SDKS}/MacOSX10.5.sdk"}; export SDKROOT
        ;;
 *)
        echo Unknown or missing SDK for Mac OS X.
        ;;
 *)
        echo Unknown or missing SDK for Mac OS X.
@@ -269,83 +282,13 @@ MYCFLAGS="-mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}"
 HostSystem_i386="i686-apple-darwin8"
 HostSystem_ppc="powerpc-apple-darwin8"
 
 HostSystem_i386="i686-apple-darwin8"
 HostSystem_ppc="powerpc-apple-darwin8"
 
-updateDictionaries() {
-       TMP_DIR="/tmp/lyx-build-$$"
-       mkdir -p "$1"/dict "$1"/thes
-       mkdir -p "$TMP_DIR" && (
-               for pack in "$1"/*.zip ; do
-                       case "${pack}" in
-                       *de_DE-pack.zip)
-                               cd "$TMP_DIR" && unzip "${pack}" de_DE_comb.zip thes_de_DE_v2.zip
-                               cd "$1"/dict && unzip -o "$TMP_DIR"/de_DE_comb.zip &&\
-                                       for suffix in .aff .dic ; do mv de_DE_comb$suffix de_DE$suffix; done
-                               cd "$1"/thes && unzip -o "$TMP_DIR"/thes_de_DE_v2.zip
-                               ;;
-                       *pl_PL-pack.zip)
-                               cd "$TMP_DIR" && unzip "${pack}" pl_PL.zip thes_pl_PL_v2.zip
-                               cd "$1"/dict && unzip -o "$TMP_DIR"/pl_PL.zip
-                               cd "$1"/thes && unzip -o "$TMP_DIR"/thes_pl_PL_v2.zip
-                               ;;
-                       *fr_FR-pack.zip)
-                               cd "$TMP_DIR" && unzip "${pack}" fr_FR.zip thes_fr_FR_v2.zip
-                               cd "$1"/dict && unzip -o "$TMP_DIR"/fr_FR.zip
-                               cd "$1"/thes && unzip -o "$TMP_DIR"/thes_fr_FR_v2.zip
-                               ;;
-                       *es_ES-pack.zip)
-                               cd "$TMP_DIR" && unzip "${pack}" es_ES.zip es_MX.zip thes_es_ES_v2.zip
-                               cd "$1"/dict && unzip -o "$TMP_DIR"/es_ES.zip
-                               cd "$1"/dict && unzip -o "$TMP_DIR"/es_MX.zip
-                               cd "$1"/thes && unzip -o "$TMP_DIR"/thes_es_ES_v2.zip
-                               ;;
-                       *pt_PT-pack.zip)
-                               cd "$TMP_DIR" && unzip "${pack}" pt_PT.zip
-                               cd "$1"/dict && unzip -o "$TMP_DIR"/pt_PT.zip
-                               cd "$1"/dict && unzip -o "$1"/pt_BR.zip
-                               cd "$1"/thes && unzip -o "$1"/thes_pt_PT_v2.zip
-                               ;;
-                       *it_IT-pack.zip)
-                               cd "$TMP_DIR" && unzip "${pack}" it_IT.zip
-                               cd "$1"/dict && unzip -o "$TMP_DIR"/it_IT.zip
-                               cd "$1"/thes && unzip -o "$1"/thes_it_IT_v2.zip
-                               ;;
-                       *ru_RU-pack.zip)
-                               cd "$TMP_DIR" && unzip "${pack}" ru_RU.zip
-                               cd "$1"/dict && unzip -o "$TMP_DIR"/ru_RU.zip
-                               cd "$1"/thes && tar xvf "$1"/thes_ru_RU_v2.tar.bz2
-                               ;;
-                       *en_EN-pack.zip)
-                               cd "$TMP_DIR" && unzip "${pack}" en_AU.zip en_CA.zip en_GB.zip en_NZ.zip en_US.zip
-                               for zipfile in en_AU.zip en_CA.zip en_GB.zip en_NZ.zip en_US.zip ; do
-                                       ( cd "$1"/dict && unzip -o "$TMP_DIR/$zipfile" )
-                               done
-                               cd "$1"/thes && unzip -o "$1"/thes_en_US_v2.zip
-                               ;;
-                       XXXX*-pack*)
-                               cd "$TMP_DIR" && unzip -l "${pack}" | while read len date time zipfile ; do
-                                       case "$zipfile" in
-                                       thes*_v2.zip)
-                                               echo "$zipfile"
-                                               cd "$TMP_DIR" && unzip -o "${pack}" "$zipfile"
-                                               cd "$1"/thes && unzip -o "$TMP_DIR"/"$zipfile"
-                                               ;;
-                                       [a-z][a-z]_[A-Z][A-Z].zip)
-                                               echo "$zipfile"
-                                               cd "$TMP_DIR" && unzip -o "${pack}" "$zipfile"
-                                               cd "$1"/dict && unzip -o "$TMP_DIR"/"$zipfile"
-                                               ;;
-                                       esac
-                               done
-                               # echo Ignore dictionary package `basename "${pack}"`
-                               ;;
-                       esac
-               done
-       )
-       rm -rf "$TMP_DIR"
-}
-
-if [ "${configure_qt4_frameworks}" != "yes" -a -d "${Qt4SourceDir}" -a ! -d "${Qt4BuildDir}" ]; then
+if [ "${configure_qt4_frameworks}" != "yes" -a -d "${Qt4SourceDir}" -a ! \( -d "${Qt4BuildDir}" -a -d "${QtInstallDir}" \) ]; then
        echo Build Qt4 library ${Qt4SourceDir}
        echo Build Qt4 library ${Qt4SourceDir}
-
+       if [ "${QtInstallDir}" = "${Qt4BuildDir}" ]; then
+               echo Bad install directory for Qt.
+               echo Must be different from build directory "${Qt4BuildDir}".
+               exit 1
+       fi
        (
                mkdir -p "${Qt4BuildDir}" && cd "${Qt4BuildDir}"
                for arch in ${ARCH_LIST} ; do
        (
                mkdir -p "${Qt4BuildDir}" && cd "${Qt4BuildDir}"
                for arch in ${ARCH_LIST} ; do
@@ -353,7 +296,6 @@ if [ "${configure_qt4_frameworks}" != "yes" -a -d "${Qt4SourceDir}" -a ! -d "${Q
                done
                echo configure options:
                echo ${Qt4ConfigureOptions} ${ARCHS} -prefix "${QtInstallDir}"
                done
                echo configure options:
                echo ${Qt4ConfigureOptions} ${ARCHS} -prefix "${QtInstallDir}"
-
                echo yes | "${Qt4SourceDir}"/configure ${Qt4ConfigureOptions} ${ARCHS} -prefix "${QtInstallDir}"
                make && make install
        )
                echo yes | "${Qt4SourceDir}"/configure ${Qt4ConfigureOptions} ${ARCHS} -prefix "${QtInstallDir}"
                make && make install
        )
@@ -366,14 +308,11 @@ if [ "${configure_qt4_frameworks}" != "yes" -a -d "${Qt4SourceDir}" -a ! -d "${Q
        )
 fi
 
        )
 fi
 
-# updateDictionaries "${DictionarySourceDir}"
-# exit
-
 if [ -d "${HunSpellSourceDir}" -a ! -f "${HunSpellInstallHdr}" ]; then
        # we have a private HunSpell source tree at hand...
        # so let's build and install it
        if [ -z "${HunSpellVersion}" ]; then
 if [ -d "${HunSpellSourceDir}" -a ! -f "${HunSpellInstallHdr}" ]; then
        # we have a private HunSpell source tree at hand...
        # so let's build and install it
        if [ -z "${HunSpellVersion}" ]; then
-               HunSpellVersion=`grep AC_INIT "${HunSpellSourceDir}"/configure.ac | cut -d, -f2|tr -d " ()"`
+               HunSpellVersion=$(grep AC_INIT "${HunSpellSourceDir}"/configure.ac | cut -d, -f2|tr -d " ()")
        fi
 
        HunSpellName="Hunspell"
        fi
 
        HunSpellName="Hunspell"
@@ -394,11 +333,10 @@ if [ -d "${HunSpellSourceDir}" -a ! -f "${HunSpellInstallHdr}" ]; then
                make distclean
                CPPFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}"; export CPPFLAGS
                LDFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}"; export LDFLAGS
                make distclean
                CPPFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}"; export CPPFLAGS
                LDFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}"; export LDFLAGS
-               HOSTSYSTEM=`eval "echo \\$HostSystem_$arch"`
+               HOSTSYSTEM=$(eval "echo \\$HostSystem_$arch")
                "${HunSpellSourceDir}/configure"\
                        --prefix="${HunSpellInstallDir}"\
                        ${HunspellConfigureOptions}
                "${HunSpellSourceDir}/configure"\
                        --prefix="${HunSpellInstallDir}"\
                        ${HunspellConfigureOptions}
-                       #--host="${HOSTSYSTEM}" ${BuildSystem:+"--build=${BuildSystem}"}
                make && make install${strip}
                for file in ${FILE_LIST} ; do
                        if [ -f "${HunSpellInstallDir}"/lib/${file} ]; then
                make && make install${strip}
                for file in ${FILE_LIST} ; do
                        if [ -f "${HunSpellInstallDir}"/lib/${file} ]; then
@@ -437,7 +375,7 @@ if [ -d "${ASpellSourceDir}" -a ! -f "${ASpellInstallHdr}" -a "yes" = "${aspell_
        # we have a private ASpell source tree at hand...
        # so let's build and install it
        if [ -z "${ASpellVersion}" ]; then
        # we have a private ASpell source tree at hand...
        # so let's build and install it
        if [ -z "${ASpellVersion}" ]; then
-               ASpellVersion=`grep AC_INIT "${ASpellSourceDir}"/configure.ac | cut -d, -f2|tr -d " ()"`
+               ASpellVersion=$(grep AC_INIT "${ASpellSourceDir}"/configure.ac | cut -d, -f2|tr -d " ()")
        fi
 
        ASpellName="Aspell"
        fi
 
        ASpellName="Aspell"
@@ -459,11 +397,10 @@ if [ -d "${ASpellSourceDir}" -a ! -f "${ASpellInstallHdr}" -a "yes" = "${aspell_
                make distclean
                CPPFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}"; export CPPFLAGS
                LDFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}"; export LDFLAGS
                make distclean
                CPPFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}"; export CPPFLAGS
                LDFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}"; export LDFLAGS
-               HOSTSYSTEM=`eval "echo \\$HostSystem_$arch"`
+               HOSTSYSTEM=$(eval "echo \\$HostSystem_$arch")
                CXXFLAGS=-g "${ASpellSourceDir}/configure"\
                        --prefix="${ASpellInstallDir}"\
                        ${AspellConfigureOptions}
                CXXFLAGS=-g "${ASpellSourceDir}/configure"\
                        --prefix="${ASpellInstallDir}"\
                        ${AspellConfigureOptions}
-                       #--host="${HOSTSYSTEM}" ${BuildSystem:+"--build=${BuildSystem}"}
                make && make install${aspellstrip}
                for file in ${FILE_LIST} ; do
                        if [ -f "${ASpellInstallDir}"/lib/${file} ]; then
                make && make install${aspellstrip}
                for file in ${FILE_LIST} ; do
                        if [ -f "${ASpellInstallDir}"/lib/${file} ]; then
@@ -496,26 +433,12 @@ if [ -d "${ASpellSourceDir}" -a ! -f "${ASpellInstallHdr}" -a "yes" = "${aspell_
        done
 fi
 
        done
 fi
 
-# exit 0
-
 
 framework_name() {
        echo "Frameworks/${1}.framework"
 }
 
 
 framework_name() {
        echo "Frameworks/${1}.framework"
 }
 
-if [ ! -f "${LyxSourceDir}"/configure -o "${LyxSourceDir}"/configure -ot "${LyxSourceDir}"/configure.ac ]; then
-       ( cd "${LyxSourceDir}" && sh autogen.sh )
-else
-       find "${LyxSourceDir}" -name Makefile.am -print | while read file ; do
-               dname=`dirname "$file"`
-               if [ "$dname/Makefile.in" -ot "$file" ]; then
-                       ( cd "${LyxSourceDir}" && sh autogen.sh )
-                       break
-               fi
-       done
-fi
-
-FILE_LIST="lyx lyxclient tex2lyx"
+LYX_FILE_LIST="lyx lyxclient tex2lyx"
 BUNDLE_PATH="Contents/MacOS"
 LYX_BUNDLE_PATH="${LyxAppPrefix}/${BUNDLE_PATH}"
 build_lyx() {
 BUNDLE_PATH="Contents/MacOS"
 LYX_BUNDLE_PATH="${LyxAppPrefix}/${BUNDLE_PATH}"
 build_lyx() {
@@ -523,21 +446,32 @@ build_lyx() {
        if [ -n "${LyxAppZip}" -a -f "${LyxAppZip}" ]; then rm "${LyxAppZip}"; fi
        if [ -d "${LyxAppPrefix}" ]; then rm -rf "${LyxAppPrefix}"; fi
 
        if [ -n "${LyxAppZip}" -a -f "${LyxAppZip}" ]; then rm "${LyxAppZip}"; fi
        if [ -d "${LyxAppPrefix}" ]; then rm -rf "${LyxAppPrefix}"; fi
 
+       # -------------------------------------
+       # Automate configure check
+       # -------------------------------------
+       if [ ! -f "${LyxSourceDir}"/configure -o "${LyxSourceDir}"/configure -ot "${LyxSourceDir}"/configure.ac ]; then
+               ( cd "${LyxSourceDir}" && sh autogen.sh )
+       else
+               find "${LyxSourceDir}" -name Makefile.am -print | while read file ; do
+                       dname=$(dirname "$file")
+                       if [ -f "$dname/Makefile.in" -a "$dname/Makefile.in" -ot "$file" ]; then
+                               ( cd "${LyxSourceDir}" && sh autogen.sh )
+                               break
+                       fi
+               done
+       fi
        # -------------------------------------
        # Build LyX for different architectures
        # -------------------------------------
 
        if [ -d "${ASpellInstallDir}" -a "yes" = "${aspell_deployment}" ]; then
        # -------------------------------------
        # Build LyX for different architectures
        # -------------------------------------
 
        if [ -d "${ASpellInstallDir}" -a "yes" = "${aspell_deployment}" ]; then
-               ASpellFramework=`framework_name Aspell`
-               ASpellFramework=`basename "${ASpellFramework}"`
                ConfigureExtraInc="--with-extra-inc=${ASpellInstallDir}/include"
                ConfigureExtraLib="--with-extra-lib=${ASpellInstallDir}/lib"
                ConfigureExtraInc="--with-extra-inc=${ASpellInstallDir}/include"
                ConfigureExtraLib="--with-extra-lib=${ASpellInstallDir}/lib"
-               LyXConfigureOptions="${LyXConfigureOptions} --with-aspell-framework=${ASpellFramework}"
        fi
 
        if [ -d "${HunSpellInstallDir}" -a "yes" = "${hunspell_deployment}" ]; then
        fi
 
        if [ -d "${HunSpellInstallDir}" -a "yes" = "${hunspell_deployment}" ]; then
-               HunSpellFramework=`framework_name Hunspell`
-               HunSpellFramework=`basename "${HunSpellFramework}"`
+               HunSpellFramework=$(framework_name Hunspell)
+               HunSpellFramework=$(basename "${HunSpellFramework}")
                ConfigureExtraInc="--with-extra-inc=${HunSpellInstallDir}/include"
                ConfigureExtraLib="--with-extra-lib=${HunSpellInstallDir}/lib"
                # LyXConfigureOptions="${LyXConfigureOptions} --with-hunspell-framework=${HunSpellFramework}"
                ConfigureExtraInc="--with-extra-inc=${HunSpellInstallDir}/include"
                ConfigureExtraLib="--with-extra-lib=${HunSpellInstallDir}/lib"
                # LyXConfigureOptions="${LyXConfigureOptions} --with-hunspell-framework=${HunSpellFramework}"
@@ -548,11 +482,11 @@ build_lyx() {
        for arch in ${ARCH_LIST} ; do
 
                if [ -d "${LyxBuildDir}" ];  then rm -r "${LyxBuildDir}"; fi
        for arch in ${ARCH_LIST} ; do
 
                if [ -d "${LyxBuildDir}" ];  then rm -r "${LyxBuildDir}"; fi
-               mkdir "${LyxBuildDir}" && cd "${LyxBuildDir}"
+               mkdir -p "${LyxBuildDir}" && cd "${LyxBuildDir}"
 
                CPPFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}"
                LDFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}"
 
                CPPFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}"
                LDFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}"
-               HOSTSYSTEM=`eval "echo \\$HostSystem_$arch"`
+               HOSTSYSTEM=$(eval "echo \\$HostSystem_$arch")
 
                if [ "$configure_qt4_frameworks" = "yes" ]; then
                        export QT4_CORE_CFLAGS="-FQtCore"
 
                if [ "$configure_qt4_frameworks" = "yes" ]; then
                        export QT4_CORE_CFLAGS="-FQtCore"
@@ -563,7 +497,6 @@ build_lyx() {
                        CPPFLAGS="${CPPFLAGS} -I${SDKROOT}/Library/Frameworks/QtCore.framework/Headers"
                        CPPFLAGS="${CPPFLAGS} -I${SDKROOT}/Library/Frameworks/QtGui.framework/Headers"
                fi
                        CPPFLAGS="${CPPFLAGS} -I${SDKROOT}/Library/Frameworks/QtCore.framework/Headers"
                        CPPFLAGS="${CPPFLAGS} -I${SDKROOT}/Library/Frameworks/QtGui.framework/Headers"
                fi
-               LDFLAGS="${LDFLAGS} -framework Carbon -framework AppKit"
 
                echo LDFLAGS="${LDFLAGS}"
                export LDFLAGS
 
                echo LDFLAGS="${LDFLAGS}"
                export LDFLAGS
@@ -574,9 +507,9 @@ build_lyx() {
                        --prefix="${LyxAppPrefix}" --with-version-suffix="-${LyXVersionSuffix}"\
                        ${QtInstallDir:+"--with-qt4-dir=${QtInstallDir}"} \
                        ${LyXConfigureOptions}\
                        --prefix="${LyxAppPrefix}" --with-version-suffix="-${LyXVersionSuffix}"\
                        ${QtInstallDir:+"--with-qt4-dir=${QtInstallDir}"} \
                        ${LyXConfigureOptions}\
-                       --host="${HOSTSYSTEM}" --build="${BuildSystem}" --enable-build-type=rel && \
+                       --enable-build-type=rel && \
                make -j2 && make install${strip}
                make -j2 && make install${strip}
-               for file in ${FILE_LIST} ; do
+               for file in ${LYX_FILE_LIST} ; do
                        if [ -f "${LYX_BUNDLE_PATH}/${file}" ]; then
                                mv "${LYX_BUNDLE_PATH}/${file}"\
                                        "${LYX_BUNDLE_PATH}/${file}-${arch}" 
                        if [ -f "${LYX_BUNDLE_PATH}/${file}" ]; then
                                mv "${LYX_BUNDLE_PATH}/${file}"\
                                        "${LYX_BUNDLE_PATH}/${file}-${arch}" 
@@ -590,17 +523,17 @@ build_lyx() {
 
 content_directory() {
        target="$1"
 
 content_directory() {
        target="$1"
-       content=`dirname "${target}"`
-       content=`dirname "${content}"`
+       content=$(dirname "${target}")
+       content=$(dirname "${content}")
        echo "${content}"
 }
 
 private_framework() {
        echo "${content}"
 }
 
 private_framework() {
-       fwdir=`framework_name "$1"`
+       fwdir=$(framework_name "$1")
        source="$2"
        target="$3"
        source="$2"
        target="$3"
-       condir=`content_directory "${target}"`
-       libnm=`basename "${source}"`
+       condir=$(content_directory "${target}")
+       libnm=$(basename "${source}")
        mkdir -p "${condir}/${fwdir}"
        if [ ! -f "${condir}/${fwdir}/${libnm}" ]; then
                cp -p "${source}" "${condir}/${fwdir}"
        mkdir -p "${condir}/${fwdir}"
        if [ ! -f "${condir}/${fwdir}/${libnm}" ]; then
                cp -p "${source}" "${condir}/${fwdir}"
@@ -615,46 +548,49 @@ deploy_qtlibs() {
        source="${QtInstallDir}"
        target="$1"
        version="Versions/${QtFrameworkVersion}/"
        source="${QtInstallDir}"
        target="$1"
        version="Versions/${QtFrameworkVersion}/"
-       condir=`content_directory "${target}"`
+       condir=$(content_directory "${target}")
        mkdir -p "${condir}/Resources"
        test -f "${condir}/Resources/qt.conf" || cat - > "${condir}/Resources/qt.conf" <<-EOF
 [Paths]
 Plugins = PlugIns
        mkdir -p "${condir}/Resources"
        test -f "${condir}/Resources/qt.conf" || cat - > "${condir}/Resources/qt.conf" <<-EOF
 [Paths]
 Plugins = PlugIns
+Translations = translations
 EOF
        if [ ! -d "${condir}/PlugIns" ]; then
                mkdir -p "${condir}/PlugIns"
                find "${source}/plugins" -name \*.dylib -print | while read libname ; do
                        echo Copy plugin "${libname}"
 EOF
        if [ ! -d "${condir}/PlugIns" ]; then
                mkdir -p "${condir}/PlugIns"
                find "${source}/plugins" -name \*.dylib -print | while read libname ; do
                        echo Copy plugin "${libname}"
-                       dylib=`basename "${libname}"`
-                       dirname=`dirname "${libname}"`
-                       dirname=`basename "${dirname}"`
+                       dylib=$(basename "${libname}")
+                       dirname=$(dirname "${libname}")
+                       dirname=$(basename "${dirname}")
                        mkdir -p "${condir}/PlugIns/${dirname}"
                        cp -p "${libname}" "${condir}/PlugIns/${dirname}"
                done
        fi
        for libnm in ${QtLibraries} ; do
                        mkdir -p "${condir}/PlugIns/${dirname}"
                        cp -p "${libname}" "${condir}/PlugIns/${dirname}"
                done
        fi
        for libnm in ${QtLibraries} ; do
-               fwdir=`framework_name "$libnm"`
-               dirname=`dirname "${fwdir}"`
+               fwdir=$(framework_name "$libnm")
+               dirname=$(dirname "${fwdir}")
                mkdir -p "${condir}/${dirname}"
                mkdir -p "${condir}/${dirname}"
-               dirname=`basename "${fwdir}"`
+               dirname=$(basename "${fwdir}")
                test -d "${condir}/${fwdir}" || (
                test -d "${condir}/${fwdir}" || (
-                       echo Copy framework "${source}/lib/"`basename "${fwdir}"`
-                       cp -pR "${source}/lib/"`basename "${fwdir}"` "${condir}/${fwdir}"
+                       echo Copy framework "${source}/lib/"$(basename "${fwdir}")
+                       cp -pR "${source}/lib/"$(basename "${fwdir}") "${condir}/${fwdir}"
                        echo Set library id in "${condir}/${fwdir}/${version}${libnm}"
                        install_name_tool -id "@executable_path/../${fwdir}/${version}${libnm}" "${condir}/${fwdir}/${version}${libnm}"
                        echo Set library id in "${condir}/${fwdir}/${version}${libnm}"
                        install_name_tool -id "@executable_path/../${fwdir}/${version}${libnm}" "${condir}/${fwdir}/${version}${libnm}"
-                       find "${condir}/PlugIns" "${condir}/"`dirname "${fwdir}"` -name Headers -prune -o -type f -print | while read filename ; do
-                               otool -L "${filename}" 2>/dev/null | while read library ; do
-                                       # pattern match for: /path/to/qt4/lib/QtGui.framework/Versions/4/QtGui (compatibility version 4.6.0, current version 4.6.2)
-                                       case "${library}" in
-                                       *"${libnm}"*"("*")"*)
-                                               echo Correct library id reference to "${libnm}" in "${filename}"
-                                               install_name_tool -change\
-                                                       "${source}/lib/${dirname}/${version}${libnm}"\
-                                                       "@executable_path/../${fwdir}/${version}${libnm}"\
-                                                       "${filename}"
-                                               ;;
-                                       esac
-                               done
+                       find "${condir}/PlugIns" "${condir}/"$(dirname "${fwdir}") -name Headers -prune -o -type f -print | while read filename ; do
+                               if [ "${filename}" != "${target}" ]; then
+                                       otool -L "${filename}" 2>/dev/null | sort -u | while read library ; do
+                                               # pattern match for: /path/to/qt4/lib/QtGui.framework/Versions/4/QtGui (compatibility version 4.6.0, current version 4.6.2)
+                                               case "${library}" in
+                                               *"${libnm}"*"("*version*")"*)
+                                                       echo Correct library id reference to "${libnm}" in "${filename}"
+                                                       install_name_tool -change\
+                                                               "${source}/lib/${dirname}/${version}${libnm}"\
+                                                               "@executable_path/../${fwdir}/${version}${libnm}"\
+                                                               "${filename}"
+                                                       ;;
+                                               esac
+                                       done
+                               fi
                        done
                )
                echo Correct library id reference to "${libnm}" in "${target}"
                        done
                )
                echo Correct library id reference to "${libnm}" in "${target}"
@@ -663,6 +599,11 @@ EOF
                        "@executable_path/../${fwdir}/${version}${libnm}"\
                        "${target}"
        done
                        "@executable_path/../${fwdir}/${version}${libnm}"\
                        "${target}"
        done
+       if [ ! -d "${condir}/translations" ]; then
+               mkdir -p "${condir}/translations"
+       fi
+       echo Copy Qt translations to "${condir}/translations"
+       cp -p "${source}"/translations/qt_*.qm "${condir}/translations"
 }
 
 # -------------------------
 }
 
 # -------------------------
@@ -670,7 +611,7 @@ EOF
 # -------------------------
 convert_universal() {
        cd "${LyxAppPrefix}"
 # -------------------------
 convert_universal() {
        cd "${LyxAppPrefix}"
-       for file in ${FILE_LIST} ; do
+       for file in ${LYX_FILE_LIST} ; do
                OBJ_LIST=
                for arch in ${ARCH_LIST} ; do
                        if [ -f "${BUNDLE_PATH}/${file}-${arch}" ]; then
                OBJ_LIST=
                for arch in ${ARCH_LIST} ; do
                        if [ -f "${BUNDLE_PATH}/${file}-${arch}" ]; then
@@ -709,26 +650,33 @@ copy_dictionaries() {
                if [ -d /opt/local/lib/aspell-0.60 ]; then ASpellInstallDir=/opt/local ; fi
                mkdir -p "${ASpellResources}"
                echo Copy Aspell dictionaries from "${ASpellInstallDir}"
                if [ -d /opt/local/lib/aspell-0.60 ]; then ASpellInstallDir=/opt/local ; fi
                mkdir -p "${ASpellResources}"
                echo Copy Aspell dictionaries from "${ASpellInstallDir}"
-               mkdir -p "${ASpellResources}"/data "${ASpellResources}"/dict
+               mkdir -p "${ASpellResources}"/data "${ASpellResources}"/dicts
                cp -p -r "${ASpellInstallDir}/lib/aspell-0.60"/* "${ASpellResources}"/data
                cp -p -r "${ASpellInstallDir}/lib/aspell-0.60"/* "${ASpellResources}"/data
-               cp -p -r "${ASpellInstallDir}/share/aspell"/* "${ASpellResources}"/dict
+               cp -p -r "${ASpellInstallDir}/share/aspell"/* "${ASpellResources}"/dicts
        fi
        if [ -d "${HunSpellInstallDir}" -a "yes" = "${hunspell_dictionaries}" ]; then
                HunSpellResources="${LyxAppPrefix}/Contents/Resources"
                if [ -d "${DictionarySourceDir}" ]; then
        fi
        if [ -d "${HunSpellInstallDir}" -a "yes" = "${hunspell_dictionaries}" ]; then
                HunSpellResources="${LyxAppPrefix}/Contents/Resources"
                if [ -d "${DictionarySourceDir}" ]; then
-                       updateDictionaries "${DictionarySourceDir}"
-                       cp -p -r "${DictionarySourceDir}/dict" "${HunSpellResources}"
+                       ( cd "${DictionarySourceDir}" && find dicts -name .svn -prune -o -type f -print | cpio -pmdv "${HunSpellResources}" )
                fi
        fi
        if [ -d "${DictionarySourceDir}" -a "yes" = "${thesaurus_deployment}" ]; then
                MyThesResources="${LyxAppPrefix}/Contents/Resources"
                fi
        fi
        if [ -d "${DictionarySourceDir}" -a "yes" = "${thesaurus_deployment}" ]; then
                MyThesResources="${LyxAppPrefix}/Contents/Resources"
-               cp -p -r "${DictionarySourceDir}/thes" "${MyThesResources}"
+               ( cd "${DictionarySourceDir}" && find thes -name .svn -prune -o -type f -print | cpio -pmdv "${MyThesResources}" )
        fi
 }
 
        fi
 }
 
-function set_bundle_display_options() {
+set_bundle_display_options() {
+       X_BOUNDS=$2
+       Y_BOUNDS=$3
+       Y_POSITION=$((Y_BOUNDS - 65))
+       Y_BOUNDS=$((Y_BOUNDS + 20))
+       LYX_X_POSITION=$((X_BOUNDS / 4))
+       LYX_Y_POSITION=$Y_POSITION
+       APP_X_POSITION=$((3 * X_BOUNDS / 4))
+       APP_Y_POSITION=$Y_POSITION
        osascript <<-EOF
        osascript <<-EOF
-    tell application "Finder"
+       tell application "Finder"
         set f to POSIX file ("${1}" as string) as alias
         tell folder f
             open
         set f to POSIX file ("${1}" as string) as alias
         tell folder f
             open
@@ -737,16 +685,17 @@ function set_bundle_display_options() {
                 set statusbar visible to false
                 set current view to icon view
                 delay 1 -- sync
                 set statusbar visible to false
                 set current view to icon view
                 delay 1 -- sync
-                set the bounds to {20, 50, $2, $3}
+                set the bounds to {20, 50, $X_BOUNDS, $Y_BOUNDS}
             end tell
             delay 1 -- sync
             set icon size of the icon view options of container window to 64
             set arrangement of the icon view options of container window to not arranged
             end tell
             delay 1 -- sync
             set icon size of the icon view options of container window to 64
             set arrangement of the icon view options of container window to not arranged
-            set position of item "${LyxName}.app" to {100,$4}
-            set position of item "Applications" to {280,$4}
+            set position of item "Documents" to {$LYX_X_POSITION,0}
+            set position of item "${LyxName}.app" to {$LYX_X_POSITION,$LYX_Y_POSITION}
+            set position of item "Applications" to {$APP_X_POSITION,$APP_Y_POSITION}
             set background picture of the icon view options\
                                        of container window to file "background.png" of folder "Pictures"
             set background picture of the icon view options\
                                        of container window to file "background.png" of folder "Pictures"
-            set the bounds of the container window to {0, 0, $2, $3}
+            set the bounds of the container window to {0, 0, $X_BOUNDS, $Y_BOUNDS}
             update without registering applications
             delay 5 -- sync
             close
             update without registering applications
             delay 5 -- sync
             close
@@ -756,13 +705,12 @@ function set_bundle_display_options() {
 EOF
 }
 
 EOF
 }
 
-function make_dmg() {
+make_dmg() {
        cd "${1}"
 
        cd "${1}"
 
-       BGSIZE=`file "$BACKGROUND" | awk -F , '/PNG/{print $2 }' | tr x ' '`
-       BG_W=`echo ${BGSIZE} | awk '{print $1 }'`
-       BG_H=`echo ${BGSIZE} | awk '{h = $2 + 20 ;print h }'`
-       BG_Y=`echo ${BGSIZE} | awk '{y = $2 - 60 ;print y }'`
+       BGSIZE=$(file "$DmgBackground" | awk -F , '/PNG/{print $2 }' | tr x ' ')
+       BG_W=$(echo ${BGSIZE} | awk '{print $1 }')
+       BG_H=$(echo ${BGSIZE} | awk '{print $2 }')
 
        rm -f "${DMGNAME}.sparseimage" "${DMGNAME}.dmg"
 
 
        rm -f "${DMGNAME}.sparseimage" "${DMGNAME}.dmg"
 
@@ -783,10 +731,12 @@ function make_dmg() {
 
        # copy in background image
        mkdir -p "${VOLUME}/Pictures"
 
        # copy in background image
        mkdir -p "${VOLUME}/Pictures"
-       cp "${BACKGROUND}" "${VOLUME}/Pictures/background.png"
+       cp "${DmgBackground}" "${VOLUME}/Pictures/background.png"
        # symlink applications
        ln -s /Applications/ "${VOLUME}"/Applications
        # symlink applications
        ln -s /Applications/ "${VOLUME}"/Applications
-       set_bundle_display_options "${VOLUME}" ${BG_W} ${BG_H} ${BG_Y}
+       test -d "${DocumentationDir}" && cp -r "${DocumentationDir}" "${VOLUME}"
+       set_bundle_display_options "${VOLUME}" ${BG_W} ${BG_H}
+       ${XCODE_DEVELOPER}/Tools/SetFile -a C "${VOLUME}"
        mv "${VOLUME}/Pictures" "${VOLUME}/.Pictures"
 
        # Unmount the disk image
        mv "${VOLUME}/Pictures" "${VOLUME}/.Pictures"
 
        # Unmount the disk image
@@ -797,28 +747,32 @@ function make_dmg() {
        rm -f "${DMGNAME}.sparseimage"
 }
 
        rm -f "${DMGNAME}.sparseimage"
 }
 
-build_lyx
-convert_universal
-copy_dictionaries
-
 # ------------------------------
 # Building distribution packages
 # ------------------------------
 
 # ------------------------------
 # Building distribution packages
 # ------------------------------
 
-test -n "${LyxAppZip}" && (
-       cd "${LyxAppPrefix}" && zip -r "${LyxAppZip}" .
-)
-
-test -n "${DMGLocation}" && (
-       make_dmg "${DMGLocation}"
-       if [ -d "${QtInstallDir}/lib/QtCore.framework/Versions/${QtFrameworkVersion}" -a "yes" = "${qt4_deployment}" ]; then
-               rm -f "${DMGLocation}/${DMGNAME}+qt4.dmg"
-               echo move to "${DMGLocation}/${DMGNAME}+qt4.dmg"
-               mv "${DMGLocation}/${DMGNAME}.dmg" "${DMGLocation}/${DMGNAME}+qt4.dmg"
-               #for libnm in ${QtLibraries} ; do
-               #       fwdir=`framework_name "$libnm"`
-               #       rm -rf "${LyxAppDir}.app/Contents/${fwdir}"
-               #done
-               #make_dmg "${DMGLocation}"
-       fi
-)
+build_package() {
+       test -n "${LyxAppZip}" && (
+               cd "${LyxAppPrefix}" && zip -r "${LyxAppZip}" .
+       )
+
+       test -n "${DMGLocation}" && (
+               make_dmg "${DMGLocation}"
+               if [ -d "${QtInstallDir}/lib/QtCore.framework/Versions/${QtFrameworkVersion}" -a "yes" = "${qt4_deployment}" ]; then
+                       rm -f "${DMGLocation}/${DMGNAME}+qt4.dmg"
+                       echo move to "${DMGLocation}/${DMGNAME}+qt4${MAC_API}.dmg"
+                       mv "${DMGLocation}/${DMGNAME}.dmg" "${DMGLocation}/${DMGNAME}+qt4${MAC_API}.dmg"
+               fi
+       )
+}
+
+# ------------------------------
+# main block
+# ------------------------------
+
+if [ ${LyxOnlyPackage:-"no"} = "no" ]; then
+       build_lyx
+       convert_universal
+       copy_dictionaries
+fi
+build_package