User: curvirgo
Date: 05/12/11 14:56:01

Added:
 /ja/www/documents/develop/
  jabuild

Log:
 Buildscript for 2.0 only

File Changes:

Directory: /ja/www/documents/develop/
=====================================

File [added]: jabuild
Url: 
http://ja.openoffice.org/source/browse/ja/www/documents/develop/jabuild?rev=1.1&content-type=text/vnd.viewcvs-markup
Added lines: 422
----------------
#!/bin/bash
# Encoding is UTF-8. (There is no BOM.)
[ x${DEBUG} = xTRUE ] && set -x

# ==================================================
# デフォルトのビルド環境設定
# ==================================================
SRC_ROOT=${SRC_ROOT:-`pwd`}
BUILDER_NAME=${BUILDER_NAME:-curvirgo}
#VERSION=${VERSION:-`head -n 20 
${SRC_ROOT}/instsetoo_native/util/openoffice.lst | grep 'PACKAGEVERSION' | awk 
'{print $2}'`}
VERSION=${VERSION:-`head -n 20 ${SRC_ROOT}/instsetoo_native/util/openoffice.lst 
| grep 'PACKAGEVERSION' | awk '{print $2}'`-`grep 'LAST_MINOR' 
${SRC_ROOT}/solenv/inc/minor.mk | sed 's/LAST_MINOR=//'`}
BUILD_NUMBER=${BUILD_NUMBER:-`grep 'RSCVERSION' ${SRC_ROOT}/solenv/inc/minor.mk 
| sed 's/RSCVERSION=//'`}
LANGUAGES=${LANGUAGES:-"en-US ja"}
PREFIX=${PREFIX:-/opt}

TEMP_DIR=${TEMP_DIR:-${SRC_ROOT}/temp}
PATCH_DIR=${PATCH_DIR:-${SRC_ROOT}/temp/patch/${BUILD_NUMBER}}
PKGOUTDIR=${PKGOUTDIR:-${SRC_ROOT}/OOo_Package}
JAVA_HOME=${JAVA_HOME:-/usr/java/j2sdk1.4.2_09}
ANT_HOME=${ANT_HOME:-/usr/local/apache-ant-1.6.5}
VC_DIR=${VC_DIR:-/cygdrive/c/progra~1/micros~1.net}
CSC_DIR=${CSC_DIR:-/cygdrive/c/windows/micros~1.net/framew~1/v11~1.432}
FRAME_HOME=${FRAME_HOME:-/cygdrive/c/progra~1/micros~1.net/sdk/v1.1}
DIRECTX_HOME=${DIRECTX_HOME:-/cygdrive/c/progra~1/micros~1.0sd}
WDEVENV_DIR=${WDEVENV_DIR:-/cygdrive/c/progra~1/conver~1}

GNUCP=${GNUCP:-cp}
GNUPATCH=${GNUPATCH:-/usr/bin/patch}

GPC_LOCATE=${GPC_LOCATE:-ftp://ftp.cs.man.ac.uk/pub/toby/gpc}
GPC_ARCHIVE=${GPC_ARCHIVE:-gpc231.zip}

MOZILLA_VERSION=${MOZILLA_VERSION:-1.7.5}
MOZILLA_SOURCE_ARCHIVE=${MOZILLA_SOURCE_ARCHIVE:-mozilla-source-${MOZILLA_VERSION}.tar.gz}
MOZILLA_SOURCE_LOCATE=${MOZILLA_SOURCE_LOCATE:-http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla${MOZILLA_VERSION}/source}
MOZ_GLIB_ARCHIVE=${MOZ_GLIB_ARCHIVE:-vc71-glib-1.2.10-bin.zip}
MOZ_LIBIDL_ARCHIVE=${MOZ_LIBIDL_ARCHIVE:-vc71-libIDL-0.6.8-bin.zip}
MOZ_LIBS_LOCATE=${MOZ_LIBS_LOCATE:-ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32}
MOZ_WINTOOLS_ARCHIVE=${MOZ_WINTOOLS_ARCHIVE:-wintools.zip}
MOZ_WINTOOLS_LOCATE=${MOZ_WINTOOLS_LOCATE:-http://ftp.mozilla.org/pub/mozilla.org/mozilla/source}

CONFIG_FLAGS="--with-lang=\"${LANGUAGES}\" --with-dict=ALL 
--with-images='hicontrast industrial crystal'"
BUILD_OPTION=${BUILD_OPTION:-"strip=true"}
PACKAGE_FORMAT=${PACKAGE_FORMAT:-"rpm deb portable slackware"}
CREATE_SDK=${CREATE_SDK:-Yes}
CREATE_SOLVER=${CREATE_SOLVER:-Yes}
CREATE_LANGUAGEPACK=${CREATE_LANGUAGEPACK:-Yes}
CREATE_URE_PACKAGE=${CREATE_URE_PACKAGE:-Yes}
DIVIDE_PACKAGE=${DIVIDE_PACKAGE:-Yes}
PARALLEL_BUILD=${PARALLEL_BUILD:-Yes}
MAX_JOBS=${MAX_JOBS:-10}

CRASHDUMP=${CRASHDUMP:-Yes}
WITH_HTML=${WITH_HTML:-Yes}
ENABLE_MOZILLA=${ENABLE_MOZILLA:-Yes}
ORIGINALPATCH=${ORIGINALPATCH:-Yes}
MERGE_LOCALIZE_DATA=${MERGE_LOCALIZE_DATA:-Yes}
REPLACE_SPLASH=${REPLACE_SPLASH:-No}
REPLACE_VENDOR_NAME=${REPLACE_VENDOR_NAME:-Yes}

RPM_DIR=${RPM_DIR:-RPMS}
DEB_DIR=${DEB_DIR:-DEBS}
PORTABLE_DIR=${PORTABLE_DIR:-linux-2.4-intel}

# ==================================================
# jabuild.functionおよびカスタマイズ設定値のロード
# ==================================================
if [ -f ./jabuild.function ]; then
  . ./jabuild.function
else
  echo "jabuild.function not found !!"
  exit
fi

[ -f ./ooobuild.conf ] && . ./ooobuild.conf

export JAVA_HOME ANT_HOME

# ==================================================
# ビルドプラットホームの検出
# ==================================================
OOO_BUILD_SYSTEM=`GetPlatform`
if [ x${OOO_BUILD_SYSTEM} = xNotSupported ]; then
  PrintMessage "Operating system/CPU not supported yet."
  exit
else
  PrintMessage "Building platform : ${OOO_BUILD_SYSTEM}"
fi

# ==================================================
# ビルドプラットホーム別の設定
# ==================================================
case ${OOO_BUILD_SYSTEM} in
  LinuxIntel)
    GCC_VER=`gcc -v 2>&1 | tail -n 1 | awk '{print $3}' | sed 's/\.//g'`
    if [ ${GCC_VER} -ge 340 ] ; then
      OOOUTPATH=unxlngi6      # gcc 3.4
    else
      OOOUTPATH=unxlngi4      # gcc 3.3
    fiLanguagePack
#    CONFIG_FLAGS="${CONFIG_FLAGS} --prefix=${PREFIX} --enable-gcc3 
--enable-gtk --enable-kde --enable-cups --enable-fontconfig --enable-libart 
--with-system-freetype --enable-openldap --enable-libsn -enable-pam-link 
--enable-xrender-link --with-system-xrender-headers"
    CONFIG_FLAGS="${CONFIG_FLAGS} --prefix=${PREFIX} --enable-gcc3 --enable-gtk 
--enable-kde --enable-cups --enable-fontconfig --enable-libart 
--enable-openldap --enable-libsn -enable-pam-link --enable-xrender-link"
    DEFAULT_PACKAGE=`GetDefaultPackage`
    CONFIG_FLAGS="${CONFIG_FLAGS} --with-package-format=${DEFAULT_PACKAGE}"
    ;;
  LinuxPPC)
    OOOUTPATH=unxlngppc
    CONFIG_FLAGS="${CONFIG_FLAGS} --enable-gtk --enable-kde --prefix=${PREFIX} 
--enable-gcc3"
    ;;
  LinuxAMD)
    OOOUTPATH=unxlngx4
    CONFIG_FLAGS="${CONFIG_FLAGS} --enable-gtk --enable-kde --prefix=${PREFIX} 
--enable-gcc3"
    ;;
  SolarisSparc)
    OOOUTPATH=unxsols4
    CONFIG_FLAGS="${CONFIG_FLAGS} --prefix=${PREFIX} 
--with-gnu-patch=${GNUPATCH} --with-gnu-cp=${GNUCP}"
    ;;
  SolarisIntel)
    OOOUTPATH=unxsoli4
    CONFIG_FLAGS="${CONFIG_FLAGS} --prefix=${PREFIX} 
--with-gnu-patch=${GNUPATCH} --with-gnu-cp=${GNUCP}"
    ;;
  SolarisSparcGcc)
    OOOUTPATH=unxsogs
    CONFIG_FLAGS="${CONFIG_FLAGS} --prefix=${PREFIX} 
--with-gnu-patch=${GNUPATCH} --with-gnu-cp=${GNUCP}"
    ;;
  SolarisIntelGcc)
    OOOUTPATH=unxsogi
    CONFIG_FLAGS="${CONFIG_FLAGS} --prefix=${PREFIX} 
--with-gnu-patch=${GNUPATCH} --with-gnu-cp=${GNUCP}"
    ;;
  Win32Intel)
    CL_VER=`cl 2>&1 | head -n 1 | sed -e 's/(R)//' -e 's/\.//g' | awk '{print 
