diff options
62 files changed, 2735 insertions, 856 deletions
diff --git a/configure b/configure index 8ba4664381db..4afd6e3777fe 100755 --- a/configure +++ b/configure @@ -665,6 +665,9 @@ ENABLE_EVOAB2 GOBJECT_LIBS GOBJECT_CFLAGS ENABLE_LOCKDOWN +KDE4_LIBS +KDE4_CFLAGS +MOC4 KDE_LIBS KDE_CFLAGS MOC @@ -716,9 +719,9 @@ GNOMEVFS_CFLAGS ENABLE_GCONF GCONF_LIBS GCONF_CFLAGS +ENABLE_KDE4 ENABLE_KDE ENABLE_GTK -WITH_GPC ZIP_HOME UNZIP ZIP @@ -773,6 +776,10 @@ X_LIBS X_PRE_LIBS X_CFLAGS XMKMF +SYSTEM_GRAPHITE +ENABLE_GRAPHITE +GRAPHITE_LIBS +GRAPHITE_CFLAGS SYSTEM_ICU SYSTEM_GENCMN SYSTEM_GENCCODE @@ -784,6 +791,8 @@ MOZ_LIB MOZ_INC MOZ_FLAVOUR SYSTEM_MOZILLA +MOZILLABUILD +ENABLE_NSS_MODULE BUILD_MOZAB MOZLIBREQ_LIBS MOZLIBREQ_CFLAGS @@ -884,6 +893,14 @@ HAVE_GCC_VISIBILITY_FEATURE USE_SYSTEM_STL STLPORT_VER STLPORT4 +EXCEPTIONS +MINGW_GXXDLL +MINGW_GCCDLL +MINGW_SHARED_GXXLIB +MINGW_GCCLIB_EH +MINGW_SHARED_GCCLIB +MINGW_CLIB_DIR +MINGW_BACKWARD_INCLUDE_PATH MINGW_LIB_INCLUDE_PATH GXX_INCLUDE_PATH CRYPT_LINK @@ -1014,7 +1031,8 @@ enable_option_checking with_gnu_patch with_agg with_gnu_cp -with_gpc +enable_graphite +with_system_graphite enable_ldap with_openldap enable_lockdown @@ -1062,8 +1080,10 @@ enable_layout enable_build_mozilla with_mozilla_version with_mozilla_toolkit +enable_nss_module enable_kde enable_kdeab +enable_kde4 enable_binfilter enable_rpath enable_pam @@ -1152,6 +1172,7 @@ with_nsis_path with_frame_home with_psdk_home with_directx_home +with_mozilla_build with_local_solenv with_local_solver enable_check_only @@ -1817,6 +1838,8 @@ Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-graphite Enables the compilation of Graphite smart font rendering + --disable-ldap Disables the use of LDAP backend via Netscape/Mozilla or OpenLDAP LDAP SDK @@ -1935,11 +1958,17 @@ Optional Features: mozilla components from the mozilla source code but take precompiled zips + --disable-nss-module Whether to use provided NSS module + --enable-kde Determines whether to use Qt/KDE vclplug on platforms where Qt and KDE are available. --disable-kdeab Disable the KDE address book support + --enable-kde4 Determines whether to use Qt4/KDE4 vclplug on platforms + where Qt4 and KDE4 are available. May be used with --enable-kde + if you want to support both KDE3 and KDE4. + --disable-binfilter Disable legacy binary file formats filters --disable-rpath Disable the use of relative paths in shared libraries @@ -2005,8 +2034,7 @@ Optional Packages: --with-gnu-cp Specify location of GNU cp on Solaris or FreeBSD - --without-gpc Use the internal polygon clipping code instead of - the external GPC polygon clipping library. + --with-system-graphite use graphite library already installed on system --with-openldap Enables the use of the OpenLDAP LDAP SDK instead of the Netscape/Mozilla one @@ -2272,6 +2300,11 @@ Optional Packages: Usage: --with-directx-home=<absolute path to Microsoft DirectX SDK> + --with-mozilla-build For Windows users, please supply the path to the + mozilla build tools. + + Usage: --with-mozilla-build=<absolute path to mozilla build tools> + --with-local-solenv If you have solenv in a location other than ./solenv, please supply the path here. @@ -2846,12 +2879,15 @@ if test "${with_gnu_cp+set}" = set; then withval=$with_gnu_cp; fi +# Check whether --enable-graphite was given. +if test "${enable_graphite+set}" = set; then + enableval=$enable_graphite; +fi -# Check whether --with-gpc was given. -if test "${with_gpc+set}" = set; then - withval=$with_gpc; -else - if test ! -e ./external/gpc/gpc.c && test ! -e ./external/gpc/gpc.h; then without_gpc=yes; fi + +# Check whether --with-system-graphite was given. +if test "${with_system_graphite+set}" = set; then + withval=$with_system_graphite; fi # Check whether --enable-ldap was given. @@ -3141,6 +3177,13 @@ if test "${with_mozilla_toolkit+set}" = set; then withval=$with_mozilla_toolkit; fi +# Check whether --enable-nss_module was given. +if test "${enable_nss_module+set}" = set; then + enableval=$enable_nss_module; +else + enable_nss_module=yes +fi + # Check whether --enable-kde was given. if test "${enable_kde+set}" = set; then enableval=$enable_kde; @@ -3153,6 +3196,11 @@ else if test "$enable_kde" = "yes"; then enable_kdeab=yes; fi fi +# Check whether --enable-kde4 was given. +if test "${enable_kde4+set}" = set; then + enableval=$enable_kde4; +fi + # Check whether --enable-binfilter was given. if test "${enable_binfilter+set}" = set; then enableval=$enable_binfilter; @@ -3708,6 +3756,12 @@ if test "${with_directx_home+set}" = set; then fi +# Check whether --with-mozilla-build was given. +if test "${with_mozilla_build+set}" = set; then + withval=$with_mozilla_build; MOZILLABUILD=$withval +fi + + # Check whether --with-local-solenv was given. if test "${with_local_solenv+set}" = set; then withval=$with_local_solenv; @@ -4422,6 +4476,7 @@ $as_echo "$as_me: error: only sparc and i386 processors are supported" >&2;} test_gtk=yes test_cairo=yes test_kde=yes + test_kde4=yes test_cups=yes test_randr=yes test_freetype=yes @@ -4466,6 +4521,7 @@ $as_echo "$as_me: WARNING: Disabling gtk-quickstarter - not supported on Mac. Us test_gtk=yes test_cairo=yes test_kde=yes + test_kde4=yes test_cups=yes test_randr=yes test_freetype=yes @@ -4503,6 +4559,7 @@ $as_echo "$PTHREAD_LIBS" >&6; } test_gtk=yes test_cairo=yes test_kde=yes + test_kde4=yes test_cups=no test_randr=yes test_freetype=yes @@ -10717,6 +10774,10 @@ $as_echo_n "checking for g++ include path... " >&6; } with_gxx_include_path=`cygpath -d "$with_gxx_include_path"` with_gxx_include_path=`cygpath -u "$with_gxx_include_path"` fi + if echo $with_gxx_include_path | grep -q linux; then + # workaround for Mandriva - issue 100049 + with_gxx_include_path=`cd $with_gxx_include_path && pwd` + fi fi fi if test -z "$with_gxx_include_path"; then @@ -10756,7 +10817,76 @@ $as_echo "no mingwin runtime includes" >&6; } { $as_echo "$as_me:$LINENO: result: $_mingw_lib_include_path" >&5 $as_echo "$_mingw_lib_include_path" >&6; } fi -MINGW_LIB_INCLUDE_PATH="$_mingw_lib_include_path" + MINGW_LIB_INCLUDE_PATH="$_mingw_lib_include_path" + + { $as_echo "$as_me:$LINENO: checking for mingwin c++ backward include path" >&5 +$as_echo_n "checking for mingwin c++ backward include path... " >&6; } + cat >conftest.$ac_ext <<_ACEOF +#include <hash_set> +_ACEOF + _mingw_backward_include_path=`$CXX -E -xc++ -Wno-deprecated conftest.$ac_ext 2>&5| $SED -n -e '/.*1*"\(.*\)\/hash_set".*/s//\1/p' | sort -u | xargs echo` + rm conftest.$ac_ext + if test -n "$_mingw_backward_include_path"; then + _mingw_backward_include_path=`cygpath -d $_mingw_backward_include_path` + _mingw_backward_include_path=`cygpath -u $_mingw_backward_include_path` + { $as_echo "$as_me:$LINENO: result: $_mingw_backward_include_path" >&5 +$as_echo "$_mingw_backward_include_path" >&6; } + else + _mingw_backward_include_path="NO_BACKWARD_INCLUDE" + { $as_echo "$as_me:$LINENO: result: no mingwin c++ backward includes" >&5 +$as_echo "no mingwin c++ backward includes" >&6; } + fi + MINGW_BACKWARD_INCLUDE_PATH="$_mingw_backward_include_path" + + mingw_crtbegin=`$CC -print-file-name=crtbegin.o` + MINGW_CLIB_DIR=`dirname $mingw_crtbegin` + { $as_echo "$as_me:$LINENO: checking whether to use dynamic libgcc" >&5 +$as_echo_n "checking whether to use dynamic libgcc... " >&6; } + if test -e "$MINGW_CLIB_DIR/libgcc_s.a"; then + { $as_echo "$as_me:$LINENO: checking dynamic libgcc name" >&5 +$as_echo_n "checking dynamic libgcc name... " >&6; } + MINGW_GCCDLL_pattern=`nm $MINGW_CLIB_DIR/libgcc_s.a | sed -ne 's@.* _libgcc\(.*\)_dll_iname@libgcc\1.dll@p' | uniq | sed -e 's@_@?@g'` + MINGW_GCCDLL=`cd $COMPATH && ls $MINGW_GCCDLL_pattern 2>/dev/null` + if test -n "$MINGW_GCCDLL"; then + MINGW_SHARED_GCCLIB=YES + { $as_echo "$as_me:$LINENO: result: use $MINGW_GCCDLL" >&5 +$as_echo "use $MINGW_GCCDLL" >&6; } + else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + fi + else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + fi + if test -e "$MINGW_CLIB_DIR/libgcc_eh.a"; then + MINGW_GCCLIB_EH=YES + fi + { $as_echo "$as_me:$LINENO: checking whether to use dynamic libstdc++" >&5 +$as_echo_n "checking whether to use dynamic libstdc++... " >&6; } + if test -e "$MINGW_CLIB_DIR/libstdc++_s.a" ; then + { $as_echo "$as_me:$LINENO: checking dynamic libstdc++ name" >&5 +$as_echo_n "checking dynamic libstdc++ name... " >&6; } + MINGW_GXXDLL_pattern=`nm $MINGW_CLIB_DIR/libstdc++_s.a | sed -ne 's@.* _libstdc__\(.*\)_dll_iname@libstdc++\1.dll@p' | uniq | sed -e 's@_@?@g'` + MINGW_GXXDLL=`cd $COMPATH && ls $MINGW_GXXDLL_pattern 2>/dev/null` + if test -n "$MINGW_GXXDLL"; then + MINGW_SHARED_GXXLIB=YES + { $as_echo "$as_me:$LINENO: result: use $MINGW_GXXDLL" >&5 +$as_echo "use $MINGW_GXXDLL" >&6; } + else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + fi + else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + fi + MINGW_CLIB_DIR=`cygpath $MINGW_CLIB_DIR` + + + + + fi @@ -10817,6 +10947,81 @@ $as_echo "checked" >&6; } fi fi +{ $as_echo "$as_me:$LINENO: checking exception type" >&5 +$as_echo_n "checking exception type... " >&6; } +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +if test "$WITH_MINGWIN" = "yes"; then + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <iostream> + +extern "C" void _Unwind_SjLj_RaiseException(void) __attribute__ ((__noreturn__)); + + +int +main () +{ +_Unwind_SjLj_RaiseException() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + exceptions_type="sjlj" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + exceptions_type="dwarf2" + +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi + +{ $as_echo "$as_me:$LINENO: result: $exceptions_type" >&5 +$as_echo "$exceptions_type" >&6; } +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +EXCEPTIONS="$exceptions_type" + + if test "$_os" = "SunOS"; then _temp=`showrev -p | $AWK -F" " '{ print $2 }'` if test "$_os_release" = "7"; then @@ -11188,8 +11393,7 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17046,6 +17250,7 @@ if test "$enable_mozilla" = "no"; then { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } WITH_MOZILLA=NO + ENABLE_NSS_MODULE=NO else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -17428,6 +17633,8 @@ if test -n "$with_system_mozilla" && test "$with_system_mozilla" != "no"; then { $as_echo "$as_me:$LINENO: result: external" >&5 $as_echo "external" >&6; } SYSTEM_MOZILLA=YES + ENABLE_NSS_MODULE=NO + enable_nss_module=no { $as_echo "$as_me:$LINENO: checking which Mozilla flavour to use" >&5 $as_echo_n "checking which Mozilla flavour to use... " >&6; } if test -n "$with_system_mozilla" && test "$with_system_mozilla" = "libxul"; then @@ -18186,6 +18393,8 @@ elif test "$enable_mozilla" = "no"; then { $as_echo "$as_me:$LINENO: result: none" >&5 $as_echo "none" >&6; } WITH_MOZILLA=NO + ENABLE_NSS_MODULE=NO + enable_nss_module=no else { $as_echo "$as_me:$LINENO: result: internal" >&5 $as_echo "internal" >&6; } @@ -18251,6 +18460,49 @@ else $as_echo "no" >&6; } fi +{ $as_echo "$as_me:$LINENO: checking whether to build provided NSS module" >&5 +$as_echo_n "checking whether to build provided NSS module... " >&6; } +if test "$enable_nss_module" != "no"; then + ENABLE_NSS_MODULE="YES" + BUILD_TYPE="$BUILD_TYPE NSS" + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + if test "$_os" = "WINNT"; then + { $as_echo "$as_me:$LINENO: checking for Mozilla build tooling" >&5 +$as_echo_n "checking for Mozilla build tooling... " >&6; } + if test -z "$MOZILLABUILD" ; then +{ { $as_echo "$as_me:$LINENO: error: Mozilla build tooling not found. Use --with-mozilla-build=<absolut path to mozilla build tooling (mozilla-build)>" >&5 +$as_echo "$as_me: error: Mozilla build tooling not found. Use --with-mozilla-build=<absolut path to mozilla build tooling (mozilla-build)>" >&2;} + { (exit 1); exit 1; }; } + else + if test \( "$WITH_MINGWIN" = "yes" \) ; then + if test ! -d "$MOZILLABUILD" ; then +{ { $as_echo "$as_me:$LINENO: error: Mozilla build tooling incomplete!" >&5 +$as_echo "$as_me: error: Mozilla build tooling incomplete!" >&2;} + { (exit 1); exit 1; }; } + else + { $as_echo "$as_me:$LINENO: result: ok" >&5 +$as_echo "ok" >&6; } + fi + else + if test ! -d "$MOZILLABUILD/moztools" \ + -o ! -d "$MOZILLABUILD/msys" ; then +{ { $as_echo "$as_me:$LINENO: error: Mozilla build tooling incomplete!" >&5 +$as_echo "$as_me: error: Mozilla build tooling incomplete!" >&2;} + { (exit 1); exit 1; }; } + else + { $as_echo "$as_me:$LINENO: result: ok" >&5 +$as_echo "ok" >&6; } + fi + fi + fi + fi +else + ENABLE_NSS_MODULE="NO" + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "$BUILD_MOZAB" = "TRUE"; then if test "$_os" = "WINNT"; then if test "$WITH_MINGWIN" != "yes"; then @@ -18944,6 +19196,8 @@ fi + + { $as_echo "$as_me:$LINENO: checking which sane header to use" >&5 $as_echo_n "checking which sane header to use... " >&6; } if test -n "$with_system_sane_header" -o -n "$with_system_headers" && \ @@ -19370,6 +19624,144 @@ fi +{ $as_echo "$as_me:$LINENO: checking whether to enable graphite support" >&5 +$as_echo_n "checking whether to enable graphite support... " >&6; } +if test "$_os" = "WINNT" -o "$_os" = "Linux" && test "z$enable_graphite" == "z" -o "$enable_graphite" != "no" ; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + ENABLE_GRAPHITE="TRUE" + { $as_echo "$as_me:$LINENO: checking which graphite to use" >&5 +$as_echo_n "checking which graphite to use... " >&6; } + if test -n "$with_system_graphite" -o -n "$with_system_libs" && \ + test "$with_system_graphite" != "no"; then + { $as_echo "$as_me:$LINENO: result: external" >&5 +$as_echo "external" >&6; } + SYSTEM_GRAPHITE=YES + + succeeded=no + + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + { $as_echo "$as_me:$LINENO: checking for silgraphite " >&5 +$as_echo_n "checking for silgraphite ... " >&6; } + + if $PKG_CONFIG --exists "silgraphite " ; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + succeeded=yes + + { $as_echo "$as_me:$LINENO: checking GRAPHITE_CFLAGS" >&5 +$as_echo_n "checking GRAPHITE_CFLAGS... " >&6; } + GRAPHITE_CFLAGS=`$PKG_CONFIG --cflags "silgraphite "` + { $as_echo "$as_me:$LINENO: result: $GRAPHITE_CFLAGS" >&5 +$as_echo "$GRAPHITE_CFLAGS" >&6; } + + { $as_echo "$as_me:$LINENO: checking GRAPHITE_LIBS" >&5 +$as_echo_n "checking GRAPHITE_LIBS... " >&6; } + GRAPHITE_LIBS=`$PKG_CONFIG --libs "silgraphite "` + { $as_echo "$as_me:$LINENO: result: $GRAPHITE_LIBS" >&5 +$as_echo "$GRAPHITE_LIBS" >&6; } + else + GRAPHITE_CFLAGS="" + GRAPHITE_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + GRAPHITE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "silgraphite "` + echo $GRAPHITE_PKG_ERRORS + fi + + + + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + : + else + { { $as_echo "$as_me:$LINENO: error: Library requirements (silgraphite ) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5 +$as_echo "$as_me: error: Library requirements (silgraphite ) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;} + { (exit 1); exit 1; }; } + fi + + { $as_echo "$as_me:$LINENO: checking STL compatibility" >&5 +$as_echo_n "checking STL compatibility... " >&6; } + if test "$WITH_STLPORT" != "no"; then + { { $as_echo "$as_me:$LINENO: error: to use system graphite you need to use --without-stlport" >&5 +$as_echo "$as_me: error: to use system graphite you need to use --without-stlport" >&2;} + { (exit 1); exit 1; }; } + else + { $as_echo "$as_me:$LINENO: result: OK" >&5 +$as_echo "OK" >&6; } + fi + else + { $as_echo "$as_me:$LINENO: result: internal" >&5 +$as_echo "internal" >&6; } + SYSTEM_GRAPHITE=NO + BUILD_TYPE="$BUILD_TYPE GRAPHITE" + fi +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + + if test "$_os" = "Darwin"; then if test "x$with_x" = "xyes"; then { { $as_echo "$as_me:$LINENO: error: X11 build is no longer supported on MacOSX, please use the native aqua build" >&5 @@ -24896,46 +25288,6 @@ $as_echo "found and copied" >&6; } fi fi -{ $as_echo "$as_me:$LINENO: checking which polygon clipping code to use" >&5 -$as_echo_n "checking which polygon clipping code to use... " >&6; } -WITH_GPC=NO - -if test "$with_gpc" != "no" && test "$without_gpc" != "yes"; then - WITH_GPC=YES - { $as_echo "$as_me:$LINENO: result: GPC" >&5 -$as_echo "GPC" >&6; } - - { $as_echo "$as_me:$LINENO: checking for GPC files" >&5 -$as_echo_n "checking for GPC files... " >&6; } - if test -f ./external/gpc/gpc.h; then - HAVE_GPC_H="yes" - else - HAVE_GPC_H="no" - fi - if test -f ./external/gpc/gpc.c; then - HAVE_GPC_C="yes" - else - HAVE_GPC_C="no" - fi - - if test "$HAVE_GPC_H" = "yes" -a "$HAVE_GPC_C" = "yes"; then - { $as_echo "$as_me:$LINENO: result: GPC files found" >&5 -$as_echo "GPC files found" >&6; } - else - { { $as_echo "$as_me:$LINENO: error: GPC files not found -ftp://ftp.cs.man.ac.uk/pub/toby/gpc/gpc231.tar.Z and untar in external/gpc, -or use basegfx' implementation using --without-gpc" >&5 -$as_echo "$as_me: error: GPC files not found -ftp://ftp.cs.man.ac.uk/pub/toby/gpc/gpc231.tar.Z and untar in external/gpc, -or use basegfx' implementation using --without-gpc" >&2;} - { (exit 1); exit 1; }; } - fi -else - { $as_echo "$as_me:$LINENO: result: internal" >&5 -$as_echo "internal" >&6; } -fi - - { $as_echo "$as_me:$LINENO: checking which VCLplugs shall be built" >&5 $as_echo_n "checking which VCLplugs shall be built... " >&6; } ENABLE_GTK="" @@ -24952,6 +25304,13 @@ if test "x$enable_kde" = "xyes"; then fi +ENABLE_KDE4="" +if test "x$enable_kde4" = "xyes"; then + ENABLE_KDE4="TRUE" + R="$R kde4" +fi + + if test -z "$R"; then { $as_echo "$as_me:$LINENO: result: none" >&5 $as_echo "none" >&6; } @@ -27525,11 +27884,11 @@ if test "$test_kde" = "yes" -a "$ENABLE_KDE" = "TRUE" ; then fi fi if test "$build_cpu" != "x86_64" ; then - kde_incdirs="/usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes" - kde_libdirs="/usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/lib /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib $x_libraries" + kde_incdirs="/usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /opt/kde3/include /opt/kde/include $x_includes" + kde_libdirs="/usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib /usr/lib $x_libraries" else - kde_incdirs="/usr/lib64/kde/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes" - kde_libdirs="/usr/lib64/kde/lib64 /usr/local/kde/lib64 /usr/kde/lib64 /usr/lib64/kde /usr/lib64/kde3 /usr/lib64 /usr/X11R6/lib64 /usr/local/lib64 /opt/kde3/lib64 /opt/kde/lib64 /usr/X11R6/kde/lib64 /usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/lib /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib $x_libraries" + kde_incdirs="/usr/lib64/kde/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /opt/kde3/include /opt/kde/include $x_includes" + kde_libdirs="/usr/lib64/kde/lib64 /usr/local/kde/lib64 /usr/kde/lib64 /usr/lib64/kde /usr/lib64/kde3 /usr/X11R6/lib64 /usr/local/lib64 /opt/kde3/lib64 /opt/kde/lib64 /usr/X11R6/kde/lib64 /usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/lib /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib /usr/lib64 $x_libraries" fi if test -n "$KDEDIR" ; then kde_incdirs="$KDEDIR/include $kde_incdirs" @@ -27583,7 +27942,7 @@ your Qt installation by exporting QTDIR before running \"configure\"." >&2;} { (exit 1); exit 1; }; } fi - # Extract the first word of "moc", so it can be a program name with args. + # Extract the first word of "moc", so it can be a program name with args. set dummy moc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } @@ -27631,7 +27990,7 @@ the root of your Qt installation by exporting QTDIR before running \"configure\" $as_echo "$as_me: error: Qt Meta Object Compiler not found. Please specify the root of your Qt installation by exporting QTDIR before running \"configure\"." >&2;} { (exit 1); exit 1; }; } - fi + fi { $as_echo "$as_me:$LINENO: checking for KDE headers" >&5 $as_echo_n "checking for KDE headers... " >&6; } @@ -27678,6 +28037,156 @@ fi + +KDE4_CFLAGS="" +KDE4_LIBS="" +MOC4="moc" +if test "$test_kde4" = "yes" -a "$ENABLE_KDE4" = "TRUE" ; then + qt_incdirs="$QTINC $QTDIR /usr/include/qt4 /usr/include $x_includes" + qt_libdirs="$QTLIB /usr/lib $x_libraries" + + kde_incdirs="/usr/include $x_includes" + kde_libdirs="/usr/lib $x_libraries" + + if test "$build_cpu" == "x86_64" ; then + qt_libdirs="$qt_libdirs /usr/lib64/qt4 /usr/lib64/qt /usr/lib64" + kde_libdirs="$kde_libdirs /usr/lib64 /usr/lib64/kde4" + fi + + qt_test_include="Qt/qobject.h" + qt_test_library="libQtCore.so" + kde_test_include="ksharedptr.h" + kde_test_library="libkdeui.so" + + { $as_echo "$as_me:$LINENO: checking for Qt4 headers" >&5 +$as_echo_n "checking for Qt4 headers... " >&6; } + qt_header_dir="no" + for inc_dir in $qt_incdirs ; do + if test -r "$inc_dir/$qt_test_include" ; then + qt_header_dir="$inc_dir" + break + fi + done + + { $as_echo "$as_me:$LINENO: result: $qt_header_dir" >&5 +$as_echo "$qt_header_dir" >&6; } + if test "x$qt_header_dir" = "xno" ; then + { { $as_echo "$as_me:$LINENO: error: Qt4 headers not found. Please specify the root of your Qt4 installation by exporting QTDIR before running \"configure\"." >&5 +$as_echo "$as_me: error: Qt4 headers not found. Please specify the root of your Qt4 installation by exporting QTDIR before running \"configure\"." >&2;} + { (exit 1); exit 1; }; } + fi + + { $as_echo "$as_me:$LINENO: checking for Qt4 libraries" >&5 +$as_echo_n "checking for Qt4 libraries... " >&6; } + qt_lib_dir="no" + for lib_dir in $qt_libdirs ; do + if test -r "$lib_dir/$qt_test_library" ; then + qt_lib_dir="$lib_dir" + break + fi + done + + { $as_echo "$as_me:$LINENO: result: $qt_lib_dir" >&5 +$as_echo "$qt_lib_dir" >&6; } + + if test "x$qt_lib_dir" = "xno" ; then + { { $as_echo "$as_me:$LINENO: error: Qt4 libraries not found. Please specify the root of your Qt4 installation by exporting QTDIR before running \"configure\"." >&5 +$as_echo "$as_me: error: Qt4 libraries not found. Please specify the root of your Qt4 installation by exporting QTDIR before running \"configure\"." >&2;} + { (exit 1); exit 1; }; } + fi + + # Extract the first word of "moc", so it can be a program name with args. +set dummy moc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MOC4+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $MOC4 in + [\\/]* | ?:[\\/]*) + ac_cv_path_MOC4="$MOC4" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="$PATH:$QTDIR/bin " +for as_dir in $as_dummy +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_MOC4="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_MOC4" && ac_cv_path_MOC4="no" + ;; +esac +fi +MOC4=$ac_cv_path_MOC4 +if test -n "$MOC4"; then + { $as_echo "$as_me:$LINENO: result: $MOC4" >&5 +$as_echo "$MOC4" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$MOC4" = "no" ; then + { { $as_echo "$as_me:$LINENO: error: Qt Meta Object Compiler not found. Please specify +the root of your Qt installation by exporting QTDIR before running \"configure\"." >&5 +$as_echo "$as_me: error: Qt Meta Object Compiler not found. Please specify +the root of your Qt installation by exporting QTDIR before running \"configure\"." >&2;} + { (exit 1); exit 1; }; } + fi + + { $as_echo "$as_me:$LINENO: checking for KDE4 headers" >&5 +$as_echo_n "checking for KDE4 headers... " >&6; } + kde_incdir="no" + for kde_check in $kde_incdirs ; do + if test -r "$kde_check/$kde_test_include" ; then + kde_incdir="$kde_check" + break + fi + done + { $as_echo "$as_me:$LINENO: result: $kde_incdir" >&5 +$as_echo "$kde_incdir" >&6; } + if test "x$kde_incdir" = "xno" ; then + { { $as_echo "$as_me:$LINENO: error: KDE4 headers not found. Please specify the root of your KDE4 installation by exporting KDEDIR before running \"configure\"." >&5 +$as_echo "$as_me: error: KDE4 headers not found. Please specify the root of your KDE4 installation by exporting KDEDIR before running \"configure\"." >&2;} + { (exit 1); exit 1; }; } + fi + + { $as_echo "$as_me:$LINENO: checking for KDE4 libraries" >&5 +$as_echo_n "checking for KDE4 libraries... " >&6; } + kde_libdir="no" + for kde_check in $kde_libdirs ; do + if test -r "$kde_check/$kde_test_library" ; then + kde_libdir="$kde_check" + break + fi + done + + { $as_echo "$as_me:$LINENO: result: $kde_libdir" >&5 +$as_echo "$kde_libdir" >&6; } + if test "x$kde_libdir" = "xno" ; then + { { $as_echo "$as_me:$LINENO: error: KDE4 libraries not found. Please specify the root of your KDE4 installation by exporting KDEDIR before running \"configure\"." >&5 +$as_echo "$as_me: error: KDE4 libraries not found. Please specify the root of your KDE4 installation by exporting KDEDIR before running \"configure\"." >&2;} + { (exit 1); exit 1; }; } + fi + + KDE4_CFLAGS="`pkg-config --cflags QtCore` `pkg-config --cflags QtGui` -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT" + KDE4_LIBS="-L$kde_libdir -L$qt_lib_dir -lkdeui -lkdecore -lQtCore -lQtGui" +fi + + + + { $as_echo "$as_me:$LINENO: checking whether to enable the lockdown pieces" >&5 $as_echo_n "checking whether to enable the lockdown pieces... " >&6; } ENABLE_LOCKDOWN="" diff --git a/configure.in b/configure.in index cc9a533e5553..8ebcc3dc4a97 100644 --- a/configure.in +++ b/configure.in @@ -25,10 +25,12 @@ AC_ARG_WITH(agg, AC_ARG_WITH(gnu-cp, [ --with-gnu-cp Specify location of GNU cp on Solaris or FreeBSD ],,) -AC_ARG_WITH(gpc, -[ --without-gpc Use the internal polygon clipping code instead of - the external GPC polygon clipping library. -],,if test ! -e ./external/gpc/gpc.c && test ! -e ./external/gpc/gpc.h; then without_gpc=yes; fi) +AC_ARG_ENABLE(graphite, +[ --enable-graphite Enables the compilation of Graphite smart font rendering +],,) +AC_ARG_WITH(system-graphite, +[ --with-system-graphite use graphite library already installed on system +],,) AC_ARG_ENABLE(ldap, [ --disable-ldap Disables the use of LDAP backend via Netscape/Mozilla or OpenLDAP LDAP SDK @@ -252,6 +254,9 @@ AC_ARG_WITH(mozilla-toolkit, [ --with-mozilla-toolkit Choose which GUI toolkit to use while building mozilla components. Default: gtk2 ],,) +AC_ARG_ENABLE(nss_module, +[ --disable-nss-module Whether to use provided NSS module +],,enable_nss_module=yes) AC_ARG_ENABLE(kde, [ --enable-kde Determines whether to use Qt/KDE vclplug on platforms where Qt and KDE are available. @@ -259,6 +264,11 @@ AC_ARG_ENABLE(kde, AC_ARG_ENABLE(kdeab, [ --disable-kdeab Disable the KDE address book support ],,if test "$enable_kde" = "yes"; then enable_kdeab=yes; fi) +AC_ARG_ENABLE(kde4, +[ --enable-kde4 Determines whether to use Qt4/KDE4 vclplug on platforms + where Qt4 and KDE4 are available. May be used with --enable-kde + if you want to support both KDE3 and KDE4. +],,) AC_ARG_ENABLE(binfilter, [ --disable-binfilter Disable legacy binary file formats filters ],,if ! test -d ./binfilter; then enable_binfilter=no; fi) @@ -641,6 +651,12 @@ AC_ARG_WITH(directx-home, Usage: --with-directx-home=<absolute path to Microsoft DirectX SDK> ],,) +AC_ARG_WITH(mozilla-build, +[ --with-mozilla-build For Windows users, please supply the path to the + mozilla build tools. + + Usage: --with-mozilla-build=<absolute path to mozilla build tools> +],[MOZILLABUILD=$withval],) AC_ARG_WITH(local-solenv, [ --with-local-solenv If you have solenv in a location other than ./solenv, please supply the path here. @@ -908,6 +924,7 @@ case "$build_os" in test_gtk=yes test_cairo=yes test_kde=yes + test_kde4=yes test_cups=yes test_randr=yes test_freetype=yes @@ -951,6 +968,7 @@ case "$build_os" in test_gtk=yes test_cairo=yes test_kde=yes + test_kde4=yes test_cups=yes test_randr=yes test_freetype=yes @@ -984,6 +1002,7 @@ case "$build_os" in test_gtk=yes test_cairo=yes test_kde=yes + test_kde4=yes test_cups=no test_randr=yes test_freetype=yes @@ -2122,6 +2141,10 @@ if test "$GXX" = "yes"; then with_gxx_include_path=`cygpath -d "$with_gxx_include_path"` with_gxx_include_path=`cygpath -u "$with_gxx_include_path"` fi + if echo $with_gxx_include_path | grep -q linux; then + # workaround for Mandriva - issue 100049 + with_gxx_include_path=`cd $with_gxx_include_path && pwd` + fi fi fi dnl This is the original code... @@ -2161,8 +2184,65 @@ _ACEOF else AC_MSG_RESULT([$_mingw_lib_include_path]) fi -MINGW_LIB_INCLUDE_PATH="$_mingw_lib_include_path" -AC_SUBST(MINGW_LIB_INCLUDE_PATH) + MINGW_LIB_INCLUDE_PATH="$_mingw_lib_include_path" + AC_SUBST(MINGW_LIB_INCLUDE_PATH) +dnl mingw gcc 4.4.0 needs backward in include path to use hash_set/hash_map + AC_MSG_CHECKING([for mingwin c++ backward include path]) + cat >conftest.$ac_ext <<_ACEOF +#include <hash_set> +_ACEOF + _mingw_backward_include_path=`$CXX -E -xc++ -Wno-deprecated conftest.$ac_ext 2>&5| $SED -n -e '/.*1*"\(.*\)\/hash_set".*/s//\1/p' | sort -u | xargs echo` + rm conftest.$ac_ext + if test -n "$_mingw_backward_include_path"; then + _mingw_backward_include_path=`cygpath -d $_mingw_backward_include_path` + _mingw_backward_include_path=`cygpath -u $_mingw_backward_include_path` + AC_MSG_RESULT([$_mingw_backward_include_path]) + else + _mingw_backward_include_path="NO_BACKWARD_INCLUDE" + AC_MSG_RESULT([no mingwin c++ backward includes]) + fi + MINGW_BACKWARD_INCLUDE_PATH="$_mingw_backward_include_path" + AC_SUBST(MINGW_BACKWARD_INCLUDE_PATH) + mingw_crtbegin=`$CC -print-file-name=crtbegin.o` + MINGW_CLIB_DIR=`dirname $mingw_crtbegin` + AC_MSG_CHECKING([whether to use dynamic libgcc]) + if test -e "$MINGW_CLIB_DIR/libgcc_s.a"; then + AC_MSG_CHECKING([dynamic libgcc name]) + MINGW_GCCDLL_pattern=`nm $MINGW_CLIB_DIR/libgcc_s.a | sed -ne 's@.* _libgcc\(.*\)_dll_iname@libgcc\1.dll@p' | uniq | sed -e 's@_@?@g'` + MINGW_GCCDLL=`cd $COMPATH && ls $MINGW_GCCDLL_pattern 2>/dev/null` + if test -n "$MINGW_GCCDLL"; then + MINGW_SHARED_GCCLIB=YES + AC_MSG_RESULT([use $MINGW_GCCDLL]) + else + AC_MSG_RESULT([no]) + fi + else + AC_MSG_RESULT([no]) + fi + if test -e "$MINGW_CLIB_DIR/libgcc_eh.a"; then + MINGW_GCCLIB_EH=YES + fi + AC_MSG_CHECKING([whether to use dynamic libstdc++]) + if test -e "$MINGW_CLIB_DIR/libstdc++_s.a" ; then + AC_MSG_CHECKING([dynamic libstdc++ name]) + MINGW_GXXDLL_pattern=`nm $MINGW_CLIB_DIR/libstdc++_s.a | sed -ne 's@.* _libstdc__\(.*\)_dll_iname@libstdc++\1.dll@p' | uniq | sed -e 's@_@?@g'` + MINGW_GXXDLL=`cd $COMPATH && ls $MINGW_GXXDLL_pattern 2>/dev/null` + if test -n "$MINGW_GXXDLL"; then + MINGW_SHARED_GXXLIB=YES + AC_MSG_RESULT([use $MINGW_GXXDLL]) + else + AC_MSG_RESULT([no]) + fi + else + AC_MSG_RESULT([no]) + fi + MINGW_CLIB_DIR=`cygpath $MINGW_CLIB_DIR` + AC_SUBST(MINGW_CLIB_DIR) + AC_SUBST(MINGW_SHARED_GCCLIB) + AC_SUBST(MINGW_GCCLIB_EH) + AC_SUBST(MINGW_SHARED_GXXLIB) + AC_SUBST(MINGW_GCCDLL) + AC_SUBST(MINGW_GXXDLL) fi dnl =================================================================== @@ -2227,6 +2307,29 @@ if test "$_os" = "OSF1"; then fi fi +dnl ************************************************************* +dnl Testing for exception handling - dwarf2 or sjlj exceptions... +dnl ************************************************************* +AC_MSG_CHECKING([exception type]) +AC_LANG_PUSH([C++]) +if test "$WITH_MINGWIN" = "yes"; then + AC_TRY_LINK( + [#include <iostream> + +extern "C" void _Unwind_SjLj_RaiseException(void) __attribute__ ((__noreturn__)); + + ], + [_Unwind_SjLj_RaiseException() ], + [exceptions_type="sjlj"], + [exceptions_type="dwarf2"] + ) +fi + +AC_MSG_RESULT($exceptions_type) +AC_LANG_POP([C++]) +EXCEPTIONS="$exceptions_type" +AC_SUBST(EXCEPTIONS) + dnl ************************************************************** dnl Testing for required Solaris and SunStudio compiler patches... dnl ************************************************************** @@ -3973,6 +4076,7 @@ AC_MSG_CHECKING([whether to enable build of Mozilla/Mozilla NSS-using components if test "$enable_mozilla" = "no"; then AC_MSG_RESULT([no]) WITH_MOZILLA=NO + ENABLE_NSS_MODULE=NO else AC_MSG_RESULT([yes]) WITH_MOZILLA=YES @@ -4042,6 +4146,8 @@ AC_MSG_CHECKING([which mozilla to use]) if test -n "$with_system_mozilla" && test "$with_system_mozilla" != "no"; then AC_MSG_RESULT([external]) SYSTEM_MOZILLA=YES + ENABLE_NSS_MODULE=NO + enable_nss_module=no AC_MSG_CHECKING([which Mozilla flavour to use]) if test -n "$with_system_mozilla" && test "$with_system_mozilla" = "libxul"; then MOZ_FLAVOUR=libxul @@ -4128,6 +4234,8 @@ Please recompile $tmp with --enable-ldap or use --with-openldap.]) elif test "$enable_mozilla" = "no"; then AC_MSG_RESULT([none]) WITH_MOZILLA=NO + ENABLE_NSS_MODULE=NO + enable_nss_module=no else AC_MSG_RESULT([internal]) SYSTEM_MOZILLA=NO @@ -4183,6 +4291,37 @@ else AC_MSG_RESULT([no]) fi +AC_MSG_CHECKING([whether to build provided NSS module]) +if test "$enable_nss_module" != "no"; then + ENABLE_NSS_MODULE="YES" + BUILD_TYPE="$BUILD_TYPE NSS" + AC_MSG_RESULT([yes]) + if test "$_os" = "WINNT"; then + AC_MSG_CHECKING([for Mozilla build tooling]) + if test -z "$MOZILLABUILD" ; then +AC_MSG_ERROR([Mozilla build tooling not found. Use --with-mozilla-build=<absolut path to mozilla build tooling (mozilla-build)>]) + else + if test \( "$WITH_MINGWIN" = "yes" \) ; then + if test ! -d "$MOZILLABUILD" ; then +AC_MSG_ERROR([Mozilla build tooling incomplete!]) + else + AC_MSG_RESULT([ok]) + fi + else + if test ! -d "$MOZILLABUILD/moztools" \ + -o ! -d "$MOZILLABUILD/msys" ; then +AC_MSG_ERROR([Mozilla build tooling incomplete!]) + else + AC_MSG_RESULT([ok]) + fi + fi + fi + fi +else + ENABLE_NSS_MODULE="NO" + AC_MSG_RESULT([no]) +fi + if test "$BUILD_MOZAB" = "TRUE"; then if test "$_os" = "WINNT"; then if test "$WITH_MINGWIN" != "yes"; then @@ -4261,6 +4400,8 @@ fi AC_SUBST(BUILD_MOZAB) fi +AC_SUBST(ENABLE_NSS_MODULE) +AC_SUBST(MOZILLABUILD) AC_SUBST(SYSTEM_MOZILLA) AC_SUBST(MOZ_FLAVOUR) AC_SUBST(MOZ_INC) @@ -4333,6 +4474,39 @@ AC_SUBST(SYSTEM_GENCCODE) AC_SUBST(SYSTEM_GENCMN) dnl =================================================================== +dnl Graphite +dnl =================================================================== + +AC_MSG_CHECKING([whether to enable graphite support]) +if test "$_os" = "WINNT" -o "$_os" = "Linux" && test "z$enable_graphite" == "z" -o "$enable_graphite" != "no" ; then + AC_MSG_RESULT([yes]) + ENABLE_GRAPHITE="TRUE" + AC_MSG_CHECKING([which graphite to use]) + if test -n "$with_system_graphite" -o -n "$with_system_libs" && \ + test "$with_system_graphite" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_GRAPHITE=YES + PKG_CHECK_MODULES( GRAPHITE, silgraphite ) + AC_MSG_CHECKING([STL compatibility]) + if test "$WITH_STLPORT" != "no"; then + AC_MSG_ERROR([to use system graphite you need to use --without-stlport]) + else + AC_MSG_RESULT([OK]) + fi + else + AC_MSG_RESULT([internal]) + SYSTEM_GRAPHITE=NO + BUILD_TYPE="$BUILD_TYPE GRAPHITE" + fi +else + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_GRAPHITE) +AC_SUBST(SYSTEM_GRAPHITE) +AC_SUBST(GRAPHITE_LIBS) +AC_SUBST(GRAPHITE_CFLAGS) + +dnl =================================================================== dnl Checks for libraries. dnl =================================================================== dnl Check for Mac OS X native GUI, which may is now required; the X11 build is no longer supported @@ -5187,40 +5361,6 @@ fi fi dnl =================================================================== -dnl Test for the presence of the right polygon clipping code -dnl =================================================================== -AC_MSG_CHECKING([which polygon clipping code to use]) -WITH_GPC=NO - -if test "$with_gpc" != "no" && test "$without_gpc" != "yes"; then - WITH_GPC=YES - AC_MSG_RESULT([GPC]) - - AC_MSG_CHECKING([for GPC files]) - if test -f ./external/gpc/gpc.h; then - HAVE_GPC_H="yes" - else - HAVE_GPC_H="no" - fi - if test -f ./external/gpc/gpc.c; then - HAVE_GPC_C="yes" - else - HAVE_GPC_C="no" - fi - - if test "$HAVE_GPC_H" = "yes" -a "$HAVE_GPC_C" = "yes"; then - AC_MSG_RESULT([GPC files found]) - else - AC_MSG_ERROR([GPC files not found -ftp://ftp.cs.man.ac.uk/pub/toby/gpc/gpc231.tar.Z and untar in external/gpc, -or use basegfx' implementation using --without-gpc]) - fi -else - AC_MSG_RESULT([internal]) -fi -AC_SUBST(WITH_GPC) - -dnl =================================================================== dnl Test which vclplugs have to be built. dnl =================================================================== AC_MSG_CHECKING([which VCLplugs shall be built]) @@ -5238,6 +5378,13 @@ if test "x$enable_kde" = "xyes"; then fi AC_SUBST(ENABLE_KDE) +ENABLE_KDE4="" +if test "x$enable_kde4" = "xyes"; then + ENABLE_KDE4="TRUE" + R="$R kde4" +fi +AC_SUBST(ENABLE_KDE4) + if test -z "$R"; then AC_MSG_RESULT([none]) else @@ -5776,11 +5923,11 @@ if test "$test_kde" = "yes" -a "$ENABLE_KDE" = "TRUE" ; then fi fi if test "$build_cpu" != "x86_64" ; then - kde_incdirs="/usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes" - kde_libdirs="/usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/lib /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib $x_libraries" + kde_incdirs="/usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /opt/kde3/include /opt/kde/include $x_includes" + kde_libdirs="/usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib /usr/lib $x_libraries" else - kde_incdirs="/usr/lib64/kde/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes" - kde_libdirs="/usr/lib64/kde/lib64 /usr/local/kde/lib64 /usr/kde/lib64 /usr/lib64/kde /usr/lib64/kde3 /usr/lib64 /usr/X11R6/lib64 /usr/local/lib64 /opt/kde3/lib64 /opt/kde/lib64 /usr/X11R6/kde/lib64 /usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/lib /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib $x_libraries" + kde_incdirs="/usr/lib64/kde/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /opt/kde3/include /opt/kde/include $x_includes" + kde_libdirs="/usr/lib64/kde/lib64 /usr/local/kde/lib64 /usr/kde/lib64 /usr/lib64/kde /usr/lib64/kde3 /usr/X11R6/lib64 /usr/local/lib64 /opt/kde3/lib64 /opt/kde/lib64 /usr/X11R6/kde/lib64 /usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/lib /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib /usr/lib64 $x_libraries" fi if test -n "$KDEDIR" ; then kde_incdirs="$KDEDIR/include $kde_incdirs" @@ -5827,12 +5974,13 @@ your Qt installation by exporting QTDIR before running "configure".]) your Qt installation by exporting QTDIR before running "configure".]) fi + dnl Check for Meta Object Compiler AC_PATH_PROG( MOC, moc, no, [$QTDIR/bin:$PATH] ) if test "$MOC" = "no" ; then AC_MSG_ERROR([Qt Meta Object Compiler not found. Please specify the root of your Qt installation by exporting QTDIR before running "configure".]) - fi - + fi + dnl Check for KDE headers AC_MSG_CHECKING([for KDE headers]) kde_incdir="no" @@ -5872,6 +6020,102 @@ AC_SUBST(KDE_LIBS) AC_SUBST(MOC) dnl =================================================================== +dnl KDE4 Integration +dnl =================================================================== + +KDE4_CFLAGS="" +KDE4_LIBS="" +MOC4="moc" +if test "$test_kde4" = "yes" -a "$ENABLE_KDE4" = "TRUE" ; then + qt_incdirs="$QTINC $QTDIR /usr/include/qt4 /usr/include $x_includes" + qt_libdirs="$QTLIB /usr/lib $x_libraries" + + kde_incdirs="/usr/include $x_includes" + kde_libdirs="/usr/lib $x_libraries" + + if test "$build_cpu" == "x86_64" ; then + qt_libdirs="$qt_libdirs /usr/lib64/qt4 /usr/lib64/qt /usr/lib64" + kde_libdirs="$kde_libdirs /usr/lib64 /usr/lib64/kde4" + fi + + qt_test_include="Qt/qobject.h" + qt_test_library="libQtCore.so" + kde_test_include="ksharedptr.h" + kde_test_library="libkdeui.so" + + AC_MSG_CHECKING([for Qt4 headers]) + qt_header_dir="no" + for inc_dir in $qt_incdirs ; do + if test -r "$inc_dir/$qt_test_include" ; then + qt_header_dir="$inc_dir" + break + fi + done + + AC_MSG_RESULT([$qt_header_dir]) + if test "x$qt_header_dir" = "xno" ; then + AC_MSG_ERROR([Qt4 headers not found. Please specify the root of your Qt4 installation by exporting QTDIR before running "configure".]) + fi + + AC_MSG_CHECKING([for Qt4 libraries]) + qt_lib_dir="no" + for lib_dir in $qt_libdirs ; do + if test -r "$lib_dir/$qt_test_library" ; then + qt_lib_dir="$lib_dir" + break + fi + done + + AC_MSG_RESULT([$qt_lib_dir]) + + if test "x$qt_lib_dir" = "xno" ; then + AC_MSG_ERROR([Qt4 libraries not found. Please specify the root of your Qt4 installation by exporting QTDIR before running "configure".]) + fi + + dnl Check for Meta Object Compiler + AC_PATH_PROG( MOC4, moc, no, [$PATH:$QTDIR/bin] ) + if test "$MOC4" = "no" ; then + AC_MSG_ERROR([Qt Meta Object Compiler not found. Please specify +the root of your Qt installation by exporting QTDIR before running "configure".]) + fi + + dnl Check for KDE4 headers + AC_MSG_CHECKING([for KDE4 headers]) + kde_incdir="no" + for kde_check in $kde_incdirs ; do + if test -r "$kde_check/$kde_test_include" ; then + kde_incdir="$kde_check" + break + fi + done + AC_MSG_RESULT([$kde_incdir]) + if test "x$kde_incdir" = "xno" ; then + AC_MSG_ERROR([KDE4 headers not found. Please specify the root of your KDE4 installation by exporting KDEDIR before running "configure".]) + fi + + dnl Check for KDE4 libraries + AC_MSG_CHECKING([for KDE4 libraries]) + kde_libdir="no" + for kde_check in $kde_libdirs ; do + if test -r "$kde_check/$kde_test_library" ; then + kde_libdir="$kde_check" + break + fi + done + + AC_MSG_RESULT([$kde_libdir]) + if test "x$kde_libdir" = "xno" ; then + AC_MSG_ERROR([KDE4 libraries not found. Please specify the root of your KDE4 installation by exporting KDEDIR before running "configure".]) + fi + + KDE4_CFLAGS="`pkg-config --cflags QtCore` `pkg-config --cflags QtGui` -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT" + KDE4_LIBS="-L$kde_libdir -L$qt_lib_dir -lkdeui -lkdecore -lQtCore -lQtGui" +fi +AC_SUBST(KDE4_CFLAGS) +AC_SUBST(KDE4_LIBS) +AC_SUBST(MOC4) + +dnl =================================================================== dnl Test for the enabling the lockdown pieces dnl =================================================================== AC_MSG_CHECKING([whether to enable the lockdown pieces]) diff --git a/instsetoo_native/res/DS_Store_Langpack b/instsetoo_native/res/DS_Store_Langpack Binary files differnew file mode 100644 index 000000000000..1b53eba75b74 --- /dev/null +++ b/instsetoo_native/res/DS_Store_Langpack diff --git a/instsetoo_native/util/makefile.mk b/instsetoo_native/util/makefile.mk index 99ca8b140d51..fa9e97e5516e 100644 --- a/instsetoo_native/util/makefile.mk +++ b/instsetoo_native/util/makefile.mk @@ -217,8 +217,8 @@ $(MAKETARGETS) : $(ADDDEPS) .ENDIF # "$(BUILD_SPECIAL)"!="" .IF "$(OS)" == "MACOSX" -DMGDEPS=$(BIN)$/{osxdndinstall.png DS_Store} -$(foreach,i,$(alllangiso) {openoffice openofficedev openofficewithjre broffice brofficedev brofficewithjre}_$i) : $(DMGDEPS) +DMGDEPS=$(BIN)$/{osxdndinstall.png DS_Store DS_Store_Langpack} +$(foreach,i,$(alllangiso) {openoffice openofficedev openofficewithjre ooolanguagepack broffice brofficedev brofficewithjre}_$i) : $(DMGDEPS) .ENDIF # "$(OS)" == "MACOSX" .IF "$(PKGFORMAT)"!="" @@ -384,7 +384,7 @@ $(BIN)$/broffice$/intro.zip : $(SOLARCOMMONPCKDIR)$/broffice_nologo$/intro.zip @-$(MKDIR) $(@:d) $(COPY) $< $@ -$(BIN)$/{osxdndinstall.png DS_Store} : $(PRJ)$/res$/$$(@:f) +$(BIN)$/{osxdndinstall.png DS_Store DS_Store_Langpack} : $(PRJ)$/res$/$$(@:f) @$(COPY) $< $@ hack_msitemplates .PHONY: diff --git a/instsetoo_native/util/pack.lst b/instsetoo_native/util/pack.lst index 875865d8accc..200bf3708f5a 100755 --- a/instsetoo_native/util/pack.lst +++ b/instsetoo_native/util/pack.lst @@ -14,11 +14,11 @@ OpenOffice unxlngi6,unxmacxi,unxsoli4,unxsols4,wntmsci12 #BrOffice_wJRE pt-BR brofficewithjre OpenOffice_Dev unxlngi6.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxmacxi.pro,unxlngx6.pro en-US openofficedev #BrOffice_Dev pt-BR brofficedev -OpenOffice_SDK unxlngi6.pro,unxmacxi.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro,unxlngi6,unxmacxi,unxsoli4,unxsols4,wntmsci12 en-US sdkoo +#OpenOffice_SDK unxlngi6.pro,unxmacxi.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro,unxlngi6,unxmacxi,unxsoli4,unxsols4,wntmsci12 en-US sdkoo OpenOffice_Dev_SDK unxlngi6.pro,unxmacxi.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro,unxlngi6,unxmacxi,unxsoli4,unxsols4,wntmsci12 en-US sdkoodev #URE unxlngi6.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngi6,unxsoli4,unxsols4,wntmsci12 en-US ure -OpenOfficeLanguagepack unxlngi6.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro de ooolanguagepack -OpenOfficeLanguagepack unxlngi6,unxsoli4,unxsols4,wntmsci12 de ooolanguagepack +OpenOfficeLanguagepack unxlngi6.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro,unxmacxi.pro de ooolanguagepack +OpenOfficeLanguagepack unxlngi6,unxsoli4,unxsols4,wntmsci12,unxmacxi de ooolanguagepack OpenOfficeDevLanguagepack unxlngi6.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro de|fr|ja|ar ooodevlanguagepack #BrOfficeLanguagepack unxlngi6.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro pt-BR broolanguagepack diff --git a/scp2/inc/macros.inc b/scp2/inc/macros.inc index cdbc6f8ce20d..7d9cdbd1d027 100644 --- a/scp2/inc/macros.inc +++ b/scp2/inc/macros.inc @@ -85,6 +85,12 @@ #define EXTRAFILENAME(name,lang) STRING(CONCAT3(name,lang,.zip)) #define CONFIGLANGFILENAME(name,lang,ext) STRING(CONCAT4(name,lang,.,ext)) +#if defined WNT +#define SCP2_OOO_BIN_DIR gid_Brand_Dir_Program +#else +#define SCP2_OOO_BIN_DIR gid_Dir_Program +#endif + #define BIN_FILE_BODY \ UnixRights = 555 @@ -121,12 +127,12 @@ #define PACKED_LIB_FILE_BODY \ TXT_FILE_BODY; \ Styles = (PACKED); \ - Dir = gid_Dir_Program + Dir = SCP2_OOO_BIN_DIR #define PACKED_LIB_FILE_BODY_PATCH \ TXT_FILE_BODY; \ Styles = (PACKED,PATCH); \ - Dir = gid_Dir_Program + Dir = SCP2_OOO_BIN_DIR #define PACKED_FILTER_FILE_BODY \ TXT_FILE_BODY; \ @@ -307,13 +313,13 @@ #define PACKED_UNO_LIB_FILE_BODY \ TXT_FILE_BODY; \ Styles = (PACKED,UNO_COMPONENT); \ - Dir = gid_Dir_Program; \ + Dir = SCP2_OOO_BIN_DIR; \ RegistryID = gid_Starregistry_Services_Rdb #define PACKED_UNO_LIB_FILE_BODY_PATCH \ TXT_FILE_BODY; \ Styles = (PACKED,UNO_COMPONENT,PATCH); \ - Dir = gid_Dir_Program; \ + Dir = SCP2_OOO_BIN_DIR; \ RegistryID = gid_Starregistry_Services_Rdb #define STD_UNO_LIB_FILE(id,name) \ @@ -374,7 +380,7 @@ File id \ TXT_FILE_BODY; \ Name = LIBNAME(name); \ - Dir = gid_Dir_Program; \ + Dir = SCP2_OOO_BIN_DIR; \ Styles = (PACKED, NO_WARNING_IF_NOT_EXISTS); \ End @@ -382,7 +388,7 @@ File id \ TXT_FILE_BODY; \ Name = LIBNAME(name); \ - Dir = gid_Dir_Program; \ + Dir = SCP2_OOO_BIN_DIR; \ Styles = (PACKED, NO_WARNING_IF_NOT_EXISTS, UNO_COMPONENT); \ RegistryID = gid_Starregistry_Services_Rdb; \ End diff --git a/scp2/source/activex/file_activex.scp b/scp2/source/activex/file_activex.scp index 6dcb531a6d7f..8cc1c45e17e7 100644 --- a/scp2/source/activex/file_activex.scp +++ b/scp2/source/activex/file_activex.scp @@ -33,21 +33,21 @@ File gid_File_Lib_Soactivex TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "so_activex.dll"; End File gid_File_Lib_Regactivex_Msi TXT_FILE_BODY; Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "regactivex.dll"; End File gid_File_Lib_Regpatchactivex_Msi TXT_FILE_BODY; Styles = (PACKED,PATCH,PATCH_ONLY,BINARYTABLE,BINARYTABLE_ONLY,DONTRENAMEINPATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "regpatchactivex.dll"; End diff --git a/scp2/source/canvas/cairocanvas.scp b/scp2/source/canvas/cairocanvas.scp index 51ee7863dd9c..f3251634c53d 100644 --- a/scp2/source/canvas/cairocanvas.scp +++ b/scp2/source/canvas/cairocanvas.scp @@ -34,7 +34,7 @@ File gid_File_Lib_CairoCanvas TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(cairocanvas.uno,UNXSUFFIX)); #else diff --git a/scp2/source/gnome/file_gnome.scp b/scp2/source/gnome/file_gnome.scp index 0161e06545c6..a7fdf1196ac3 100644 --- a/scp2/source/gnome/file_gnome.scp +++ b/scp2/source/gnome/file_gnome.scp @@ -33,7 +33,7 @@ File gid_File_Lib_GIO TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(ucpgio1.uno,UNXSUFFIX)); RegistryID = gid_Starregistry_Services_Rdb; Regmergefile = "ucpgio-ucd.txt"; @@ -44,7 +44,7 @@ End File gid_File_Lib_Gnomevfs TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(ucpgvfs1.uno,UNXSUFFIX)); RegistryID = gid_Starregistry_Services_Rdb; Regmergefile = "ucpgvfs-ucd.txt"; @@ -55,7 +55,7 @@ End File gid_File_Lib_Gconfbe TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(gconfbe1.uno,UNXSUFFIX)); RegistryID = gid_Starregistry_Services_Rdb; Regmergefile = "gconfbe1-ucd.txt"; diff --git a/scp2/source/impress/module_ogltrans.scp b/scp2/source/impress/module_ogltrans.scp index 17d5c31e5a12..18425e88033a 100644 --- a/scp2/source/impress/module_ogltrans.scp +++ b/scp2/source/impress/module_ogltrans.scp @@ -43,7 +43,7 @@ File gid_File_Lib_OpenGLTransitions TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(OGLTrans.uno,UNXSUFFIX)); #else diff --git a/scp2/source/javafilter/file_javafilter.scp b/scp2/source/javafilter/file_javafilter.scp index 2f6a67286589..294f0a577b9b 100644 --- a/scp2/source/javafilter/file_javafilter.scp +++ b/scp2/source/javafilter/file_javafilter.scp @@ -35,7 +35,7 @@ File gid_File_Lib_Xmergesync TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "xmergesync.dll"; End @@ -46,7 +46,7 @@ End File gid_File_Lib_Jfregca TXT_FILE_BODY; Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "jfregca.dll"; End diff --git a/scp2/source/kde/file_kde.scp b/scp2/source/kde/file_kde.scp index a6d6db425a22..4cd9de0b240c 100644 --- a/scp2/source/kde/file_kde.scp +++ b/scp2/source/kde/file_kde.scp @@ -29,12 +29,24 @@ ************************************************************************/ #include "macros.inc" +#ifdef ENABLE_KDE File gid_File_Lib_Kdebe TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(kdebe1.uno,UNXSUFFIX)); RegistryID = gid_Starregistry_Services_Rdb; Regmergefile = "kdebe1-ucd.txt"; End +#endif +#ifdef ENABLE_KDE4 +File gid_File_Lib_Kde4be + TXT_FILE_BODY; + Styles = (PACKED); + Dir = gid_Dir_Program; + Name = STRING(CONCAT2(kde4be1.uno,UNXSUFFIX)); + RegistryID = gid_Starregistry_Services_Rdb; + Regmergefile = "kde4be1-ucd.txt"; +End +#endif diff --git a/scp2/source/kde/makefile.mk b/scp2/source/kde/makefile.mk index 0cbf6a47123d..6ddb30108ce6 100644 --- a/scp2/source/kde/makefile.mk +++ b/scp2/source/kde/makefile.mk @@ -43,7 +43,16 @@ TARGETTYPE=CUI SCP_PRODUCT_TYPE=osl -.IF "$(ENABLE_KDE)" == "TRUE" +.IF "$(ENABLE_KDE)" == "TRUE" || "$(ENABLE_KDE4)" == "TRUE" + +.IF "$(ENABLE_KDE)" != "" +SCPDEFS+=-DENABLE_KDE +.ENDIF + +.IF "$(ENABLE_KDE4)" != "" +SCPDEFS+=-DENABLE_KDE4 +.ENDIF + PARFILES = \ module_kde.par \ file_kde.par diff --git a/scp2/source/kde/module_kde.scp b/scp2/source/kde/module_kde.scp index 1dce456f6726..28dacbef0583 100644 --- a/scp2/source/kde/module_kde.scp +++ b/scp2/source/kde/module_kde.scp @@ -30,12 +30,24 @@ #include "macros.inc" +#if defined( ENABLE_KDE ) || defined( ENABLE_KDE4 ) Module gid_Module_Optional_Kde ParentID = gid_Module_Optional; Default = YES; PackageInfo = "packinfo_office.txt"; MOD_NAME_DESC(MODULE_OPTIONAL_KDE); Styles = (DONTSHOWINUSERINSTALL); - Files = (gid_File_Lib_Kdebe); + Files = ( +#ifdef ENABLE_KDE + gid_File_Lib_Kdebe +#ifdef ENABLE_KDE4 + , +#endif // ENABLE_KDE4 +#endif // ENABLE_KDE +#ifdef ENABLE_KDE4 + gid_File_Lib_Kde4be +#endif // ENABLE_KDE4 + ); End +#endif diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp index c6bbf753fd22..7fd55f47a06f 100644 --- a/scp2/source/ooo/common_brand.scp +++ b/scp2/source/ooo/common_brand.scp @@ -84,6 +84,8 @@ Module gid_Module_Root_Brand gid_Brand_File_Html_Thirdpartylicensereadme, gid_Brand_File_Images_Brand_Zip, gid_Brand_File_Lib_Dbghelp, + gid_Brand_File_Lib_Mingw_GccS, + gid_Brand_File_Lib_Mingw_Stdcpp, gid_Brand_File_Lib_Mingwm10, gid_Brand_File_Lib_Msvcr80, gid_Brand_File_Lib_Msvcp80, @@ -461,7 +463,10 @@ File gid_Brand_File_Bin_Unopkg Name = "unopkg.bin"; End -#if defined WNT && defined M1310 +#if defined WNT && \ + (defined M1310 || \ + ((defined M1400 || defined M1500) && \ + !(defined SYSTEM_MOZILLA || defined WITHOUT_MOZILLA))) File gid_Brand_File_Bin_Msvcr71 TXT_FILE_BODY; Dir = gid_Brand_Dir_Program; @@ -645,6 +650,32 @@ End #endif #endif +#if defined(WNT) && defined( _gcc3 ) + +#if defined(MINGW_GCCDLL) + +File gid_Brand_File_Lib_Mingw_GccS + TXT_FILE_BODY; + Dir = gid_Brand_Dir_Program; + Name = MINGW_GCCDLL; + Styles = (PACKED); +End + +#endif + +#if defined(MINGW_GXXDLL) + +File gid_Brand_File_Lib_Mingw_Stdcpp + TXT_FILE_BODY; + Dir = gid_Brand_Dir_Program; + Name = MINGW_GXXDLL; + Styles = (PACKED); +End + +#endif + +#endif + #if defined(WNT) #if defined(M1400) #if defined(PROF_EDITION) diff --git a/scp2/source/ooo/directory_ooo_macosx.scp b/scp2/source/ooo/directory_ooo_macosx.scp index 409afc0797f2..6bff77e6f355 100755 --- a/scp2/source/ooo/directory_ooo_macosx.scp +++ b/scp2/source/ooo/directory_ooo_macosx.scp @@ -34,6 +34,8 @@ Directory gid_Dir_Bundle ParentID = PD_PROGDIR; HostName = "%PRODUCTNAME.app"; + LangPackHostName = "%PRODUCTNAME %PRODUCTVERSION Language Pack.app"; + PatchHostName = "%PRODUCTNAME %PRODUCTVERSION Patch.app"; End #endif diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp index efaf3bc67ff7..f8405ed58bb0 100644 --- a/scp2/source/ooo/file_library_ooo.scp +++ b/scp2/source/ooo/file_library_ooo.scp @@ -1,4 +1,4 @@ -/************************************************************************* +************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -33,7 +33,7 @@ File gid_File_Lib_Accessbridge BIN_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "java_uno_accessbridge.dll"; End #endif @@ -44,7 +44,7 @@ File gid_File_Lib_Basprov TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT4(basprov,DLLPOSTFIX,.uno,UNXSUFFIX)); #else @@ -58,7 +58,7 @@ File gid_File_Lib_Cached1 TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libcached1,UNXSUFFIX)); #else @@ -73,7 +73,7 @@ File gid_File_Lib_Ldapbe2 TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(ldapbe2.uno,UNXSUFFIX)); #else @@ -150,7 +150,7 @@ File gid_File_Lib_Comphelper2 #else Name = STRING(CONCAT3(comphelp4,COMID,.dll)); #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED,UNO_COMPONENT,PATCH); RegistryID = gid_Starregistry_Services_Rdb; End @@ -164,7 +164,7 @@ STD_LIB_FILE_PATCH( gid_File_Lib_Cui, cui) File gid_File_Lib_Curl TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX #ifdef MACOSX Name = STRING(CONCAT2(libcurl.3,UNXSUFFIX)); @@ -187,11 +187,11 @@ End File gid_File_Lib_Db TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX - Name = STRING(CONCAT2(libdb-4.2,UNXSUFFIX)); + Name = STRING(CONCAT2(libdb-4.7,UNXSUFFIX)); #else - Name = "libdb42.dll"; + Name = "libdb47.dll"; #endif End @@ -203,7 +203,7 @@ End File gid_File_Lib_Egg_Tray TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT3(libeggtray,DLLPOSTFIX,UNXSUFFIX)); End @@ -211,7 +211,7 @@ File gid_File_Lib_QStart_Gtk Name = LIBNAME(qstart_gtk); TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; End #endif #endif @@ -235,7 +235,7 @@ File gid_File_Lib_Dbpool TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libdbpool2,UNXSUFFIX)); #else @@ -254,7 +254,7 @@ File gid_File_Lib_Dict_Ja #else Name = "dict_ja.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -265,7 +265,7 @@ File gid_File_Lib_Dict_Zh #else Name = "dict_zh.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -276,7 +276,7 @@ File gid_File_Lib_Collator_Data #else Name = "collator_data.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -287,7 +287,7 @@ File gid_File_Lib_Index_Data #else Name = "index_data.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -298,7 +298,7 @@ File gid_File_Lib_Textconv_Dict #else Name = "textconv_dict.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -306,7 +306,7 @@ File gid_File_Lib_Dlgprov TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,PATCH); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT4(dlgprov,DLLPOSTFIX,.uno,UNXSUFFIX)); #else @@ -318,7 +318,7 @@ File gid_File_Lib_Stringresource TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT4(stringresource,DLLPOSTFIX,.uno,UNXSUFFIX)); #else @@ -333,7 +333,7 @@ File gid_File_Lib_Vbaobj TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT4(libvbaobj,DLLPOSTFIX,.uno,UNXSUFFIX)); #else @@ -351,7 +351,7 @@ File gid_File_Lib_Dnd TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "dnd.dll"; End @@ -362,7 +362,7 @@ End File gid_File_Lib_Dtrans TXT_FILE_BODY; Name = "dtrans.dll"; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED, UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; End @@ -384,7 +384,7 @@ STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Emser, emser ) File gid_File_Lib_Inprocserv TXT_FILE_BODY; Styles = (PACKED,PATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "inprocserv.dll"; End @@ -397,14 +397,14 @@ File gid_File_Lib_Kab_1 TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(libkab1,UNXSUFFIX)); End File gid_File_Lib_Kab_Drv_1 TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(libkabdrv1,UNXSUFFIX)); End @@ -415,14 +415,14 @@ File gid_File_Lib_Macab_1 TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(libmacab1,UNXSUFFIX)); End File gid_File_Lib_Macab_Drv_1 TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(libmacabdrv1,UNXSUFFIX)); End @@ -440,7 +440,7 @@ File gid_File_Lib_Evtatt TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libevtatt,UNXSUFFIX)); #else @@ -453,7 +453,7 @@ SPECIAL_UNO_LIB_FILE(gid_File_Lib_Fileacc,fileacc) File gid_File_Lib_Filterconfig1 TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,PATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; RegistryID = gid_Starregistry_Services_Rdb; Name = SPECIAL_NAME(filterconfig1); End @@ -466,7 +466,7 @@ File gid_File_Lib_Fop TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "fop.dll"; End @@ -476,9 +476,9 @@ End File gid_File_Lib_Fps TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); + Styles = (PACKED,PATCH,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "fps.dll"; End @@ -489,7 +489,7 @@ End File gid_File_Lib_Desktopbe TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(desktopbe1.uno,UNXSUFFIX)); RegistryID = gid_Starregistry_Services_Rdb; Regmergefile = "desktopbe1-ucd.txt"; @@ -501,12 +501,24 @@ File gid_File_Lib_Fps_Gnome TXT_FILE_BODY; Styles = (PACKED); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = SPECIAL_COMPONENT_LIB_NAME(fps_gnome.uno); Regmergefile = "fps-gnome-ucd.txt"; End #endif #endif +#ifdef ENABLE_KDE4 +#ifndef MACOSX +File gid_File_Lib_Fps_Kde4 + TXT_FILE_BODY; + Styles = (PACKED,UNO_COMPONENT); + RegistryID = gid_Starregistry_Services_Rdb; + Dir = gid_Dir_Program; + Name = SPECIAL_COMPONENT_LIB_NAME(fps_kde4.uno); + Regmergefile = "fps-kde4-ucd.txt"; +End +#endif +#endif #endif #ifdef MACOSX @@ -515,7 +527,7 @@ File gid_File_Lib_Fps_Aqua TXT_FILE_BODY; Styles = (PACKED,PATCH); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = SPECIAL_COMPONENT_LIB_NAME(fps_aqua.uno); Regmergefile = "fps-aqua-ucd.txt"; End @@ -525,7 +537,7 @@ File gid_File_Lib_MacOSXSpell Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; Name = LIBNAME(MacOSXSpell); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; End File gid_File_Lib_avmediaQuickTime @@ -533,7 +545,7 @@ File gid_File_Lib_avmediaQuickTime Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; Name = LIBNAME(avmediaQuickTime); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; End #endif #endif @@ -547,7 +559,7 @@ SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Fpicker, fpicker.uno ) File gid_File_Lib_Cairo TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX #ifdef MACOSX Name = STRING(CONCAT3(libcairo,.2,UNXSUFFIX)); @@ -575,7 +587,7 @@ File gid_File_Lib_Ftransl TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "ftransl.dll"; End @@ -589,7 +601,7 @@ File gid_File_Lib_Fwk Name = LIBNAME(fwk); TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,PATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; RegistryID = gid_Starregistry_Services_Rdb; End @@ -601,7 +613,7 @@ STD_UNO_LIB_FILE( gid_File_Lib_Fwm , fwm) File gid_File_Lib_Gdiplus BIN_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "gdiplus.dll"; End #endif @@ -610,7 +622,7 @@ File gid_File_Lib_Go Name = LIBNAME(go); TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,PATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; RegistryID = gid_Starregistry_Services_Rdb; End @@ -622,7 +634,7 @@ File gid_File_Lib_I18npool TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,PATCH); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(i18npool.uno,UNXSUFFIX)); #else @@ -633,7 +645,7 @@ End File gid_File_Lib_I18nregexp TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT3(libi18nregexp,COMID,UNXSUFFIX)); #else @@ -645,7 +657,7 @@ File gid_File_Lib_I18nsearch TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(i18nsearch.uno,UNXSUFFIX)); #else @@ -669,7 +681,7 @@ File gid_File_Lib_I18nutil #else Name = STRING(CONCAT3(i18nutil,COMID,.dll)); #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -684,7 +696,7 @@ File gid_File_Lib_Icudata #else Name = STRING(CONCAT4(icudt,ICU_MAJOR,ICU_MINOR,.dll)); #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -695,7 +707,7 @@ File gid_File_Lib_Icui18n #else Name = STRING(CONCAT4(icuin,ICU_MAJOR,ICU_MINOR,.dll)); #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -706,7 +718,7 @@ File gid_File_Lib_Icule #else Name = STRING(CONCAT4(icule,ICU_MAJOR,ICU_MINOR,.dll)); #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -717,7 +729,7 @@ File gid_File_Lib_Icuuc #else Name = STRING(CONCAT4(icuuc,ICU_MAJOR,ICU_MINOR,.dll)); #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -730,7 +742,7 @@ File gid_File_Lib_J #else Name = STRING(CONCAT4(j,DLLPOSTFIX,_g,.dll)); #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -745,7 +757,7 @@ File gid_File_Lib_Hsqldb_2 TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libhsqldb,UNXSUFFIX)); #else @@ -760,7 +772,7 @@ End File gid_File_Lib_Lngpckinsthlp BIN_FILE_BODY; Styles = (PACKED, LANGUAGEPACK, BINARYTABLE, BINARYTABLE_ONLY); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "lngpckinsthlp.dll"; End @@ -771,7 +783,7 @@ End File gid_File_Lib_sn_tools BIN_FILE_BODY; Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY, DONTRENAMEINPATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "sn_tools.dll"; End @@ -782,7 +794,7 @@ End File gid_File_Lib_relnotes BIN_FILE_BODY; Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY, DONTRENAMEINPATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "relnotes.dll"; End @@ -793,7 +805,7 @@ End File gid_File_Lib_Patchmsi TXT_FILE_BODY; Name = "patchmsi.dll"; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED,PATCH,PATCH_ONLY,BINARYTABLE,BINARYTABLE_ONLY,DONTRENAMEINPATCH); End @@ -804,7 +816,7 @@ End File gid_File_Lib_Rebasemsi TXT_FILE_BODY; Name = "rebase.dll"; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED,PATCH,BINARYTABLE,BINARYTABLE_ONLY,DONTRENAMEINPATCH); End @@ -819,7 +831,7 @@ File gid_File_Lib_Localedata_En #else Name = "localedata_en.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -830,7 +842,7 @@ File gid_File_Lib_Localedata_Es #else Name = "localedata_es.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -841,7 +853,7 @@ File gid_File_Lib_Localedata_Euro #else Name = "localedata_euro.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -852,7 +864,7 @@ File gid_File_Lib_Localedata_Others #else Name = "localedata_others.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -860,7 +872,7 @@ File gid_File_Lib_Mcnttype TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libmcnttype,UNXSUFFIX)); #else @@ -879,7 +891,7 @@ File gid_File_Lib_Mozbootstrap TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,PATCH); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libmozbootstrap,UNXSUFFIX)); #else @@ -959,6 +971,32 @@ End #endif #endif +#if defined(WNT) && defined( _gcc3 ) + +#if defined(MINGW_GCCDLL) + +File gid_File_Lib_Mingw_GccS + TXT_FILE_BODY; + Dir = gid_Dir_Program; + Name = MINGW_GCCDLL; + Styles = (PACKED, PATCH); +End + +#endif + +#if defined(MINGW_GXXDLL) + +File gid_File_Lib_Mingw_Stdcpp + TXT_FILE_BODY; + Dir = gid_Dir_Program; + Name = MINGW_GXXDLL; + Styles = (PACKED, PATCH); +End + +#endif + +#endif + #if defined(WNT) #if defined(M1400) #if defined(PROF_EDITION) @@ -995,7 +1033,7 @@ STD_UNO_LIB_FILE( gid_File_Lib_Offacc, offacc) File gid_File_Lib_Officebean TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libofficebean,UNXSUFFIX)); #else @@ -1012,7 +1050,7 @@ File gid_File_Lib_Ole TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "oleautobridge.uno.dll"; End @@ -1061,7 +1099,7 @@ File gid_File_Lib_Vclplug_Gen Name = LIBNAME(vclplug_gen); TXT_FILE_BODY; Styles = (PACKED,PATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; End #endif @@ -1071,7 +1109,7 @@ File gid_File_Lib_Vclplug_Gtk Name = LIBNAME(vclplug_gtk); TXT_FILE_BODY; Styles = (PACKED,PATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; End #endif #ifdef ENABLE_KDE @@ -1080,6 +1118,16 @@ File gid_File_Lib_Vclplug_Kde Name = LIBNAME(vclplug_kde); TXT_FILE_BODY; Styles = (PACKED,PATCH); + Dir = SCP2_OOO_BIN_DIR; +End +#endif +#endif +#ifdef ENABLE_KDE4 +#ifndef MACOSX +File gid_File_Lib_Vclplug_Kde4 + Name = LIBNAME(vclplug_kde4); + TXT_FILE_BODY; + Styles = (PACKED); Dir = gid_Dir_Program; End #endif @@ -1091,7 +1139,7 @@ File gid_File_Lib_AppleRemote Name = LIBNAME(AppleRemote); TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; End #endif @@ -1100,7 +1148,7 @@ File gid_File_Lib_Basebmp Name = LIBNAME(basebmp); TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; End #endif @@ -1114,7 +1162,7 @@ STD_LIB_FILE( gid_File_Lib_BaseBmp, basebmp ) File gid_File_Lib_Recentfile TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(librecentfile,UNXSUFFIX)); End @@ -1125,7 +1173,7 @@ End File gid_File_Lib_Reg4allmsdoc TXT_FILE_BODY; Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "reg4allmsdoc.dll"; End @@ -1136,7 +1184,7 @@ End File gid_File_Lib_Qslnkmsi TXT_FILE_BODY; Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "qslnkmsi.dll"; End @@ -1147,7 +1195,7 @@ End File gid_File_Lib_Sdqsmsi TXT_FILE_BODY; Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "sdqsmsi.dll"; End @@ -1157,7 +1205,7 @@ File gid_File_Lib_Res Name = LIBNAME(res); TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,PATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; RegistryID = gid_Starregistry_Services_Rdb; End @@ -1165,7 +1213,7 @@ File gid_File_Lib_Sax_Uno TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,DONT_OVERWRITE); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(sax.uno,UNXSUFFIX)); #else @@ -1177,7 +1225,7 @@ File gid_File_Lib_Fastsax_Uno TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,DONT_OVERWRITE); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(fastsax.uno,UNXSUFFIX)); #else @@ -1205,7 +1253,7 @@ File gid_File_Lib_Scriptframe Name = "scriptframe.dll"; #endif RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED,PATCH,UNO_COMPONENT); End @@ -1216,7 +1264,7 @@ File gid_File_Lib_Slideshow TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,PATCH); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(slideshow.uno,UNXSUFFIX)); #else @@ -1228,7 +1276,7 @@ File gid_File_Lib_Sdbc_2 TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libsdbc2,UNXSUFFIX)); #else @@ -1244,7 +1292,7 @@ File gid_File_Lib_Sfx Name = LIBNAME(sfx); TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,PATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; RegistryID = gid_Starregistry_Services_Rdb; End @@ -1253,21 +1301,21 @@ End File gid_File_Lib_OOoFilt TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "ooofilt.dll"; End File gid_File_Lib_OOoFiltProxy TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "ooofiltproxy.dll"; End File gid_File_Lib_Instooofiltmsi TXT_FILE_BODY; Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "instooofiltmsi.dll"; End @@ -1279,7 +1327,7 @@ File gid_File_Lib_Smplmail TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "smplmail.uno.dll"; End @@ -1293,7 +1341,7 @@ File gid_File_Lib_Spa Name = LIBNAME(spa); TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; End #endif @@ -1303,7 +1351,7 @@ File gid_File_Lib_Spell Styles = (PACKED,UNO_COMPONENT,PATCH); RegistryID = gid_Starregistry_Services_Rdb; Name = LIBNAME(spell); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; End STD_UNO_LIB_FILE( gid_File_Lib_Spl, spl) @@ -1316,19 +1364,21 @@ STD_LIB_FILE_PATCH( gid_File_Lib_Svl, svl ) STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Svtools, svt ) SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Svtmisc, svtmisc.uno ) +STD_LIB_FILE_PATCH( gid_File_Lib_Svx_Core, svxcore) +STD_LIB_FILE_PATCH( gid_File_Lib_Svx_Msfilter, svxmsfilter) STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Svx, svx) STD_UNO_LIB_FILE( gid_File_Lib_TextConversionDlgs, textconversiondlgs) STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Sw , sw) STD_LIB_FILE_PATCH( gid_File_Lib_Swui, swui) -STD_LIB_FILE( gid_File_Lib_Msword, msword ) +STD_LIB_FILE_PATCH( gid_File_Lib_Msword, msword ) File gid_File_Lib_Sysdtrans TXT_FILE_BODY; Styles = (PACKED,PATCH,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX #ifdef QUARTZ Name = STRING(CONCAT3(libdtransaqua,DLLPOSTFIX,UNXSUFFIX)); @@ -1360,7 +1410,7 @@ File gid_File_Lib_Tvhlp1 TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libtvhlp1,UNXSUFFIX)); #else @@ -1372,7 +1422,7 @@ File gid_File_Lib_Ucb1 TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libucb1,UNXSUFFIX)); #else @@ -1382,7 +1432,7 @@ End File gid_File_Lib_Ucbhelper TXT_FILE_BODY; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); #ifdef UNX Name = STRING(CONCAT3(libucbhelper4,COMID,UNXSUFFIX)); @@ -1398,7 +1448,7 @@ File gid_File_Lib_Ucpchelp1 #else Name = "ucpchelp1.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED, UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; End @@ -1424,7 +1474,7 @@ File gid_File_Lib_Lnth Styles = (PACKED,UNO_COMPONENT,PATCH); RegistryID = gid_Starregistry_Services_Rdb; Name = LIBNAME(lnth); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; End File gid_File_Lib_Hyph @@ -1432,7 +1482,7 @@ File gid_File_Lib_Hyph Styles = (PACKED,UNO_COMPONENT,PATCH); RegistryID = gid_Starregistry_Services_Rdb; Name = LIBNAME(hyphen); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; End STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Utl , utl) @@ -1445,7 +1495,7 @@ File gid_File_Lib_Vcl Name = LIBNAME(vcl); TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,PATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; RegistryID = gid_Starregistry_Services_Rdb; End @@ -1456,7 +1506,7 @@ File gid_File_Lib_Vos #else Name = STRING(CONCAT3(vos3,COMID,.dll)); #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -1470,7 +1520,7 @@ File gid_File_Lib_Xo Name = LIBNAME(xo); TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT,PATCH); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; RegistryID = gid_Starregistry_Services_Rdb; End @@ -1490,7 +1540,7 @@ UNO_JAR_FILE( gid_File_Jar_Xsltvalidate, XSLTValidate ) File gid_File_Lib_Xslt TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX #ifdef MACOSX Name = STRING(CONCAT4(libxslt,.,LIBXSLT_MAJOR,UNXSUFFIX)); @@ -1531,7 +1581,7 @@ File gid_File_Lib_XSec_Framework #else Name = "xsec_fw.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED,UNO_COMPONENT,PATCH); RegistryID = gid_Starregistry_Services_Rdb; End @@ -1543,7 +1593,7 @@ File gid_File_Lib_XSec_XmlSec #else Name = "xsec_xmlsec.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED,UNO_COMPONENT,PATCH); RegistryID = gid_Starregistry_Services_Rdb; End @@ -1555,7 +1605,7 @@ File gid_File_Lib_XSec_XMLSecurity #else Name = "xmlsecurity.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; End @@ -1568,7 +1618,7 @@ File gid_File_Lib_LibXMLSec_xmlseccore #else Name = "libxmlsec.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End @@ -1579,7 +1629,7 @@ File gid_File_Lib_LibXMLSec_xmlsecmscrypto #else Name = "libxmlsec-mscrypto.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED); End #endif @@ -1591,7 +1641,7 @@ File gid_File_Lib_Migrationoo2 TXT_FILE_BODY; Styles = (PACKED,UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(migrationoo2.uno,UNXSUFFIX)); #else @@ -1602,7 +1652,7 @@ End File gid_File_Lib_Libtextcat TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libtextcat,UNXSUFFIX)); #else @@ -1620,7 +1670,7 @@ SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH( gid_File_Lib_Updatefeed , updatefeed.uno ) File gid_File_Lib_Onlinecheck BIN_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "onlinecheck.dll"; End #endif @@ -1629,7 +1679,7 @@ End File gid_File_Lib_Openssl TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef WNT Name = "ssleay32.dll"; #endif @@ -1640,7 +1690,7 @@ End File gid_File_Lib_Crypto TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef WNT Name = "libeay32.dll"; @@ -1650,30 +1700,33 @@ End File gid_File_Lib_Soffice TXT_FILE_BODY; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = SCP2_URE_DL_NORMAL("sofficeapp"); Styles = (PACKED); End File gid_File_Lib_Unopkgapp TXT_FILE_BODY; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = SCP2_URE_DL_NORMAL("unopkgapp"); Styles = (PACKED); End STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Oooimprovecore , oooimprovecore) -#if defined WNT && !defined SYSTEM_MOZILLA && !defined WITHOUT_MOZILLA +#if defined WNT && !defined _gcc3 && !defined SYSTEM_MOZILLA && !defined WITHOUT_MOZILLA && \ + !(defined M1400 && defined PROF_EDITION && !defined _STLP_DEBUG) + // see common_brand.scp gid_Brand_File_Lib_Msvcp80 and + // gid_Brand_File_Lib_Msvcr80 File gid_File_Moz_Msvcp80 TXT_FILE_BODY; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = SCP2_URE_DL_NORMAL("msvcp80"); Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); End File gid_File_Moz_Msvcr80 TXT_FILE_BODY; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = SCP2_URE_DL_NORMAL("msvcr80"); Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); End @@ -1683,7 +1736,7 @@ End File gid_File_Lib_Raptor TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX #ifdef MACOSX Name = STRING(CONCAT4(libraptor,.,RAPTOR_MAJOR,UNXSUFFIX)); @@ -1702,7 +1755,7 @@ End File gid_File_Lib_Rasqal TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX #ifdef MACOSX Name = STRING(CONCAT4(librasqal,.,RASQAL_MAJOR,UNXSUFFIX)); @@ -1721,7 +1774,7 @@ End File gid_File_Lib_Rdf TXT_FILE_BODY; Styles = (PACKED); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; #ifdef UNX #ifdef MACOSX Name = STRING(CONCAT4(librdf,.,REDLAND_MAJOR,UNXSUFFIX)); diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp index 3c7d7006bd67..f0994fe25ca8 100644 --- a/scp2/source/ooo/file_ooo.scp +++ b/scp2/source/ooo/file_ooo.scp @@ -359,7 +359,7 @@ End STD_FILTER_FILE( gid_File_Filter_Eme, eme) -STD_FILTER_FILE_PATCH( gid_File_Filter_Emp, emp) +STD_FILTER_FILE_PATCH( gid_File_Filter_Sdfilt, sdfilt) STD_FILTER_FILE( gid_File_Filter_Icg, icg) @@ -1169,7 +1169,7 @@ End File gid_File_Mozilla_Runtime TXT_FILE_BODY; Styles = (ARCHIVE); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "mozruntime.zip"; End @@ -1707,7 +1707,11 @@ File gid_Starregistry_Services_Rdb Name = "services.rdb"; Dir = gid_Dir_Program; Styles = (PACKED, STARREGISTRY, PATCH); +#if defined WNT + NativeServicesURLPrefix = "vnd.sun.star.expand:$BRAND_BASE_DIR/program/"; +#else NativeServicesURLPrefix = "vnd.sun.star.expand:$OOO_BASE_DIR/program/"; +#endif JavaServicesURLPrefix = "vnd.sun.star.expand:$OOO_BASE_DIR/program/classes/"; End diff --git a/scp2/source/ooo/makefile.mk b/scp2/source/ooo/makefile.mk index adb0175252c1..0d85cc529b63 100644 --- a/scp2/source/ooo/makefile.mk +++ b/scp2/source/ooo/makefile.mk @@ -79,6 +79,10 @@ SCPDEFS+=-DENABLE_SYSTRAY_GTK SCPDEFS+=-DENABLE_KDE .ENDIF +.IF "$(ENABLE_KDE4)" != "" +SCPDEFS+=-DENABLE_KDE4 +.ENDIF + .IF "$(ENABLE_KAB)" != "" SCPDEFS+=-DENABLE_KAB .ENDIF @@ -237,6 +241,14 @@ SCPDEFS+=-DENABLE_SVCTAGS SCPDEFS+=-DWITH_VC_REDIST .ENDIF +.IF "$(MINGW_GCCDLL)"!="" +SCPDEFS+=-DMINGW_GCCDLL=\""$(MINGW_GCCDLL)"\" +.ENDIF + +.IF "$(MINGW_GXXDLL)"!="" +SCPDEFS+=-DMINGW_GXXDLL=\""$(MINGW_GXXDLL)"\" +.ENDIF + SCP_PRODUCT_TYPE=osl ICUVERSION_DEPENDENT_FILES= \ diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp index 0c7b8fe2b6dc..dbc6e2d8c6b2 100644 --- a/scp2/source/ooo/module_hidden_ooo.scp +++ b/scp2/source/ooo/module_hidden_ooo.scp @@ -140,7 +140,7 @@ Module gid_Module_Root_Files_4 Styles = (HIDDEN_ROOT); Files = (gid_File_Dat_Root4, gid_File_Filter_Eme, - gid_File_Filter_Emp, + gid_File_Filter_Sdfilt, gid_File_Filter_Icg, gid_File_Filter_Egi, gid_File_Filter_Epb, @@ -240,6 +240,7 @@ Module gid_Module_Root_Files_4 gid_File_Lib_Vclplug_Gen, gid_File_Lib_Vclplug_Gtk, gid_File_Lib_Vclplug_Kde, + gid_File_Lib_Vclplug_Kde4, gid_File_Lib_Vclplug_Svp, gid_File_Lib_Basctl, gid_File_Lib_CanvasTools, @@ -386,13 +387,11 @@ Module gid_Module_Root_Files_5 gid_File_Lib_sn_tools, gid_File_Lib_relnotes, GID_FILE_LIB_WPD, - gid_File_Lib_Mingwm10, + gid_File_Lib_Mingw_GccS, + gid_File_Lib_Mingw_Stdcpp, + gid_File_Lib_Mingwm10, gid_File_Lib_Msvcp70, gid_File_Lib_Msvcr70, - gid_File_Lib_Msvcr80, - gid_File_Lib_Msvcp80, - gid_File_Lib_Msvcm80, - gid_File_Msvcm80crt_Manifest, gid_File_Lib_Ole, gid_File_Lib_Patchmsi, gid_File_Lib_Reg4allmsdoc, diff --git a/scp2/source/ooo/scpaction_ooo.scp b/scp2/source/ooo/scpaction_ooo.scp index 190fd50cf166..f88737451a5f 100644 --- a/scp2/source/ooo/scpaction_ooo.scp +++ b/scp2/source/ooo/scpaction_ooo.scp @@ -107,6 +107,18 @@ ScpAction SCP_COPY_MINGWM10 Copy = "mingwm10.dll"; Name = "mingwm10.dll"; End +#if defined(MINGW_GCCDLL) +ScpAction SCP_COPY_MINGW_GCCS + Copy = MINGW_GCCDLL; + Name = MINGW_GCCDLL; +End +#endif +#if defined(MINGW_GXXDLL) +ScpAction SCP_COPY_MINGW_STDCPP + Copy = MINGW_GXXDLL; + Name = MINGW_GXXDLL; +End +#endif #endif ScpAction scp_Copy_Xpd_Javaloader @@ -358,8 +370,10 @@ End ScpAction scp_Copy_Ds_Store Copy = "DS_Store"; + LangPackCopy = "DS_Store_Langpack"; + PatchCopy = "DS_Store_Patch"; Name = ".DS_Store"; UnixRights = 444; - Styles = (); + Styles = (FORCELANGUAGEPACK); End #endif diff --git a/scp2/source/ooo/shortcut_ooo.scp b/scp2/source/ooo/shortcut_ooo.scp index 2740fe563b69..3824fe3a0841 100644 --- a/scp2/source/ooo/shortcut_ooo.scp +++ b/scp2/source/ooo/shortcut_ooo.scp @@ -35,40 +35,62 @@ Shortcut gid_Shortcut_Lib_Icudata FileID = gid_File_Lib_Icudata; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT5(libicudata,UNXSUFFIX,.,ICU_MAJOR,ICU_MINOR)); Styles = (NETWORK,RELATIVE,FORCE_INTO_UPDATE_PACKAGE); End Shortcut gid_Shortcut_Lib_Icui18n FileID = gid_File_Lib_Icui18n; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT5(libicui18n,UNXSUFFIX,.,ICU_MAJOR,ICU_MINOR)); Styles = (NETWORK,RELATIVE,FORCE_INTO_UPDATE_PACKAGE); End Shortcut gid_Shortcut_Lib_Icule FileID = gid_File_Lib_Icule; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT5(libicule,UNXSUFFIX,.,ICU_MAJOR,ICU_MINOR)); Styles = (NETWORK,RELATIVE,FORCE_INTO_UPDATE_PACKAGE); End Shortcut gid_Shortcut_Lib_Icuuc FileID = gid_File_Lib_Icuuc; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT5(libicuuc,UNXSUFFIX,.,ICU_MAJOR,ICU_MINOR)); Styles = (NETWORK,RELATIVE,FORCE_INTO_UPDATE_PACKAGE); End #endif + +Shortcut gid_Shortcut_Lib_Graphite_0 + FileID = gid_File_Lib_Graphite; + Dir = gid_Dir_Program; + Name = STRING(CONCAT2(libgraphite,UNXSUFFIX)); + Styles = (NETWORK,RELATIVE); +End + +Shortcut gid_Shortcut_Lib_Graphite_1 + FileID = gid_File_Lib_Graphite; + Dir = gid_Dir_Program; + Name = STRING(CONCAT4(libgraphite,UNXSUFFIX,.,3)); + Styles = (NETWORK,RELATIVE); +End + +Shortcut gid_Shortcut_Lib_Graphite_2 + FileID = gid_File_Lib_Graphite; + Dir = gid_Dir_Program; + Name = STRING(CONCAT4(libgraphite,UNXSUFFIX,.,3.0)); + Styles = (NETWORK,RELATIVE); +End + #endif #ifdef MACOSX Shortcut gid_Shortcut_Lib_Hsqldb_2 FileID = gid_File_Lib_Hsqldb_2; - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "libhsqldb.jnilib"; Styles = (NETWORK, RELATIVE); End diff --git a/scp2/source/ooo/ure.scp b/scp2/source/ooo/ure.scp index bc9629b6ee0b..1c260e2d2508 100755 --- a/scp2/source/ooo/ure.scp +++ b/scp2/source/ooo/ure.scp @@ -410,6 +410,13 @@ File gid_File_Dl_AffineUnoUno // CompID = "CF542EC3-7A51-4EAA-8480-65D5E8906D05"; End +File gid_File_Dl_LogUnoUno + TXT_FILE_BODY; + Dir = SCP2_URE_DL_DIR; + Name = SCP2_URE_DL_NORMAL("log_uno_uno"); + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); +End + #if defined WNT && defined _MSC File gid_File_Dl_Cli_Uno TXT_FILE_BODY; @@ -832,7 +839,7 @@ File gid_File_Dl_Libxml2 #else Name = SCP2_URE_DL_VER("xml2", "2"); #endif - Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); + Styles = (PACKED, PATCH, VERSION_INDEPENDENT_COMP_ID); // CompID = "BE6FAD97-F84C-43E3-8392-6FE2CDA04D8E"; End #endif @@ -910,6 +917,32 @@ File gid_File_Lib_Mingwm10_Ure End #endif +#if defined(WNT) && defined( _gcc3 ) + +#if defined(MINGW_GCCDLL) + +File gid_File_Lib_Mingw_GccS_Ure + TXT_FILE_BODY; + Dir = SCP2_URE_DL_DIR; + Name = MINGW_GCCDLL; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); +End + +#endif + +#if defined(MINGW_GXXDLL) + +File gid_File_Lib_Mingw_Stdcpp_Ure + TXT_FILE_BODY; + Dir = SCP2_URE_DL_DIR; + Name = MINGW_GXXDLL; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); +End + +#endif + +#endif + #ifdef WNT #if defined(M1310) File gid_File_Dl_Msvcr71 @@ -1121,6 +1154,7 @@ Module gid_Module_Root_Ure_Hidden gid_File_Dl_UrpUno, gid_File_Dl_UnsafeUnoUno, gid_File_Dl_AffineUnoUno, + gid_File_Dl_LogUnoUno, gid_File_Dl_Jpipe, gid_File_Dl_Juh, gid_File_Dl_Juhx, @@ -1146,6 +1180,8 @@ Module gid_Module_Root_Ure_Hidden gid_File_Dl_Stlport, gid_File_Dl_GccS, gid_File_Dl_Stdcpp, + gid_File_Lib_Mingw_GccS_Ure, + gid_File_Lib_Mingw_Stdcpp_Ure, gid_File_Lib_Mingwm10_Ure, gid_File_Dl_Msvcr71, gid_File_Dl_Msvcp71, diff --git a/scp2/source/python/file_python.scp b/scp2/source/python/file_python.scp index 4924c7ca799d..6042c062d21b 100644 --- a/scp2/source/python/file_python.scp +++ b/scp2/source/python/file_python.scp @@ -50,6 +50,7 @@ File gid_File_Lib_Pythonloader Name = "pythonloader.uno.dll"; #endif RegistryID = gid_Starregistry_Services_Rdb; + NativeServicesURLPrefix = "vnd.sun.star.expand:$OOO_BASE_DIR/program/"; Styles = (PACKED,UNO_COMPONENT); End diff --git a/scp2/source/sdkoo/sdkoo.scp b/scp2/source/sdkoo/sdkoo.scp index f469a8178b5a..b8dd4e5faed4 100644 --- a/scp2/source/sdkoo/sdkoo.scp +++ b/scp2/source/sdkoo/sdkoo.scp @@ -236,3 +236,13 @@ Unixlink gid_Unixlink_Cppuhelper_Link_Sdk Target = "../../ure-link/lib/" SCP2_URE_DL_UNO_COMID_VER("cppuhelper", "3"); End #endif + +#if (!defined(WNT) && !defined( MACOSX) ) +Unixlink gid_Unixlink_Purpenvhelper_Link_Sdk + BIN_FILE_BODY; + Styles = (); + Name = SCP2_URE_DL_UNO_COMID_NORMAL("purpenvhelper"); + Dir = gid_Dir_Lib_Sdk; + Target = "../../ure-link/lib/" SCP2_URE_DL_UNO_COMID_VER("purpenvhelper", "3"); +End +#endif diff --git a/scp2/source/winexplorerext/file_winexplorerext.scp b/scp2/source/winexplorerext/file_winexplorerext.scp index 23ed3b7b2365..e7b3584b32db 100644 --- a/scp2/source/winexplorerext/file_winexplorerext.scp +++ b/scp2/source/winexplorerext/file_winexplorerext.scp @@ -77,6 +77,6 @@ End File gid_File_Lib_Shlxtmsi TXT_FILE_BODY; Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY); - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Name = "shlxtmsi.dll"; End diff --git a/scp2/source/writer/file_writer.scp b/scp2/source/writer/file_writer.scp index 000307175e8c..5c76da172576 100644 --- a/scp2/source/writer/file_writer.scp +++ b/scp2/source/writer/file_writer.scp @@ -39,7 +39,7 @@ File gid_File_Lib_Hwpreader #else Name = "hwp.dll"; #endif - Dir = gid_Dir_Program; + Dir = SCP2_OOO_BIN_DIR; Styles = (PACKED, UNO_COMPONENT); RegistryID = gid_Starregistry_Services_Rdb; End diff --git a/set_soenv.in b/set_soenv.in index 2c496efc1d73..ed9603d9f13f 100644 --- a/set_soenv.in +++ b/set_soenv.in @@ -86,9 +86,9 @@ my ( $oldPATH, $SRC_ROOT, $SO_HOME, $JAVA_HOME, $JDK, $JAVAFLAGS, $SHELL, $PATH, $SOLAREXTRAINC, $SOLAREXTRALIB, $SOLARLIB, $SOLARINC, $LOCALINI, $FRAMEWORKSHOME, $COMEX, $PERL, $COMP_ENV, $ILIB, $JAVAHOME, $PSDK_HOME, $DIRECTXSDK_LIB, $USE_NEW_SDK, $FRAME_HOME, - $USE_DIRECTX5, $ATL_LIB, $ATL_INCLUDE, $MFC_LIB, $MFC_INCLUDE, $NO_HIDS, $TEMP, + $USE_DIRECTX5, $ATL_LIB, $ATL_INCLUDE, $MFC_LIB, $MFC_INCLUDE, $NO_HIDS, $TMPDIR, $COMMON_BUILD_TOOLS, $WIN_GREP, $WIN_FIND, $WIN_LS, - $WIN_GNUCOPY, $WIN_TOUCH, $STLPORT4, $MOZILLA_VERSION, $MOZILLA_TOOLKIT, $PREBUILD_MOZAB, + $WIN_GNUCOPY, $WIN_TOUCH, $STLPORT4, $MOZILLA_VERSION, $MOZILLA_TOOLKIT, $PREBUILD_MOZAB, $MOZILLABUILD, $PROEXT, $SYSTEM_PYTHON, $PYTHONPATH, $SYSTEM_MOZILLA, $EPM_FLAGS); # @@ -1108,7 +1108,8 @@ if ($platform =~ m/cygwin|os2/) else { $ILIB .= $wps.$COMPATH.$LIB; } - $ILIB .= $wps.$PSDK_HOME.$LIB; + $ILIB .= $wps.PathFormat("@MINGW_CLIB_DIR@"). + $wps.$PSDK_HOME.$LIB; if ( '@ENABLE_DIRETX@' ) { $ILIB .= $wps.PathFormat("@DIRECTXSDK_LIB@"); } @@ -1485,6 +1486,7 @@ elsif ($platform =~ m/cygwin/) else { $SOLARINC .= $I.'$COMPATH'.$ds."include"; } @mingw_lib_include_paths = split( / /, "@MINGW_LIB_INCLUDE_PATH@" ); + $SOLARINC .= $I.PathFormat("@MINGW_BACKWARD_INCLUDE_PATH@"); foreach $mingw_lib_include_path (@mingw_lib_include_paths) { chomp $mingw_lib_include_path; if ( $mingw_lib_include_path ne $COMPATH.$ds."include" && $mingw_lib_include_path ne "" ) @@ -1644,6 +1646,8 @@ ToFile( "BUILD_MOZAB", "@BUILD_MOZAB@", "e" ); ToFile( "PREBUILD_MOZAB", $PREBUILD_MOZAB, "e" ); ToFile( "MOZILLA_VERSION", $MOZILLA_VERSION, "e" ); ToFile( "DEFAULT_MOZILLA_TOOLKIT", $MOZILLA_TOOLKIT, "e" ); +ToFile( "ENABLE_NSS_MODULE", "@ENABLE_NSS_MODULE@", "e" ); +ToFile( "MOZILLABUILD", "@MOZILLABUILD@", "e" ); ToFile( "BUILD_VER_STRING", "@BUILD_VER_STRING@", "e" ); ToFile( "ENABLE_VBA", "@ENABLE_VBA@", "e" ); ToFile( "VBA_EXTENSION", "@VBA_EXTENSION@", "e" ); @@ -1689,8 +1693,12 @@ ToFile( "ENABLE_GIO", "@ENABLE_GIO@", "e" ); ToFile( "ENABLE_KDE", "@ENABLE_KDE@", "e" ); ToFile( "KDE_CFLAGS", "@KDE_CFLAGS@", "e" ); ToFile( "KDE_LIBS", "@KDE_LIBS@", "e" ); -ToFile( "ENABLE_KAB", "@ENABLE_KAB@", "e" ); ToFile( "MOC", "@MOC@", "e" ); +ToFile( "ENABLE_KDE4", "@ENABLE_KDE4@", "e" ); +ToFile( "KDE4_CFLAGS", "@KDE4_CFLAGS@", "e" ); +ToFile( "KDE4_LIBS", "@KDE4_LIBS@", "e" ); +ToFile( "MOC4", "@MOC4@", "e" ); +ToFile( "ENABLE_KAB", "@ENABLE_KAB@", "e" ); ToFile( "PSPRINT", "TRUE", "e" ); ToFile( "MKDEPENDSOLVER", "TRUE", "e" ); # @@ -1815,8 +1823,11 @@ ToFile( "ENABLE_DIRECTX", "@ENABLE_DIRECTX@", "e" ); ToFile( "ENABLE_LAYOUT", "@ENABLE_LAYOUT@", "e" ); ToFile( "ENABLE_PCH", "@ENABLE_PCH@", "e" ); ToFile( "NO_HIDS", "@NO_HIDS@", "e" ); +ToFile( "ENABLE_GRAPHITE", "@ENABLE_GRAPHITE@", "e"); +ToFile( "SYSTEM_GRAPHITE", "@SYSTEM_GRAPHITE@", "e"); +ToFile( "GRAPHITE_LIBS", "@GRAPHITE_LIBS@", "e"); +ToFile( "GRAPHITE_CFLAGS", "@GRAPHITE_CFLAGS@", "e"); ToFile( "VC_STANDARD", "@VC_STANDARD@", "e" ); -ToFile( "WITH_GPC", "@WITH_GPC@", "e" ); ToFile( "WITH_MYSPELL_DICTS","@WITH_MYSPELL_DICTS@","e"); ToFile( "SYSTEM_DICTS", "@SYSTEM_DICTS@", "e"); ToFile( "DICT_SYSTEM_DIR", "@DICT_SYSTEM_DIR@", "e"); @@ -1942,9 +1953,12 @@ ToFile( "CRYPT_LINK", "@CRYPT_LINK@", "e" ); ToFile( "XAU_LIBS", "@XAU_LIBS@", "e" ); ToFile( "GXX_INCLUDE_PATH", PathFormat("@GXX_INCLUDE_PATH@"), "e" ); ToFile( "COMMON_BUILD_TOOLS",$COMMON_BUILD_TOOLS, "e" ); -if ($platform !~ m/cygwin|os2/) -{ ToFile( "TEMP", $TEMP, "e" ); - ToFile( "TMP", $TEMP, "e" ); +if ($platform !~ m/cygwin|os2/) { + if ( $ENV{"TMPDIR"} eq "" ) { + ToFile( "TMPDIR", "/tmp", "e" ); + } else { + ToFile( "TMPDIR", "$ENV{'TMPDIR'}", "e" ); + } } ToFile( "SOLARSRC", $SOLARSRC, "e" ); if ( $platform =~ m/cygwin/ ) @@ -1952,8 +1966,15 @@ if ( $platform =~ m/cygwin/ ) ToFile( "ILIB", $ILIB, "e" ); if ( $MINGW eq "yes" ) { ToFile( "ATL_INCLUDE", $ATL_INCLUDE, "e" ); + ToFile( "EXCEPTIONS", "@EXCEPTIONS@", "e" ); ToFile( "DIRECTXSDK_HOME", PathFormat("@DIRECTXSDK_HOME@"), "e" ); ToFile( "USE_MINGW", $USE_MINGW, "e" ); + ToFile( "MINGW_CLIB_DIR", PathFormat("@MINGW_CLIB_DIR@"), "e" ); + ToFile( "MINGW_SHARED_GCCLIB", "@MINGW_SHARED_GCCLIB@", "e" ); + ToFile( "MINGW_GCCLIB_EH", "@MINGW_GCCLIB_EH@", "e" ); + ToFile( "MINGW_SHARED_GXXLIB", "@MINGW_SHARED_GXXLIB@", "e" ); + ToFile( "MINGW_GCCDLL", "@MINGW_GCCDLL@", "e" ); + ToFile( "MINGW_GXXDLL", "@MINGW_GXXDLL@", "e" ); } ToFile( "GREP", $WIN_GREP, "e" ); ToFile( "FIND", $WIN_FIND, "e" ); diff --git a/solenv/bin/build.pl b/solenv/bin/build.pl index af958c0181ad..c9c29bf40b72 100644 --- a/solenv/bin/build.pl +++ b/solenv/bin/build.pl @@ -44,6 +44,7 @@ use IO::Socket::INET; use lib ("$ENV{SOLARENV}/bin/modules"); + use SourceConfig; my $in_so_env = 0; if (defined $ENV{COMMON_ENV_TOOLS}) { @@ -168,7 +169,7 @@ $html_last_updated = 0; %jobs_hash = (); $html_path = undef; - $html_file = CorrectPath($ENV{SRC_ROOT} . '/' . $ENV{INPATH}. '.build.html'); + $html_file = CorrectPath($ENV{SOLARSRC} . '/' . $ENV{INPATH}. '.build.html'); $build_finished = 0; %had_error = (); # hack for misteriuos windows problems - try run dmake 2 times if first time there was an error $mkout = CorrectPath("$ENV{SOLARENV}/bin/mkout.pl"); @@ -188,6 +189,12 @@ # the server considered as an error/client crash my %lost_client_jobs = (); # hash containing lost jobs my %job_jobdir = (); # hash containing job-dir pairs + my %module_paths = (); # hash with absolute module paths + my %active_modules = (); + my $generate_config = 0; + my %add_to_config = (); + my %remove_from_config = (); + my $clear_config = 0; ### main ### get_options(); @@ -209,7 +216,12 @@ $deliver_env{'L10N_framework'}++; }; + if ($generate_config) { + generate_config_file(); + exit 0; + } $StandDir = get_stand_dir(); # This also sets $CurrentPrj + get_module_and_buildlist_paths(); provide_consistency() if (defined $ENV{CWS_WORK_STAMP} && defined($ENV{COMMON_ENV_TOOLS})); $deliver_command = $ENV{DELIVER}; @@ -254,8 +266,11 @@ # } elsif (!$custom_job && $post_custom_job) { # do_post_custom_job(CorrectPath($StandDir.$CurrentPrj)); }; - if (scalar @warnings) { - print STDERR $_ foreach (@warnings); + print_warnings(); + if (scalar keys %active_modules) { + foreach (keys %dead_parents) { + delete $dead_parents{$_} if (!defined $active_modules{$_}); + }; }; if (scalar keys %dead_parents) { my ($DeadPrj); @@ -294,6 +309,119 @@ # # ######################### +sub print_warnings { + if (scalar @warnings) { + print STDERR "\nWARNING(S):\n"; + print STDERR $_ foreach (@warnings); + }; +}; + +sub rename_file { + my ($old_file_name, $new_file_name, $throw_error) = @_; + + if(-e $old_file_name) { + rename($old_file_name, $new_file_name) or system("mv", $old_file_name, $new_file_name); + if (-e $old_file_name) { + system("rm -rf $old_file_name") if (!unlink $old_file_name); + }; + } elsif ($throw_error) { + print_error("No such file $old_file_name"); + }; +}; + +sub generate_config_file { + my $source_config = SourceConfig -> new(); + my $source_config_file = $source_config->get_config_file_path(); + my $temp_config_file = File::Temp::tmpnam($ENV{TMP}); + my @config_content_new = (); + my $addition_message; + my $removal_message; + my %present_modules = (); + if ($source_config_file) { + open(SOURCE_CONFIG_FILE, $source_config_file); + my @config_content = <SOURCE_CONFIG_FILE>; + close SOURCE_CONFIG_FILE; + my ($module_section, $repository_section); + foreach (@config_content) { + $line++; + if ((!/^\S+/)||(/^\s*#+/)) { + push(@config_content_new, $_); + next; + } + if (/^\[repositories\]\s*(\s+#)*/) { + if ($module_section) { + $addition_message = add_modules_to_source_config(\%add_to_config, \@config_content_new); + }; + $module_section = 0; + $repository_section = 1; + push(@config_content_new, $_); + next; + }; + if (/^\[modules\]\s*(\s+#)*/) { + $module_section = 1; + $repository_section = 0; + push(@config_content_new, $_); + next; + }; + if ($module_section && /\s*(\S+)=active\s*(\s+#)*/) { + if ($clear_config || defined $remove_from_config{$1}) { + delete $remove_from_config{$1}; + $removal_message .= "$1 "; + } else { + push(@config_content_new, $_); + if (defined $add_to_config{$1}) { + push(@warnings, "Module $1 already activated in $source_config_file\n"); + delete $add_to_config{$1}; + } + }; + } else { + push(@config_content_new, $_); + }; + }; + if (keys %add_to_config) { + if (!$module_section) { + push(@config_content_new, "[modules]\n"); + }; + $addition_message = add_modules_to_source_config(\%add_to_config, \@config_content_new); + }; + } else { + if ($clear_config || scalar %remove_from_config) { + print_error('No source config file found'); + }; + $source_config_file = $source_config->get_config_file_default_path(); + push(@config_content_new, "[modules]\n"); + $addition_message = add_modules_to_source_config(\%add_to_config, \@config_content_new); + }; + die("Cannot open $temp_config_file") if (!open(NEW_CONFIG, ">$temp_config_file")); + print NEW_CONFIG $_ foreach (@config_content_new); + close NEW_CONFIG; + rename_file($temp_config_file, $source_config_file, 1); + foreach (keys %remove_from_config) { + push(@warnings, "Module(s) $_ not found in " . $source_config_file . "\n"); + }; + print_warnings(); + print $addition_message if ($addition_message); + print "Module(s) $removal_message removed from $source_config_file\n" if ($removal_message); + exit(0); +}; + +# +# Add modules from the passed hash to the array of config strigns +# +sub add_modules_to_source_config { + my ($modules_hash_ref, $config_content_new) = @_; + my $message; + foreach (keys %$modules_hash_ref) { + push(@$config_content_new, "$_=active\n"); + $message .= "$_ "; + }; + if ($message) { + return 'Module(s) ' .$message . 'are added to the ' . $source_config_file . "\n\n"; + } else { + return ''; + }; +}; + # # procedure retrieves build list path # (all possibilities are taken into account) @@ -303,7 +431,7 @@ sub get_build_list_path { my @possible_dirs = ($module, $module. '.lnk', $module. '.link'); return $build_list_paths{$module} if (defined $build_list_paths{$module}); foreach (@possible_dirs) { - my $possible_dir_path = $StandDir.$_.'/prj/'; + my $possible_dir_path = $module_paths{$_}.'/prj/'; if (-d $possible_dir_path) { foreach my $build_list (@possible_build_lists) { my $possible_build_list_path = CorrectPath($possible_dir_path . $build_list); @@ -316,7 +444,7 @@ sub get_build_list_path { }; }; $dead_parents{$module}++; - $build_list_paths{$module} = CorrectPath(retrieve_build_list($module)); + $build_list_paths{$module} = CorrectPath(retrieve_build_list($module)) if (!defined $build_list_paths{$module}); return $build_list_paths{$module}; }; @@ -355,50 +483,26 @@ sub store_weights { }; # -# This procedure implements complete in-depth weights search -# it's working, but very slow, so switched off in favor of the -# last (simplified) implementation... -# -#sub store_weights { -# my $deps_hash = shift; -# $weights_hash{$_} = {} foreach (keys %$deps_hash); -# foreach (keys %$deps_hash) { -# foreach my $module_deps_hash ($$deps_hash{$_}) { -# foreach my $dependency (keys %$module_deps_hash) { -# ${$weights_hash{$dependency}}{$_}++; -# }; -# }; -# }; -# my $current_prj_preq = $$deps_hash{$CurrentPrj}; -# foreach (keys %$current_prj_preq) { -# accumulate_weights($deps_hash, $_); -# }; -#}; - -#sub accumulate_weights { -# my ($deps_hash, $module) = @_; -# my @prerequisites = keys %{$$deps_hash{$module}}; -# my @is_prereq_for = keys %{$weights_hash{$module}}; -# foreach my $prereq_module (@prerequisites) { -## next if (defined $weight_stored{$prereq_module}); -## $weight_stored{$prereq_module}++; -# ${$weights_hash{$prereq_module}}{$_}++ foreach @is_prereq_for; -# accumulate_weights($deps_hash, $prereq_module); -# }; -#}; - -# # Build everything that should be built # sub BuildAll { if ($BuildAllParents) { my ($Prj, $PrjDir, $orig_prj); GetParentDeps( $CurrentPrj, \%global_deps_hash); + if (scalar keys %active_modules) { + $active_modules{$CurrentPrj}++; + $modules_types{$CurrentPrj} = 'mod'; + }; modules_classify(keys %global_deps_hash); store_weights(\%global_deps_hash); + if (keys %active_modules && ($build_from || $incompatible)) { + print_error("There are active module in $source_config_file. Please remove these modules to proceed.\n"); + }; prepare_build_from(\%global_deps_hash) if ($build_from); prepare_incompatible_build(\%global_deps_hash) if ($incompatible); if ($build_all_cont || $build_since) { + print STDERR "There are active module in $source_config_file. Inactive modules will be skipped.\n"; + push (@warnings, "\nThere are active module in $source_config_file. Inactive modules are skipped.\n\n"); prepare_build_all_cont(\%global_deps_hash); }; $modules_number = scalar keys %global_deps_hash; @@ -419,7 +523,7 @@ sub BuildAll { next; }; - $PrjDir = CorrectPath($StandDir.$Prj); + $PrjDir = $module_paths{$Prj}; get_deps_hash($Prj, \%LocalDepsHash); my $info_hash = $html_info{$Prj}; $$info_hash{DIRS} = check_deps_hash(\%LocalDepsHash, $Prj); @@ -466,10 +570,6 @@ sub dmake_dir { $jobs_hash{$BuildDir}->{STATUS} = 'building'; if ($BuildDir =~ /(\s)/o) { $error_code = do_custom_job($BuildDir, \%LocalDepsHash); -# do_pre_job($`, $pre_job) if ($' eq $pre_job); -# $error_code = do_post_job($`, $', \%LocalDepsHash) if ($' eq $post_job); -# RemoveFromDependencies($BuildDir, \%LocalDepsHash); -# html_store_job_info(\%LocalDepsHash, $BuildDir, $error_code); } else { html_store_job_info(\%LocalDepsHash, $BuildDir); print_error("$BuildDir not found!!\n") if (!-d $BuildDir); @@ -495,22 +595,6 @@ sub dmake_dir { RemoveFromDependencies($BuildDir, \%LocalDepsHash) if (!$child); return if ($cmd_file || $show); $error_code = run_job($dmake, $BuildDir); -# chdir $BuildDir; -# getcwd(); -# if ($html) { -# my $log_file = $jobs_hash{$BuildDir}->{LONG_LOG_PATH}; -# my $log_dir = File::Basename::dirname($log_file); -# if (!-d $log_dir) { -# system("$perl $mkout"); -# }; -# $error_code = system ("$dmake > $log_file 2>&1"); -# if (!$grab_output && -f $log_file) { -# system("cat $log_file"); -# }; -# } else { -# $error_code = system ("$dmake"); -# }; - html_store_job_info(\%LocalDepsHash, $BuildDir, $error_code) if (!$child); }; if ($error_code && $ignore) { @@ -618,7 +702,7 @@ sub get_deps_from_object { my ($module, $build_list_object, $dependencies_hash) = @_; foreach my $dir ($build_list_object->getJobDirectories("make", $ENV{GUI})) { - $PathHash{$dir} = $StandDir . $module; + $PathHash{$dir} = $module_paths{$module}; $PathHash{$dir} .= $dir if ($dir ne '/'); my %deps_hash = (); @@ -694,10 +778,11 @@ sub get_deps_hash { $deps_hash{$_}++ foreach (GetDependenciesArray($Dependencies)); $$dependencies_hash{$DirAlias} = \%deps_hash; $BuildQueue{$DirAlias}++; + my $local_dir = ''; if ($Dir =~ /(\\|\/)/o) { - $Dir = $module_to_build . $1 . $'; - } else {$Dir = $module_to_build;}; - $PathHash{$DirAlias} = CorrectPath($StandDir . $Dir); + $local_dir = $'; + }; + $PathHash{$DirAlias} = CorrectPath($module_paths{$module_to_build} . "/$local_dir"); } elsif ($_ !~ /^\s*$/ && $_ !~ /^\w*\s/o) { chomp; push(@errors, $_); @@ -851,42 +936,17 @@ sub get_commands { while ($arg = pop(@dmake_args)) { $dmake .= ' '.$arg; }; -# if (($ENV{GUI} eq 'WNT') && $QuantityToBuild) { -# print_error("There is no such executable $_4nt_exe") if (!-e $_4nt_exe); -# $dmake_batch = generate_4nt_batch(); -# }; }; # -# Procedure prooves if current dir is a root dir of the drive -# -#sub IsRootDir { -# my ($Dir); -# $Dir = shift; -# if ( (($ENV{GUI} eq 'UNX') || -# ($ENV{GUI} eq 'MACOSX')) && -# ($Dir eq '/')) { -# return 1; -# } elsif ( (($ENV{GUI} eq 'WNT') || -# ($ENV{GUI} eq 'WIN') || -# ($ENV{GUI} eq 'OS2')) && -# ($Dir =~ /\S:\/$/)) { -# return 1; -# } else { -# return 0; -# }; -#}; - -# # Procedure retrieves list of projects to be built from build.lst # sub get_stand_dir { - if (!(defined $ENV{GUI})) { + if (!defined $ENV{GUI}) { $ENV{mk_tmp} = ''; die "No environment set\n"; }; my $StandDir; -# $StandDir = getcwd(); if ( defined $ENV{PWD} ) { $StandDir = $ENV{PWD}; } elsif (defined $ENV{_cwd}) { @@ -898,9 +958,8 @@ sub get_stand_dir { do { foreach (@possible_build_lists) {# ('build.lst', 'build.xlist'); if (-e $StandDir . '/prj/'.$_) { - $StandDir =~ /([\-\.\w]+$)/; - $StandDir = $`; - $CurrentPrj = $1; + $CurrentPrj = File::Basename::basename($StandDir); + $StandDir = File::Basename::dirname($StandDir); return $StandDir; } elsif ($StandDir eq $previous_dir) { $ENV{mk_tmp} = ''; @@ -908,10 +967,7 @@ sub get_stand_dir { }; }; $previous_dir = $StandDir; -# $StandDir = Cwd::realpath($StandDir . '/..'); - my @dirlist = split(/\//,Cwd::realpath($StandDir)); - pop @dirlist; # discard last dirname; - $StandDir = join('/', @dirlist); + $StandDir = File::Basename::dirname(Cwd::realpath($StandDir)); print_error('Found no project to build') if (!$StandDir); } # while (chdir '..'); @@ -967,7 +1023,7 @@ sub RemoveFromDependencies { sub check_deps_hash { my ($deps_hash_ref, $module) = @_; my @possible_order; - my $module_path = $StandDir . $module if (defined $module); + my $module_path = $module_paths{$module} if (defined $module); return if (!scalar keys %$deps_hash_ref); my %deps_hash = %$deps_hash_ref; my $consistent; @@ -978,12 +1034,11 @@ sub check_deps_hash { my $string; my $log_name; my $build_number = 0; + do { $consistent = ''; foreach $key (sort keys %deps_hash) { $local_deps_ref = $deps_hash{$key}; - $little_key = $key; - #print "Key = $key , consi = '$consistent' "; if (!scalar keys %$local_deps_ref) { if (defined $module) { $build_number++; @@ -1017,18 +1072,14 @@ sub check_deps_hash { BUILD_NUMBER => $build_number, STATUS => 'waiting', LOG_PATH => $module . "/$ENV{INPATH}/misc/logs/$log_name", - LONG_LOG_PATH => CorrectPath($StandDir . $module . "/$ENV{INPATH}/misc/logs/$log_name"), + LONG_LOG_PATH => CorrectPath($module_paths{$module} . "/$ENV{INPATH}/misc/logs/$log_name"), START_TIME => 0, FINISH_TIME => 0, CLIENT => '-' }; -# if (-f $jobs_hash{$key}->{LONG_LOG_PATH} && $html) { -# print STDERR 'Warning: log file ' . $jobs_hash{$key}->{LONG_LOG_PATH} . " already exists!!\n"; -# }; }; RemoveFromDependencies($key, \%deps_hash); delete $deps_hash{$key}; - #print " ... OK!\n"; $consistent++; }; }; @@ -1065,21 +1116,17 @@ sub FindIndepPrj { next if (&IsHashNative($Prj)); my $PrjDeps = $$Dependencies{$Prj}; push(@candidates, $Prj) if (!scalar keys %$PrjDeps); - #return $Prj if (!scalar keys %$PrjDeps); }; if (scalar @candidates) { my $best_candidate = undef; my $weight = 0; foreach my $candidate (sort @candidates) { -# if (defined $weights_hash{$candidate} && scalar keys %{$weights_hash{$candidate}} > $weight) { if (defined $weights_hash{$candidate} && $weights_hash{$candidate} > $weight) { $best_candidate = $candidate; -# $weight = scalar keys %{$weights_hash{$candidate}}; $weight = $weights_hash{$candidate}; }; }; if (defined $best_candidate) { -# delete $weights_hash{$best_candidate}; return $best_candidate; } my @sorted_candidates = sort(@candidates); @@ -1150,13 +1197,14 @@ sub GetDirectoryList { sub print_error { my $message = shift; my $force = shift; -# rmtree(CorrectPath($tmp_dir), 0, 1) if ($tmp_dir); $modules_number -= scalar keys %global_deps_hash; $modules_number -= 1; print STDERR "\nERROR: $message\n"; $ENV{mk_tmp} = ''; - close CMD_FILE if ($cmd_file); - unlink ($cmd_file); + if ($cmd_file) { + close CMD_FILE; + unlink ($cmd_file); + }; if (!$child) { $ENV{mk_tmp} = ''; close CMD_FILE if ($cmd_file); @@ -1168,7 +1216,7 @@ sub print_error { sub usage { print STDERR "\nbuild\n"; - print STDERR "Syntax: build [--all|-a[:prj_name]]|[--from|-f prj_name1[:prj_name2] [prj_name3 [...]]]|[--since|-c prj_name] [--with_branches|-b]|[--prepare|-p][:platform] [--dontchekoutmissingmodules]] [--deliver|-d [--dlv_switch deliver_switch]]] [-P processes|--server [--setenvstring \"string\"] [--client_timeout MIN] [--port port1[:port2:...:portN]]] [--show|-s] [--help|-h] [--file|-F] [--ignore|-i] [--version|-V] [--mode|-m OOo[,SO[,EXT]] [--html [--html_path html_file_path] [--dontgraboutput]] [--pre_job=pre_job_sring] [--job=job_string|-j] [--post_job=post_job_sring] [--stoponerror]\n"; + print STDERR "Syntax: build [--all|-a[:prj_name]]|[--from|-f prj_name1[:prj_name2] [prj_name3 [...]]]|[--since|-c prj_name] [--with_branches|-b]|[--prepare|-p][:platform] [--dontchekoutmissingmodules]] [--deliver|-d [--dlv_switch deliver_switch]]] [-P processes|--server [--setenvstring \"string\"] [--client_timeout MIN] [--port port1[:port2:...:portN]]] [--show|-s] [--help|-h] [--file|-F] [--ignore|-i] [--version|-V] [--mode|-m OOo[,SO[,EXT]] [--html [--html_path html_file_path] [--dontgraboutput]] [--pre_job=pre_job_sring] [--job=job_string|-j] [--post_job=post_job_sring] [--stoponerror] [--genconf [--removeall|--clear|--remove|--add module1,module2[,...,moduleN]]]\n"; print STDERR "Example1: build --from sfx2\n"; print STDERR " - build all projects dependent from sfx2, starting with sfx2, finishing with the current module\n"; print STDERR "Example2: build --all:sfx2\n"; @@ -1199,9 +1247,14 @@ sub usage { print STDERR " --help - print help info\n"; print STDERR " --ignore - force tool to ignore errors\n"; print STDERR " --html - generate html page with build status\n"; - print STDERR " file named $ENV{INPATH}.build.html will be generated in $ENV{SRC_ROOT}\n"; + print STDERR " file named $ENV{INPATH}.build.html will be generated in $ENV{SOLARSRC}\n"; print STDERR " --html_path - set html page path\n"; print STDERR " --dontgraboutput - do not grab console output when generating html page\n"; + print STDERR " --genconf - generate/modify workspace configuration file\n"; + print STDERR " --add - add active module(s) to configuration file\n"; + print STDERR " --remove - removeactive modules(s) from configuration file\n"; + print STDERR " --removeall|--clear - remove all active modules(s) from configuration file\n"; + print STDERR " --stoponerror - stop build when error occurs (for mp builds)\n"; print STDERR " --dontchekoutmissingmodules - do not chekout missing modules when running prepare (links still will be broken)\n"; print STDERR " Custom jobs:\n"; @@ -1261,6 +1314,16 @@ sub get_options { $arg =~ /^--help$/ and usage() and do_exit(0); $arg =~ /^-h$/ and usage() and do_exit(0); $arg =~ /^--ignore$/ and $ignore = 1 and next; + $arg =~ /^--genconf$/ and $generate_config = 1 and next; + if ($arg =~ /^--add$/) { + get_list_of_modules(\%add_to_config); + next; + }; + if ($arg =~ /^--remove$/) { + get_list_of_modules(\%remove_from_config); + next; + }; + ($arg =~ /^--clear$/ || $arg =~ /^--removeall$/) and $clear_config = 1 and next; $arg =~ /^--html$/ and $html = 1 and next; $arg =~ /^--dontgraboutput$/ and $dont_grab_output = 1 and next; $arg =~ /^--html_path$/ and $html_path = shift @ARGV and next; @@ -1320,7 +1383,17 @@ sub get_options { print_error("--setenvstring switch is for server mode only!!") if ($setenv_string); print_error("--client_timeout switch is for server mode only!!") if ($client_timeout); }; -# $ignore++ if ($html); + + if (!$generate_config) { + my $error_message = ' switch(es) should be used only with "--genconf"'; + print_error('"--removeall" ("--clear")' . $error_message) if ($clear_config); + if ((scalar %add_to_config) || (scalar %remove_from_config)) { + print_error('"--add" or/and "--remove"' . $error_message); + }; + } elsif ((!scalar %add_to_config) && !$clear_config && (!scalar %remove_from_config)){ + print_error('Please supply necessary switch for "--genconf" (--add|--remove|--removeall)'); + }; + if ($only_platform) { $only_common = 'common'; $only_common .= '.pro' if ($only_platform =~ /\.pro$/); @@ -1330,6 +1403,20 @@ sub get_options { @ARGV = @dmake_args; }; +sub get_module_and_buildlist_paths { + my $source_config = SourceConfig -> new($StandDir); + my $source_config_file = $source_config->get_config_file_path(); + $active_modules{$_}++ foreach ($source_config->get_active_modules()); + my %active_modules_copy = %active_modules; + foreach ($source_config->get_all_modules()) { + delete $active_modules_copy{$_} if defined($active_modules_copy{$_}); + $module_paths{$_} = $source_config->get_module_path($_); + $build_list_paths{$_} = $source_config->get_module_build_list($_) + } + $dead_parents{$_}++ foreach (keys %active_modules_copy); +}; + + sub get_dmake_args { my $arg; my @job_args = (); @@ -1549,22 +1636,7 @@ sub start_child { $jobs_hash{$job_dir}->{STATUS} = 'building'; if ($job_dir =~ /(\s)/o) { my $error_code = undef; -# do_pre_job($`, $pre_job) if ($' eq $pre_job); $error_code = do_custom_job($job_dir, $dependencies_hash); -# $error_code = do_post_job($`, $', $dependencies_hash) if ($' eq $post_job); -# html_store_job_info($dependencies_hash, $job_dir, $error_code); -# if ($error_code) { -# # give windows (4nt) one more chance -# if ($ENV{GUI} eq 'WNT' && !$cygwin) { -# $error_code = do_post_job($`, $post_job, $dependencies_hash); -# }; -# if ($error_code) { -# $broken_modules_hashes{$dependencies_hash}++; -# $broken_build{$job_dir} = $error_code; -# } -# } else { -# RemoveFromDependencies($job_dir, $dependencies_hash); -# }; return; }; html_store_job_info($dependencies_hash, $job_dir); @@ -1613,7 +1685,6 @@ sub build_multiprocessing { # to build do { while ($Prj = PickPrjToBuild(\%global_deps_hash)) { - my $module_type = $modules_types{$Prj}; push @build_queue, $Prj; $projects_deps_hash{$Prj} = {}; get_deps_hash($Prj, $projects_deps_hash{$Prj}); @@ -1672,7 +1743,6 @@ sub build_actual_queue { !$running_children{$projects_deps_hash{$Prj}}) { if (!defined $broken_modules_hashes{$projects_deps_hash{$Prj}} || $ignore) { -# chdir(&CorrectPath($StandDir.$Prj)); RemoveFromDependencies($Prj, \%global_deps_hash); $build_is_finished{$Prj}++; splice (@$build_queue, $i, 1); @@ -1725,11 +1795,11 @@ sub do_custom_job { # html_store_job_info($dependencies_hash, $job_dir); RemoveFromDependencies($module_job, $dependencies_hash); } else { - $error_code = run_job($job, CorrectPath($StandDir.$module), $module_job); + $error_code = run_job($job, $module_paths{$module}, $module_job); if ($error_code) { # give windows (4nt) one more chance if ($ENV{GUI} eq 'WNT' && !$cygwin) { - $error_code = run_job($job, CorrectPath($StandDir.$module), $module_job); + $error_code = run_job($job, $module_paths{$module}, $module_job); }; }; if ($error_code) { @@ -1743,27 +1813,6 @@ sub do_custom_job { return $error_code; }; -#sub do_pre_job { -# my $module = shift; -# announce_module($module); -# if ($pre_custom_job && defined $modules_types{$module} && ($modules_types{$module} eq 'mod')) { -# my $module_path = CorrectPath($StandDir.$module); -# chdir $module_path; -# getcwd(); -# my $cj_error_code = system ("$pre_custom_job"); -# print_error("Cannot run pre job \"$pre_custom_job\"") if ($cj_error_code); -# }; -#}; - - -#sub do_post_custom_job { -# my $module_path = shift; -# chdir $module_path; -# getcwd(); -# my $cj_error_code = system ("$post_custom_job"); -# print_error("Cannot run post job \"$post_custom_job\"") if ($cj_error_code); -#}; - # # Print announcement for module just started # @@ -1779,7 +1828,11 @@ sub print_announce { $prj_type = $modules_types{$Prj} if (defined $modules_types{$Prj}); my $text; if ($prj_type eq 'lnk') { - $text = "Skipping link to $Prj\n"; + if (scalar keys %active_modules && (!defined $active_modules{$Prj})) { + $text = "Skipping module $Prj\n"; + } else { + $text = "Skipping link to $Prj\n"; + }; $build_is_finished{$Prj}++; } elsif ($prj_type eq 'img') { # return if (defined $module_announced{$`}); @@ -1815,15 +1868,16 @@ sub are_all_dependent { sub modules_classify { my @modules = @_; foreach my $module (sort @modules) { - if ((-e $StandDir.$module.'.lnk') || (-e $StandDir.$module.'.link')) { - $modules_types{$module} = 'lnk'; + if (!defined $module_paths{$module}) { + $modules_types{$module} = 'img'; next; }; - if (-d $StandDir.$module) { - $modules_types{$module} = 'mod'; + if (( $module_paths{$module} =~ /\.lnk$/) || ($module_paths{$module} =~ /\.link$/) + || (scalar keys %active_modules && (!defined $active_modules{$module}))) { + $modules_types{$module} = 'lnk'; next; }; - $modules_types{$module} = 'img'; + $modules_types{$module} = 'mod'; }; }; @@ -1834,12 +1888,10 @@ sub modules_classify { # sub provide_consistency { check_dir(); - foreach $var_ref (\$build_from, \$build_all_cont, \$build_since) { - if ($$var_ref) { - return if (-d $StandDir.$$var_ref); - $$var_ref .= '.lnk' and return if (-d $StandDir.$$var_ref.'.lnk'); - $$var_ref .= '.link' and return if (-d $StandDir.$$var_ref.'.link'); - print_error("Cannot find module '$$var_ref'", 9); + foreach my $module_ref (\$build_from, \$build_all_cont, \$build_since) { + if ($$module_ref) { + return if (defined $module_paths{$$module_ref}); + print_error("Cannot find module '$$module_ref'", 9); return; }; }; @@ -1874,16 +1926,16 @@ sub get_workspace_lst # sub ensure_clear_module { my $module = shift; - my $module_type = $modules_types{$module}; - if ($module_type eq 'mod') { + if ($modules_types{$module} eq 'mod') { clear_module($module); return; }; - if ($module_type eq 'lnk') { - if((!rename("$StandDir$module.lnk", "$StandDir$module")) && (!rename("$StandDir$module.link", "$StandDir$module"))) { - print_error("Cannot rename link to $module. Please rename it manually"); - } else { + if ($modules_types{$module} eq 'lnk' && (File::Basename::basename($module_paths{$module}) ne $module)) { + if(rename($module_paths{$module}, File::Basename::dirname($module_paths{$module}) ."/$module")) { + $module_paths{$module} = File::Basename::dirname($module_paths{$module}) ."/$module"; clear_module($module); + } else { + print_error("Cannot rename link to $module. Please rename it manually"); }; }; }; @@ -1895,12 +1947,12 @@ sub clear_module { my $module = shift; print "Removing module's $module output trees...\n"; print "\n" and return if ($show); - opendir DIRHANDLE, $StandDir.$module; + opendir DIRHANDLE, $module_paths{$module}; my @dir_content = readdir(DIRHANDLE); closedir(DIRHANDLE); foreach (@dir_content) { next if (/^\.+$/); - my $dir = CorrectPath($StandDir.$module.'/'.$_); + my $dir = CorrectPath($module_paths{$module}.'/'.$_); if ((!-d $dir.'/.svn') && is_output_tree($dir)) { #print "I would delete $dir\n"; rmtree("$dir", 0, 1) if ($ENV{USE_SHELL} ne '4nt'); @@ -1939,16 +1991,21 @@ sub is_output_tree { sub get_tmp_dir { my $tmp_dir; - if( defined($ENV{TMP}) ) { + if( defined($ENV{TMPDIR}) ) { + $tmp_dir = $ENV{TMPDIR} . '/'; + } elsif( defined($ENV{TMP}) ) { $tmp_dir = $ENV{TMP} . '/'; } else { $tmp_dir = '/tmp/'; } - $tmp_dir .= $$ while (-e $tmp_dir); - $tmp_dir = CorrectPath($tmp_dir); - eval {mkpath($tmp_dir)}; - print_error("Cannot create temporary directory in $tmp_dir") if ($@); - return $tmp_dir; + + return File::Temp::tempdir(DIR =>$tmp_dir); + +# $tmp_dir .= $$ while (-e $tmp_dir); +# $tmp_dir = CorrectPath($tmp_dir); +# eval {mkpath($tmp_dir)}; +# print_error("Cannot create temporary directory in $tmp_dir") if ($@); +# return $tmp_dir; }; @@ -1998,8 +2055,8 @@ sub prepare_incompatible_build { foreach (keys %incompatibles) { my $incomp_prj = $_; if (!defined $$deps_hash{$_}) { - $incomp_prj .= '.lnk' if (-e $StandDir.$incomp_prj . '.lnk'); - $incomp_prj .= '.link' if (-e $StandDir.$incomp_prj . '.link'); + $incomp_prj .= '.lnk' if ($module_paths{$module} =~ /\.lnk$/); + $incomp_prj .= '.link' if ($module_paths{$module} =~ /\.link$/); } delete $incompatibles{$_}; $incompatibles{$incomp_prj} = $$deps_hash{$incomp_prj}; @@ -2026,7 +2083,7 @@ sub prepare_incompatible_build { next if ($show); if ($modules_types{$prj} ne 'mod') { push(@missing_modules, $prj); - } elsif (-d CorrectPath($StandDir.$prj.'/'. $ENV{INPATH})) { + } elsif (-d $module_paths{$prj}. '/'. $ENV{INPATH}) { $old_output_tree++; }; }; @@ -2116,6 +2173,29 @@ sub get_modes { $build_modes{$option}++; }; +sub get_list_of_modules { + my $option = ''; + my $hash_ref = shift; + while ($option = shift @ARGV) { + if ($option =~ /^-+/) { + unshift(@ARGV, $option); + return; + } else { + if ($option =~ /,/) { + foreach (split /,/, $option) { + next if (!$_); + $$hash_ref{$_}++; + }; + } else { + $$hash_ref{$option}++; + }; + }; + }; + if (!scalar %$hash_ref) { + print_error('No module list supplied!!'); + }; +}; + sub get_incomp_projects { my $option = ''; while ($option = shift @ARGV) { @@ -2199,8 +2279,7 @@ sub clear_delivered { my $undeliver = "$deliver_command $deliver_delete_switches $nul"; # my $current_dir = getcwd(); foreach my $module (sort @modules_built) { - my $module_path = CorrectPath($StandDir.$module); - if (!(chdir($module_path.'.lnk') or chdir($module_path.'.link') or chdir($module_path))) { + if (chdir($module_paths{$module})) { push(@warnings, "Could not remove delivered files from the module $module. Your build can become inconsistent.\n"); } else { print "Removing delivered from module $module\n"; @@ -2307,7 +2386,7 @@ sub check_dir { my @dir_entries = split(/[\\\/]/, $start_dir); my $current_module = $dir_entries[$#dir_entries]; $current_module = $` if (($current_module =~ /(\.lnk)$/) || ($current_module =~ /(\.link)$/)); - my $link_name = $ENV{SRC_ROOT}.'/'.$current_module.$1; + my $link_name = $ENV{SOLARSRC}.'/'.$current_module.$1; if ( $^O eq 'MSWin32' ) { $start_dir =~ s/\\/\//go; $link_name =~ s/\\/\//go; @@ -2316,8 +2395,8 @@ sub check_dir { }; } elsif ((-l $link_name) && (chdir $link_name)) { if ($start_dir eq getcwd()) { - # we're dealing with link => fallback to SRC_ROOT under UNIX - $StandDir = $ENV{SRC_ROOT}.'/'; + # we're dealing with link => fallback to SOLARSRC under UNIX + $StandDir = $ENV{SOLARSRC}.'/'; get_current_module($current_module); return; } else { @@ -2377,52 +2456,6 @@ sub do_exit { exit($exit_code); }; -#sub get_post_job { -# my $job = $deliver_command; -# $job = $custom_job if ($custom_job); -# return $job; -#}; - -#sub do_post_job { -# my $job = get_post_job(); -# if ($show) { -# print $job . "\n"; -# return; -# } -# my $module = shift; -# my $post_job_name = shift; -# delete $build_in_progress{$module}; -# $module_path = CorrectPath($StandDir.$module); -# my $error_code = undef; -# if ($cmd_file) { -# print "cd $module_path\n"; -# print "$job\n"; -# } else { -# chdir $module_path; -# getcwd(); -# if ($html) { -# # tested on Linux only!! -# my $log_file = $jobs_hash{$post_job_name}->{LONG_LOG_PATH}; -# my $log_dir = File::Basename::dirname($log_file); -# if (!-d $log_dir) { -# eval {mkpath($log_dir)}; -# print_error("Cannot create log directory $log_dir") if ($@); -# }; -# $error_code = system ("$job > $log_file 2>&1"); -# if (!$grab_output && -f $log_file) { -# system("cat $log_file"); -# }; -# } else { -# $error_code = system ("$job"); -# } -# }; -# $build_is_finished{$module}++ if (!defined $modules_with_errors{$module}); -# if (!$error_code && $post_custom_job) { -# do_post_custom_job(CorrectPath($StandDir.$module)); -# }; -# return $error_code; -#}; - # # Procedure sorts module in user-frendly order # @@ -2454,19 +2487,11 @@ sub sort_modules_appearance { sub generate_html_file { return if (!$html); my $force_update = shift; -# $force_update = 1; -# my $html_file = CorrectPath($ENV{HOME} . '/work/' . $ENV{INPATH}. '.build.html'); -# my $write_secs = (stat($html_file))[9]; -# my @stat = stat($html_file); -# if (defined $write_secs) { - # Regular update no often than once in 5 sec -# return if (!$force_update && (time - $html_last_updated < 5)); -# } $html_last_updated = time; my @modules_order = sort_modules_appearance(); my ($successes_percent, $errors_percent) = get_progress_percentage(scalar keys %html_info, scalar keys %build_is_finished, scalar keys %modules_with_errors); my $build_duration = get_time_line(time - $build_time); - my $temp_html_file = File::Temp::tmpnam($ENV{TMP}),#scalar tmpnam(); + my $temp_html_file = File::Temp::tmpnam($tmp_dir); my $title; $title = $ENV{CWS_WORK_STAMP} . ': ' if (defined $ENV{CWS_WORK_STAMP}); $title .= $ENV{INPATH}; @@ -2523,6 +2548,7 @@ sub generate_html_file { foreach (@modules_order) { next if ($modules_types{$_} eq 'lnk'); + next if (scalar keys %active_modules && (!defined $active_modules{$_})); my ($errors_info_line, $dirs_info_line, $errors_number, $successes_percent, $errors_percent, $time) = get_html_info($_); #<one module> print HTML 'document.write(" <tr>");' . "\n"; @@ -2788,13 +2814,7 @@ sub generate_html_file { print HTML '};' . "\n"; print HTML '</script><noscript>Your browser doesn\'t support JavaScript!</noscript></head></html>' . "\n"; close HTML; - - if(-e $temp_html_file) { - rename($temp_html_file, $html_file) or system("mv", $temp_html_file, $html_file); - if (-e $temp_html_file) { - system("rm -rf $temp_html_file") if (!unlink $temp_html_file); - }; - }; + rename_file($temp_html_file, $html_file); }; sub get_local_time_line { @@ -2909,7 +2929,6 @@ sub html_store_job_info { } my $module = $module_by_hash{$deps_hash}; my $module_info_hash = $html_info{$module}; -# $$module_info_hash{BUILD_TIME} += $jobs_hash{$build_dir}->{FINISH_TIME} - $jobs_hash{$build_dir}->{START_TIME}; my $dmake_array; if (defined $error_code) { $jobs_hash{$build_dir}->{FINISH_TIME} = time(); @@ -2925,29 +2944,8 @@ sub html_store_job_info { }; push (@$dmake_array, $build_dir); }; -# generate_html_file($force_update); }; -#sub close_server_socket { -# # Actually, the "or warn..." part is for debugging, -# # should be removed for release -# if (defined $new_socket_obj) { -# print $new_socket_obj 'No job'; -# close($new_socket_obj) or warn $! ? "Error closing connection: $!" -# : "Exit status $? from closing connection"; -# }; -# if (defined $socket_obj) { -# close($socket_obj) or warn $! ? "Error closing server socket: $!" -# : "Exit status $? from closing server socket"; -# }; -#}; - -#sub stop_server { -# close_server_socket(); -# print "Server terminated\n"; -# exit($?); -#}; - sub start_server_on_port { my $port = shift; if ($ENV{GUI} eq 'WNT') { @@ -3033,10 +3031,8 @@ sub run_server { my $client_ipnum = $new_socket_obj->peerhost(); my $client_host = gethostbyaddr(inet_aton($client_ipnum), AF_INET); # print who is connected -# print "got a connection from: $client_host", "[$client_ipnum]\n"; # send them a message, close connection my $client_message = <$new_socket_obj>; -# print $client_message; chomp $client_message; my @client_data = split(/ /, $client_message); my %client_hash = (); @@ -3052,7 +3048,6 @@ sub run_server { next; }; } else { -# handle_dead_children(0); if ($client_hash{result} eq "0") { # print "$clients_jobs{$pid} succedded on $pid\n"; } else { @@ -3128,12 +3123,6 @@ sub get_job_string { if ($job_dir =~ /(\s)$pre_job/o) { do_custom_job($job_dir, $dependencies_hash); $job_dir = ''; -# if ($' eq $pre_job) { -# do_pre_job($`, $pre_job); -# html_store_job_info($dependencies_hash, $job_dir, undef); -# RemoveFromDependencies($job_dir, $dependencies_hash); -# $job_dir = ''; -# }; }; } while (!$job_dir); } else { @@ -3150,24 +3139,19 @@ sub get_job_string { if ($job_dir =~ /(\s)$pre_job/o) { # if ($' eq $pre_job) { do_custom_job($job_dir, $dependencies_hash); -# do_pre_job($`, $pre_job); -# html_store_job_info($dependencies_hash, $job_dir, undef); -# RemoveFromDependencies($job_dir, $dependencies_hash); $job_dir = ''; # } }; } while (!$job_dir); }; $running_children{$dependencies_hash}++; -# $processes_hash{$pid} = $job_dir; $folders_hashes{$job_dir} = $dependencies_hash; my $log_file = $jobs_hash{$job_dir}->{LONG_LOG_PATH}; -# $jobs_hash{$job_dir}->{CLIENT} = $pid; my $full_job_dir = $job_dir; if ($job_dir =~ /(\s)/o) { $job = $'; $job = $deliver_command if ($job eq $post_job); - $full_job_dir = CorrectPath($StandDir.$`); + $full_job_dir = $module_paths{$`}; } my $log_dir = File::Basename::dirname($log_file); if (!-d $log_dir) { @@ -3215,7 +3199,6 @@ sub fill_modules_queue { my $build_queue = shift; my $Prj; while ($Prj = PickPrjToBuild(\%global_deps_hash)) { - my $module_type = $modules_types{$Prj}; push @$build_queue, $Prj; $projects_deps_hash{$Prj} = {}; get_deps_hash($Prj, $projects_deps_hash{$Prj}); diff --git a/solenv/bin/cws.pl b/solenv/bin/cws.pl index 288b908ea7fe..ce6eaa015a91 100644 --- a/solenv/bin/cws.pl +++ b/solenv/bin/cws.pl @@ -69,22 +69,24 @@ my @valid_commands = ( 'task', 't', 'integrate', 'cdiff', 'cd', - 'eisclone' + 'eisclone', + 'setcurrent' ); # list the valid options to each command my %valid_options_hash = ( - 'help' => ['help'], - 'create' => ['help', 'milestone', 'migration'], - 'fetch' => ['help', 'switch', 'milestone', 'childworkspace','platforms','quiet', + 'help' => ['help'], + 'create' => ['help', 'milestone', 'migration', 'hg'], + 'fetch' => ['help', 'switch', 'milestone', 'childworkspace','platforms','quiet', 'onlysolver'], - 'rebase' => ['help', 'milestone','commit'], - 'analyze' => ['help'], - 'query' => ['help', 'milestone','masterworkspace','childworkspace'], - 'task' => ['help'], - 'integrate' => ['help', 'childworkspace'], - 'cdiff' => ['help', 'childworkspace', 'masterworkspace', 'files', 'modules'], - 'eisclone' => ['help'] + 'rebase' => ['help', 'milestone','commit'], + 'analyze' => ['help'], + 'query' => ['help', 'milestone','masterworkspace','childworkspace'], + 'task' => ['help'], + 'integrate' => ['help', 'childworkspace'], + 'cdiff' => ['help', 'childworkspace', 'masterworkspace', 'files', 'modules'], + 'setcurrent' => ['help', 'milestone'], + 'eisclone' => ['help'] ); my %valid_commands_hash; @@ -115,6 +117,7 @@ sub parse_command_line Getopt::Long::Configure ("no_auto_abbrev", "no_ignorecase"); my $success = GetOptions(\%options_hash, 'milestone|m=s', 'masterworkspace|master|M=s', + 'hg', 'migration', 'childworkspace|child|c=s', 'debug', @@ -365,6 +368,7 @@ sub get_cws_by_name sub register_child_workspace { my $cws = shift; + my $scm = shift; my $is_promotion = shift; my $milestone = $cws->milestone(); @@ -387,9 +391,9 @@ sub register_child_workspace } if ( $is_promotion ) { - my $rc = $cws->set_subversion_flag(1); + my $rc = $cws->set_scm($scm); if ( !$rc ) { - print_error("Failed to set subversion flag on child workspace '$child'.\nContact EIS administrator!\n", 12); + print_error("Failed to set the SCM property '$scm' on child workspace '$child'.\nContact EIS administrator!\n", 12); } $rc = $cws->promote($vcsid, ""); @@ -410,9 +414,9 @@ sub register_child_workspace print_error("Failed to register child workspace '$child' for master '$master'.", 12); } else { - my $rc = $cws->set_subversion_flag(1); + my $rc = $cws->set_scm($scm); if ( !$rc ) { - print_error("Failed to set subversion flag on child workspace '$child'.\nContact EIS administrator!\n", 12); + print_error("Failed to set the SCM property '$scm' on child workspace '$child'.\nContact EIS administrator!\n", 12); } print "\n***** Successfully ***** registered child workspace '$child'\n"; print "for master workspace '$master' (milestone '$milestone').\n"; @@ -435,7 +439,7 @@ sub query_cws print_error("Can't determine master workspace environment.\n", 30); } - if ( ($query_mode eq 'integratedinto' || $query_mode eq 'incompatible' || $query_mode eq 'taskids' || $query_mode eq 'state' || $query_mode eq 'current' || $query_mode eq 'owner' || $query_mode eq 'qarep' || $query_mode eq 'issubversion' || $query_mode eq 'ispublic' || $query_mode eq 'build') && !defined($childws) ) { + if ( ($query_mode eq 'integratedinto' || $query_mode eq 'incompatible' || $query_mode eq 'taskids' || $query_mode eq 'status' || $query_mode eq 'current' || $query_mode eq 'owner' || $query_mode eq 'qarep' || $query_mode eq 'issubversion' || $query_mode eq 'ispublic' || $query_mode eq 'build') && !defined($childws) ) { print_error("Can't determine child workspace environment.\n", 30); } @@ -512,31 +516,21 @@ sub query_status return; } -sub query_vcs +sub query_scm { my $cws = shift; my $masterws = $cws->master(); my $childws = $cws->child(); if ( is_valid_cws($cws) ) { - my $issvn = $cws->get_subversion_flag(); - if ( !defined($issvn) ) { - print_error("Internal error: can't get isSubVersion flag.", 3); + my $scm = $cws->get_scm(); + if ( !defined($scm) ) { + print_error("Internal error: can't retrieve scm info.", 3); } else { - if ( $issvn==1 ) { - print_message("Child workspace uses SubVersion"); - } else { - print_message("Child workspace uses CVS"); - } + print_message("Child workspace uses '$scm'."); } } - # check if we got a valid child workspace - my $id = $cws->eis_id(); - if ( !$id ) { - print_error("Child workspace '$childws' for master workspace '$masterws' not found in EIS database.", 2); - } - return; } @@ -559,12 +553,6 @@ sub query_ispublic } } - # check if we got a valid child workspace - my $id = $cws->eis_id(); - if ( !$id ) { - print_error("Child workspace '$childws' for master workspace '$masterws' not found in EIS database.", 2); - } - return; } @@ -1248,6 +1236,7 @@ sub do_help print STDERR "\tquery (q)\n"; print STDERR "\ttask (t)\n"; print STDERR "\tcdiff (cd)\n"; + print STDERR "\tsetcurrent\n"; print STDERR "\tintegrate *** release engineers only ***\n"; print STDERR "\teisclone *** release engineers only ***\n"; } @@ -1260,10 +1249,11 @@ sub do_help } elsif ($arg eq 'create') { print STDERR "create: Create a new child workspace\n"; - print STDERR "usage: create [-m milestone] <master workspace> <child workspace>\n"; + print STDERR "usage: create [--hg] [-m milestone] <master workspace> <child workspace>\n"; print STDERR "\t-m milestone: Milestone to base the child workspace on. If ommitted the\n"; print STDERR "\t last published milestone will be used.\n"; print STDERR "\t--milestone milestone: Same as -m milestone.\n"; + print STDERR "\t--hg: Create Mercurial (hg) based CWS.\n"; print STDERR "\t--migration: Used only for the migration of an exitisting CWS from CVS to SVN.\n"; print STDERR "\t Disables existence check in EIS, creates CWS branch in SVN, sets SVN flag.\n"; } @@ -1274,7 +1264,7 @@ sub do_help elsif ($arg eq 'query') { print STDERR "query: Query child workspace for miscellaneous information\n"; print STDERR "usage: query [-M master] [-c child] <current|integratedinto|incompatible|owner|qarep|status|taskids>\n"; - print STDERR " query [-M master] [-c child] <release|due|due_qa|help|ui|ispublic|vcs|build>\n"; + print STDERR " query [-M master] [-c child] <release|due|due_qa|help|ui|ispublic|scm|build>\n"; print STDERR " query [-M master] <latest|milestones|ispublicmaster>\n"; print STDERR " query <masters>\n"; print STDERR " query [-M master] [-m milestone] <integrated|buildid>\n"; @@ -1308,7 +1298,7 @@ sub do_help print STDERR "\tnominated\tquery nominated CWSs\n"; print STDERR "\tready\t\tquery CWSs ready for QA\n"; print STDERR "\tispublic\tquery public flag of CWS\n"; - print STDERR "\tvcs\t\tquery Version Control System used for CWS (either CVS or SubVersion)\n"; + print STDERR "\tscm\t\tquery Source Control Management (SCM) system used for CWS\n"; print STDERR "\tmasters\t\tquery available MWS\n"; print STDERR "\tmilestones\tquery which milestones are know on the given MWS\n"; print STDERR "\tispublicmaster\tquery public flag of MWS\n"; @@ -1367,6 +1357,14 @@ sub do_help print STDERR "\t--files: Print only file names\n"; print STDERR "\t--modules: Print only top level directories aka modules\n" } + elsif ($arg eq 'setcurrent') { + print STDERR "setcurrent: Set the current milestone for the CWS (only hg based CWSs)\n"; + print STDERR "usage: setcurrent [-m milestone]\n"; + print STDERR "\t-m milestone: Set milestone to <milestone> to workspace <workspace>\n"; + print STDERR "\t Use 'latest' for the for lastest published milestone on the current master\n"; + print STDERR "\t For cross master change use the form <MWS>:<milestone>\n"; + print STDERR "\t--milestone milestone: Same as -m milestone\n"; + } else { print STDERR "'$arg': unknown subcommand\n"; exit(1); @@ -1389,6 +1387,11 @@ sub do_create $is_migration = 1; } + my $is_hg = 0; + if ( exists $options_ref->{'hg'} ) { + $is_hg = 1; + } + my $master = uc $args_ref->[0]; my $cws_name = $args_ref->[1]; @@ -1449,6 +1452,11 @@ sub do_create # set milestone $cws->milestone($milestone); + # handle mercurial(hg) based CWSs + if ( $is_hg ) { + register_child_workspace($cws, 'hg', $is_promotion); + return; + } my $config = CwsConfig->new(); my $ooo_svn_server = $config->get_ooo_svn_server(); @@ -1550,7 +1558,7 @@ sub do_create } } else { - register_child_workspace($cws, $is_promotion); + register_child_workspace($cws, 'svn', $is_promotion); } return; } @@ -1605,7 +1613,7 @@ sub do_rebase print_error("Can't determine latest milestone of '$old_masterws' available for rebase.", 22); } $new_masterws = $old_masterws; - $new_milestone = $cws->get_current_milestone($old_masterws); + $new_milestone = $latest; } else { ($new_masterws, $new_milestone) = verify_milestone($cws, $milestone); @@ -1695,7 +1703,7 @@ sub do_rebase } - print_message("... updating EIS database\n"); + print_message("... updating EIS database"); my $push_return = $cws->set_master_and_milestone($new_masterws, $new_milestone); # sanity check if ( $$push_return[1] ne $new_milestone) { @@ -1987,7 +1995,7 @@ sub do_query my $options_ref = shift; # list of available query modes - my @query_modes = qw(integratedinto incompatible taskids status latest current owner qarep build buildid integrated approved nominated ready new planned release due due_qa help ui milestones masters vcs ispublic ispublicmaster); + my @query_modes = qw(integratedinto incompatible taskids status latest current owner qarep build buildid integrated approved nominated ready new planned release due due_qa help ui milestones masters scm ispublic ispublicmaster); my %query_modes_hash = (); foreach (@query_modes) { $query_modes_hash{$_}++; @@ -2002,6 +2010,10 @@ sub do_query # with CVS etc. 'state' is still an alias for 'status' $mode = 'status' if $mode eq 'state'; + # cwquery mode 'vcs' has been renamed to 'scm' to be more consistent + # with general use etc. 'vcs' is still an alias for 'scm' + $mode = 'scm' if $mode eq 'vcs'; + # there will be more query modes over time if ( !exists $query_modes_hash{$mode} ) { do_help(['query']); @@ -2172,6 +2184,46 @@ sub do_cdiff } +sub do_setcurrent +{ + my $args_ref = shift; + my $options_ref = shift; + + if ( exists $options_ref->{'help'} || @{$args_ref} != 0) { + do_help(['setcurrent']); + } + + if ( !exists $options_ref->{'milestone'} ) { + do_help(['setcurrent']); + } + + my $cws = get_cws_from_environment(); + my $old_masterws = $cws->master(); + my $new_masterws; + my $new_milestone; + + my $milestone = $options_ref->{'milestone'}; + if ( $milestone eq 'latest' ) { + my $latest = $cws->get_current_milestone($old_masterws); + + if ( !$latest ) { + print_error("Can't determine latest milestone of '$old_masterws'.", 22); + } + $new_masterws = $old_masterws; + $new_milestone = $latest; + } + else { + ($new_masterws, $new_milestone) = verify_milestone($cws, $milestone); + } + + print_message("... updating EIS database"); + my $push_return = $cws->set_master_and_milestone($new_masterws, $new_milestone); + # sanity check + if ( $$push_return[1] ne $new_milestone) { + print_error("Couldn't push new milestone '$new_milestone' to database", 0); + } +} + sub do_eisclone { my $args_ref = shift; diff --git a/solenv/bin/deliver.pl b/solenv/bin/deliver.pl index 74ed2020184a..23fe16f2e5e6 100755 --- a/solenv/bin/deliver.pl +++ b/solenv/bin/deliver.pl @@ -1225,7 +1225,19 @@ sub zip_files $work_file =~ s/\.zip$//; $work_file .= (sprintf('.%d-%d', $$, time())) . ".zip"; die "Error: temp file $work_file already exists" if ( -e $work_file); - copy($zip_file, $work_file) if ( -e $zip_file ); + if ( -e $zip_file ) { + if ( -z $zip_file) { + # sometimes there are files of 0 byte size - remove them + unlink $zip_file or print_error("can't remove empty file '$zip_file': $!",0); + } else { + if ( ! copy($zip_file, $work_file)) { + # give a warning, not an error: + # we can zip from scratch instead of just updating the old zip file + print_warning("can't copy'$zip_file' into '$work_file': $!", 0); + unlink $work_file; + } + } + } } else { # No pre processing necessary, working directly on solver. $work_file = $zip_file; @@ -1267,9 +1279,21 @@ sub zip_files } elsif ( $zip_file eq $common_zip_file) { # rename work file back if ( -e $work_file ) { - if (! rename($work_file, $zip_file)) { - print_error("can't rename temporary file to $zip_file: $!",0); - unlink $work_file; + if ( -e $zip_file) { + # do some tricks to be fast. otherwise we may disturb other platforms + # by unlinking a file which just gets copied -> stale file handle. + my $buffer_file=$work_file . '_rm'; + rename($zip_file, $buffer_file) or warn "Warning: can't rename old zip file '$zip_file': $!"; + if (! rename($work_file, $zip_file)) { + print_error("can't rename temporary file to $zip_file: $!",0); + unlink $work_file; + } + unlink $buffer_file; + } else { + if (! rename($work_file, $zip_file)) { + print_error("can't rename temporary file to $zip_file: $!",0); + unlink $work_file; + } } } } diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl index fcda2621abc5..5e7064631ec0 100644 --- a/solenv/bin/macosx-change-install-names.pl +++ b/solenv/bin/macosx-change-install-names.pl @@ -61,16 +61,18 @@ if ($type eq "extshl") { $type = "shl"; my $change = ""; + my %inames; foreach $file (@ARGV) { - otoolD($file) =~ m'^(.*?([^/]+))\n$' or + my $iname = otoolD($file); + (defined $iname ? $iname : $file . "\n") =~ m'^(.*?([^/]+))\n$' or die "unexpected otool -D output"; $change .= " -change $1 " . action($type, $loc, $loc) . "/$2"; - $iname{$file} = $2; + $inames{$file} = $2; } foreach $file (@ARGV) { - my $call = "install_name_tool$change -id \@__________________________________________________$loc/$iname{$file} $file"; + my $call = "install_name_tool$change -id \@__________________________________________________$loc/$inames{$file} $file"; system($call) == 0 or die "cannot $call"; } } diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl index 13052fa1a116..6458fbfdc5cb 100644 --- a/solenv/bin/make_installer.pl +++ b/solenv/bin/make_installer.pl @@ -408,8 +408,12 @@ installer::logger::print_message( "... analyzing directories ... \n" ); my $dirsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Directory"); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories1.log", $dirsinproductarrayref); } -if ( $allvariableshashref->{'SHIFT_BASIS_INTO_BRAND_LAYER'} ) { $dirsinproductarrayref = installer::scriptitems::shift_basis_directory_parents($dirsinproductarrayref); } +if ( $installer::globals::languagepack ) { installer::scriptitems::use_langpack_hostname($dirsinproductarrayref); } +if ( $installer::globals::patch ) { installer::scriptitems::use_patch_hostname($dirsinproductarrayref); } if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories1a.log", $dirsinproductarrayref); } + +if ( $allvariableshashref->{'SHIFT_BASIS_INTO_BRAND_LAYER'} ) { $dirsinproductarrayref = installer::scriptitems::shift_basis_directory_parents($dirsinproductarrayref); } +if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories1b.log", $dirsinproductarrayref); } if ( $allvariableshashref->{'OFFICEDIRECTORYNAME'} ) { installer::scriptitems::set_officedirectory_name($dirsinproductarrayref, $allvariableshashref->{'OFFICEDIRECTORYNAME'}); } if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories1b.log", $dirsinproductarrayref); } @@ -472,6 +476,10 @@ if (( ! $allvariableshashref->{'XPDINSTALLER'} ) || ( ! $installer::globals::isx if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions1a.log", $scpactionsinproductarrayref); } } +if ( $installer::globals::languagepack ) { installer::scriptitems::use_langpack_copy_scpaction($scpactionsinproductarrayref); } +if ( $installer::globals::patch ) { installer::scriptitems::use_patch_copy_scpaction($scpactionsinproductarrayref); } +if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions1b.log", $scpactionsinproductarrayref); } + # $scpactionsinproductarrayref = installer::scriptitems::remove_scpactions_without_name($scpactionsinproductarrayref); # if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions2.log", $scpactionsinproductarrayref); } @@ -1008,7 +1016,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) my $profilesinproductlanguageresolvedarrayref; my $profileitemsinproductlanguageresolvedarrayref; - if ((!($installer::globals::is_copy_only_project)) && (!($installer::globals::product =~ /ada/i ))) + if ((!($installer::globals::is_copy_only_project)) && (!($installer::globals::product =~ /ada/i )) && (!($installer::globals::languagepack))) { installer::logger::print_message( "... creating profiles ...\n" ); @@ -1363,7 +1371,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # try it again later. #################################################### - if (( $installer::globals::patch ) || ( $installer::globals::languagepack ) || ( $installer::globals::packageformat eq "native" )) { $allvariableshashref->{'POOLPRODUCT'} = 0; } + if (( $installer::globals::patch ) || ( $installer::globals::languagepack ) || ( $installer::globals::packageformat eq "native" ) || ( $installer::globals::packageformat eq "osx" )) { $allvariableshashref->{'POOLPRODUCT'} = 0; } if ( $allvariableshashref->{'POOLPRODUCT'} ) { diff --git a/solenv/bin/mhids.pl b/solenv/bin/mhids.pl index 73fcbb468b0a..6970ad275c3f 100644 --- a/solenv/bin/mhids.pl +++ b/solenv/bin/mhids.pl @@ -120,8 +120,13 @@ if ( $ENV{NO_HID_FILES} ) { $no_hid_files = $ENV{"NO_HID_FILES"}; } $solarincludes = $ENV{SOLARINCLUDES}; -$tmpdir = $ENV{TMP}; -die "ERROR - \"TMP\" environment variable not set\n" if ( !defined $tmpdir ); +if (defined $ENV{TMPDIR}) { + $tmpdir = $ENV{TMPDIR}; +} elsif (defined $ENV{TMP}) { + $tmpdir = $ENV{TMP}; +} else { + die "ERROR - \"TMPDIR\" & \"TMP\" environment variables not set\n"; +}; die "ERROR - \"$tmpdir\" doesn't exist\n" if ( ! -d $tmpdir ); setcompiler(); diff --git a/solenv/bin/modules/Cws.pm b/solenv/bin/modules/Cws.pm index c40a2ceb673f..d5516bd79e66 100755 --- a/solenv/bin/modules/Cws.pm +++ b/solenv/bin/modules/Cws.pm @@ -493,6 +493,19 @@ sub set_subversion_flag { return $self->set_subversion_flag_in_eis($value); } +sub get_scm { + my $self = shift; + + return $self->get_scm_from_eis(); +} + +sub set_scm { + my $self = shift; + my $scm_name = shift; + + return $self->set_scm_in_eis($scm_name); +} + # Check if milestone exists sub is_milestone @@ -1790,6 +1803,46 @@ sub set_subversion_flag_in_eis return $result; } +sub get_scm_from_eis +{ + my $self = shift; + + # check if child workspace is valid + my $id = $self->eis_id(); + if ( !$id ) { + carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); + return undef; + } + + my $eis = Cws::eis(); + my $result; + eval { $result = $eis->getSCMName($id) }; + if ( $@ ) { + carp("ERROR: get_scm_from_eis(): EIS database transaction failed. Reason:\n$@\n"); + } + return $result; +} + +sub set_scm_in_eis +{ + my $self = shift; + my $scm_name = shift; + + # check if child workspace is valid + my $id = $self->eis_id(); + if ( !$id ) { + carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); + return undef; + } + + my $eis = Cws::eis(); + eval { $eis->setSCMName($id, $scm_name) }; + if ( $@ ) { + carp("ERROR: set_scm_in_eis(): EIS database transaction failed. Reason:\n$@\n"); + return 0; + } + return 1; +} sub is_uirelevant_from_eis { diff --git a/solenv/bin/modules/SourceConfig.pm b/solenv/bin/modules/SourceConfig.pm new file mode 100644 index 000000000000..b1005b26d6c7 --- /dev/null +++ b/solenv/bin/modules/SourceConfig.pm @@ -0,0 +1,331 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2008 by Sun Microsystems, Inc. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# $RCSfile: SourceConfig.pm,v $ +# +# $Revision: 1.0 $ +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +#************************************************************************* +# +# SourceConfig - Perl extension for parsing general info databases +# +# usage: see below +# +#************************************************************************* + +package SourceConfig; + +use strict; + +use constant SOURCE_CONFIG_FILE_NAME => 'source_config'; + +use Carp; + +##### profiling ##### + +##### ctor ##### + +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $source_root = shift; + if (defined $source_root) { + $source_root =~ s/\\|\/$//; + } else { + $source_root = $ENV{SOLARSRC}; + }; + my $self = {}; + $self->{DEBUG} = 0; + $self->{SOURCE_ROOT} = $source_root; + $self->{REPOSITORIES} = {}; + $self->{MODULE_PATHS} = {}; + $self->{MODULE_BUILD_LIST_PATHS} = {}; + $self->{ACTIVE_MODULES} = {}; + $self->{MODULE_REPOSITORY} = {}; + $self->{SOURCE_CONFIG_FILE} = get_config_file($source_root); + $self->{SOURCE_CONFIG_DEFAULT} = Cwd::realpath($source_root) .'/'.SOURCE_CONFIG_FILE_NAME; + read_config_file($self); + bless($self, $class); + return $self; +} + +##### methods ##### + +sub get_repositories +{ + my $self = shift; + return sort keys %{$self->{REPOSITORIES}}; +} + +sub get_config_file_default_path { + my $self = shift; + return $self->{SOURCE_CONFIG_DEFAULT}; +} + +sub get_config_file_path { + my $self = shift; + return $self->{SOURCE_CONFIG_FILE}; +} + +sub get_module_repository { + my $self = shift; + my $module = shift; + $self -> get_module_paths() if (!scalar keys %{$self->{MODULE_PATHS}}); + if (defined ${$self->{MODULE_REPOSITORY}}{$module}) { + return ${$self->{MODULE_REPOSITORY}}{$module}; + } else { + Carp::cluck("No such module $module in active repositories!!\n"); + return undef; + }; +} + +sub get_module_path { + my $self = shift; + my $module = shift; + $self -> get_module_paths() if (!scalar keys %{$self->{MODULE_PATHS}}); + if (defined ${$self->{MODULE_PATHS}}{$module}) { + return ${$self->{MODULE_PATHS}}{$module}; + } else { + Carp::cluck("No path for module $module in active repositories!!\n"); + return undef; + }; +} + +sub get_module_build_list { + my $self = shift; + my $module = shift; + $self -> get_buildlist_paths() if (!scalar keys %{$self->{MODULE_BUILD_LIST_PATHS}}); + if (defined ${$self->{MODULE_BUILD_LIST_PATHS}}{$module}) { + return ${$self->{MODULE_BUILD_LIST_PATHS}}{$module}; + } else { + Carp::cluck("No build list in module $module found!!\n") if ($self->{DEBUG}); + return undef; + }; +} + +sub get_all_modules +{ + my $self = shift; + my $module = shift; + $self -> get_module_paths() if (!scalar keys %{$self->{MODULE_PATHS}}); + return sort keys %{$self->{MODULE_PATHS}}; +}; + + +sub get_active_modules +{ + my $self = shift; + return sort keys %{$self->{ACTIVE_MODULES}}; +} + + +##### private methods ##### + +sub get_buildlist_paths { + my $self = shift; + $self -> get_module_paths() if (!scalar keys %{$self->{MODULE_PATHS}}); + my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names + foreach my $module (keys %{$self->{MODULE_PATHS}}) { + foreach (@possible_build_lists) { + my $possible_path = ${$self->{MODULE_PATHS}}{$module} . "/prj/$_"; + ${$self->{MODULE_BUILD_LIST_PATHS}}{$module} = $possible_path if (-e $possible_path); + }; + }; +}; + +sub get_module_paths { + my $self = shift; + foreach my $repository (keys %{$self->{REPOSITORIES}}) { + my $repository_path = ${$self->{REPOSITORIES}}{$repository}; + if (opendir DIRHANDLE, $repository_path) { + foreach my $module (readdir(DIRHANDLE)) { + next if ($module =~ /^\.+/); + my $module_entry = $module; + $module =~ s/\.lnk$//; + $module =~ s/\.link$//; + my $possible_path = "$repository_path/$module_entry"; + if (-d $possible_path) { + if (defined ${$self->{MODULE_PATHS}}{$module}) { + close DIRHANDLE; + croak("Ambiguous paths for module $module: $possible_path and " . ${$self->{MODULE_PATHS}}{$module}); + }; + ${$self->{MODULE_PATHS}}{$module} = $possible_path; + ${$self->{MODULE_REPOSITORY}}{$module} = $repository; + } + }; + close DIRHANDLE; + } else { + croak("Cannot read $_ repository content"); + }; + }; +}; + +sub get_config_file { + my $source_root = shift; + foreach ($source_root, $source_root . '/..') { + if (-f $_ . '/' . SOURCE_CONFIG_FILE_NAME) { + return Cwd::realpath($_) .'/'.SOURCE_CONFIG_FILE_NAME; + }; + }; + return ''; +}; + +sub read_config_file { + my $self = shift; + if (!$self->{SOURCE_CONFIG_FILE}) { + ${$self->{REPOSITORIES}}{File::Basename::basename($self->{SOURCE_ROOT})} = $self->{SOURCE_ROOT}; + return; + }; + my $repository_section = 0; + my $module_section = 0; + my $line = 0; + if (open(SOURCE_CONFIG_FILE, $self->{SOURCE_CONFIG_FILE})) { + foreach (<SOURCE_CONFIG_FILE>) { + $line++; + chomp; + next if (!/^\S+/); + next if (/^\s*#+/); + s/\r\n//; + if (/^\[repositories\]\s*(\s+#)*/) { + $module_section = 0; + $repository_section = 1; + next; + }; + if (/^\[modules\]\s*(\s+#)*/) { + $module_section = 1; + $repository_section = 0; + next; + }; + next if (!$repository_section && !$module_section); + if (/\s*(\S+)=active\s*(\s+#)*/) { + if ($repository_section) { + ${$self->{REPOSITORIES}}{$1} = File::Basename::dirname($self->{SOURCE_ROOT}) . "/$1"; + next; + } + if ($module_section) { + ${$self->{ACTIVE_MODULES}}{$1}++; + next; + }; + }; + croak("Line $line in " . $self->{SOURCE_CONFIG_FILE} . 'violates format. Please make your checks!!'); + }; + close SOURCE_CONFIG_FILE; + } else { + croak('Cannot open ' . $self->{SOURCE_CONFIG_FILE} . 'for reading'); + }; +}; + +##### finish ##### + +1; # needed by use or require + +__END__ + +=head1 NAME + +SourceConfig - Perl extension for parsing general info databases + +=head1 SYNOPSIS + + # example that will read source_config file and return the active repositories + + use SourceConfig; + + # Create a new instance of the parser: + $a = SourceConfig->new(); + + # Get repositories for the actual workspace: + $a->get_repositories(); + + +=head1 DESCRIPTION + +SourceConfig is a perl extension to load and parse General Info Databses. +It uses a simple object oriented interface to retrieve the information stored +in the database. + +Methods: + +SourceConfig::new() + +Creates a new instance of SourceConfig. Can't fail. + + +SourceConfig::get_repositories() + +Returns sorted list of active repositories for the actual workspace + + +SourceConfig::get_active_modules() + +Returns a sorted list of active modules + +SourceConfig::get_all_modules() + +Returns sorted list of all modules in active repositories. + +SourceConfig::get_module_path($module) + +Returns absolute module path + +SourceConfig::get_module_build_list($module) + +Returns absolute module build list path + +SourceConfig::get_module_repository($module) + +Returns the module's repository + +SourceConfig::get_config_file_path() + +Returns absolute module to the source configuration file + +SourceConfig::get_config_file_default_path() + +Returns default path for source configuration file + +=head2 EXPORT + +SourceConfig::new() +SourceConfig::get_repositories() +SourceConfig::get_active_modules() +SourceConfig::get_all_modules() +SourceConfig::get_module_path($module) +SourceConfig::get_module_build_list($module) +SourceConfig::get_module_repository($module) +SourceConfig::get_config_file_path() +SourceConfig::get_config_file_default_path() + +=head1 AUTHOR + +Vladimir Glazunov, vg@openoffice.com + +=head1 SEE ALSO + +perl(1). + +=cut diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm index 6782e06627b4..8b5f13c7ae5b 100644 --- a/solenv/bin/modules/installer/globals.pm +++ b/solenv/bin/modules/installer/globals.pm @@ -134,6 +134,7 @@ BEGIN $issolarissparcbuild = 0; $issolarisx86build = 0; $isfreebsdpkgbuild = 0; + $ismacdmgbuild = 0; $unpackpath = ""; $idttemplatepath = ""; $idtlanguagepath = ""; @@ -397,7 +398,7 @@ BEGIN %usedtreeconditions = (); %moduledestination = (); - $unomaxservices = 25; + $unomaxservices = 1800; # regcomp -c argument length $javamaxservices = 15; $one_cab_file = 0; @@ -448,6 +449,7 @@ BEGIN @featurecollector =(); $msiassemblyfiles = ""; $nsisfilename = "Nsis"; + $macinstallfilename = "macinstall.ulf"; $nsis204 = 0; $nsis231 = 0; $unicodensis = 0; diff --git a/solenv/bin/modules/installer/parameter.pm b/solenv/bin/modules/installer/parameter.pm index 9bece8a3d069..e4fb19f0c537 100644 --- a/solenv/bin/modules/installer/parameter.pm +++ b/solenv/bin/modules/installer/parameter.pm @@ -293,10 +293,20 @@ sub setglobalvariables $installer::globals::isxpdplatform = 1; } } + + if ( $installer::globals::compiler =~ /unxmacxi/ ) + { + if ( $installer::globals::packageformat eq "dmg" ) + { + $installer::globals::ismacdmgbuild = 1; + } + } + if ( $installer::globals::compiler =~ /unxfbsd/ ) { if ( $installer::globals::packageformat eq "bsd" ) { + $installer::globals::epmoutpath = "freebsd"; $installer::globals::isfreebsdpkgbuild = 1; } } @@ -536,7 +546,7 @@ sub control_required_parameter # for Solaris packages and Linux ####################################### - if (( $installer::globals::patch ) && ( ! $installer::globals::issolarispkgbuild ) && ( ! $installer::globals::islinuxrpmbuild ) && ( ! $installer::globals::islinuxdebbuild ) && ( ! $installer::globals::iswindowsbuild )) + if (( $installer::globals::patch ) && ( ! $installer::globals::issolarispkgbuild ) && ( ! $installer::globals::islinuxrpmbuild ) && ( ! $installer::globals::islinuxdebbuild ) && ( ! $installer::globals::iswindowsbuild ) && ( ! $installer::globals::ismacdmgbuild )) { installer::logger::print_error( "Sorry, Patch flag currently only available for Solaris pkg, Linux RPM and Windows builds!" ); usage(); diff --git a/solenv/bin/modules/installer/scriptitems.pm b/solenv/bin/modules/installer/scriptitems.pm index 0ef8283705b6..204c009141c6 100644 --- a/solenv/bin/modules/installer/scriptitems.pm +++ b/solenv/bin/modules/installer/scriptitems.pm @@ -591,6 +591,66 @@ sub get_children } ################################################################################ +# Using different HostName for language packs +################################################################################ + +sub use_langpack_hostname +{ + my ($dirsref) = @_; + + for ( my $i = 0; $i <= $#{$dirsref}; $i++ ) + { + my $onedir = ${$dirsref}[$i]; + if (( $onedir->{'LangPackHostName'} ) && ( $onedir->{'LangPackHostName'} ne "" )) { $onedir->{'HostName'} = $onedir->{'LangPackHostName'}; } + } +} + +################################################################################ +# Using different HostName for language packs +################################################################################ + +sub use_patch_hostname +{ + my ($dirsref) = @_; + + for ( my $i = 0; $i <= $#{$dirsref}; $i++ ) + { + my $onedir = ${$dirsref}[$i]; + if (( $onedir->{'PatchHostName'} ) && ( $onedir->{'PatchHostName'} ne "" )) { $onedir->{'HostName'} = $onedir->{'PatchHostName'}; } + } +} + +################################################################################ +# Using different HostName for language packs +################################################################################ + +sub use_langpack_copy_scpaction +{ + my ($scpactionsref) = @_; + + for ( my $i = 0; $i <= $#{$scpactionsref}; $i++ ) + { + my $onescpaction = ${$scpactionsref}[$i]; + if (( $onescpaction->{'LangPackCopy'} ) && ( $onescpaction->{'LangPackCopy'} ne "" )) { $onescpaction->{'Copy'} = $onescpaction->{'LangPackCopy'}; } + } +} + +################################################################################ +# Using different HostName for language packs +################################################################################ + +sub use_patch_copy_scpaction +{ + my ($scpactionsref) = @_; + + for ( my $i = 0; $i <= $#{$scpactionsref}; $i++ ) + { + my $onescpaction = ${$scpactionsref}[$i]; + if (( $onescpaction->{'PatchCopy'} ) && ( $onescpaction->{'PatchCopy'} ne "" )) { $onescpaction->{'Copy'} = $onescpaction->{'PatchCopy'}; } + } +} + +################################################################################ # Shifting parent directories of URE and Basis layer, so that # these directories are located below the Brand layer. # Style: SHIFT_BASIS_INTO_BRAND_LAYER diff --git a/solenv/bin/modules/installer/servicesfile.pm b/solenv/bin/modules/installer/servicesfile.pm index 1e21c39cdef3..631db68da9dd 100644 --- a/solenv/bin/modules/installer/servicesfile.pm +++ b/solenv/bin/modules/installer/servicesfile.pm @@ -135,50 +135,62 @@ sub register_unocomponents my $error_occured = 0; my $filestring = ""; - for ( my $i = 0; $i <= $#{$unocomponents}; ) + for ( my $i = 0; $i <= $#{$unocomponents}; ++$i ) { - my $sourcepath = ${$unocomponents}[$i++]->{'sourcepath'}; - - $filestring = $filestring . make_file_url($sourcepath); - - if ( $i % $installer::globals::unomaxservices == 0 || $i > $#{$unocomponents} ) # limiting to $installer::globals::maxservices files + my $sourcepath = make_file_url(${$unocomponents}[$i]->{'sourcepath'}); + my $urlprefix = ${$unocomponents}[$i]->{'NativeServicesURLPrefix'}; + if (defined($urlprefix)) + { + call_regcomp( + $regcompfileref, $servicesfile, $sourcepath, $urlprefix); + } + else { - my @regcompoutput = (); + $filestring .= ";" unless $filestring eq ""; + $filestring .= $sourcepath; + } + if (length($filestring) > $installer::globals::unomaxservices || + ($i == $#{$unocomponents} && $filestring ne "")) + { + call_regcomp( + $regcompfileref, $servicesfile, $filestring, + $nativeservicesurlprefix); + $filestring = ""; + } + } - my $systemcall = "$installer::globals::wrapcmd $$regcompfileref -register -r ".fix_cygwin_path($servicesfile)." -c " . $installer::globals::quote . $filestring . $installer::globals::quote . " -wop=" . $installer::globals::quote . $nativeservicesurlprefix . $installer::globals::quote . " 2\>\&1 |"; + return $error_occured; +} - open (REG, "$systemcall"); - while (<REG>) {push(@regcompoutput, $_); } - close (REG); +sub call_regcomp +{ + my ($regcompfileref, $servicesfile, $filestring, $urlprefix) = @_; + my @regcompoutput = (); - my $returnvalue = $?; # $? contains the return value of the systemcall + my $systemcall = "$installer::globals::wrapcmd $$regcompfileref -register -r ".fix_cygwin_path($servicesfile)." -c " . $installer::globals::quote . $filestring . $installer::globals::quote . " -wop=" . $installer::globals::quote . $urlprefix . $installer::globals::quote . " 2\>\&1 |"; - my $infoline = "Systemcall: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); + open (REG, "$systemcall"); + while (<REG>) {push(@regcompoutput, $_); } + close (REG); - for ( my $j = 0; $j <= $#regcompoutput; $j++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$j]"); } + my $returnvalue = $?; # $? contains the return value of the systemcall - if ($returnvalue) - { - $infoline = "ERROR: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - $error_occured = 1; - } - else - { - $infoline = "SUCCESS: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - } + my $infoline = "Systemcall: $systemcall\n"; + push( @installer::globals::logfileinfo, $infoline); - $filestring = ""; - } - else - { - $filestring = $filestring . ";"; - } - } + for ( my $j = 0; $j <= $#regcompoutput; $j++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$j]"); } - return $error_occured; + if ($returnvalue) + { + $infoline = "ERROR: $systemcall\n"; + push( @installer::globals::logfileinfo, $infoline); + $error_occured = 1; + } + else + { + $infoline = "SUCCESS: $systemcall\n"; + push( @installer::globals::logfileinfo, $infoline); + } } ################################################################ @@ -343,7 +355,6 @@ sub register_pythoncomponents $counter++; } -# if ((( $counter > 0 ) && ( $counter%$installer::globals::unomaxservices == 0 )) || (( $counter > 0 ) && ( $i == $#{$pythoncomponents} ))) # limiting to $installer::globals::maxservices files if ( $counter > 0 ) { $filestring =~ s/\;\s*$//; diff --git a/solenv/bin/modules/installer/simplepackage.pm b/solenv/bin/modules/installer/simplepackage.pm index 771e0980c2f5..a543c32c048a 100644 --- a/solenv/bin/modules/installer/simplepackage.pm +++ b/solenv/bin/modules/installer/simplepackage.pm @@ -181,6 +181,180 @@ sub register_extensions chdir($from); } +######################################################################## +# Getting the translation file for the Mac Language Pack installer +######################################################################## + +sub get_mac_translation_file +{ + my $translationfilename = $installer::globals::maclangpackfilename; + # my $translationfilename = $installer::globals::idtlanguagepath . $installer::globals::separator . $installer::globals::maclangpackfilename; + # if ( $installer::globals::unicodensis ) { $translationfilename = $translationfilename . ".uulf"; } + # else { $translationfilename = $translationfilename . ".mlf"; } + if ( ! -f $translationfilename ) { installer::exiter::exit_program("ERROR: Could not find language file $translationfilename!", "get_mac_translation_file"); } + my $translationfile = installer::files::read_file($translationfilename); + + my $infoline = "Reading translation file: $translationfilename\n"; + push( @installer::globals::logfileinfo, $infoline); + + return $translationfile; +} + +################################################################## +# Collecting all identifier from ulf file +################################################################## + +sub get_identifier +{ + my ( $translationfile ) = @_; + + my @identifier = (); + + for ( my $i = 0; $i <= $#{$translationfile}; $i++ ) + { + my $oneline = ${$translationfile}[$i]; + + if ( $oneline =~ /^\s*\[(.+)\]\s*$/ ) + { + my $identifier = $1; + push(@identifier, $identifier); + } + } + + return \@identifier; +} + +############################################################## +# Returning the complete block in all languages +# for a specified string +############################################################## + +sub get_language_block_from_language_file +{ + my ($searchstring, $languagefile) = @_; + + my @language_block = (); + + for ( my $i = 0; $i <= $#{$languagefile}; $i++ ) + { + if ( ${$languagefile}[$i] =~ /^\s*\[\s*$searchstring\s*\]\s*$/ ) + { + my $counter = $i; + + push(@language_block, ${$languagefile}[$counter]); + $counter++; + + while (( $counter <= $#{$languagefile} ) && (!( ${$languagefile}[$counter] =~ /^\s*\[/ ))) + { + push(@language_block, ${$languagefile}[$counter]); + $counter++; + } + + last; + } + } + + return \@language_block; +} + +############################################################## +# Returning a specific language string from the block +# of all translations +############################################################## + +sub get_language_string_from_language_block +{ + my ($language_block, $language) = @_; + + my $newstring = ""; + + for ( my $i = 0; $i <= $#{$language_block}; $i++ ) + { + if ( ${$language_block}[$i] =~ /^\s*$language\s*\=\s*\"(.*)\"\s*$/ ) + { + $newstring = $1; + last; + } + } + + if ( $newstring eq "" ) + { + $language = "en-US"; # defaulting to english + + for ( my $i = 0; $i <= $#{$language_block}; $i++ ) + { + if ( ${$language_block}[$i] =~ /^\s*$language\s*\=\s*\"(.*)\"\s*$/ ) + { + $newstring = $1; + last; + } + } + } + + return $newstring; +} + +######################################################################## +# Localizing the script for the Mac Language Pack installer +######################################################################## + +sub localize_scriptfile +{ + my ($scriptfile, $translationfile, $languagestringref) = @_; + + # my $translationfile = get_mac_translation_file(); + + my $onelanguage = $$languagestringref; + if ( $onelanguage =~ /^\s*(.*?)_/ ) { $onelanguage = $1; } + + # Analyzing the ulf file, collecting all Identifier + my $allidentifier = get_identifier($translationfile); + + for ( my $i = 0; $i <= $#{$allidentifier}; $i++ ) + { + my $identifier = ${$allidentifier}[$i]; + my $language_block = get_language_block_from_language_file($identifier, $translationfile); + my $newstring = get_language_string_from_language_block($language_block, $onelanguage); + + # removing mask + $newstring =~ s/\\\'/\'/g; + + replace_one_variable_in_shellscript($scriptfile, $newstring, $identifier); + } +} + +################################################################################# +# Replacing one variable in Mac shell script +################################################################################# + +sub replace_one_variable_in_shellscript +{ + my ($scriptfile, $variable, $searchstring) = @_; + + for ( my $i = 0; $i <= $#{$scriptfile}; $i++ ) + { + ${$scriptfile}[$i] =~ s/\[$searchstring\]/$variable/g; + } +} + +############################################# +# Replacing variables in Mac shell script +############################################# + +sub replace_variables_in_scriptfile +{ + my ($scriptfile, $volume_name, $allvariables) = @_; + + replace_one_variable_in_shellscript($scriptfile, $volume_name, "FULLPRODUCTNAME" ); + replace_one_variable_in_shellscript($scriptfile, $allvariables->{'PRODUCTNAME'}, "PRODUCTNAME" ); + replace_one_variable_in_shellscript($scriptfile, $allvariables->{'PRODUCTVERSION'}, "PRODUCTVERSION" ); + + my $scriptname = lc($allvariables->{'PRODUCTNAME'}) . "\.script"; + if ( $allvariables->{'PRODUCTNAME'} eq "OpenOffice.org" ) { $scriptname = "org.openoffice.script"; } + + replace_one_variable_in_shellscript($scriptfile, $scriptname, "SEARCHSCRIPTNAME" ); +} + ############################################# # Creating the "simple" package. # "zip" for Windows @@ -190,7 +364,7 @@ sub register_extensions sub create_package { - my ( $installdir, $packagename, $allvariables, $includepatharrayref ) = @_; + my ( $installdir, $packagename, $allvariables, $includepatharrayref, $languagestringref ) = @_; # moving dir into temporary directory my $pid = $$; # process id @@ -237,8 +411,116 @@ sub create_package my $sla = 'sla.r'; my $ref = installer::scriptitems::get_sourcepath_from_filename_and_includepath( \$sla, $includepatharrayref, 0); - $systemcall = "cd $tempdir && hdiutil makehybrid -hfs -hfs-openfolder $folder $folder -hfs-volume-name \"$volume_name\" -ov -o $installdir/tmp && hdiutil convert -ov -format UDZO $installdir/tmp.dmg -o $archive && "; - if ($$ref ne "") { + my $localtempdir = $tempdir; + + if (( $installer::globals::languagepack ) || ( $installer::globals::patch )) + { + $localtempdir = "$tempdir/$packagename"; + if ( $installer::globals::languagepack ) { $volume_name = "$volume_name Language Pack"; } + if ( $installer::globals::patch ) { $volume_name = "$volume_name Patch"; } + + # Create tar ball named tarball.tar.bz2 + my $appfolder = $localtempdir . "/" . $volume_name . "\.app"; + my $contentsfolder = $appfolder . "/Contents"; + my $tarballname = "tarball.tar.bz2"; + + my $localfrom = cwd(); + chdir $appfolder; + + $systemcall = "tar -cjf $tarballname Contents/"; + + print "... $systemcall ...\n"; + my $localreturnvalue = system($systemcall); + $infoline = "Systemcall: $systemcall\n"; + push( @installer::globals::logfileinfo, $infoline); + + if ($localreturnvalue) + { + $infoline = "ERROR: Could not execute \"$systemcall\"!\n"; + push( @installer::globals::logfileinfo, $infoline); + } + else + { + $infoline = "Success: Executed \"$systemcall\" successfully!\n"; + push( @installer::globals::logfileinfo, $infoline); + } + + my $sourcefile = $appfolder . "/" . $tarballname; + my $destfile = $contentsfolder . "/" . $tarballname; + + installer::systemactions::remove_complete_directory($contentsfolder); + installer::systemactions::create_directory($contentsfolder); + + installer::systemactions::copy_one_file($sourcefile, $destfile); + unlink($sourcefile); + + # Copy two files into installation set next to the tar ball + # 1. "osx_install.applescript" + # 2 "OpenOffice.org Languagepack" + + my $scriptrealfilename = "osx_install.applescript"; + my $scriptfilename = ""; + if ( $installer::globals::languagepack ) { $scriptfilename = "osx_install_languagepack.applescript"; } + if ( $installer::globals::patch ) { $scriptfilename = "osx_install_patch.applescript"; } + my $scripthelpersolverfilename = "mac_install.script"; + my $scripthelperrealfilename = $volume_name; + my $translationfilename = $installer::globals::macinstallfilename; + + # Finding both files in solver + + my $scriptref = installer::scriptitems::get_sourcepath_from_filename_and_includepath( \$scriptfilename, $includepatharrayref, 0); + if ($$scriptref eq "") { installer::exiter::exit_program("ERROR: Could not find Apple script $scriptfilename!", "create_package"); } + my $scripthelperref = installer::scriptitems::get_sourcepath_from_filename_and_includepath( \$scripthelpersolverfilename, $includepatharrayref, 0); + if ($$scripthelperref eq "") { installer::exiter::exit_program("ERROR: Could not find Apple script $scripthelpersolverfilename!", "create_package"); } + my $translationfileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath( \$translationfilename, $includepatharrayref, 0); + if ($$translationfileref eq "") { installer::exiter::exit_program("ERROR: Could not find Apple script translation file $translationfilename!", "create_package"); } + + $scriptfilename = $contentsfolder . "/" . $scriptrealfilename; + $scripthelperrealfilename = $contentsfolder . "/" . $scripthelperrealfilename; + + installer::systemactions::copy_one_file($$scriptref, $scriptfilename); + installer::systemactions::copy_one_file($$scripthelperref, $scripthelperrealfilename); + + # Replacing variables in script $scriptfilename + # Localizing script $scriptfilename + my $scriptfilecontent = installer::files::read_file($scriptfilename); + my $translationfilecontent = installer::files::read_file($$translationfileref); + localize_scriptfile($scriptfilecontent, $translationfilecontent, $languagestringref); + replace_variables_in_scriptfile($scriptfilecontent, $volume_name, $allvariables); + installer::files::save_file($scriptfilename, $scriptfilecontent); + + $systemcall = "chmod 775 " . "\"" . $scriptfilename . "\""; + system($systemcall); + $systemcall = "chmod 775 " . "\"" . $scripthelperrealfilename . "\""; + system($systemcall); + + # Copy also Info.plist and icon file + # Finding both files in solver + my $iconfile = "ooo3_installer.icns"; + my $iconfileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath( \$iconfile, $includepatharrayref, 0); + if ($$iconfileref eq "") { installer::exiter::exit_program("ERROR: Could not find Apple script icon file $iconfile!", "create_package"); } + my $subdir = $contentsfolder . "/" . "Resources"; + if ( ! -d $subdir ) { installer::systemactions::create_directory($subdir); } + $destfile = $subdir . "/" . $iconfile; + installer::systemactions::copy_one_file($$iconfileref, $destfile); + + my $infoplistfile = "Info.plist.langpack"; + my $installname = "Info.plist"; + my $infoplistfileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath( \$infoplistfile, $includepatharrayref, 0); + if ($$infoplistfileref eq "") { installer::exiter::exit_program("ERROR: Could not find Apple script Info.plist: $infoplistfile!", "create_package"); } + $destfile = $contentsfolder . "/" . $installname; + installer::systemactions::copy_one_file($$infoplistfileref, $destfile); + + # Replacing variables in Info.plist + $scriptfilecontent = installer::files::read_file($destfile); + replace_one_variable_in_shellscript($scriptfilecontent, $volume_name, "FULLPRODUCTNAME" ); + installer::files::save_file($destfile, $scriptfilecontent); + + chdir $localfrom; + } + + $systemcall = "cd $localtempdir && hdiutil makehybrid -hfs -hfs-openfolder $folder $folder -hfs-volume-name \"$volume_name\" -ov -o $installdir/tmp && hdiutil convert -ov -format UDZO $installdir/tmp.dmg -o $archive && "; + if ($$ref ne "") { $systemcall .= "hdiutil unflatten $archive && Rez -a $$ref -o $archive && hdiutil flatten $archive &&"; } $systemcall .= "rm -f $installdir/tmp.dmg"; @@ -322,6 +604,8 @@ sub create_simple_package else { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "downloadname"); + if ( $installer::globals::languagepack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "langpackdownloadname"); } + if ( $installer::globals::patch ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "patchdownloadname"); } $packagename = installer::download::resolve_variables_in_downloadname($allvariables, $$downloadname, \$locallanguage); } } @@ -374,6 +658,7 @@ sub create_simple_package my $onefile = ${$filesref}[$i]; if (( $onefile->{'Styles'} ) && ( $onefile->{'Styles'} =~ /\bBINARYTABLE_ONLY\b/ )) { next; } + if (( $installer::globals::patch ) && ( $onefile->{'Styles'} ) && ( ! ( $onefile->{'Styles'} =~ /\bPATCH\b/ ))) { next; } my $source = $onefile->{'sourcepath'}; my $destination = $onefile->{'destination'}; @@ -428,6 +713,9 @@ sub create_simple_package for ( my $i = 0; $i <= $#{$linksref}; $i++ ) { my $onelink = ${$linksref}[$i]; + + if (( $installer::globals::patch ) && ( $onelink->{'Styles'} ) && ( ! ( $onelink->{'Styles'} =~ /\bPATCH\b/ ))) { next; } + my $destination = $onelink->{'destination'}; $destination = $subfolderdir . $installer::globals::separator . $destination; my $destinationfile = $onelink->{'destinationfile'}; @@ -442,6 +730,9 @@ sub create_simple_package for ( my $i = 0; $i <= $#{$unixlinksref}; $i++ ) { my $onelink = ${$unixlinksref}[$i]; + + if (( $installer::globals::patch ) && ( $onelink->{'Styles'} ) && ( ! ( $onelink->{'Styles'} =~ /\bPATCH\b/ ))) { next; } + my $target = $onelink->{'Target'}; my $destination = $subfolderdir . $installer::globals::separator . $onelink->{'destination'}; @@ -485,7 +776,7 @@ sub create_simple_package # -> tar.gz for all other platforms installer::logger::print_message( "... creating $installer::globals::packageformat file ...\n" ); installer::logger::include_header_into_logfile("Creating $installer::globals::packageformat file:"); - create_package($installdir, $packagename, $allvariables, $includepatharrayref); + create_package($installdir, $packagename, $allvariables, $includepatharrayref, $languagestringref); } # Analyzing the log file diff --git a/solenv/bin/modules/macosxotoolhelper.pm b/solenv/bin/modules/macosxotoolhelper.pm index 9c787f372dc0..c8d30c52e473 100644 --- a/solenv/bin/modules/macosxotoolhelper.pm +++ b/solenv/bin/modules/macosxotoolhelper.pm @@ -41,7 +41,7 @@ sub otoolD($) { my $line = <IN>; $line =~ /^$file:\n$/ or die "unexpected otool -D output (\"$line\", expecting \"$file:\")"; - $line = <IN> or die "unexpected otool -D output"; + $line = <IN>; <IN> == undef or die "unexpected otool -D output"; close(IN); return $line; diff --git a/solenv/config/sdev300.ini b/solenv/config/sdev300.ini index c331c2f8f7c9..a8851fd66f58 100644 --- a/solenv/config/sdev300.ini +++ b/solenv/config/sdev300.ini @@ -13,7 +13,7 @@ common BMP_WRITES_FLAG TRUE BTARGET 1 BUILD_SPECIAL TRUE - BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX L10N + BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS L10N GRAPHITE common_build TRUE COMMON_OUTDIR common CONFIG_PROJECT config_office @@ -28,6 +28,7 @@ common ENABLE_GTK TRUE ENABLE_MEDIAWIKI YES ENABLE_MINIMIZER YES + ENABLE_NSS_MODULE YES ENABLE_RANDR TRUE ENABLE_REPORTBUILDER YES ENABLE_SVCTAGS YES @@ -695,7 +696,8 @@ unxlngi6 } common2 { - BUILD_TOOLS %SOLARROOT%/bt_linux_libc2.32/%WORK_STAMP%/bin + ENABLE_GRAPHITE TRUE + BUILD_TOOLS %SOLARROOT%/bt_linux_libc2.32/%WORK_STAMP%/bin COM GCC COMMON_BUILD_TOOLS %SOLARROOT%$/btools COMMON_ENV_TOOLS %SOLARROOT%$/etools @@ -1011,7 +1013,7 @@ unxlngx6 SOLARROOT %SOLAR_ENV_ROOT% SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.4.2_11 + SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.4.2.32 SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.5.0_15.x64 SOLAR_OJDK16PATH %SOLAR_ENV_ROOT%/openjdk-6-b08-linux-amd64 SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% @@ -1021,7 +1023,8 @@ unxlngx6 } common2 { - BUILD_TOOLS %SOLARROOT%/bt_linux_libc2.11/%WORK_STAMP%/bin + ENABLE_GRAPHITE TRUE + BUILD_TOOLS %SOLARROOT%/bt_linux_libc2.11/%WORK_STAMP%/bin COM GCC COMMON_BUILD_TOOLS %SOLARROOT%$/btools COMMON_ENV_TOOLS %SOLARROOT%$/etools @@ -2554,7 +2557,8 @@ unxubti8 } common2 { - BUILD_TOOLS %SOLARROOT%/bt_linux_libc2.11/%WORK_STAMP%/bin + ENABLE_GRAPHITE TRUE + BUILD_TOOLS %SOLARROOT%/bt_linux_libc2.11/%WORK_STAMP%/bin COM GCC COMMON_BUILD_TOOLS %SRC_ROOT%/external/common COMMON_ENV_TOOLS %SOLARROOT%$/etools @@ -2827,7 +2831,8 @@ wntgcci1 } common2 { - BUILD_TOOLS %SOLARROOT%$/btw$/%WORK_STAMP% + ENABLE_GRAPHITE TRUE + BUILD_TOOLS %SOLARROOT%$/btw$/%WORK_STAMP% CALL_CDECL TRUE CDPATHx %CDPATH%$:..$:..$/..$:..$/..$/..$:..$/source$:..$/..$/source$:o:$/%WORK_STAMP%$/src%UPDMINOREXT% COM GCC @@ -3169,7 +3174,8 @@ wntmsci11 } common2 { - BUILD_TOOLS %SOLARROOT%$/btw$/%WORK_STAMP% + ENABLE_GRAPHITE TRUE + BUILD_TOOLS %SOLARROOT%$/btw$/%WORK_STAMP% CALL_CDECL TRUE CDPATHx %CDPATH%$:..$:..$/..$:..$/..$/..$:..$/source$:..$/..$/source$:o:$/%WORK_STAMP%$/src%UPDMINOREXT% COM MSC @@ -3521,7 +3527,8 @@ wntmsci12 } common2 { - BUILD_TOOLS %SOLARROOT%$/btw$/%BTOOLDIR% + ENABLE_GRAPHITE TRUE + BUILD_TOOLS %SOLARROOT%$/btw$/%BTOOLDIR% CALL_CDECL TRUE CDPATHx %CDPATH%$:..$:..$/..$:..$/..$/..$:..$/source$:..$/..$/source$:$cp(%SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/src%UPDMINOREXT%) COM MSC @@ -3538,6 +3545,7 @@ wntmsci12 GUIBASE WIN GVER NT351 INPATH wntmsci12%PROEXT% + MOZILLABUILD %SOLARROOT%/mozilla-build-1.3 OS WNT OUTPATH wntmsci12 PACKMS %SO_PACK%$/wntmsci12$/MS @@ -3730,7 +3738,7 @@ wntmsci12 sh { 400: if [ $COPYALL ]; then - 410: perl $SOLAR_ENV_ROOT/etools/lucopy.pl all $ZIPSOURCE $BTARGET + 410: perl $SOLAR_ENV_ROOT/etools/lucopy.pl all $ZIPSOURCE $BTARGET $MAXPROC 415: fi 600: umask 002 800: hash -r @@ -3749,7 +3757,7 @@ wntmsci12 } csh { - 400: if ( ${?COPYALL} ) perl $SOLAR_ENV_ROOT/etools/lucopy.pl all $ZIPSOURCE $BTARGET + 400: if ( ${?COPYALL} ) perl $SOLAR_ENV_ROOT/etools/lucopy.pl all $ZIPSOURCE $BTARGET $MAXPROC 600: umask 002 800: rehash 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR diff --git a/solenv/config/ssolar.cmn b/solenv/config/ssolar.cmn index aa1442cc649d..2e7e8fb12c79 100644 --- a/solenv/config/ssolar.cmn +++ b/solenv/config/ssolar.cmn @@ -84,6 +84,7 @@ common ENABLE_KDE ENABLE_MEDIAWIKI ENABLE_MINIMIZER + ENABLE_NSS_MODULE ENABLE_PASF ENABLE_RANDR ENABLE_REPORTBUILDER diff --git a/solenv/inc/_tg_app.mk b/solenv/inc/_tg_app.mk index e07999541823..318bb1e19917 100644 --- a/solenv/inc/_tg_app.mk +++ b/solenv/inc/_tg_app.mk @@ -144,11 +144,13 @@ $(APP1TARGETN): $(APP1OBJS) $(APP1LIBS) \ @cat $(APP1LINKRES) $(subst,$/res$/,$/res{$(subst,$(BIN), $(@:d))} $(APP1RES)) > $(MISC)$/$(@:b)_all.res windres $(MISC)$/$(@:b)_all.res $(APP1RESO) .ENDIF - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ $(APP1BASEX) $(APP1STACKN) -o $@ $(APP1OBJS) \ -Wl,-Map,$(MISC)$/$(@:b).map $(STDOBJ) $(APP1RESO) \ `$(TYPE) /dev/null $(APP1LIBS) | sed s#$(ROUT)#$(OUT)#g` \ - $(APP_LINKTYPE) $(APP1LIBSALCPPRT) $(APP1STDLIBS) $(APP1STDLIB) $(STDLIB1) > $(MISC)$/$(TARGET).$(@:b)_1.cmd + $(APP_LINKTYPE) $(APP1LIBSALCPPRT) \ + -Wl,--start-group $(APP1STDLIBS) -Wl,--end-group $(APP1STDLIB) \ + $(STDLIB1) $(MINGWSSTDENDOBJ) > $(MISC)$/$(TARGET).$(@:b)_1.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_1.cmd @+source $(MISC)$/$(TARGET).$(@:b)_1.cmd @ls -l $@ @@ -428,11 +430,13 @@ $(APP2TARGETN): $(APP2OBJS) $(APP2LIBS) \ @cat $(APP2LINKRES) $(subst,$/res$/,$/res{$(subst,$(BIN), $(@:d))} $(APP2RES)) > $(MISC)$/$(@:b)_all.res windres $(MISC)$/$(@:b)_all.res $(APP2RESO) .ENDIF - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ $(APP2BASEX) $(APP2STACKN) -o $@ $(APP2OBJS) \ -Wl,-Map,$(MISC)$/$(@:b).map $(STDOBJ) $(APP2RESO) \ `$(TYPE) /dev/null $(APP2LIBS) | sed s#$(ROUT)#$(OUT)#g` \ - $(APP_LINKTYPE) $(APP2LIBSALCPPRT) $(APP2STDLIBS) $(APP2STDLIB) $(STDLIB2) > $(MISC)$/$(TARGET).$(@:b)_2.cmd + $(APP_LINKTYPE) $(APP2LIBSALCPPRT) \ + -Wl,--start-group $(APP2STDLIBS) -Wl,--end-group $(APP2STDLIB) \ + $(STDLIB2) $(MINGWSSTDENDOBJ) > $(MISC)$/$(TARGET).$(@:b)_2.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_2.cmd @+source $(MISC)$/$(TARGET).$(@:b)_2.cmd @ls -l $@ @@ -712,11 +716,13 @@ $(APP3TARGETN): $(APP3OBJS) $(APP3LIBS) \ @cat $(APP3LINKRES) $(subst,$/res$/,$/res{$(subst,$(BIN), $(@:d))} $(APP3RES)) > $(MISC)$/$(@:b)_all.res windres $(MISC)$/$(@:b)_all.res $(APP3RESO) .ENDIF - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ $(APP3BASEX) $(APP3STACKN) -o $@ $(APP3OBJS) \ -Wl,-Map,$(MISC)$/$(@:b).map $(STDOBJ) $(APP3RESO) \ `$(TYPE) /dev/null $(APP3LIBS) | sed s#$(ROUT)#$(OUT)#g` \ - $(APP_LINKTYPE) $(APP3LIBSALCPPRT) $(APP3STDLIBS) $(APP3STDLIB) $(STDLIB3) > $(MISC)$/$(TARGET).$(@:b)_3.cmd + $(APP_LINKTYPE) $(APP3LIBSALCPPRT) \ + -Wl,--start-group $(APP3STDLIBS) -Wl,--end-group $(APP3STDLIB) \ + $(STDLIB3) $(MINGWSSTDENDOBJ) > $(MISC)$/$(TARGET).$(@:b)_3.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_3.cmd @+source $(MISC)$/$(TARGET).$(@:b)_3.cmd @ls -l $@ @@ -996,11 +1002,13 @@ $(APP4TARGETN): $(APP4OBJS) $(APP4LIBS) \ @cat $(APP4LINKRES) $(subst,$/res$/,$/res{$(subst,$(BIN), $(@:d))} $(APP4RES)) > $(MISC)$/$(@:b)_all.res windres $(MISC)$/$(@:b)_all.res $(APP4RESO) .ENDIF - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ $(APP4BASEX) $(APP4STACKN) -o $@ $(APP4OBJS) \ -Wl,-Map,$(MISC)$/$(@:b).map $(STDOBJ) $(APP4RESO) \ `$(TYPE) /dev/null $(APP4LIBS) | sed s#$(ROUT)#$(OUT)#g` \ - $(APP_LINKTYPE) $(APP4LIBSALCPPRT) $(APP4STDLIBS) $(APP4STDLIB) $(STDLIB4) > $(MISC)$/$(TARGET).$(@:b)_4.cmd + $(APP_LINKTYPE) $(APP4LIBSALCPPRT) \ + -Wl,--start-group $(APP4STDLIBS) -Wl,--end-group $(APP4STDLIB) \ + $(STDLIB4) $(MINGWSSTDENDOBJ) > $(MISC)$/$(TARGET).$(@:b)_4.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_4.cmd @+source $(MISC)$/$(TARGET).$(@:b)_4.cmd @ls -l $@ @@ -1280,11 +1288,13 @@ $(APP5TARGETN): $(APP5OBJS) $(APP5LIBS) \ @cat $(APP5LINKRES) $(subst,$/res$/,$/res{$(subst,$(BIN), $(@:d))} $(APP5RES)) > $(MISC)$/$(@:b)_all.res windres $(MISC)$/$(@:b)_all.res $(APP5RESO) .ENDIF - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ $(APP5BASEX) $(APP5STACKN) -o $@ $(APP5OBJS) \ -Wl,-Map,$(MISC)$/$(@:b).map $(STDOBJ) $(APP5RESO) \ `$(TYPE) /dev/null $(APP5LIBS) | sed s#$(ROUT)#$(OUT)#g` \ - $(APP_LINKTYPE) $(APP5LIBSALCPPRT) $(APP5STDLIBS) $(APP5STDLIB) $(STDLIB5) > $(MISC)$/$(TARGET).$(@:b)_5.cmd + $(APP_LINKTYPE) $(APP5LIBSALCPPRT) \ + -Wl,--start-group $(APP5STDLIBS) -Wl,--end-group $(APP5STDLIB) \ + $(STDLIB5) $(MINGWSSTDENDOBJ) > $(MISC)$/$(TARGET).$(@:b)_5.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_5.cmd @+source $(MISC)$/$(TARGET).$(@:b)_5.cmd @ls -l $@ @@ -1564,11 +1574,13 @@ $(APP6TARGETN): $(APP6OBJS) $(APP6LIBS) \ @cat $(APP6LINKRES) $(subst,$/res$/,$/res{$(subst,$(BIN), $(@:d))} $(APP6RES)) > $(MISC)$/$(@:b)_all.res windres $(MISC)$/$(@:b)_all.res $(APP6RESO) .ENDIF - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ $(APP6BASEX) $(APP6STACKN) -o $@ $(APP6OBJS) \ -Wl,-Map,$(MISC)$/$(@:b).map $(STDOBJ) $(APP6RESO) \ `$(TYPE) /dev/null $(APP6LIBS) | sed s#$(ROUT)#$(OUT)#g` \ - $(APP_LINKTYPE) $(APP6LIBSALCPPRT) $(APP6STDLIBS) $(APP6STDLIB) $(STDLIB6) > $(MISC)$/$(TARGET).$(@:b)_6.cmd + $(APP_LINKTYPE) $(APP6LIBSALCPPRT) \ + -Wl,--start-group $(APP6STDLIBS) -Wl,--end-group $(APP6STDLIB) \ + $(STDLIB6) $(MINGWSSTDENDOBJ) > $(MISC)$/$(TARGET).$(@:b)_6.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_6.cmd @+source $(MISC)$/$(TARGET).$(@:b)_6.cmd @ls -l $@ @@ -1848,11 +1860,13 @@ $(APP7TARGETN): $(APP7OBJS) $(APP7LIBS) \ @cat $(APP7LINKRES) $(subst,$/res$/,$/res{$(subst,$(BIN), $(@:d))} $(APP7RES)) > $(MISC)$/$(@:b)_all.res windres $(MISC)$/$(@:b)_all.res $(APP7RESO) .ENDIF - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ $(APP7BASEX) $(APP7STACKN) -o $@ $(APP7OBJS) \ -Wl,-Map,$(MISC)$/$(@:b).map $(STDOBJ) $(APP7RESO) \ `$(TYPE) /dev/null $(APP7LIBS) | sed s#$(ROUT)#$(OUT)#g` \ - $(APP_LINKTYPE) $(APP7LIBSALCPPRT) $(APP7STDLIBS) $(APP7STDLIB) $(STDLIB7) > $(MISC)$/$(TARGET).$(@:b)_7.cmd + $(APP_LINKTYPE) $(APP7LIBSALCPPRT) \ + -Wl,--start-group $(APP7STDLIBS) -Wl,--end-group $(APP7STDLIB) \ + $(STDLIB7) $(MINGWSSTDENDOBJ) > $(MISC)$/$(TARGET).$(@:b)_7.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_7.cmd @+source $(MISC)$/$(TARGET).$(@:b)_7.cmd @ls -l $@ @@ -2132,11 +2146,13 @@ $(APP8TARGETN): $(APP8OBJS) $(APP8LIBS) \ @cat $(APP8LINKRES) $(subst,$/res$/,$/res{$(subst,$(BIN), $(@:d))} $(APP8RES)) > $(MISC)$/$(@:b)_all.res windres $(MISC)$/$(@:b)_all.res $(APP8RESO) .ENDIF - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ $(APP8BASEX) $(APP8STACKN) -o $@ $(APP8OBJS) \ -Wl,-Map,$(MISC)$/$(@:b).map $(STDOBJ) $(APP8RESO) \ `$(TYPE) /dev/null $(APP8LIBS) | sed s#$(ROUT)#$(OUT)#g` \ - $(APP_LINKTYPE) $(APP8LIBSALCPPRT) $(APP8STDLIBS) $(APP8STDLIB) $(STDLIB8) > $(MISC)$/$(TARGET).$(@:b)_8.cmd + $(APP_LINKTYPE) $(APP8LIBSALCPPRT) \ + -Wl,--start-group $(APP8STDLIBS) -Wl,--end-group $(APP8STDLIB) \ + $(STDLIB8) $(MINGWSSTDENDOBJ) > $(MISC)$/$(TARGET).$(@:b)_8.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_8.cmd @+source $(MISC)$/$(TARGET).$(@:b)_8.cmd @ls -l $@ @@ -2416,11 +2432,13 @@ $(APP9TARGETN): $(APP9OBJS) $(APP9LIBS) \ @cat $(APP9LINKRES) $(subst,$/res$/,$/res{$(subst,$(BIN), $(@:d))} $(APP9RES)) > $(MISC)$/$(@:b)_all.res windres $(MISC)$/$(@:b)_all.res $(APP9RESO) .ENDIF - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ $(APP9BASEX) $(APP9STACKN) -o $@ $(APP9OBJS) \ -Wl,-Map,$(MISC)$/$(@:b).map $(STDOBJ) $(APP9RESO) \ `$(TYPE) /dev/null $(APP9LIBS) | sed s#$(ROUT)#$(OUT)#g` \ - $(APP_LINKTYPE) $(APP9LIBSALCPPRT) $(APP9STDLIBS) $(APP9STDLIB) $(STDLIB9) > $(MISC)$/$(TARGET).$(@:b)_9.cmd + $(APP_LINKTYPE) $(APP9LIBSALCPPRT) \ + -Wl,--start-group $(APP9STDLIBS) -Wl,--end-group $(APP9STDLIB) \ + $(STDLIB9) $(MINGWSSTDENDOBJ) > $(MISC)$/$(TARGET).$(@:b)_9.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_9.cmd @+source $(MISC)$/$(TARGET).$(@:b)_9.cmd @ls -l $@ @@ -2700,11 +2718,13 @@ $(APP10TARGETN): $(APP10OBJS) $(APP10LIBS) \ @cat $(APP10LINKRES) $(subst,$/res$/,$/res{$(subst,$(BIN), $(@:d))} $(APP10RES)) > $(MISC)$/$(@:b)_all.res windres $(MISC)$/$(@:b)_all.res $(APP10RESO) .ENDIF - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ $(APP10BASEX) $(APP10STACKN) -o $@ $(APP10OBJS) \ -Wl,-Map,$(MISC)$/$(@:b).map $(STDOBJ) $(APP10RESO) \ `$(TYPE) /dev/null $(APP10LIBS) | sed s#$(ROUT)#$(OUT)#g` \ - $(APP_LINKTYPE) $(APP10LIBSALCPPRT) $(APP10STDLIBS) $(APP10STDLIB) $(STDLIB10) > $(MISC)$/$(TARGET).$(@:b)_10.cmd + $(APP_LINKTYPE) $(APP10LIBSALCPPRT) \ + -Wl,--start-group $(APP10STDLIBS) -Wl,--end-group $(APP10STDLIB) \ + $(STDLIB10) $(MINGWSSTDENDOBJ) > $(MISC)$/$(TARGET).$(@:b)_10.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_10.cmd @+source $(MISC)$/$(TARGET).$(@:b)_10.cmd @ls -l $@ diff --git a/solenv/inc/_tg_def.mk b/solenv/inc/_tg_def.mk index 1b293d4f252a..06d4174200ba 100644 --- a/solenv/inc/_tg_def.mk +++ b/solenv/inc/_tg_def.mk @@ -28,7 +28,7 @@ $(DEF1EXPORTFILE) : $(SHL1VERSIONMAP) # Extract RTTI symbols from all the objects that will be used to build a shared library nm -gP $(SHL1OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL1LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp @.symbols-regexp.tmp >> $@.exported-symbols + | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated # exported symbols list $(RENAME) $@.exported-symbols $@ @@ -311,7 +311,7 @@ $(DEF2EXPORTFILE) : $(SHL2VERSIONMAP) # Extract RTTI symbols from all the objects that will be used to build a shared library nm -gP $(SHL2OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL2LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp @.symbols-regexp.tmp >> $@.exported-symbols + | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated # exported symbols list $(RENAME) $@.exported-symbols $@ @@ -594,7 +594,7 @@ $(DEF3EXPORTFILE) : $(SHL3VERSIONMAP) # Extract RTTI symbols from all the objects that will be used to build a shared library nm -gP $(SHL3OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL3LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp @.symbols-regexp.tmp >> $@.exported-symbols + | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated # exported symbols list $(RENAME) $@.exported-symbols $@ @@ -877,7 +877,7 @@ $(DEF4EXPORTFILE) : $(SHL4VERSIONMAP) # Extract RTTI symbols from all the objects that will be used to build a shared library nm -gP $(SHL4OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL4LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp @.symbols-regexp.tmp >> $@.exported-symbols + | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated # exported symbols list $(RENAME) $@.exported-symbols $@ @@ -1160,7 +1160,7 @@ $(DEF5EXPORTFILE) : $(SHL5VERSIONMAP) # Extract RTTI symbols from all the objects that will be used to build a shared library nm -gP $(SHL5OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL5LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp @.symbols-regexp.tmp >> $@.exported-symbols + | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated # exported symbols list $(RENAME) $@.exported-symbols $@ @@ -1443,7 +1443,7 @@ $(DEF6EXPORTFILE) : $(SHL6VERSIONMAP) # Extract RTTI symbols from all the objects that will be used to build a shared library nm -gP $(SHL6OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL6LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp @.symbols-regexp.tmp >> $@.exported-symbols + | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated # exported symbols list $(RENAME) $@.exported-symbols $@ @@ -1726,7 +1726,7 @@ $(DEF7EXPORTFILE) : $(SHL7VERSIONMAP) # Extract RTTI symbols from all the objects that will be used to build a shared library nm -gP $(SHL7OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL7LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp @.symbols-regexp.tmp >> $@.exported-symbols + | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated # exported symbols list $(RENAME) $@.exported-symbols $@ @@ -2009,7 +2009,7 @@ $(DEF8EXPORTFILE) : $(SHL8VERSIONMAP) # Extract RTTI symbols from all the objects that will be used to build a shared library nm -gP $(SHL8OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL8LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp @.symbols-regexp.tmp >> $@.exported-symbols + | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated # exported symbols list $(RENAME) $@.exported-symbols $@ @@ -2292,7 +2292,7 @@ $(DEF9EXPORTFILE) : $(SHL9VERSIONMAP) # Extract RTTI symbols from all the objects that will be used to build a shared library nm -gP $(SHL9OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL9LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp @.symbols-regexp.tmp >> $@.exported-symbols + | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated # exported symbols list $(RENAME) $@.exported-symbols $@ @@ -2575,7 +2575,7 @@ $(DEF10EXPORTFILE) : $(SHL10VERSIONMAP) # Extract RTTI symbols from all the objects that will be used to build a shared library nm -gP $(SHL10OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL10LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp @.symbols-regexp.tmp >> $@.exported-symbols + | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated # exported symbols list $(RENAME) $@.exported-symbols $@ diff --git a/solenv/inc/_tg_shl.mk b/solenv/inc/_tg_shl.mk index 596ecf8eac17..213cdbcbe414 100644 --- a/solenv/inc/_tg_shl.mk +++ b/solenv/inc/_tg_shl.mk @@ -296,24 +296,21 @@ $(SHL1TARGETN) : \ .ENDIF # "$(USE_SHELL)"=="4nt" .ENDIF # "$(SHL1ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def -.IF "$(DEFLIB1NAME)"!="" # do not have to include objs @echo dlltool --input-def $(SHL1DEF) \ --dllname $(SHL1TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o > $(MISC)$/$(TARGET).$(@:b)_1.cmd + --kill-at \\ > $(MISC)$/$(TARGET).$(@:b)_1.cmd +.IF "$(DEFLIB1NAME)"!="" # do not have to include objs + @echo --output-exp $(MISC)$/$(@:b)_exp.o >> $(MISC)$/$(TARGET).$(@:b)_1.cmd .ELSE # "$(DEFLIB1NAME)"!="" # do not have to include objs - @echo dlltool --input-def $(SHL1DEF) \ - --dllname $(SHL1TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o \ + @echo --output-exp $(MISC)$/$(@:b)_exp.o \ $(STDOBJ) $(SHL1OBJS) $(SHL1LINKRESO) \ - `$(TYPE) /dev/null $(SHL1LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` > $(MISC)$/$(TARGET).$(@:b)_1.cmd + `$(TYPE) /dev/null $(SHL1LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` >> $(MISC)$/$(TARGET).$(@:b)_1.cmd .ENDIF # "$(DEFLIB1NAME)"!="" - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -o$@ \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ $(STDOBJ) $(SHL1VERSIONOBJ) $(SHL1DESCRIPTIONOBJ) $(SHL1OBJS) $(SHL1LINKRESO) \ `$(TYPE) /dev/null $(SHL1LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - -Wl,--exclude-libs,ALL $(SHL1STDLIBS) $(SHL1STDSHL) $(STDSHL1) \ - $(MISC)$/$(@:b)_exp.o \ + -Wl,--exclude-libs,ALL,--start-group $(SHL1STDLIBS) -Wl,--end-group \ + $(SHL1STDSHL) $(STDSHL1) $(MISC)$/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ -Wl,-Map,$(MISC)$/$(@:b).map >> $(MISC)$/$(TARGET).$(@:b)_1.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_1.cmd @+source $(MISC)$/$(TARGET).$(@:b)_1.cmd @@ -844,24 +841,21 @@ $(SHL2TARGETN) : \ .ENDIF # "$(USE_SHELL)"=="4nt" .ENDIF # "$(SHL2ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def -.IF "$(DEFLIB2NAME)"!="" # do not have to include objs @echo dlltool --input-def $(SHL2DEF) \ --dllname $(SHL2TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o > $(MISC)$/$(TARGET).$(@:b)_2.cmd + --kill-at \\ > $(MISC)$/$(TARGET).$(@:b)_2.cmd +.IF "$(DEFLIB2NAME)"!="" # do not have to include objs + @echo --output-exp $(MISC)$/$(@:b)_exp.o >> $(MISC)$/$(TARGET).$(@:b)_2.cmd .ELSE # "$(DEFLIB2NAME)"!="" # do not have to include objs - @echo dlltool --input-def $(SHL2DEF) \ - --dllname $(SHL2TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o \ + @echo --output-exp $(MISC)$/$(@:b)_exp.o \ $(STDOBJ) $(SHL2OBJS) $(SHL2LINKRESO) \ - `$(TYPE) /dev/null $(SHL2LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` > $(MISC)$/$(TARGET).$(@:b)_2.cmd + `$(TYPE) /dev/null $(SHL2LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` >> $(MISC)$/$(TARGET).$(@:b)_2.cmd .ENDIF # "$(DEFLIB2NAME)"!="" - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -o$@ \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ $(STDOBJ) $(SHL2VERSIONOBJ) $(SHL2DESCRIPTIONOBJ) $(SHL2OBJS) $(SHL2LINKRESO) \ `$(TYPE) /dev/null $(SHL2LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - -Wl,--exclude-libs,ALL $(SHL2STDLIBS) $(SHL2STDSHL) $(STDSHL2) \ - $(MISC)$/$(@:b)_exp.o \ + -Wl,--exclude-libs,ALL,--start-group $(SHL2STDLIBS) -Wl,--end-group \ + $(SHL2STDSHL) $(STDSHL2) $(MISC)$/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ -Wl,-Map,$(MISC)$/$(@:b).map >> $(MISC)$/$(TARGET).$(@:b)_2.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_2.cmd @+source $(MISC)$/$(TARGET).$(@:b)_2.cmd @@ -1392,24 +1386,21 @@ $(SHL3TARGETN) : \ .ENDIF # "$(USE_SHELL)"=="4nt" .ENDIF # "$(SHL3ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def -.IF "$(DEFLIB3NAME)"!="" # do not have to include objs @echo dlltool --input-def $(SHL3DEF) \ --dllname $(SHL3TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o > $(MISC)$/$(TARGET).$(@:b)_3.cmd + --kill-at \\ > $(MISC)$/$(TARGET).$(@:b)_3.cmd +.IF "$(DEFLIB3NAME)"!="" # do not have to include objs + @echo --output-exp $(MISC)$/$(@:b)_exp.o >> $(MISC)$/$(TARGET).$(@:b)_3.cmd .ELSE # "$(DEFLIB3NAME)"!="" # do not have to include objs - @echo dlltool --input-def $(SHL3DEF) \ - --dllname $(SHL3TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o \ + @echo --output-exp $(MISC)$/$(@:b)_exp.o \ $(STDOBJ) $(SHL3OBJS) $(SHL3LINKRESO) \ - `$(TYPE) /dev/null $(SHL3LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` > $(MISC)$/$(TARGET).$(@:b)_3.cmd + `$(TYPE) /dev/null $(SHL3LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` >> $(MISC)$/$(TARGET).$(@:b)_3.cmd .ENDIF # "$(DEFLIB3NAME)"!="" - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -o$@ \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ $(STDOBJ) $(SHL3VERSIONOBJ) $(SHL3DESCRIPTIONOBJ) $(SHL3OBJS) $(SHL3LINKRESO) \ `$(TYPE) /dev/null $(SHL3LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - -Wl,--exclude-libs,ALL $(SHL3STDLIBS) $(SHL3STDSHL) $(STDSHL3) \ - $(MISC)$/$(@:b)_exp.o \ + -Wl,--exclude-libs,ALL,--start-group $(SHL3STDLIBS) -Wl,--end-group \ + $(SHL3STDSHL) $(STDSHL3) $(MISC)$/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ -Wl,-Map,$(MISC)$/$(@:b).map >> $(MISC)$/$(TARGET).$(@:b)_3.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_3.cmd @+source $(MISC)$/$(TARGET).$(@:b)_3.cmd @@ -1940,24 +1931,21 @@ $(SHL4TARGETN) : \ .ENDIF # "$(USE_SHELL)"=="4nt" .ENDIF # "$(SHL4ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def -.IF "$(DEFLIB4NAME)"!="" # do not have to include objs @echo dlltool --input-def $(SHL4DEF) \ --dllname $(SHL4TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o > $(MISC)$/$(TARGET).$(@:b)_4.cmd + --kill-at \\ > $(MISC)$/$(TARGET).$(@:b)_4.cmd +.IF "$(DEFLIB4NAME)"!="" # do not have to include objs + @echo --output-exp $(MISC)$/$(@:b)_exp.o >> $(MISC)$/$(TARGET).$(@:b)_4.cmd .ELSE # "$(DEFLIB4NAME)"!="" # do not have to include objs - @echo dlltool --input-def $(SHL4DEF) \ - --dllname $(SHL4TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o \ + @echo --output-exp $(MISC)$/$(@:b)_exp.o \ $(STDOBJ) $(SHL4OBJS) $(SHL4LINKRESO) \ - `$(TYPE) /dev/null $(SHL4LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` > $(MISC)$/$(TARGET).$(@:b)_4.cmd + `$(TYPE) /dev/null $(SHL4LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` >> $(MISC)$/$(TARGET).$(@:b)_4.cmd .ENDIF # "$(DEFLIB4NAME)"!="" - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -o$@ \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ $(STDOBJ) $(SHL4VERSIONOBJ) $(SHL4DESCRIPTIONOBJ) $(SHL4OBJS) $(SHL4LINKRESO) \ `$(TYPE) /dev/null $(SHL4LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - -Wl,--exclude-libs,ALL $(SHL4STDLIBS) $(SHL4STDSHL) $(STDSHL4) \ - $(MISC)$/$(@:b)_exp.o \ + -Wl,--exclude-libs,ALL,--start-group $(SHL4STDLIBS) -Wl,--end-group \ + $(SHL4STDSHL) $(STDSHL4) $(MISC)$/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ -Wl,-Map,$(MISC)$/$(@:b).map >> $(MISC)$/$(TARGET).$(@:b)_4.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_4.cmd @+source $(MISC)$/$(TARGET).$(@:b)_4.cmd @@ -2488,24 +2476,21 @@ $(SHL5TARGETN) : \ .ENDIF # "$(USE_SHELL)"=="4nt" .ENDIF # "$(SHL5ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def -.IF "$(DEFLIB5NAME)"!="" # do not have to include objs @echo dlltool --input-def $(SHL5DEF) \ --dllname $(SHL5TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o > $(MISC)$/$(TARGET).$(@:b)_5.cmd + --kill-at \\ > $(MISC)$/$(TARGET).$(@:b)_5.cmd +.IF "$(DEFLIB5NAME)"!="" # do not have to include objs + @echo --output-exp $(MISC)$/$(@:b)_exp.o >> $(MISC)$/$(TARGET).$(@:b)_5.cmd .ELSE # "$(DEFLIB5NAME)"!="" # do not have to include objs - @echo dlltool --input-def $(SHL5DEF) \ - --dllname $(SHL5TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o \ + @echo --output-exp $(MISC)$/$(@:b)_exp.o \ $(STDOBJ) $(SHL5OBJS) $(SHL5LINKRESO) \ - `$(TYPE) /dev/null $(SHL5LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` > $(MISC)$/$(TARGET).$(@:b)_5.cmd + `$(TYPE) /dev/null $(SHL5LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` >> $(MISC)$/$(TARGET).$(@:b)_5.cmd .ENDIF # "$(DEFLIB5NAME)"!="" - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -o$@ \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ $(STDOBJ) $(SHL5VERSIONOBJ) $(SHL5DESCRIPTIONOBJ) $(SHL5OBJS) $(SHL5LINKRESO) \ `$(TYPE) /dev/null $(SHL5LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - -Wl,--exclude-libs,ALL $(SHL5STDLIBS) $(SHL5STDSHL) $(STDSHL5) \ - $(MISC)$/$(@:b)_exp.o \ + -Wl,--exclude-libs,ALL,--start-group $(SHL5STDLIBS) -Wl,--end-group \ + $(SHL5STDSHL) $(STDSHL5) $(MISC)$/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ -Wl,-Map,$(MISC)$/$(@:b).map >> $(MISC)$/$(TARGET).$(@:b)_5.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_5.cmd @+source $(MISC)$/$(TARGET).$(@:b)_5.cmd @@ -3036,24 +3021,21 @@ $(SHL6TARGETN) : \ .ENDIF # "$(USE_SHELL)"=="4nt" .ENDIF # "$(SHL6ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def -.IF "$(DEFLIB6NAME)"!="" # do not have to include objs @echo dlltool --input-def $(SHL6DEF) \ --dllname $(SHL6TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o > $(MISC)$/$(TARGET).$(@:b)_6.cmd + --kill-at \\ > $(MISC)$/$(TARGET).$(@:b)_6.cmd +.IF "$(DEFLIB6NAME)"!="" # do not have to include objs + @echo --output-exp $(MISC)$/$(@:b)_exp.o >> $(MISC)$/$(TARGET).$(@:b)_6.cmd .ELSE # "$(DEFLIB6NAME)"!="" # do not have to include objs - @echo dlltool --input-def $(SHL6DEF) \ - --dllname $(SHL6TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o \ + @echo --output-exp $(MISC)$/$(@:b)_exp.o \ $(STDOBJ) $(SHL6OBJS) $(SHL6LINKRESO) \ - `$(TYPE) /dev/null $(SHL6LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` > $(MISC)$/$(TARGET).$(@:b)_6.cmd + `$(TYPE) /dev/null $(SHL6LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` >> $(MISC)$/$(TARGET).$(@:b)_6.cmd .ENDIF # "$(DEFLIB6NAME)"!="" - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -o$@ \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ $(STDOBJ) $(SHL6VERSIONOBJ) $(SHL6DESCRIPTIONOBJ) $(SHL6OBJS) $(SHL6LINKRESO) \ `$(TYPE) /dev/null $(SHL6LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - -Wl,--exclude-libs,ALL $(SHL6STDLIBS) $(SHL6STDSHL) $(STDSHL6) \ - $(MISC)$/$(@:b)_exp.o \ + -Wl,--exclude-libs,ALL,--start-group $(SHL6STDLIBS) -Wl,--end-group \ + $(SHL6STDSHL) $(STDSHL6) $(MISC)$/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ -Wl,-Map,$(MISC)$/$(@:b).map >> $(MISC)$/$(TARGET).$(@:b)_6.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_6.cmd @+source $(MISC)$/$(TARGET).$(@:b)_6.cmd @@ -3584,24 +3566,21 @@ $(SHL7TARGETN) : \ .ENDIF # "$(USE_SHELL)"=="4nt" .ENDIF # "$(SHL7ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def -.IF "$(DEFLIB7NAME)"!="" # do not have to include objs @echo dlltool --input-def $(SHL7DEF) \ --dllname $(SHL7TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o > $(MISC)$/$(TARGET).$(@:b)_7.cmd + --kill-at \\ > $(MISC)$/$(TARGET).$(@:b)_7.cmd +.IF "$(DEFLIB7NAME)"!="" # do not have to include objs + @echo --output-exp $(MISC)$/$(@:b)_exp.o >> $(MISC)$/$(TARGET).$(@:b)_7.cmd .ELSE # "$(DEFLIB7NAME)"!="" # do not have to include objs - @echo dlltool --input-def $(SHL7DEF) \ - --dllname $(SHL7TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o \ + @echo --output-exp $(MISC)$/$(@:b)_exp.o \ $(STDOBJ) $(SHL7OBJS) $(SHL7LINKRESO) \ - `$(TYPE) /dev/null $(SHL7LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` > $(MISC)$/$(TARGET).$(@:b)_7.cmd + `$(TYPE) /dev/null $(SHL7LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` >> $(MISC)$/$(TARGET).$(@:b)_7.cmd .ENDIF # "$(DEFLIB7NAME)"!="" - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -o$@ \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ $(STDOBJ) $(SHL7VERSIONOBJ) $(SHL7DESCRIPTIONOBJ) $(SHL7OBJS) $(SHL7LINKRESO) \ `$(TYPE) /dev/null $(SHL7LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - -Wl,--exclude-libs,ALL $(SHL7STDLIBS) $(SHL7STDSHL) $(STDSHL7) \ - $(MISC)$/$(@:b)_exp.o \ + -Wl,--exclude-libs,ALL,--start-group $(SHL7STDLIBS) -Wl,--end-group \ + $(SHL7STDSHL) $(STDSHL7) $(MISC)$/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ -Wl,-Map,$(MISC)$/$(@:b).map >> $(MISC)$/$(TARGET).$(@:b)_7.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_7.cmd @+source $(MISC)$/$(TARGET).$(@:b)_7.cmd @@ -4132,24 +4111,21 @@ $(SHL8TARGETN) : \ .ENDIF # "$(USE_SHELL)"=="4nt" .ENDIF # "$(SHL8ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def -.IF "$(DEFLIB8NAME)"!="" # do not have to include objs @echo dlltool --input-def $(SHL8DEF) \ --dllname $(SHL8TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o > $(MISC)$/$(TARGET).$(@:b)_8.cmd + --kill-at \\ > $(MISC)$/$(TARGET).$(@:b)_8.cmd +.IF "$(DEFLIB8NAME)"!="" # do not have to include objs + @echo --output-exp $(MISC)$/$(@:b)_exp.o >> $(MISC)$/$(TARGET).$(@:b)_8.cmd .ELSE # "$(DEFLIB8NAME)"!="" # do not have to include objs - @echo dlltool --input-def $(SHL8DEF) \ - --dllname $(SHL8TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o \ + @echo --output-exp $(MISC)$/$(@:b)_exp.o \ $(STDOBJ) $(SHL8OBJS) $(SHL8LINKRESO) \ - `$(TYPE) /dev/null $(SHL8LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` > $(MISC)$/$(TARGET).$(@:b)_8.cmd + `$(TYPE) /dev/null $(SHL8LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` >> $(MISC)$/$(TARGET).$(@:b)_8.cmd .ENDIF # "$(DEFLIB8NAME)"!="" - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -o$@ \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ $(STDOBJ) $(SHL8VERSIONOBJ) $(SHL8DESCRIPTIONOBJ) $(SHL8OBJS) $(SHL8LINKRESO) \ `$(TYPE) /dev/null $(SHL8LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - -Wl,--exclude-libs,ALL $(SHL8STDLIBS) $(SHL8STDSHL) $(STDSHL8) \ - $(MISC)$/$(@:b)_exp.o \ + -Wl,--exclude-libs,ALL,--start-group $(SHL8STDLIBS) -Wl,--end-group \ + $(SHL8STDSHL) $(STDSHL8) $(MISC)$/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ -Wl,-Map,$(MISC)$/$(@:b).map >> $(MISC)$/$(TARGET).$(@:b)_8.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_8.cmd @+source $(MISC)$/$(TARGET).$(@:b)_8.cmd @@ -4680,24 +4656,21 @@ $(SHL9TARGETN) : \ .ENDIF # "$(USE_SHELL)"=="4nt" .ENDIF # "$(SHL9ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def -.IF "$(DEFLIB9NAME)"!="" # do not have to include objs @echo dlltool --input-def $(SHL9DEF) \ --dllname $(SHL9TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o > $(MISC)$/$(TARGET).$(@:b)_9.cmd + --kill-at \\ > $(MISC)$/$(TARGET).$(@:b)_9.cmd +.IF "$(DEFLIB9NAME)"!="" # do not have to include objs + @echo --output-exp $(MISC)$/$(@:b)_exp.o >> $(MISC)$/$(TARGET).$(@:b)_9.cmd .ELSE # "$(DEFLIB9NAME)"!="" # do not have to include objs - @echo dlltool --input-def $(SHL9DEF) \ - --dllname $(SHL9TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o \ + @echo --output-exp $(MISC)$/$(@:b)_exp.o \ $(STDOBJ) $(SHL9OBJS) $(SHL9LINKRESO) \ - `$(TYPE) /dev/null $(SHL9LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` > $(MISC)$/$(TARGET).$(@:b)_9.cmd + `$(TYPE) /dev/null $(SHL9LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` >> $(MISC)$/$(TARGET).$(@:b)_9.cmd .ENDIF # "$(DEFLIB9NAME)"!="" - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -o$@ \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ $(STDOBJ) $(SHL9VERSIONOBJ) $(SHL9DESCRIPTIONOBJ) $(SHL9OBJS) $(SHL9LINKRESO) \ `$(TYPE) /dev/null $(SHL9LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - -Wl,--exclude-libs,ALL $(SHL9STDLIBS) $(SHL9STDSHL) $(STDSHL9) \ - $(MISC)$/$(@:b)_exp.o \ + -Wl,--exclude-libs,ALL,--start-group $(SHL9STDLIBS) -Wl,--end-group \ + $(SHL9STDSHL) $(STDSHL9) $(MISC)$/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ -Wl,-Map,$(MISC)$/$(@:b).map >> $(MISC)$/$(TARGET).$(@:b)_9.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_9.cmd @+source $(MISC)$/$(TARGET).$(@:b)_9.cmd @@ -5228,24 +5201,21 @@ $(SHL10TARGETN) : \ .ENDIF # "$(USE_SHELL)"=="4nt" .ENDIF # "$(SHL10ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def -.IF "$(DEFLIB10NAME)"!="" # do not have to include objs @echo dlltool --input-def $(SHL10DEF) \ --dllname $(SHL10TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o > $(MISC)$/$(TARGET).$(@:b)_10.cmd + --kill-at \\ > $(MISC)$/$(TARGET).$(@:b)_10.cmd +.IF "$(DEFLIB10NAME)"!="" # do not have to include objs + @echo --output-exp $(MISC)$/$(@:b)_exp.o >> $(MISC)$/$(TARGET).$(@:b)_10.cmd .ELSE # "$(DEFLIB10NAME)"!="" # do not have to include objs - @echo dlltool --input-def $(SHL10DEF) \ - --dllname $(SHL10TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o \ + @echo --output-exp $(MISC)$/$(@:b)_exp.o \ $(STDOBJ) $(SHL10OBJS) $(SHL10LINKRESO) \ - `$(TYPE) /dev/null $(SHL10LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` > $(MISC)$/$(TARGET).$(@:b)_10.cmd + `$(TYPE) /dev/null $(SHL10LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` >> $(MISC)$/$(TARGET).$(@:b)_10.cmd .ENDIF # "$(DEFLIB10NAME)"!="" - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -o$@ \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ $(STDOBJ) $(SHL10VERSIONOBJ) $(SHL10DESCRIPTIONOBJ) $(SHL10OBJS) $(SHL10LINKRESO) \ `$(TYPE) /dev/null $(SHL10LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - -Wl,--exclude-libs,ALL $(SHL10STDLIBS) $(SHL10STDSHL) $(STDSHL10) \ - $(MISC)$/$(@:b)_exp.o \ + -Wl,--exclude-libs,ALL,--start-group $(SHL10STDLIBS) -Wl,--end-group \ + $(SHL10STDSHL) $(STDSHL10) $(MISC)$/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ -Wl,-Map,$(MISC)$/$(@:b).map >> $(MISC)$/$(TARGET).$(@:b)_10.cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_10.cmd @+source $(MISC)$/$(TARGET).$(@:b)_10.cmd diff --git a/solenv/inc/extension_post.mk b/solenv/inc/extension_post.mk index 1888a6dddc71..dc4771420a7c 100644 --- a/solenv/inc/extension_post.mk +++ b/solenv/inc/extension_post.mk @@ -74,6 +74,12 @@ $(COMPONENT_LIBRARIES) : $(DLLDEST)$/$$(@:f) .IF "$(OS)$(CPU)"=="WNTI" .IF "$(COM)"=="GCC" $(GNUCOPY) $(SOLARBINDIR)$/mingwm10.dll $(EXTENSIONDIR) + .IF "$(MINGW_GCCDLL)"!="" + $(GNUCOPY) $(SOLARBINDIR)$/$(MINGW_GCCDLL) $(EXTENSIONDIR) + .ENDIF + .IF "$(MINGW_GXXDLL)"!="" + $(GNUCOPY) $(SOLARBINDIR)$/$(MINGW_GXXDLL) $(EXTENSIONDIR) + .ENDIF .ELSE .IF "$(PACKMS)"!="" .IF "$(CCNUMVER)" <= "001399999999" diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk index 38b3c81c1468..dc63eff4ad25 100644 --- a/solenv/inc/libs.mk +++ b/solenv/inc/libs.mk @@ -57,9 +57,6 @@ I18NUTILLIB=-li18nutil$(COMID) .INCLUDE .IGNORE : i18npool$/version.mk I18NISOLANGLIB=-li18nisolang$(ISOLANG_MAJOR)$(COMID) I18NPAPERLIB=-li18npaper$(DLLPOSTFIX) -.IF "$(WITH_GPC)"!="NO" -GPC3RDLIB=-lgpc -.ENDIF .IF "$(GUI)$(COM)"=="WNTGCC" SALHELPERLIB=-lsalhelper$(UDK_MAJOR)$(COMID) .ELSE # "$(GUI)$(COM)"=="WNTGCC" @@ -233,10 +230,8 @@ NEON3RDLIB=$(STATIC) -lneon $(DYNAMIC) .ENDIF .IF "$(SYSTEM_DB)" == "YES" BERKELEYLIB=-ldb -BERKELEYCPPLIB=-ldb_cxx .ELSE -BERKELEYLIB=-ldb-4.2 -BERKELEYCPPLIB=-ldb_cxx-4.2 +BERKELEYLIB=-ldb-4.7 .ENDIF CURLLIB=-lcurl SFX2LIB=-lsfx$(DLLPOSTFIX) @@ -245,6 +240,8 @@ EGGTRAYLIB=-leggtray$(DLLPOSTFIX) SFXDEBUGLIB= FWELIB=-lfwe$(DLLPOSTFIX) FWILIB=-lfwi$(DLLPOSTFIX) +SVXCORELIB=-lsvxcore$(DLLPOSTFIX) +SVXMSFILTERLIB=-lsvxmsfilter$(DLLPOSTFIX) SVXLIB=-lsvx$(DLLPOSTFIX) BASCTLLIB=-lbasctl$(DLLPOSTFIX) BASICIDELIB=-lybctl @@ -358,9 +355,6 @@ ICUDATALIB=icudata.lib I18NUTILLIB=ii18nutil.lib I18NISOLANGLIB=ii18nisolang.lib I18NPAPERLIB=ii18npaper.lib -.IF "$(WITH_GPC)"!="NO" -GPC3RDLIB=gpc.lib -.ENDIF SALHELPERLIB=isalhelper.lib XMLSCRIPTLIB=ixcr.lib COMPHELPERLIB=icomphelp.lib @@ -429,6 +423,8 @@ DOCMGRLIB=docmgr.lib BASICLIB=basic.lib TKTLIB=tkt.lib SJLIB=sj.lib +SVXCORELIB=isvxcore.lib +SVXMSFILTERLIB=isvxmsfilter.lib SVXLIB=isvx.lib BASCTLLIB=basctl.lib BASICIDELIB=ybctl.lib @@ -443,8 +439,7 @@ EXPATASCII3RDLIB=expat_xmltok.lib ascii_expat_xmlparse.lib ZLIB3RDLIB=zlib.lib JPEG3RDLIB=jpeglib.lib NEON3RDLIB=neon.lib -BERKELEYLIB=libdb42.lib -BERKELEYCPPLIB= +BERKELEYLIB=libdb47.lib CURLLIB=libcurl.lib CHAOSLIB=ichaos.lib UUILIB=iuui.lib diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk index 1ac537e53e0b..8ba46f8c5357 100644 --- a/solenv/inc/minor.mk +++ b/solenv/inc/minor.mk @@ -1,5 +1,5 @@ RSCVERSION=300 -RSCREVISION=300m54(Build:9416) -BUILD=9416 -LAST_MINOR=m54 +RSCREVISION=300m57(Build:9422) +BUILD=9422 +LAST_MINOR=m57 SOURCEVERSION=DEV300 diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk index a3c43edaaf67..ca1856fce33e 100644 --- a/solenv/inc/settings.mk +++ b/solenv/inc/settings.mk @@ -669,7 +669,7 @@ TRYALTSDF:=$(SOLARSRC)$/$(ALT_L10N_MODULE)$/$(COMMON_OUTDIR)$(PROEXT)$/misc/sdf$ # TODO: check performance impact... LOCALIZESDF:=$(strip $(shell @+$(IFEXIST) $(TRYALTSDF) $(THEN) echo $(TRYALTSDF) $(FI))) .ENDIF # "$(ALT_LOCALIZATION_FOUND)"!="" -some_local_helper_var:=$(strip $(shell +$(IFEXIST) $(TRYSDF) $(THEN) echo $(TRYSDF) $(FI) )) +some_local_helper_var:=$(strip $(shell @+$(IFEXIST) $(TRYSDF) $(THEN) echo $(TRYSDF) $(FI) )) LOCALIZESDF!:=$(eq,$(LOCALIZESDF),$(NULL) $(some_local_helper_var) $(LOCALIZESDF)) LOCALIZESDF!:=$(eq,$(LOCALIZESDF),$(NULL) $(COMMONMISC)$/$(PRJNAME)$/$(PATH_IN_MODULE)$/localize.sdf $(LOCALIZESDF)) .ELSE # "$(LOCALIZATION_FOUND)"!="" || "$(ALT_LOCALIZATION_FOUND)"!="" diff --git a/solenv/inc/tg_app.mk b/solenv/inc/tg_app.mk index d6846a0410d8..efffc86156c3 100644 --- a/solenv/inc/tg_app.mk +++ b/solenv/inc/tg_app.mk @@ -177,11 +177,13 @@ $(APP$(TNR)TARGETN): $(APP$(TNR)OBJS) $(APP$(TNR)LIBS) \ @cat $(APP$(TNR)LINKRES) $(subst,$/res$/,$/res{$(subst,$(BIN), $(@:d))} $(APP$(TNR)RES)) > $(MISC)$/$(@:b)_all.res windres $(MISC)$/$(@:b)_all.res $(APP$(TNR)RESO) .ENDIF - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)$/$(INPATH)$/lib $(SOLARLIB) $(STDSLO) \ $(APP$(TNR)BASEX) $(APP$(TNR)STACKN) -o $@ $(APP$(TNR)OBJS) \ -Wl,-Map,$(MISC)$/$(@:b).map $(STDOBJ) $(APP$(TNR)RESO) \ `$(TYPE) /dev/null $(APP$(TNR)LIBS) | sed s#$(ROUT)#$(OUT)#g` \ - $(APP_LINKTYPE) $(APP$(TNR)LIBSALCPPRT) $(APP$(TNR)STDLIBS) $(APP$(TNR)STDLIB) $(STDLIB$(TNR)) > $(MISC)$/$(TARGET).$(@:b)_$(TNR).cmd + $(APP_LINKTYPE) $(APP$(TNR)LIBSALCPPRT) \ + -Wl,--start-group $(APP$(TNR)STDLIBS) -Wl,--end-group $(APP$(TNR)STDLIB) \ + $(STDLIB$(TNR)) $(MINGWSSTDENDOBJ) > $(MISC)$/$(TARGET).$(@:b)_$(TNR).cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_$(TNR).cmd @+source $(MISC)$/$(TARGET).$(@:b)_$(TNR).cmd @ls -l $@ diff --git a/solenv/inc/tg_def.mk b/solenv/inc/tg_def.mk index 602dfcbf3d22..ff26f53271b2 100644 --- a/solenv/inc/tg_def.mk +++ b/solenv/inc/tg_def.mk @@ -61,7 +61,7 @@ $(DEF$(TNR)EXPORTFILE) : $(SHL$(TNR)VERSIONMAP) # Extract RTTI symbols from all the objects that will be used to build a shared library nm -gP $(SHL$(TNR)OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL$(TNR)LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp @.symbols-regexp.tmp >> $@.exported-symbols + | $(SOLARENV)$/bin$/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated # exported symbols list $(RENAME) $@.exported-symbols $@ diff --git a/solenv/inc/tg_ext.mk b/solenv/inc/tg_ext.mk index f000775b2279..ced838d44000 100644 --- a/solenv/inc/tg_ext.mk +++ b/solenv/inc/tg_ext.mk @@ -34,9 +34,9 @@ # setup INCLUDE variable for use by VC++ .IF "$(GUI)$(COM)"=="WNTMSC" .IF "$(EXT_USE_STLPORT)"=="" -INCLUDE!:=$(subst,$/stl, $(SOLARINC)) +INCLUDE!:=. $(subst,$/stl, $(SOLARINC)) .ELSE # "$(EXT_USE_STLPORT)"=="" -INCLUDE!:=$(SOLARINC) +INCLUDE!:=. $(SOLARINC) .ENDIF # "$(EXT_USE_STLPORT)"=="" INCLUDE!:=$(INCLUDE:s/ -I/;/) .EXPORT : INCLUDE @@ -134,13 +134,13 @@ $(MISC)$/%.unpack : $(PRJ)$/download$/%.tar.Z $(MISC)$/%.unpack : $(PRJ)$/download$/%.tar.gz @-$(RM) $@ - @noop $(assign UNPACKCMD := gzip -d -c $(BACK_PATH)$(fake_back)download$/$(TARFILE_NAME).tar.gz $(TARFILE_FILTER) | $(TAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - ) + @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(BACK_PATH)$(fake_back)download$/$(TARFILE_NAME).tar.gz) $(TARFILE_FILTER) | $(TAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - ) @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ $(MISC)$/%.unpack : $(PRJ)$/download$/%.tgz @-$(RM) $@ - @noop $(assign UNPACKCMD := gzip -d -c $(BACK_PATH)$(fake_back)download$/$(TARFILE_NAME).tgz $(TARFILE_FILTER) | $(TAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - ) + @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(BACK_PATH)$(fake_back)download$/$(TARFILE_NAME).tgz) $(TARFILE_FILTER) | $(TAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - ) @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ @@ -171,7 +171,7 @@ $(PACKAGE_DIR)$/$(UNTAR_FLAG_FILE) : $(PRJ)$/$(ROUT)$/misc$/$(TARFILE_NAME).unpa $(IFEXIST) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR) $(THEN) $(RENAME:s/+//) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)_removeme $(FI) -rm -rf $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)_removeme @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) - cd $(PACKAGE_DIR)$(fake_root_dir) && ( $(shell @$(TYPE) $(PRJ)$/$(ROUT)$/misc$/$(TARFILE_NAME).unpack)) && $(TOUCH) $(UNTAR_FLAG_FILE) + cd $(PACKAGE_DIR)$(fake_root_dir) && ( $(shell $(TYPE) $(PRJ)$/$(ROUT)$/misc$/$(TARFILE_NAME).unpack)) && $(TOUCH) $(UNTAR_FLAG_FILE) @echo make writeable... .IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt" @cd $(PACKAGE_DIR) && chmod -R +rw $(TARFILE_ROOTDIR) && $(TOUCH) $(UNTAR_FLAG_FILE) @@ -293,7 +293,7 @@ $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE) : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) @-$(MKDIR) $(foreach,i,$(OUTDIR2INC) $(INCCOM)$/$(i:b)) @echo copied $(foreach,i,$(OUTDIR2INC) $(shell @$(COPY) $(COPYRECURSE) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/$i$/* $(INCCOM)$/$(i:b) >& $(NULLDEV) && echo $i)) .ELSE # "$(USE_SHELL)"=="4nt" - $(COPY) $(COPYRECURSE) $(foreach,i,$(OUTDIR2INC) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/$i) $(INCCOM) + $(COPY) $(DEREFERENCE) $(COPYRECURSE) $(foreach,i,$(OUTDIR2INC) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/$i) $(INCCOM) .ENDIF # "$(USE_SHELL)"=="4nt" .ENDIF # "$(OUTDIR2INC)"!="" .IF "$(OUT2BIN)"!="" diff --git a/solenv/inc/tg_shl.mk b/solenv/inc/tg_shl.mk index 327e205c22f8..3940f4e1311e 100644 --- a/solenv/inc/tg_shl.mk +++ b/solenv/inc/tg_shl.mk @@ -329,24 +329,21 @@ $(SHL$(TNR)TARGETN) : \ .ENDIF # "$(USE_SHELL)"=="4nt" .ENDIF # "$(SHL$(TNR)ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def -.IF "$(DEFLIB$(TNR)NAME)"!="" # do not have to include objs @echo dlltool --input-def $(SHL$(TNR)DEF) \ --dllname $(SHL$(TNR)TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o > $(MISC)$/$(TARGET).$(@:b)_$(TNR).cmd + --kill-at \\ > $(MISC)$/$(TARGET).$(@:b)_$(TNR).cmd +.IF "$(DEFLIB$(TNR)NAME)"!="" # do not have to include objs + @echo --output-exp $(MISC)$/$(@:b)_exp.o >> $(MISC)$/$(TARGET).$(@:b)_$(TNR).cmd .ELSE # "$(DEFLIB$(TNR)NAME)"!="" # do not have to include objs - @echo dlltool --input-def $(SHL$(TNR)DEF) \ - --dllname $(SHL$(TNR)TARGET)$(DLLPOST) \ - --kill-at \ - --output-exp $(MISC)$/$(@:b)_exp.o \ + @echo --output-exp $(MISC)$/$(@:b)_exp.o \ $(STDOBJ) $(SHL$(TNR)OBJS) $(SHL$(TNR)LINKRESO) \ - `$(TYPE) /dev/null $(SHL$(TNR)LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` > $(MISC)$/$(TARGET).$(@:b)_$(TNR).cmd + `$(TYPE) /dev/null $(SHL$(TNR)LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` >> $(MISC)$/$(TARGET).$(@:b)_$(TNR).cmd .ENDIF # "$(DEFLIB$(TNR)NAME)"!="" - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -o$@ \ + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ $(STDOBJ) $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ) $(SHL$(TNR)OBJS) $(SHL$(TNR)LINKRESO) \ `$(TYPE) /dev/null $(SHL$(TNR)LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ - -Wl,--exclude-libs,ALL $(SHL$(TNR)STDLIBS) $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ - $(MISC)$/$(@:b)_exp.o \ + -Wl,--exclude-libs,ALL,--start-group $(SHL$(TNR)STDLIBS) -Wl,--end-group \ + $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) $(MISC)$/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ -Wl,-Map,$(MISC)$/$(@:b).map >> $(MISC)$/$(TARGET).$(@:b)_$(TNR).cmd @$(TYPE) $(MISC)$/$(TARGET).$(@:b)_$(TNR).cmd @+source $(MISC)$/$(TARGET).$(@:b)_$(TNR).cmd diff --git a/solenv/inc/unitools.mk b/solenv/inc/unitools.mk index 052e4c7d61de..1a684330aa54 100644 --- a/solenv/inc/unitools.mk +++ b/solenv/inc/unitools.mk @@ -128,6 +128,7 @@ CDD=cd # expect cygwin tools to exist COPY*=cp COPYRECURSE=-r +DEREFERENCE=-L COPYUPDATE=-u ECHON=echo -n ECHONL=echo @@ -179,16 +180,22 @@ PERL*=perl TYPE=cat CDD=cd COPY=cp -f +.IF "$(OS)"=="MACOSX" +COPYRECURSE=-R +.ELSE #"$(OS)"=="MACOSX" COPYRECURSE=-r +.ENDIF .IF "$(OS)"=="SOLARIS" AWK*=nawk GNUCOPY*=gnucp GNUPATCH*=gnupatch GNUTAR*=gtar +DEREFERENCE= .ELSE # "$(OS)"=="SOLARIS" AWK*=awk GNUCOPY*=cp GNUPATCH*=patch +DEREFERENCE=-L .ENDIF # "$(OS)"=="SOLARIS" .IF "$(OS)"=="LINUX" || "$(OS)"=="MACOSX" GNUMAKE*=make diff --git a/solenv/inc/unxsoli4.mk b/solenv/inc/unxsoli4.mk index 4567453f29d0..979a2c82671f 100644 --- a/solenv/inc/unxsoli4.mk +++ b/solenv/inc/unxsoli4.mk @@ -72,7 +72,7 @@ CFLAGSSLOCUIMT=-KPIC -mt CFLAGSPROF=-xpg CFLAGSDEBUG=-g CFLAGSDBGUTIL= -CFLAGSOPT=-xarch=generic -xO3 -xspace +CFLAGSOPT=-xarch=generic -xO3 CFLAGSNOOPT= CFLAGSOUTOBJ=-o diff --git a/solenv/inc/wntgcci6.mk b/solenv/inc/wntgcci6.mk index 28c16561d89f..9186ea9cc826 100644 --- a/solenv/inc/wntgcci6.mk +++ b/solenv/inc/wntgcci6.mk @@ -81,7 +81,10 @@ CFLAGSNOOPT=-O0 # Compiler flags for describing the output path CFLAGSOUTOBJ=-o #plattform hart setzen -CDEFS+=-DWIN32 -DWINVER=0x500 -D_WIN32_IE=0x500 -D_DLL -D_M_IX86 -DSTLPORT_VERSION=450 -D_NATIVE_WCHAR_T_DEFINED +CDEFS+=-DWIN32 -DWINVER=0x500 -D_WIN32_IE=0x500 -D_M_IX86 -DSTLPORT_VERSION=450 -D_NATIVE_WCHAR_T_DEFINED +.IF "$(DYNAMIC_CRT)"!="" +CDEFS+=-D_DLL +.ENDIF # -Wshadow does not work for C with nested uses of pthread_cleanup_push: CFLAGSWARNCC=-Wall -Wextra -Wendif-labels @@ -117,6 +120,8 @@ MINGWLIBDIR=$(COMPATH)$/lib$/mingw .ELSE MINGWLIBDIR=$(COMPATH)$/lib .ENDIF +MINGWSSTDOBJ=$(MINGW_CLIB_DIR)$/crtbegin.o +MINGWSSTDENDOBJ=$(MINGW_CLIB_DIR)$/crtend.o LINKFLAGSAPPGUI=-mwindows $(MINGWLIBDIR)$/crt2.o LINKFLAGSSHLGUI=--warn-once -mwindows -shared $(MINGWLIBDIR)$/dllcrt2.o LINKFLAGSAPPCUI=-mconsole $(MINGWLIBDIR)$/crt2.o @@ -126,19 +131,33 @@ LINKFLAGSPROF= LINKFLAGSDEBUG=-g LINKFLAGSOPT= +.IF "$(MINGW_SHARED_GXXLIB)"=="YES" && "$(DYNAMIC_CRT)"!="" +STDLIBCPP=-lstdc++_s +.ELSE STDLIBCPP=-lstdc++ +.ENDIF UWINAPILIB*=$(DYNAMIC) -luwinapi +.IF "$(MINGW_SHARED_GCCLIB)"=="YES" && "$(DYNAMIC_CRT)"!="" +MINGW_LIBGCC=-lgcc_s -lgcc +LINKFLAGS+=-shared-libgcc +.ELSE +.IF "$(MINGW_GCCLIB_EH)"=="YES" +MINGW_LIBGCC=-lgcc_eh -lgcc +.ELSE +MINGW_LIBGCC=-lgcc +.ENDIF +.ENDIF STDOBJVCL=$(L)$/salmain.obj STDOBJGUI= STDSLOGUI= STDOBJCUI= STDSLOCUI= -STDLIBGUIMT=-Wl,--start-group CPPRUNTIME -lgcc -STDLIBCUIMT=-Wl,--start-group CPPRUNTIME -lgcc -STDSHLGUIMT=-Wl,--start-group CPPRUNTIME -lgcc -STDSHLCUIMT=-Wl,--start-group CPPRUNTIME -lgcc -.IF "$(MINGW_NODLL)"=="" +STDLIBGUIMT=-Wl,--start-group CPPRUNTIME $(MINGW_LIBGCC) +STDLIBCUIMT=-Wl,--start-group CPPRUNTIME $(MINGW_LIBGCC) +STDSHLGUIMT=-Wl,--start-group CPPRUNTIME $(MINGW_LIBGCC) +STDSHLCUIMT=-Wl,--start-group CPPRUNTIME $(MINGW_LIBGCC) +.IF "$(DYNAMIC_CRT)"!="" STDLIBGUIMT+=-lmingwthrd STDLIBCUIMT+=-lmingwthrd STDSHLGUIMT+=-lmingwthrd @@ -150,7 +169,7 @@ STDSHLGUIMT+=-lmingw32 -lmoldname -lmingwex -Wl,--end-group $(UWINAPILIB) -lm -l STDSHLCUIMT+=-lmingw32 -lmoldname -lmingwex -Wl,--end-group $(UWINAPILIB) -lm -lkernel32 -luser32 -lmsvcrt LIBSTLPORT=-lstlport_gcc -LIBSTLPORTST=-lstlport_gcc_static +LIBSTLPORTST=-lstlport_gcc_static $(STDLIBCPP) LIBMGR=ar LIBFLAGS=-rsu diff --git a/soltools/cpp/_tokens.c b/soltools/cpp/_tokens.c index 77c8bb4384ec..863de2fbef02 100644 --- a/soltools/cpp/_tokens.c +++ b/soltools/cpp/_tokens.c @@ -473,11 +473,13 @@ void if (wbp >= &wbuf[OBS]) { - write(1, wbuf, OBS); + if ( write(1, wbuf, OBS) != -1 ) { if (wbp > &wbuf[OBS]) memcpy(wbuf, wbuf + OBS, wbp - &wbuf[OBS]); wbp -= OBS; } + else exit(1); + } } trp->tp = tp; if (cursource->fd == 0) @@ -489,8 +491,10 @@ void { if (wbp > wbuf) { - write(1, wbuf, wbp - wbuf); - wbp = wbuf; + if ( write(1, wbuf, wbp - wbuf) != -1) + wbp = wbuf; + else + exit(1); } } diff --git a/soltools/cpp/cpp.h b/soltools/cpp/cpp.h index df3070169aa6..da609dbe53c1 100644 --- a/soltools/cpp/cpp.h +++ b/soltools/cpp/cpp.h @@ -3,7 +3,7 @@ #define INS 32768 /* input buffer */ #define OBS 8092 /* outbut buffer */ #define NARG 32 /* Max number arguments to a macro */ -#define NINCLUDE 32 /* Max number of include directories (-I) */ +#define NINCLUDE 48 /* Max number of include directories (-I) */ #define NIF 64 /* depth of nesting of #if */ #define NINC 32 /* depth of nesting of #include */ diff --git a/stlport/STLport-4.0-sunstudio12u1.patch b/stlport/STLport-4.0-sunstudio12u1.patch new file mode 100644 index 000000000000..49d76abbd836 --- /dev/null +++ b/stlport/STLport-4.0-sunstudio12u1.patch @@ -0,0 +1,21 @@ +--- misc/STLport-4.0/stlport/config/stl_sunpro.h Mon Jul 6 13:43:35 2009 ++++ misc/build/STLport-4.0/stlport/config/stl_sunpro.h Mon Jul 6 13:56:56 2009 +@@ -31,7 +31,8 @@ + # endif + # endif + +-# if (__SUNPRO_CC < 0x600) ++// support SunStudio compiler 12u1 version 5.10 (which results in 0x5100) ++# if (__SUNPRO_CC < 0x600 || ((__SUNPRO_CC | 0x0FFF) > 0x0FFF && __SUNPRO_CC < 0x6000)) + // those are tested and proved not to work... + # define __STL_STATIC_ARRAY_BUG 1 + # define __STL_STATIC_CONST_INIT_BUG 1 +@@ -57,7 +58,7 @@ + # define __STL_NO_FRIEND_TEMPLATES 1 + #endif + +-# if (__SUNPRO_CC < 0x600) ++# if (__SUNPRO_CC < 0x600 || ((__SUNPRO_CC | 0x0FFF) > 0x0FFF && __SUNPRO_CC < 0x6000)) + # define __STL_HAS_NO_NEW_C_HEADERS 1 + # define __STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS + # define __STL_NON_TYPE_TMPL_PARAM_BUG 1 diff --git a/stlport/makefile.mk b/stlport/makefile.mk index 9689db5da3b6..ab4dfa244e72 100644 --- a/stlport/makefile.mk +++ b/stlport/makefile.mk @@ -77,7 +77,7 @@ $(INCCOM)$/stlport$/vector: systemstl$/$$(@:f) .ENDIF .ELSE TARFILE_NAME=STLport-4.0 - PATCH_FILES=STLport-4.0.patch + PATCH_FILES=STLport-4.0.patch STLport-4.0-sunstudio12u1.patch # To disable warnings from within STLport headers on unxsoli4 and # unxsols4, STLport-4.0.patch had to be extended mechanically by # |