User: curvirgo Date: 05/12/11 14:56:36 Added: /ja/www/documents/develop/ jabuild.function
Log: Buildscript.fonction for 2.0 only File Changes: Directory: /ja/www/documents/develop/ ===================================== File [added]: jabuild.function Url: http://ja.openoffice.org/source/browse/ja/www/documents/develop/jabuild.function?rev=1.1&content-type=text/vnd.viewcvs-markup Added lines: 459 ---------------- # Encoding is UTF-8. (There is no BOM.) # ================================================== # ã¡ãã»ã¼ã¸ã表示ãã # ================================================== PrintMessage () { local MESSAGE=${1} echo echo "==================================================" echo "${MESSAGE}" echo "==================================================" } # ================================================== # ãã£ã¬ã¯ããªãåå¨ããªããã°ä½æãã # ================================================== CreateDirectory () { local DIR_NAME=${1} local MESSAGE=${2} [ -d ${DIR_NAME} ] || { [ x${MESSAGE} = x ] || PrintMessage "${MESSAGE}" mkdir -p -v ${DIR_NAME} } } # ================================================== # ãã¡ã¤ã«ã®ãã¦ã³ãã¼ããè¡ã # ================================================== DownloadFile () { local FILE_LOCATE=${1} local FILE_NAME=${2} [ ! -f ${TEMP_DIR}/${FILE_NAME} -o -f ${TEMP_DIR}/${FILE_NAMEE}.chk ] && { cd ${TEMP_DIR} touch ${TEMP_DIR}/${FILE_NAME}.chk wget -c ${FILE_LOCATE}/${FILE_NAME} -O ${TEMP_DIR}/${FILE_NAME} && rm -f ${TEMP_DIR}/${FILE_NAME}.chk cd ${SRC_ROOT} } } # ================================================== # ãã«ããããã©ãããã¼ã ã®ãã§ãã¯ãè¡ã表示ãã # ================================================== GetPlatform () { local PLATFORM=NotSupported [ `uname -s` = Linux ] && PLATFORM=LinuxIntel [ `uname -s` = SunOS ] && PLATFORM=SolarisSparc [ `uname -s` = SunOS -a `uname -m` = i86pc ] && PLATFORM=SolarisIntel [ `uname -s` = SunOS -a "${COM}" = "GCC" ] && PLATFORM=SolarisSparcGcc [ `uname -s` = SunOS -a `uname -m` = i86pc -a "${COM}" = "GCC" ] && PLATFORM=SolarisIntelGcc [ `uname -s | grep CYGWIN` ] && PLATFORM=Win32Intel [ `uname -s` = Linux -a `uname -m` = ppc ] && PLATFORM=LinuxPPC [ `uname -s` = Linux -a `uname -m` = x86_64 ] && PLATFORM=LinuxAMD echo ${PLATFORM} } # ================================================== # Linuxã®ãã£ã¹ããªãã¥ã¼ã·ã§ã³ã確èªãããã©ã«ãããã±ã¼ã¸åã表示ãã # ================================================== GetDefaultPackage () { local PACKAGE_FORMAT=portable [ -f /etc/vine-release ] && PACKAGE_FORMAT=rpm [ -f /etc/redhat-release ] && PACKAGE_FORMATE=rpm [ -f /etc/debian-version ] && PACKAGE_FORMAT=deb echo ${PACKAGE_FORMAT} } # ================================================== # patchãã¡ã¤ã«ãæ¢ãåºãé©ç¨ãã # ================================================== ApplyPatch () { local PATCH_DIR=${1} for PATCH in `echo ${PATCH_DIR}/*.patch | sed '/\*/d'` do PrintMessage "Patch File : ${PATCH}" | tee -a ${SRC_ROOT}/patch.log ${GNUPATCH} -p1 < ${PATCH} | tee -a ${SRC_ROOT}/patch.log done } # ================================================== # confiugreã¹ã¯ãªãããå®è¡ãã # ================================================== Configure () { local CONFIG_FLAGS=${1} PrintMessage "Running configure script." cd ${SRC_ROOT}/config_office &> /dev/null if [ $? ]; then eval ./configure ${CONFIG_FLAGS} || { PrintMessage "Configure failed. Fix it!" exit } cd ${SRC_ROOT} else PrintMessage "config_office directory is not found !! Retry sourcefile download." exit fi } # ================================================== # ãã«ãç¨ç°å¢å¤æ°ãè¨å®ãã # ================================================== LoadBuildEnvironment () { if [ x${OOO_BUILD_SYSTEM} = xWin32Intel ]; then source ./winenv.set.sh else source ./${OOO_BUILD_SYSTEM}Env.Set.sh fi } # ================================================== # æå®ãããããã¸ã§ã¯ãããã«ããã # ================================================== BuildProject () { local PROJECT=${1} local OPTION=${2} cd ${SRC_ROOT}/${PROJECT} build.pl ${OPTION} || { PrintMessage "Can't build ${PROJECT}, fix the bug above." exit } [ x`echo ${PROJECT} | grep -i instsetoo` = x ] && deliver.pl cd ${SRC_ROOT} } # ================================================== # å¼ã³åºãå ã®ç°å¢å¤æ°BLD_OPTIONã«Parallelãã«ãã®ãªãã·ã§ã³ã追å ãç°å¢å¤æ°MAXPROCESS=1ãè¨å®ãã # Parallelãã«ãã§ããã°0ãSerialãã«ãã§ããã°1ãè¿ã # ================================================== ParallelSetting () { [ x${PARALLEL_BUILD} = xYes ] && { export MAXPROCESS=1 BLD_OPTION="${BLD_OPTION} -P${MAX_JOBS}" return 0 } return 1 } # ================================================== # rpmã¤ã³ã¹ãã¼ã«ã»ãã : desktop-integration以ä¸ã«ã¤ã³ã¹ãã¼ã«ã«ä¸è¦ãªdebããã±ã¼ã¸ãããçºãããåé¤ãã # rpmã©ã³ã²ã¼ã¸ãã㯠: èªå·±è§£åã¹ã¯ãªããã«ãªã£ã¦ãããã®ãåé¤ãããã§ã«tar.gzå½¢å¼ã§ã¢ã¼ã«ã¤ãããã¦ãã¾ã£ã¦ãããã¡ã¤ã«ãã(å¾ã tar.bz2å½¢å¼ã§ã¢ã¼ã«ã¤ãããé¢ä¿ä¸)ããã§ä¸æ¦å±éãã¦ãã # ================================================== AddhocFix_rpm () { local PACKAGE_TYPE=${1} cd ${RPM_DIR} &> /dev/null && { case ${PACKAGE_TYPE} in InstallSet) PrintMessage "Delete deb_package desktop-integration file" rm -fv ./desktop-integration/*.deb ;; LanguagePack) rm -f *.sh for file in `echo *.tar.gz | sed '/\*/d'` do tar zxf ${file} rm -f ${file} done ;; *) ;; esac cd .. } } # ================================================== # portable : core01ã¨ãã以å¤ã®ããã±ã¼ã¸ã§ç¸äºã«ä¾åãã§ãã¯ãããçºãã¤ã³ã¹ãã¼ã«æã«ç¡éã«ã¼ãã«é¥ãç¾è±¡ãè§£æ¶ããçºã«ãcore01ã¤ã³ã¹ãã¼ã«ã¹ã¯ãªããé¨ã®ä¾åãã§ãã¯ã«ã¼ãã³é¨åãåé¤ããã # ================================================== AddhocFix_portable () { local PACKAGE_TYPE=${1} cd ${PORTABLE_DIR} &> /dev/null && { [ x${PACKAGE_TYPE} = xInstallSet ] && { local COUNT=`grep -in 'requires openoffice.org-core02' openoffice.org-core01.install | sed 's/:/ /' | awk '{print $1}'` let COUNT=COUNT-1 head -n ${COUNT} openoffice.org-core01.install > ${TEMP_DIR}/tempfile COUNT=`grep -in 'Backing up old versions' openoffice.org-core01.install | sed 's/:/ /' | awk '{print $1}'` tail +${COUNT} openoffice.org-core01.install >> ${TEMP_DIR}/tempfile mv -f ${TEMP_DIR}/tempfile openoffice.org-core01.install } for file in `echo *.install | sed '/\*/d'` do cat ${file} | sed "s/awk '{print \$11}'/awk '{print \$10}'/" > ${TEMP_DIR}/tempfile mv -f ${TEMP_DIR}/tempfile ${file} done rm -f *.tar.gz cd .. } } # ================================================== # slackware : install/slack-descå ã®Packager [EMAIL PROTECTED] # ================================================== AddhocFix_slackware () { cd ${PORTABLE_DIR} && { for file in `echo * | sed '/\*/d'` do [ -d ${file} ] && rm -fr ${file} done mkdir -p tempdir for file in `echo *.tgz | sed '/\*/d'` do PrintMessage "Unpacking installation set [ File : ${file}]" tar zxf ${file} -Ctempdir && rm -f ${file} PrintMessage "Replace Packager Name : [EMAIL PROTECTED] -> ${BUILDER_NAME}" cat tempdir/install/slack-desc | eval sed 's/[EMAIL PROTECTED]/${BUILDER_NAME}/' > slack-desc mv -f slack-desc tempdir/install PrintMessage "Repacking installation set [ File : ${file}]" local FILENAME=`basename ${file} .tgz` cd tempdir && tar cf ../${FILENAME}.tar . && cd .. && gzip -9 ${FILENAME}.tar && mv ${FILENAME}.tar.gz ${FILENAME}.tgz rm -fr tempdir/* done rm -fr tempdir cd .. } } # ================================================== # åããã±ã¼ã¸ã³ã°ãè¡ã(LinuxIntel : ããã±ã¼ã¸ãã©ã¼ãããæ¯ã«åããã±ã¼ã¸ã³ã°ãç¹°ãè¿ã) # ================================================== RebuildPackage () { local PACKAGE_TYPE=${1} local PACKAGE_FORMAT=${2} case ${PACKAGE_TYPE} in openoffice) PrintMessage "Create package. [Type : InstallSet] [Format : ${PACKAGE_FORMAT}]" ;; ooolanguagepack) PrintMessage "Create package. [Type : LanguagePack] [Format : ${PACKAGE_FORMAT}]" ;; *) PrintMessage "Unknown package type !!" exit ;; esac cd ${SRC_ROOT}/instsetoo_native/util &> /dev/null if [ $? ]; then if [ x${PACKAGE_FORMAT} = xnative ]; then dmake ${PACKAGE_TYPE} ${BUILD_OPTION} else PKGFORMAT=${PACKAGE_FORMAT} dmake ${PACKAGE_TYPE} ${BUILD_OPTION} fi cd ${SRC_ROOT} else PrintMessage "instsetoo_native/util directory is not found !! Retry sourcefile download." exit fi } # ================================================== # ããã±ã¼ã¸ã³ã°ãè¡ã # ================================================== Package () { local PACKAGE_DIR=${1} local PACKAGE_CMD=${2} local PACKAGE_TYPE=${3} if [ -d ${PACKAGE_DIR} ]; then cd ${PACKAGE_DIR} ${PACKAGE_CMD} cd ${SRC_ROOT} else PrintMessage "${PACKAGE_TYPE} not found, check ${PACKAGE_TYPE}." fi } # ================================================== # LinuxIntel : è¤æ°ã®ããã±ã¼ã¸ã使ããå ´åã¯ãããããã®ããã±ã¼ã¸ãæ§ç¯ãç´ãã¦ããã¤ã³ã¹ãã¼ã«ã»ããåã³ã©ã³ã²ã¼ã¸ããã¯ã使ãã # ================================================== CreatePackage () { local PACKAGE_TYPE=${1} local PACKAGE_FORMAT=${2} [ x${PACKAGE_FORMAT} = x ] && PACKAGE_FORMAT=native case ${PACKAGE_TYPE} in InstallSet) local PKG_DIR="${SRC_ROOT}/instsetoo_native/${OOOUTPATH}.pro/OpenOffice" local PKG_NAME="OOo_${VERSION}_${OOO_BUILD_SYSTEM}_install" RebuildPackage openoffice ${PACKAGE_FORMAT} ;; LanguagePack) local PKG_DIR="${SRC_ROOT}/instsetoo_native/${OOOUTPATH}.pro/OpenOffice_languagepack" local PKG_NAME="OOo_${VERSION}_${OOO_BUILD_SYSTEM}_langpack" RebuildPackage ooolanguagepack ${PACKAGE_FORMAT} ;; *) PrintMessage "Unknown package option !!" exit ;; esac for LANGUAGE in ${LANGUAGES} do local PACKAGE_NAME="${PKG_NAME}_${LANGUAGE}_${BUILDER_NAME}" PrintMessage "Packaging [Type : ${PACKAGE_TYPE}] [Language : ${LANGUAGE}] [Format : ${PACKAGE_FORMAT}]" case ${OOO_BUILD_SYSTEM} in LinuxIntel) local PACKAGE_DIR="${PKG_DIR}/${PACKAGE_FORMAT}/install/${LANGUAGE}" local PACKAGE_CMD="tar jcvf ${PKGOUTDIR}/${PACKAGE_NAME}_${PACKAGE_FORMAT}.tar.bz2 *" cd ${PACKAGE_DIR} &> /dev/null && { case ${PACKAGE_FORMAT} in portable) AddhocFix_portable ${PACKAGE_TYPE} ;; rpm) AddhocFix_rpm ${PACKAGE_TYPE} ;; slackware) AddhocFix_slackware ;; *) ;; esac cd ${SRC_ROOT} } ;; Win32Intel) local PACKAGE_DIR="${PKG_DIR}/msi/install/${LANGUAGE}" local PACKAGE_CMD="zip -r ${PKGOUTDIR}/${PACKAGE_NAME}.zip *" cd ${PACKAGE_DIR}_download &> /dev/null && { ${GNUCP} -vp *_${LANGUAGE}.exe ${PKGOUTDIR}/${PACKAGE_NAME}.exe cd ${SRC_ROOT} } ;; *) local PACKAGE_DIR="${PKG_DIR}/*/install/${LANGUAGE}" local PACKAGE_CMD="tar zcvf ${PKGOUTDIR}/${PACKAGE_NAME}.tar.gz *" ;; esac Package "${PACKAGE_DIR}" "${PACKAGE_CMD}" "${PACKAGE_TYPE}" done } # ================================================== # SDKããã±ã¼ã¸ã使ãã # ================================================== PackageSDK () { local LANGUAGE=${1} local PACKAGE_NAME="OOo_${VERSION}_${OOO_BUILD_SYSTEM}_sdk_${LANGUAGE}_${BUILDER_NAME}" local PACKAGE_DIR="${SRC_ROOT}/instsetoo_native/${OOOUTPATH}.pro/OpenOffice_SDK/*/install/${LANGUAGE}" local PACKAGE_CMD="tar zcvf ${PKGOUTDIR}/${PACKAGE_NAME}.tar.gz *" PrintMessage "Packaging SDK [Language : ${LANGUAGE} ]" case ${OOO_BUILD_SYSTEM} in LinuxIntel) PACKAGE_DIR="${SRC_ROOT}/instsetoo_native/${OOOUTPATH}.pro/OpenOffice_SDK/rpm/install/${LANGUAGE}" PACKAGE_CMD="tar jcvf ${PKGOUTDIR}/${PACKAGE_NAME}_${DEFAULT_PACKAGE}.tar.bz2 *" ;; Win32Intel) PACKAGE_DIR="${SRC_ROOT}/instsetoo_native/${OOOUTPATH}.pro/OpenOffice_SDK/msi/install/${LANGUAGE}" PACKAGE_CMD="zip -r ${PKGOUTDIR}/${PACKAGE_NAME}.zip *" cd ${PACKAGE_DIR}_download &> /dev/null && { ${GNUCP} -vp *.exe ${PKGOUTDIR}/${PACKAGE_NAME}.exe cd ${SRC_ROOT} } ;; *) ;; esac Package "${PACKAGE_DIR}" "${PACKAGE_CMD}" SDK } # ================================================== # SOLVERããã±ã¼ã¸ã使ãã # ================================================== PackageSolver () { PrintMessage "Packaging SOLVER" if [ ${OOO_BUILD_SYSTEM} != Win32Intel ]; then tar zcvf ${PKGOUTDIR}/OOo_${VERSION}_${OOO_BUILD_SYSTEM}_solver_${BUILDER_NAME}.tar.gz solver else zip -r ${PKGOUTDIR}/OOo_${VERSION}_${OOO_BUILD_SYSTEM}_solver_${BUILDER_NAME}.zip solver fi } # ================================================== # UNO Runtime Environmentããã±ã¼ã¸ã使ãã # ================================================== PackageURE () { local URE_LINE_START=`grep -in "^ure" ${SRC_ROOT}/instsetoo_native/util/openoffice.lst | sed 's/:/ /' | awk '{print $1}'` local URE_LINE_END=`tail +${URE_LINE_START} ${SRC_ROOT}/instsetoo_native/util/openoffice.lst | grep -in "^}" | tr '\n' ' ' | sed 's/:/ /g' | awk '{print $1}'` local URE_VERSION=`tail +${URE_LINE_START} ${SRC_ROOT}/instsetoo_native/util/openoffice.lst | grep -i 'package.*sion' | tr '\n' ' ' | awk '{print $2"-"$4}'` local PACKAGE_NAME="URE_${URE_VERSION}_${OOO_BUILD_SYSTEM}_install_${BUILDER_NAME}" local PACKAGE_DIR="${SRC_ROOT}/instsetoo_native/${OOOUTPATH}.pro/URE/*/install/en-US" local PACKAGE_CMD="tar zcvf ${PACKAGE_NAME}.tar.gz *" PrintMessage "Copy to PKGOUTDIR Pack UnoRuntime Environment" case ${OOO_BUILD_SYSTEM} in LinuxIntel) PACKAGE_DIR="${SRC_ROOT}/instsetoo_native/${OOOUTPATH}.pro/URE/rpm/install/en-US" PACKAGE_CMD="tar jcvf ${PKGOUTDIR}/${PACKAGE_NAME}.tar.bz2 RPMS" ;; Win32Intel) PACKAGE_DIR="${SRC_ROOT}/instsetoo_native/${OOOUTPATH}.pro/URE/msi/install/en-US" PACKAGE_CMD="zip -r ${PKGOUTDIR}/${PACKAGE_NAME}.zip *" cd ${PACKAGE_DIR}_download &> /dev/null && { ${GNUCP} -vp *_en-US.exe ${PKGOUTDIR}/${PACKAGE_NAME}.exe cd ${SRC_ROOT} } ;; *) ;; esac Package "${PACKAGE_DIR}" "${PACKAGE_CMD}" "Uno Runtime Environment" } # ================================================== # LinuxIntel : SourceForge.jpã®å®¹éå¶éã«ãã100Mãã¤ãã¾ã§ã®ãã¡ã¤ã«ããUploadåºæ¥ãªãçºãcoreããã±ã¼ã¸ã¨ãã以å¤ã®ããã±ã¼ã¸ãåå²ãã # ================================================== DividePackage () { local LANGUAGE=${1} local PACKAGE_FORMAT=${2} cd ${PKGOUTDIR} &> /dev/null for FILENAME in `echo *_install_${LANGUAGE}_${BUILDER_NAME}_${PACKAGE_FORMAT}.tar.bz2 | sed -e 's/\.tar\.bz2//' -e '/\*/d'` do PrintMessage "Divide Package [Language = ${LANGUAGE}] : [Package = ${PACKAGE_FORMAT}]" [ -d ${PKGOUTDIR}/${PACKAGE_FORMAT} ] || mkdir -vp ${PKGOUTDIR}/${PACKAGE_FORMAT} cd ${PKGOUTDIR}/${PACKAGE_FORMAT} PrintMessage "UNPACKING FILENAME = ${FILENAME}.tar.bz2" tar jxvf ../${FILENAME}.tar.bz2 case ${PACKAGE_FORMAT} in rpm) DIRECTORY=${RPM_DIR} ;; deb) DIRECTORY=${DEB_DIR} ;; portable) DIRECTORY=${PORTABLE_DIR} ;; slackware) DIRECTORY=${PORTABLE_DIR} ;; esac PrintMessage "Moving Core Files" [ -d ${PKGOUTDIR}/${PACKAGE_FORMAT}/core/${DIRECTORY} ] || mkdir -vp ${PKGOUTDIR}/${PACKAGE_FORMAT}/core/${DIRECTORY} mv -v ${PKGOUTDIR}/${PACKAGE_FORMAT}/${DIRECTORY}/*core* ${PKGOUTDIR}/${PACKAGE_FORMAT}/core/${DIRECTORY} PrintMessage "Packaging Filename = ${FILENAME}_other.tar.bz2" tar jcvf ${PKGOUTDIR}/${FILENAME}_other.tar.bz2 `echo * | sed 's/core//'` cd ${PKGOUTDIR}/${PACKAGE_FORMAT}/core PrintMessage "Packaging Filename = ${FILENAME}_core.tar.bz2" tar jcvf ${PKGOUTDIR}/${FILENAME}_core.tar.bz2 ${DIRECTORY} cd ${PKGOUTDIR} rm -fvr ${PKGOUTDIR}/${PACKAGE_FORMAT} done cd ${SRC_ROOT} } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