$7}'`
    if [ ${CL_VER} -ge 13103000 ] ; then
      OOOUTPATH=wntmsci10      # VC 2003
    else
      OOOUTPATH=wntmsci8      # VC 2002
    fi
    CONFIG_FLAGS="${CONFIG_FLAGS} --with-use-shell=tcsh"
    [ -d ${VC_DIR} ] && CONFIG_FLAGS="${CONFIG_FLAGS} --with-cl-home=${VC_DIR}"
    [ -d ${WDEVENV_DIR} ] && CONFIG_FLAGS="${CONFIG_FLAGS} 
--with-wdevenv-path=${WDEVENV_DIR}"
    [ -d ${FRAME_HOME} ] && CONFIG_FLAGS="${CONFIG_FLAGS} 
--with-frame-home=${FRAME_HOME}"
    [ -d ${CSC_DIR} ] && CONFIG_FLAGS="${CONFIG_FLAGS}  
--with-csc-path=${CSC_DIR}"
    if [ -d ${DIRECTX_HOME} ]; then
      CONFIG_FLAGS="${CONFIG_FLAGS} --with-directx-home=${DIRECTX_HOME}"
    else
      CONFIG_FLAGS="${CONFIG_FLAGS} -disable-directx"
    fi
    ;;
  *)
    ;;
