Like in my previous plan, when cross-compiling we run the same
configure script separately for a native build configuration on the
build platform, in a temporary subdirectory.
Now use a fixed name "CONF-FOR-BUILD" for that subdirectory, so that
it is easy to edit out that path component from those build
environment variables that contain it.
Pass more of the native build environment variables up to the main
configure and propagate those to the build environment suffixed with
_FOR_BUILD: INPATH, OUTPATH OUTDIR, PATH, SOLARINC, SOLARLIB,
WORKDIR. Whether these all will actually be needed remains to be seen,
the set can be reduced later.
The environment setting file (*Env.Set.sh) for the native build is
copied here to the top directory under the name Env.Build.sh, and the
environment variables set in it that contain pathnames are modified to
point directly to this top directory, not the temporary CONF-FOR-BUILD
subdirectory.
When doing a cross-compiling build, we first do a build of the
necessary build-time tools for the build platform. This is done in the
same source tree. As the directories where build results are stored
include the platform specification (OUTPATH or in some cases INPATH),
there should be no clashes.
Don't run the download script from ./bootstrap(.1). We are running it
from Makefile already anyway often enough. This could also do with
some clean-up; the ./g -f clone phase is a bit slow, I am not sure if
it really is necessary every time? Also, we should not overwrite
ooo.lst if its contents isn't changing.
Use INPATH_FOR_BUILD in SOLARBINDIR so that the self-built tools like
idlc that we run are for the build platform, not the host
platform.
Attempt to get rid of the makefile.rc and makefile.mk files. Surely it
should be enough with just Makefile(.in) (and then GNUmakefile.mk for
its own so far special gbuild purposes). Instead of invoking dmake to
do "clean" or "distclean" from Makefile(.in), we already just do the
same directly in Makefile(.in). This way we don't need to first build
dmake in order to be able to do a make clean, which will then finally
clean out dmake again;)
Ideally I would like to get rid of bootstrap(.1), too. It should be
possible to merge its tasks into configure(.in) or Makefile(.in) as
appropriate.
And actually, maybe also what set_soenv(.in) does could well be merged
into configure(.in)?
Actually NSIS_PATH is crack, it is actually the *directory* where the
makensis program is located, so why not simply just have a variable
with the full pathname to that instead (or just the command name, in
case it is in the default PATH anyway, like on openSUSE with
/usr/bin/makensis)? That would simplify the stuff in download.pm, too.
Re-introduce the old --with-mingw option but now called
--with-mingw-cross-compiler. Its purpose is now specifically to give
the cross-compiler used when building the ODK, if Java is enabled, and
if building the unowinreg.dll. It has now nothing to do with
cross-compiling LibreOffice itself.
Correspondingly, the WITH_MINGW variable now has meaning only when
building LibreOffice for Windows: If using MinGW, whether natively on
Windows itself (which we as such don't intend to support, I hope), or
cross-compiling, it is set to "yes".
Automate and simplify the search for the MinGW cross-compiler when
intending to build unowinreg.dll on Unix.
Look for the usual tool-chain tools ar, nm, objdump, pkg-config,
ranlib, strip, and for Windows alto dlltool and windres using
AC_CHECK_TOOL so that the proper cross tools are found when
needed. Propagate to environment. As such these are not used except in
the MinGW mk files so far.
Other minor cleanups.
When looking for the db,h header, use Autoconf mechanisms instead of
manual checks in hardcoded directories. So yeah, this means that you
need to make sure the correct -I flag is passed if you have db
installed in a weird place where the compiler doesn't find it.
Use checks that require only compiling, not running code. Nice.
Don't AC_SUBST variables that are not used.
AC_SUBST also EXEEXT_FOR_BUILD and use that in Makefile.in.
As winemv.set.sh is now called WindowsMSVCEnv.Set.sh, with capital E
and S like all the others, we can simplify the glob pattern for the
Set.sh file.
Don't attempt to download and/or run unpackers for dependencies
relevant only when using MSVC if using MinGW.
Misc other Windows host vs. build fixes.
Still a long way from working, of course.
The configure script now runs to finish on Linux with --host=mingw32.
It is no longer an error if Windows SDK or DirectX SDK are not found
by the logic in the configure script. It might well be that the user
has included relevant -I and -L flags in CC or CXX that makes the
compilations work anyway, or something. We should not try to be too
clever and try to predict how the compiler or linker work in the
configure script.
We now define the FOO_FOR_BUILD environment variables in set_soenv.in
even when not cross-compiling (identically as the plain FOO ones in
that case, obviously). This should make some makefiles and stuff that
build tools to run on the build host a bit simpler.
In a from-scratch build, when running the configure script, which then
runs the set_soenv script, the default_images symlink (that is passed
to this function in the form of a Windows path, for some reason) does
not exist yet, and realpath fails anyway. So don't bother calling
realpath on Windows paths.
Although I don't know whether it then will cause a problem that the
cygpath -m call won't be able to expand the symlink as it doesn't
exist anyway. This is a mess. And if cygpath -m expands symlinks
anyway, why is the realpath needed at all?
* Fix configure and download support
* Extension naming scheme is: <md5>-<extension-name>_<version>.oxt
- Renamed extensions
* Rename extension version number in download script and scp2 module
Signed-off-by: Fridrich Štrba <fridrich.strba@bluewin.ch>
Don't confuse the 64-bit Explorer extension with a 64-bit LibreOffice,
which is unfinished and highly experimental work. OOo has been
building and distributing a 64-bit Explorer extension since long, and
we should too. They used some secret Hamburg sauce when building it,
though, but hopefully now it works here, too.
* Fix configure and download support
* Extension naming scheme is: <md5>-<extension-name>_<version>.oxt
- Renamed extensions
* Rename extension version number in download script and scp2 module
In a from-scratch build, when running the configure script, which then
runs the set_soenv script, the default_images symlink (that is passed
to this function in the form of a Windows path, for some reason) does
not exist yet, and realpath fails anyway. So don't bother calling
realpath on Windows paths.
Although I don't know whether it then will cause a problem that the
cygpath -m call won't be able to expand the symlink as it doesn't
exist anyway. This is a mess. And if cygpath -m expands symlinks
anyway, why is the realpath needed at all?
This is to allow use of ccache by specifying something like:
export CC="ccache C:/path/to/cl.exe"
export CXX="ccache C:/patch/to/cl.exe"
before running ./autogen.sh
Solaris 11 has JDK with no libmawt.so in motif21 directory, so breaks in bean;
the libmawt.so in headless does not work, so use the xawt directory instead.
xawt/libmawt.so seems to exist in JDKs since 1.5.0.
1. Do not add compiler default include and library path: potentially build
against different version of system library than requested by the user.
2. Add a configure option to disable Python2 (PyUNO) bindings. Python3 is
available for more than two years. Noone cares, therefore rest in peace.
Python2 is going to be ditched at some point. Simply do not fail then.
Windows builds need to be updated for BUILD_TYPE: "PYUNO". Or how is it
handled nowadays?
3. Fix sandbox violation in officecfg module: rm /bin/<language>.zip
4. Add a configure option to search only in one place for JVMs, which is quite
interesting for Linux Distributions. Enforce the user to place JVMs in one
base directory.
5. Fix build for libxml-2.7.8 with ICU support.
* config_office-XINC-XLIB-defaults.diff: (1)
* disable-python.diff: (2)
* gentoo-sandbox.diff: (3)
* jvm-search-path.diff: (4)
* libxmlsec_fix_extern_c.diff: (5)
When JAVA_HOME is empty or "NO_JAVA_HOME" don't use such paths in ILIB
or SOLARINC. Use $INCLUDE consistently everywhere instead of
$ds."include". Avoid duplicating the DirectX include in SOLARINC.
* configure.in: Look for the x64 assembler ml64.exe when building 64-bit
binaries, not ml.exe. Use the 64-bit tools in VC/bin/amd64, not
the 32-bit cross-compiling tools in VC/bin/x86_amd64. We can
currently build 64-bit only on a 64-bit OS anyway, for instance
because of the unit tests.
* set_soenv.in: Set CPUNAME, CPU and OUTPATH appropriately for
64-bit build. We end up with "wntsmcx12" for 64-bit MSVC 2008
build. Drop sections for no longer supported MSVC versions. Don't
talk about ".NET 2005" etc, ".NET" was part of the MS suite product
name only in the 2003 version. Add Emacs and vim mode lines.
I guess that nobody uses more alternative branding pictures. It was implemented
for SLED10-GM and it is not longer needed there. So I renamed:
--with-intro-bitmaps to --with-intro-bitmap
--with-about-bitmaps to --with-about-bitmap
and
INTRO_BITMAPS to INTRO_BITMAPS
ABOUT_BITMAPS to ABOUT_BITMAP
Also .png file format is requred instead of .bmp now.
Signed off by KAMI.
DOH, here comes v3, I left a debug output in configure.in in v2, otherwise no change. Sorry
Sebastian
>From 6c379488250f5a3349dfc2d805f70a0f084fe07d Mon Sep 17 00:00:00 2001
From: Sebastian Spaeth <Sebastian@SSpaeth.de>
Date: Thu, 9 Dec 2010 12:23:55 +0100
Subject: [PATCHv3] Introduce an --enable-theme="theme1 theme2..." option
By default, we include all defaults as before, but if given, we can
limit the number of included themes with e.g. --enable-theme="oxygen
tango". This is passed through set_soenv and sets the environment
variable ENABLE_THEMES="...." which can be used by the packimages
makefile in the postprocess repository. It also adds defines in the
form of THEME_OXYGEN that are being used in the scp2 module to decide
if we should install the theme file or not.
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
DOH, here comes v3, I left a debug output in configure.in in v2, otherwise no change. Sorry
Sebastian
>From 6c379488250f5a3349dfc2d805f70a0f084fe07d Mon Sep 17 00:00:00 2001
From: Sebastian Spaeth <Sebastian@SSpaeth.de>
Date: Thu, 9 Dec 2010 12:23:55 +0100
Subject: [PATCHv3] Introduce an --enable-theme="theme1 theme2..." option
By default, we include all defaults as before, but if given, we can
limit the number of included themes with e.g. --enable-theme="oxygen
tango". This is passed through set_soenv and sets the environment
variable ENABLE_THEMES="...." which can be used by the packimages
makefile in the postprocess repository. It also adds defines in the
form of THEME_OXYGEN that are being used in the scp2 module to decide
if we should install the theme file or not.
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* adds --with-linked-git config option, that internally uses
git-new-workdir
* consolidates various repo lists into bin/repo-list, and use
that to dynamically add l10n repo
This silences the new "Unknown type!" error messages at the end of a
./configure run.
This should not make any functional difference, as the support for
those in ToFile was already missing.