2010-11-11 01:42:52 -06:00
|
|
|
# @configure_input@
|
2010-08-18 10:48:07 -05:00
|
|
|
|
2010-12-07 03:30:05 -06:00
|
|
|
SHELL=/usr/bin/env bash
|
2010-08-18 10:48:07 -05:00
|
|
|
|
2011-01-10 01:05:38 -06:00
|
|
|
ifeq ($(USE_GMAKE),)
|
|
|
|
GBUILD_OPT:=
|
|
|
|
else
|
|
|
|
GBUILD_OPT:=--gmake
|
|
|
|
endif
|
|
|
|
|
Rehash of cross-compilation ideas
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)?
2011-06-04 06:59:34 -05:00
|
|
|
ifeq (@CROSS_COMPILING@,YES)
|
|
|
|
all: Makefile dmake/dmake@EXEEXT_FOR_BUILD@ src.downloaded cross-build-toolset
|
|
|
|
else
|
2011-05-27 13:39:04 -05:00
|
|
|
all: Makefile dmake/dmake@EXEEXT_FOR_BUILD@ src.downloaded
|
Rehash of cross-compilation ideas
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)?
2011-06-04 06:59:34 -05:00
|
|
|
endif
|
2011-05-16 18:22:19 -05:00
|
|
|
@. ./*Env.Set.sh && \
|
2010-11-11 01:42:52 -06:00
|
|
|
cd instsetoo_native && \
|
2011-01-10 01:05:38 -06:00
|
|
|
build.pl $(GBUILD_OPT) -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@
|
2010-08-18 10:48:07 -05:00
|
|
|
|
Rehash of cross-compilation ideas
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)?
2011-06-04 06:59:34 -05:00
|
|
|
ifeq (@CROSS_COMPILING@,YES)
|
|
|
|
cross-build-toolset:
|
2011-06-11 17:21:44 -05:00
|
|
|
# Build necessary modules for the *build* platform, i.e. those needed
|
|
|
|
# by tools run at build time. Sure, in many of these modules only a
|
|
|
|
# part of the produced binaries are actually used then in the build.
|
|
|
|
# Once everything is handled by gbuild, this can hopefully be streamlined.
|
Rehash of cross-compilation ideas
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)?
2011-06-04 06:59:34 -05:00
|
|
|
. ./Env.Build.sh && \
|
2011-06-11 17:21:44 -05:00
|
|
|
for D in \
|
|
|
|
solenv \
|
|
|
|
soltools \
|
|
|
|
boost \
|
|
|
|
external \
|
|
|
|
cppunit \
|
|
|
|
xml2cmp \
|
2011-06-16 19:04:47 -05:00
|
|
|
lucene \
|
2011-06-11 17:21:44 -05:00
|
|
|
sal \
|
|
|
|
cosv \
|
|
|
|
udm \
|
|
|
|
autodoc \
|
|
|
|
store \
|
|
|
|
salhelper \
|
|
|
|
registry \
|
|
|
|
idlc \
|
|
|
|
icu \
|
2011-06-30 14:11:08 -05:00
|
|
|
codemaker \
|
2011-06-11 17:21:44 -05:00
|
|
|
udkapi \
|
|
|
|
expat \
|
|
|
|
libxml2 \
|
|
|
|
xml2cmp \
|
|
|
|
libxslt \
|
|
|
|
offapi \
|
|
|
|
oovbaapi \
|
|
|
|
cppu \
|
|
|
|
cppuhelper \
|
|
|
|
rdbmaker \
|
|
|
|
cpputools \
|
|
|
|
xmlreader \
|
|
|
|
i18nutil \
|
|
|
|
ridljar \
|
|
|
|
jurt \
|
|
|
|
jvmaccess \
|
|
|
|
bridges \
|
|
|
|
ucbhelper \
|
2011-06-18 14:00:54 -05:00
|
|
|
comphelper \
|
2011-06-11 17:21:44 -05:00
|
|
|
jvmfwk \
|
|
|
|
regexp \
|
2011-06-16 19:04:47 -05:00
|
|
|
berkeleydb \
|
2011-06-12 08:00:11 -05:00
|
|
|
sax \
|
|
|
|
stoc \
|
2011-06-11 17:21:44 -05:00
|
|
|
i18npool \
|
|
|
|
unodevtools \
|
|
|
|
gettext \
|
2011-06-11 17:36:35 -05:00
|
|
|
dictionaries \
|
|
|
|
o3tl \
|
|
|
|
basegfx \
|
2011-06-18 14:00:54 -05:00
|
|
|
tools \
|
2011-06-16 17:23:31 -05:00
|
|
|
idl \
|
2011-06-16 19:04:47 -05:00
|
|
|
l10ntools \
|
2011-06-12 11:23:29 -05:00
|
|
|
rsc \
|
2011-06-15 18:38:03 -05:00
|
|
|
setup_native \
|
2011-06-20 18:49:02 -05:00
|
|
|
icc \
|
|
|
|
unoil \
|
2011-06-24 06:54:09 -05:00
|
|
|
javaunohelper \
|
|
|
|
unotools \
|
2011-06-24 08:26:55 -05:00
|
|
|
xmlhelp \
|
|
|
|
shell; do \
|
2011-06-18 14:00:54 -05:00
|
|
|
if grep -q gb_Module_add_targets $$D/Module_$$D.mk 2>/dev/null; then \
|
2011-06-20 13:35:32 -05:00
|
|
|
(cd $$D && make -sr -j@BUILD_MAX_JOBS@) \
|
2011-06-18 14:00:54 -05:00
|
|
|
else \
|
2011-06-12 08:00:11 -05:00
|
|
|
(cd $$D && build.pl $(GBUILD_OPT) -P@BUILD_NCPUS@ -- -P@BUILD_MAX_JOBS@ && deliver.pl) \
|
2011-06-18 14:00:54 -05:00
|
|
|
fi; \
|
2011-06-11 17:21:44 -05:00
|
|
|
done
|
Rehash of cross-compilation ideas
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)?
2011-06-04 06:59:34 -05:00
|
|
|
endif
|
|
|
|
|
2010-12-01 03:47:46 -06:00
|
|
|
install:
|
2011-05-16 18:22:19 -05:00
|
|
|
@. ./*Env.Set.sh && \
|
2011-06-05 02:02:36 -05:00
|
|
|
echo "Installing in $${prefix:-@prefix@}..." && \
|
|
|
|
ooinstall "$${prefix:-@prefix@}" && \
|
2010-12-01 03:47:46 -06:00
|
|
|
echo "" && \
|
|
|
|
echo "Installation finished, you can now execute:" && \
|
2011-06-05 02:02:36 -05:00
|
|
|
echo "$${prefix:-@prefix@}/program/soffice"
|
2010-09-16 13:40:40 -05:00
|
|
|
|
2010-08-20 09:43:34 -05:00
|
|
|
dev-install:
|
2011-05-16 18:22:19 -05:00
|
|
|
@. ./*Env.Set.sh && \
|
2011-05-23 04:22:39 -05:00
|
|
|
cd smoketestoo_native && \
|
2011-05-25 03:23:06 -05:00
|
|
|
export SAL_USE_VCLPLUGIN="svp" && \
|
2011-05-23 04:22:39 -05:00
|
|
|
build.pl $(GBUILD_OPT) -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@ && \
|
2011-05-25 16:53:06 -05:00
|
|
|
cd @abs_builddir@ && ln -s $$SOLARVER/$$INPATH/installation/opt/ install && \
|
2011-05-23 04:22:39 -05:00
|
|
|
echo "" && \
|
2011-05-31 18:27:25 -05:00
|
|
|
echo "Developer installation finished, you can now execute:"
|
|
|
|
@if test `uname -s` = Darwin; then \
|
|
|
|
echo open install/LibreOffice.app; \
|
|
|
|
else \
|
2011-06-05 02:02:36 -05:00
|
|
|
echo "cd @abs_builddir@/install/program" && \
|
2011-06-22 07:07:41 -05:00
|
|
|
echo ". ./ooenv" && \
|
2011-05-31 18:27:25 -05:00
|
|
|
echo "./soffice.bin"; \
|
|
|
|
fi
|
2010-12-01 03:47:46 -06:00
|
|
|
|
Rehash of cross-compilation ideas
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)?
2011-06-04 06:59:34 -05:00
|
|
|
distclean:
|
|
|
|
-rm config.cache
|
|
|
|
-rm config.log
|
|
|
|
ifeq (@BUILD_DMAKE@,YES)
|
|
|
|
-$(GNUMAKE) -C dmake distclean
|
|
|
|
endif
|
2010-12-01 03:47:46 -06:00
|
|
|
|
Rehash of cross-compilation ideas
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)?
2011-06-04 06:59:34 -05:00
|
|
|
clean:
|
|
|
|
. ./*Env.Set.sh && \
|
|
|
|
rm -rf */$$INPATH && \
|
|
|
|
rm -rf solver/*/$$INPATH && \
|
2011-06-18 14:22:08 -05:00
|
|
|
rm -rf install
|
2011-06-18 14:09:42 -05:00
|
|
|
ifeq (@BUILD_DMAKE@,YES)
|
2011-06-18 14:22:08 -05:00
|
|
|
. ./*Env.Set.sh && \
|
2011-06-18 14:40:37 -05:00
|
|
|
(if [ -f dmake/Makefile ] ; then $$GNUMAKE -C dmake clean; fi) && \
|
2011-06-18 14:22:08 -05:00
|
|
|
rm -f solenv/*/bin/dmake*
|
2011-06-18 14:09:42 -05:00
|
|
|
endif
|
Rehash of cross-compilation ideas
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)?
2011-06-04 06:59:34 -05:00
|
|
|
ifeq (@CROSS_COMPILING@,YES)
|
|
|
|
. ./*Env.Set.sh && \
|
|
|
|
rm -rf */$$INPATH_FOR_BUILD && \
|
|
|
|
rm -rf solver/*/$$INPATH_FOR_BUILD
|
|
|
|
endif
|
2010-12-01 03:47:46 -06:00
|
|
|
|
2011-05-16 18:22:19 -05:00
|
|
|
dmake/dmake@EXEEXT_FOR_BUILD@:
|
Rehash of cross-compilation ideas
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)?
2011-06-04 06:59:34 -05:00
|
|
|
./bootstrap
|
2010-12-02 04:47:13 -06:00
|
|
|
|
2011-01-08 11:45:25 -06:00
|
|
|
src.downloaded: ooo.lst download
|
2011-06-15 05:51:41 -05:00
|
|
|
ifeq (@DO_FETCH_TARBALLS@,YES)
|
2011-05-16 18:22:19 -05:00
|
|
|
@. ./*Env.Set.sh && \
|
2010-12-02 04:47:13 -06:00
|
|
|
$$SRC_ROOT/download $$SRC_ROOT/ooo.lst && touch $@
|
2011-06-15 05:51:41 -05:00
|
|
|
else
|
2011-06-16 00:08:35 -05:00
|
|
|
@echo "Automatic fetching of external tarballs is disabled."
|
2011-06-15 05:51:41 -05:00
|
|
|
endif
|
2010-12-02 04:47:13 -06:00
|
|
|
|
2011-01-08 11:45:25 -06:00
|
|
|
fetch: src.downloaded
|
2010-12-02 08:06:21 -06:00
|
|
|
|
2011-07-08 05:04:43 -05:00
|
|
|
Makefile: configure.in ooo.lst.in set_soenv.in Makefile.in
|
2010-12-16 04:17:30 -06:00
|
|
|
./autogen.sh
|
|
|
|
|
2011-05-16 18:22:19 -05:00
|
|
|
check: Makefile dmake/dmake@EXEEXT_FOR_BUILD@ fetch
|
|
|
|
@. ./*Env.Set.sh && \
|
2010-12-02 08:06:21 -06:00
|
|
|
cd smoketestoo_native && \
|
|
|
|
export SAL_USE_VCLPLUGIN="svp" && \
|
2011-01-10 01:05:38 -06:00
|
|
|
build.pl $(GBUILD_OPT) -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@
|
2011-05-24 09:33:07 -05:00
|
|
|
@. ./*Env.Set.sh && $$SOLARENV/bin/subsequenttests
|
2010-12-13 15:47:09 -06:00
|
|
|
|
|
|
|
id:
|
2011-05-16 18:22:19 -05:00
|
|
|
@. ./*Env.Set.sh && \
|
2010-12-13 15:47:09 -06:00
|
|
|
create-ids
|
|
|
|
|
|
|
|
tags:
|
2011-05-16 18:22:19 -05:00
|
|
|
@. ./*Env.Set.sh && \
|
2010-12-13 15:47:09 -06:00
|
|
|
create-tags
|
|
|
|
|
|
|
|
docs:
|
2011-05-16 18:22:19 -05:00
|
|
|
@. ./*Env.Set.sh && \
|
2010-12-13 15:47:09 -06:00
|
|
|
mkdocs.sh $$SRC_ROOT/docs $$SOLARENV/inc/doxygen.cfg
|
2011-06-16 03:11:06 -05:00
|
|
|
|
|
|
|
findunusedcode:
|
|
|
|
# experimental callcatcher target
|
|
|
|
# http://www.skynet.ie/~caolan/Packages/callcatcher.html
|
|
|
|
@which callcatcher > /dev/null 2>&1 || \
|
2011-06-30 05:01:43 -05:00
|
|
|
(echo "callcatcher not installed" && false)
|
2011-06-16 03:11:06 -05:00
|
|
|
@. ./*Env.Set.sh && \
|
2011-06-30 05:01:43 -05:00
|
|
|
source <(sed -e s,$$INPATH,callcatcher,g ./*Env.Set.sh) && \
|
|
|
|
. ./solenv/bin/callcatchEnv.Set.sh && \
|
|
|
|
cd instsetoo_native && \
|
|
|
|
build.pl $(GBUILD_OPT) --all
|
2011-06-16 03:11:06 -05:00
|
|
|
@. ./*Env.Set.sh && \
|
2011-06-30 05:01:43 -05:00
|
|
|
source <(sed -e s,$$INPATH,callcatcher,g ./*Env.Set.sh) && \
|
|
|
|
callanalyse \
|
2011-07-08 18:07:23 -05:00
|
|
|
$$WORKDIR/LinkTarget/*/* \
|
2011-06-30 05:01:43 -05:00
|
|
|
*/$$OUTPATH/bin/* \
|
2011-07-10 16:39:49 -05:00
|
|
|
*/$$OUTPATH/lib/* > unusedcode.all
|
|
|
|
#because non-c++ symbols could be dlsymed lets make a list of class level
|
|
|
|
#unused methods which don't require much effort to determine if they need
|
|
|
|
#to be just removed, or put behind appropiate platform or debug level ifdefs
|
2011-07-14 15:16:03 -05:00
|
|
|
@grep ::.*\( unusedcode.all | grep -v cppu::bootstrap > unusedcode.easy
|