esac

[ -d ${JAVA_HOME} ] &&  CONFIG_FLAGS="${CONFIG_FLAGS} 
--with-jdk-home=${JAVA_HOME}"
[ -d ${ANT_HOME} ] && CONFIG_FLAGS="${CONFIG_FLAGS} --with-ant-home=${ANT_HOME}"
[ x${CRASHDUMP} = xYes ] && CONFIG_FLAGS="${CONFIG_FLAGS} --enable-crashdump 
--enable-symbols=SMALL"


# =================================================
# 一時ディレクトリの作成
# =================================================
CreateDirectory ${TEMP_DIR} "Creating temporary directory"

# =================================================
# パッケージ保存先ディレクトリの作成
# =================================================
CreateDirectory ${PKGOUTDIR} "Creating Package Out directory"

# =================================================
# GPCのダウンロードと展開
# =================================================
[ -f ${SRC_ROOT}/external/gpc/gpc.c -a -f ${SRC_ROOT}/external/gpc/gpc.h ] || {
  PrintMessage "Download, unpack and copying GPC"
  DownloadFile ${GPC_LOCATE} ${GPC_ARCHIVE}
  unzip -o -d ${TEMP_DIR} ${TEMP_DIR}/${GPC_ARCHIVE}
  mv ${TEMP_DIR}/gpc231/* ${SRC_ROOT}/external/gpc/
  rmdir ${TEMP_DIR}/gpc231
}

# =================================================
# 
Mozillaソースなどのダウンロードと所定位置へのコピー、およびCONFIG_FLAGSの設定
# =================================================
if [ x${ENABLE_MOZILLA} = xYes ]; then
  PrintMessage "Download mozilla source file"
  DownloadFile ${MOZILLA_SOURCE_LOCATE} ${MOZILLA_SOURCE_ARCHIVE}
  ${GNUCP} -v ${TEMP_DIR}/${MOZILLA_SOURCE_ARCHIVE} ${SRC_ROOT}/moz/download
  [ x${OOO_BUILD_SYSTEM} = xWin32Intel ] && {
    DownloadFile ${MOZ_LIBS_LOCATE} ${MOZ_GLIB_ARCHIVE}
    DownloadFile ${MOZ_LIBS_LOCATE} ${MOZ_LIBIDL_ARCHIVE}
    DownloadFile ${MOZ_WINTOOLS_LOCATE} ${MOZ_WINTOOLS_ARCHIVE}
    ${GNUCP} -v ${TEMP_DIR}/${MOZ_GLIB_ARCHIVE} ${SRC_ROOT}/moz/download
    ${GNUCP} -v ${TEMP_DIR}/${MOZ_LIBIDL_ARCHIVE} ${SRC_ROOT}/moz/download
    ${GNUCP} -v ${TEMP_DIR}/${MOZ_WINTOOLS_ARCHIVE} ${SRC_ROOT}/moz/download
  }
  CONFIG_FLAGS="${CONFIG_FLAGS} --enable-mozilla --enable-build-mozilla  
--with-mozilla-version=${MOZILLA_VERSION}"
else
  CONFIG_FLAGS="${CONFIG_FLAGS} --disable-mozilla"
fi

# =================================================
# 
Windows上での実行時に必要となるDLLの所定位置へのコピー(Visual
 
C++インストール先がコマンドサーチパスに登録されている必要有り)
# =================================================
[ x${OOO_BUILD_SYSTEM} = xWin32Intel ] && {
  VCP71DIR=${SRC_ROOT}/external/msvcp71 
  PrintMessage "Copying required Dynamic link libralies"  CreatePackage 
InstallSet

  install -v -m755 ${TEMP_DIR}/unicows/* ${SRC_ROOT}/external/unicows
  install -v -m755 `which dbghelp.dll` ${SRC_ROOT}/external/dbghelp
  install -v -m755 `which msvcp70.dll` ${SRC_ROOT}/external/msvcp70
  install -v -m755 `which msvcr70.dll` ${SRC_ROOT}/external/msvcp70
  CreateDirectory ${VCP71DIR}
  install -v -m755 `which msvcp71.dll` ${VCP71DIR}
  install -v -m755 `which msvcr71.dll` ${VCP71DIR}
}

# ==================================================
# 
各国語用Wordbookが存在しない場合に、代替として英語用ファイルを各国語用のディレクトリにコピーする
# For the detail, see issue #10718
# ==================================================
PrintMessage "Fixed Japanese original issues"
cd ${SRC_ROOT}/extras/source/wordbook/lang &> /dev/null && {
  for LNG in ${LANGUAGES}
  do
    [ -d ${LNG} ] || {
      mkdir -p ${LNG}
      ${GNUCP} -fv en-US/soffice.dic ${LNG}
    }
  done
  cd ${SRC_ROOT}
}

# ==================================================
# [EMAIL PROTECTED]
# ==================================================
[ x${REPLACE_VENDOR_NAME} = xYes ] && {
  PrintMessage "Replace Vendor name"
  cd svx/source/intro &> /dev/null && {
    [ -e makefile.mk.original ] || {
      ${GNUCP} makefile.mk makefile.mk.original
      cat makefile.mk.original | eval sed 
's/\$\(USER\)\$\(USERNAME\)/${BUILDER_NAME}/' > makefile.mk
    }
    cd ${SRC_ROOT}
  }
}

# ==================================================
# スプラッシュイメージの置換
# ==================================================
[ x${REPLACE_SPLASH} = xYes ] && {
  PrintMessage "Replace splash images"
  ${GNUCP} -fv ${TEMP_DIR}/bmp/*.bmp ${SRC_ROOT}/svx/res
  ${GNUCP} -fv ${TEMP_DIR}/bmp/*.png ${SRC_ROOT}/svx/res
  ${GNUCP} -fv ${TEMP_DIR}/bmp/*.png ${SRC_ROOT}/svx/source/intro
  ${GNUCP} -fv ${TEMP_DIR}/bmp/openintro.bmp ${SRC_ROOT}/svx/res/ooointro.bmp
  ${GNUCP} -fv ${TEMP_DIR}/bmp/*.png ${SRC_ROOT}/default_images/svx/res
}

# ==================================================
# CCACHEを使用してビルドするように環境変数へ設定
# ==================================================
[ x${OOO_BUILD_SYSTEM} != xWin32Intel ] && {
  [ x`which ccache` = x ] || {
    if [ ${OOO_BUILD_SYSTEM} = SolarisSparc -o ${OOO_BUILD_SYSTEM} = 
SolarisIntel ]; then
      export CC="ccache cc"
      export CXX="CC"
    else
      export CC="ccache gcc"
      export CXX="ccache g++"
    fi
  }
}

# ==================================================
# 
すでにpatchファイルが適用済みか確認し、未適用の場合はApplyPatchファンクションをコールする
# 
また、patch適用したファイルのみ後から削除できるように削除用のスクリプトファイルを作成する
# ==================================================
[ x${ORIGINALPATCH} = xYes ] && {
  [ -e ${SRC_ROOT}/patch.log ] || {
    PrintMessage "Patching original patches"
    [ -e ${PATCH_DIR} ] && ApplyPatch ${PATCH_DIR}
    [ -e ${PATCH_DIR}/${OOO_BUILD_SYSTEM} ] && ApplyPatch 
${PATCH_DIR}/${OOO_BUILD_SYSTEM}
    echo '#!/bin/bash' > ${SRC_ROOT}/remove_patched_file.sh
    grep -i "patching file" ${SRC_ROOT}/patch.log | sed -e 's/patching file /rm 
-fv /' >> ${SRC_ROOT}/remove_patched_file.sh
    chmod 755 ${SRC_ROOT}/remove_patched_file.sh
  }
}

# ==================================================
# configure
# ==================================================
Configure "${CONFIG_FLAGS}"

# ==================================================
# ビルド環境設定スクリプトのロード
# ==================================================
LoadBuildEnvironment

# ==================================================
# 分散ビルドツールdmakeのビルド
# ==================================================
if [ -f ./bootstrap ]; then
  PrintMessage "Bootstrapping."
  ./bootstrap || {
    PrintMessage "Bootstrap failed. Fix it!"
    exit
  }
else
  PrintMessage "Configure failed. Fix it!"
  exit
fi

# ==================================================
# 
ローカライズデータ用ツールのビルドとオリジナルローカライズデータの登録
# ==================================================
[ x${MERGE_LOCALIZE_DATA} = xYes ] && {
  PrintMessage "Prepare localize tools."
  BuildProject transex3 "--all ${BUILD_OPTION}"
  PrintMessage "Merging localize data."
  for GSI in `echo ${TEMP_DIR}/sdf/*.sdf | sed '/\*/d'`
  do
    for LNG in ${LANGUAGES}
    do
      localize -m -x -l ${LNG} -f ${GSI}
    done
  done
}

