]> git.lyx.org Git - lyx.git/blobdiff - development/LyX-Mac-binary-release.sh
Update my email and status.
[lyx.git] / development / LyX-Mac-binary-release.sh
index e3d84aa1cc9ec6e0699573e686dab662505caee9..96b091233acdb00015cb2f4ffca16e843363687e 100644 (file)
@@ -5,12 +5,14 @@
 # This script automates creating universal binaries of LyX on Mac.
 # Author: Bennett Helm (and extended by Konrad Hofbauer)
 # latest changes by Stephan Witt
 # This script automates creating universal binaries of LyX on Mac.
 # Author: Bennett Helm (and extended by Konrad Hofbauer)
 # latest changes by Stephan Witt
-# Last modified: January 2011
+# Last modified: August 2012
 
 
-CARBON=-carbon
-Qt4Version="4.6.3"
+MAC_API=-cocoa
+Qt4Version=${Qt4Version:-"4.6.3"}
 Qt4SourceVersion="qt-everywhere-opensource-src-${Qt4Version}"
 Qt4SourceVersion="qt-everywhere-opensource-src-${Qt4Version}"
-Qt4BuildSubDir="qt-${Qt4Version}-build${CARBON}"
+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)
@@ -31,10 +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} ${CARBON}"
+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"
@@ -42,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
@@ -60,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"
@@ -75,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
@@ -101,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)
@@ -144,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
@@ -166,45 +207,26 @@ ARCH_LIST=${ARCH_LIST:-"ppc i386"}
 strip="-strip"
 aspellstrip=
 
 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}}
+Qt4SourceDir=${QT4SOURCEDIR:-$(dirname "${LyxSourceDir}")/${Qt4SourceVersion}}
 Qt4BuildDir=${Qt4BuildDir:-"${LyxBuildDir}"/${Qt4BuildSubDir:-"qt4-build"}}
 Qt4BuildDir=${Qt4BuildDir:-"${LyxBuildDir}"/${Qt4BuildSubDir:-"qt4-build"}}
-DictionarySourceDir=${DICTIONARYDIR:-`dirname "${LyxSourceDir}"`/dictionaries}
+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 " ()"`
+       LyXVersion=$(grep AC_INIT "${LyxSourceDir}"/configure.ac | cut -d, -f2 | tr -d " ()")
 fi
 fi
-LyXVersionSuffix=${LyXVersionSuffix:-`echo "${LyXVersion}" | cut -d. -f1-2`}
+LyXVersionSuffix=${LyXVersionSuffix:-$(echo "${LyXVersion}" | cut -d. -f1-2)}
 
 LyxName="LyX"
 LyxBase="${LyxName}-${LyXVersion}"
 
 LyxName="LyX"
 LyxBase="${LyxName}-${LyXVersion}"
@@ -215,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!
 # ---------------------------------
@@ -226,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.
@@ -293,7 +312,7 @@ 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
        # 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"
@@ -314,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
@@ -357,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"
@@ -379,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
@@ -416,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() {
@@ -443,6 +446,20 @@ 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
        # -------------------------------------
        # -------------------------------------
        # Build LyX for different architectures
        # -------------------------------------
@@ -453,8 +470,8 @@ build_lyx() {
        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}"
@@ -469,7 +486,7 @@ build_lyx() {
 
                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"
@@ -480,8 +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}"${CARBON:+" -framework Carbon"}
-               LDFLAGS="${LDFLAGS} -framework AppKit"
 
                echo LDFLAGS="${LDFLAGS}"
                export LDFLAGS
 
                echo LDFLAGS="${LDFLAGS}"
                export LDFLAGS
@@ -492,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}" 
@@ -508,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}"
@@ -533,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}"
@@ -581,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"
 }
 
 # -------------------------
 }
 
 # -------------------------
@@ -588,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
@@ -643,9 +666,17 @@ copy_dictionaries() {
        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
@@ -654,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
@@ -673,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"
 
@@ -700,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
@@ -714,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