#!/bin/sh PKGM="/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker" if [ ! -x "${PKGM}" ]; then echo "** ERROR: cannot find PackageMaker" exit 1 fi if [ -z "${CONF}" ]; then CONF="$1" fi if [ -z "${CONF}" ]; then CONF=conf fi if [ ! -e "${CONF}" ]; then echo "** ERROR: cannot find configuration file ${CONF}" exit 1 fi . "${CONF}" if [ -z "${VER}" ]; then echo "** ERROR: configuration file doesn't contain necessary settings" exit 1 fi echo "" echo " Target path: ${RRPATH}" echo " - R ${VERFULL}" echo " - GUI ${GUIVER} (${GUISVN})" echo "" if [ ! -e "${RRPATH}/R.pmproj" ]; then echo "** ERROR: cannot find R.pmproj main project" exit 1 fi if [ -z "$FIX" ]; then echo " - Removing previous builds ..." rm -rf "${RRPATH}/R-${VER}" "${RRPATH}/R-${VER}-mini" mkdir -p "${RRPATH}/R-${VER}/Packages" "${RRPATH}/R-${VER}-mini/Packages" echo " - Building base packages ..." echo " - R framework" "${PKGM}" -build -proj "${RRPATH}/R-fw/R-Framework.pmproj" -p "${RRPATH}/R-${VER}/Packages/R-Framework.pkg" echo " - R GUI" "${PKGM}" -build -proj "${RRPATH}/GUI/R-GUI.pmproj" -p "${RRPATH}/R-${VER}/Packages/R-GUI.pkg" if [ -z "${MINIONLY}" ]; then if [ ! -e "${BASE}/common" ]; then echo " - Extracting common files ..." tar fxj "${BASE}/common.tar.bz2" -C "${BASE}" fi echo " - Copying common packages ..." echo " - GNU Fortran" ditto "${BASE}/common/gfortran.pkg" "${RRPATH}/R-${VER}/Packages/gfortran.pkg" echo " - Tcl/Tk" ditto "${BASE}/common/tcltk.pkg" "${RRPATH}/R-${VER}/Packages/tcltk.pkg" fi echo " - Adjusting installed sizes ..." rm -rf "${RRPATH}/sizes" for pkg in R-Framework R-GUI; do ID=`grep CFBundleIdentifier -A1 "${RRPATH}/R-${VER}/Packages/${pkg}.pkg/Contents/Info.plist" |sed -n '2 s|.\{0,\}\(.\{0,\}\).\{0,\}|\1|p'` SIZE=`sed -n 's|InstalledSize ||p' "${RRPATH}/R-${VER}/Packages/${pkg}.pkg/Contents/Resources/${pkg}.sizes"` echo " - ${pkg} ($ID) ${SIZE}kB" echo "${ID}|${SIZE}" >> "${RRPATH}/sizes" done cat "${RRPATH}/sizes"|"${BASE}/adjsizes" "${RRPATH}/R.pmproj" "${RRPATH}/R-mini.pmproj" echo " - Building metapackages ..." echo " - R full" "${PKGM}" -build -proj "${RRPATH}/R.pmproj" -p "${RRPATH}/R-${VER}/R.mpkg" echo " - R mini" "${PKGM}" -build -proj "${RRPATH}/R-mini.pmproj" -p "${RRPATH}/R-${VER}-mini/R.mpkg" echo " - Copying packages from regular to mini" echo " - framework" ditto "${RRPATH}/R-${VER}/Packages/R-Framework.pkg" "${RRPATH}/R-${VER}-mini/Packages/R-Framework.pkg" echo " - GUI" ditto "${RRPATH}/R-${VER}/Packages/R-GUI.pkg" "${RRPATH}/R-${VER}-mini/Packages/R-GUI.pkg" fi echo " - Fixing conditions" for pkg in `ls -d "${RRPATH}/R-${VER}/Packages/"*.pkg "${RRPATH}/R-${VER}-mini/Packages/"*.pkg`; do echo " - ${pkg}" "${BASE}/fix.pkg" "${pkg}" done if [ -n "${MINIONLY}" ]; then echo " - Removing full R build" rm -rf "${RRPATH}/R-${VER}" fi echo "Done."