# ==================================================
# LinuxIntel : 
複数のパッケージを作成する場合に、デフォルト以外のメニュー登録用パッケージは作成されない為、それ以外のメニュー登録用パッケージを前もって作成する
# ==================================================
[ x${OOO_BUILD_SYSTEM} = xLinuxIntel ] && {
  MENU_CONFIG="${CONFIG_FLAGS}"
  PrintMessage "Prepare menus package."
  for PKG in ${PACKAGE_FORMAT}
  do
    case ${PKG} in
      ${DEFAULT_PACKAGE})
        ;;
      portable)
        ;;
      slackware)
        ;;
      *)
        MENU_CONFIG=`echo "${CONFIG_FLAGS}" | eval sed 
's/--with-package-format=${DEFAULT_PACKAGE}/-with-package-format=${PKG}/'`
        Configure "${MENU_CONFIG}"
        LoadBuildEnvironment
        BuildProject sysui "--all ${BUILD_OPTION}"
        ;;
    esac
  done
  [ "${CONFIG_FLAGS}" = "${MENU_CONFIG}" ] || {
    Configure "${CONFIG_FLAGS}"
    LoadBuildEnvironment
  }
}

# ==================================================
# ビルドプロセスの開始
# ==================================================
BLD_OPTION="--all product=full"
MESSAGE="Serial Building ..."
PrintMessage "Start build process."
[ x${WITH_HTML} = xYes ] && BLD_OPTION="${BLD_OPTION} --html"
case ${OOO_BUILD_SYSTEM} in
  LinuxIntel)
    ParallelSetting
    [ $? = 0 ] && MESSAGE="Parallel Building ..."
    ;;
  Win32Intel)
    ;;
  *)
    ParallelSetting
    [ $? = 0 ] && MESSAGE="Parallel Building ..."
    ;;
esac
PrintMessage "${MESSAGE}"
BuildProject instsetoo_native/util "${BLD_OPTION} ${BUILD_OPTION}"

# ==================================================
# SDK パッケージの作成
# ==================================================
[ x${CREATE_SDK} = xYes ] && {
  for LANG in ${LANGUAGES}
  do
    PackageSDK ${LANG}
  done
}

# ==================================================
# SOLVER パッケージの作成
# ==================================================
[ x${CREATE_SOLVER} = xYes ] && PackageSolver

# ==================================================
# UnoRuntime Environment パッケージの作成
# ==================================================
[ x${CREATE_URE_PACKAGE} = xYes ] && PackageURE

# ==================================================
# インストールセットの作成
# ==================================================
if [ x${OOO_BUILD_SYSTEM} = xLinuxIntel ]; then
  for PKG in ${PACKAGE_FORMAT}
  do
    CreatePackage InstallSet ${PKG}
    [ x${CREATE_LANGUAGEPACK} = xYes ] && CreatePackage LanguagePack ${PKG}
  done
else
  CreatePackage InstallSet
  [ x${CREATE_LANGUAGEPACK} = xYes ] && CreatePackage LanguagePack
fi

# ==================================================
# インストールセットの分割 (SourceForge.jpアップロード用)
# ==================================================
[ x${OOO_BUILD_SYSTEM} = xLinuxIntel -a x${DIVIDE_PACKAGE} = xYes ] && {
  for LANG in ${LANGUAGES}
  do
    for PACKAGE in ${PACKAGE_FORMAT}
    do
      DividePackage ${LANG} ${PACKAGE}
    done
  done
}




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

メールによる返信