1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-27 03:21:53 +03:00
Commit Graph

56 Commits

Author SHA1 Message Date
Andrew Tridgell
ccbb77693c waf: separate out get_tgt_list()
this is a useful function for the new symbols code, so separate it out
of samba_deps.py

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-30 23:49:00 +11:00
Andrew Tridgell
e97be0860b waf: display the paths in library loops
when we detect a library loop, try to display the paths between the
two libraries. This should make it easier to fix.

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-30 23:49:00 +11:00
Andrew Tridgell
a06192b33b waf: sped up the project rules checking
this also makes the --show-duplicates output more useful

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Oct 27 01:36:46 UTC 2010 on sn-devel-104
2010-10-27 01:36:46 +00:00
Andrew Tridgell
afe40c7ecc waf: quote subsystem names to make them clearer 2010-10-26 23:40:04 +00:00
Andrew Tridgell
dc729c62ea waf: loosen the restriction on depending on python libs
the pidl generated python code can generate dependencies between two
python modules, so we have to allow this for now
2010-10-21 19:03:27 +11:00
Andrew Tridgell
0966776b36 waf: fixed the handling of -Wl,-no-undefined
this flag was not being propogated to our link rules, so we were not
in fact enforcing no undefined symbols in libraries.
2010-10-21 19:03:27 +11:00
Andrew Tridgell
51dc322f63 waf: show duplicate objects in python modules as well as libraries
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-21 19:03:26 +11:00
Andrew Tridgell
7a2cad43df waf: raise an error on a dependency on a python module
it is never correct to list a dependency on a python module

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-21 19:03:26 +11:00
Andrew Tridgell
6f36a015b1 waf: prevent the global deps list creating depenency loops
this prevents a loop between SOCKET_WRAPPER and replace in the s3 waf
build
2010-10-21 19:03:25 +11:00
Andrew Tridgell
1d8733537e waf: added the concept of a grouping_library
a grouping library is one which 'groups' a set of subsystems. This
means that if a target depends on a subsystem that is within a
grouping library then that dependency is replaced with a dependency on
the grouping library.

This gives us a powerful method to avoid duplicated object files
between libraries.

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-21 19:03:24 +11:00
Andrew Tridgell
e596a4e6c3 waf: fixed expansion of direct_objects and direct_libs
these do not need to be expanded in break_dependency_loops()
2010-10-21 19:03:23 +11:00
Andrew Tridgell
c0878cfb61 waf: rework expand_subsystem_deps()
make the variable names a lot clearer, and restrict the expansion of
subsystem deps to object style subsystems and modules. If a subsystem
or a module is built as a library then we don't need to expand the
dependencies across that boundary

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-21 19:03:23 +11:00
Andrew Tridgell
14081efcc0 waf: added --show-deps and --show-duplicates
these options make it easier to examine our depenency tree, by showing
any objects linked into more than one library, and by showing the
dependency tree for a chosen target
2010-10-21 19:03:23 +11:00
Andrew Tridgell
1b8355897d waf: don't save deps on install
this prevents an install triggering a new check of the project rules
on the next build
2010-10-19 11:22:35 +11:00
Andrew Tridgell
3921d6f4d3 s4-waf: automatically remove stale C and header files
this prevents stale .c and .h files in bin/ from causing build
problems

Thanks to Thomas Nagy for the example implementation!

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Thu Oct 14 07:44:13 UTC 2010 on sn-devel-104
2010-10-14 07:44:13 +00:00
Jelmer Vernooij
870de461cb wafsamba: Don't allow circular dependencies involving libraries by
default.
2010-10-13 14:10:42 +02:00
Jelmer Vernooij
24ec465790 wafsamba: Warn about circular dependencies between libraries. 2010-10-12 19:23:59 +02:00
Jelmer Vernooij
12b4647289 wafsamba: Improve assertion error message to include the module. 2010-06-15 13:15:50 +02:00
Andrew Tridgell
b3d8a7136a build: added a check for group ordering within target dependencies
If target A depends on target B, then target B must not be in a later
build group from target A

Pair-Programmed-With: Thomas Nagy
2010-05-03 17:16:47 +02:00
Andrew Tridgell
c6b8ffd3a5 build: normalise paths in unique source checking 2010-04-26 14:36:54 +10:00
Andrew Tridgell
adb5f943de build: recalculate project deps when NONSHARED_BINARIES changes 2010-04-21 17:29:06 +10:00
Andrew Tridgell
681f3dad7c build: added --nonshared-binary=LIST option
This allows you to specify some binaries that should be built without
shared libs. A non-shared smbtorture will make testing s3 in the build
farm easier
2010-04-21 17:13:16 +10:00
Andrew Tridgell
34887de6b0 build: ensure we don't recreate library loops in expansions
after removing library loops from the dependeny graph, we re-add
parent dependencies. We need to ensure that we don't re-add a
dependency which re-creates the loop we so carefully removed.

This also adds a final check for library dependency loops, and shows
an appropriate error if one is found.
2010-04-15 14:01:06 +10:00
Andrew Tridgell
0ca484f457 build: check the type of implied dependencies
an implied dependency needs to be a library or module
2010-04-13 11:41:20 +10:00
Stefan Metzmacher
4f73658544 wafsamba: don't add global dependencies to hostcc targets
metze
2010-04-12 12:31:14 +02:00
Andrew Tridgell
45d3ac05b3 build: use Logs.error() and Logs.info() instead of print()
this gives appropriate colors on output, and ensures it works with
compiler output
2010-04-09 21:12:09 +10:00
Andrew Tridgell
baec7a6b9e build: the exceptions here are not useful
they just make the failure hard to spot
2010-04-08 22:11:49 +10:00
Andrew Tridgell
4ca46c6b8d build: make the handling of relative paths a bit saner
This should fix a problem that Anatoliy has struck with the PIDL
rules. It also brings us much closer to a working build for a true out
of tree build (ie. with waf configure -b /tmp/build)
2010-04-08 22:11:49 +10:00
Thomas Nagy
7f3116a63d build: allow the waf build to work with python 3.0 and 3.1
Python 3.x is a bit fussier about print statements and indentation.

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2010-04-08 07:46:39 +10:00
Andrew Tridgell
93a099c2de build: loop until all object reductions are complete
we will issue a warning if any object duplication remains
2010-04-06 20:27:23 +10:00
Andrew Tridgell
ba64e236d5 build: much simpler and faster rpath install handler
This avoids creating additional task generators at build time, and
instead moves all the rpath logic into samba_install.py where it is
triggered by the install_lib and install_bin features
2010-04-06 20:27:22 +10:00
Andrew Tridgell
6dbf576e81 build: only link install targets at install time 2010-04-06 20:27:22 +10:00
Andrew Tridgell
d06df81df2 build: fixed the dependencies of the install targets
we want the install targets to have identical calculated dependencies
to the build targets.
2010-04-06 20:27:21 +10:00
Andrew Tridgell
fe2c1f1e7c build: refactor the object reduction code
split it out into a separate function, and use the final_* attributes
instead of the direct_* and indirect_* attributes
2010-04-06 20:27:21 +10:00
Andrew Tridgell
30fa7da524 build: finally got LIBRARY<->LIBRARY reductions working
the install size is now 100M
2010-04-06 20:27:20 +10:00
Andrew Tridgell
3154733c33 build: add python library object reduction
This reduces the install size of s4 from 393M down to 132M on my
system. We had a lot of duplicate code in our python modules!
2010-04-06 20:27:20 +10:00
Andrew Tridgell
4854afcfa1 build: expand indirect includes to fix disable-shared build 2010-04-06 20:27:18 +10:00
Andrew Tridgell
2277134e8e build: removed debug line 2010-04-06 20:27:17 +10:00
Andrew Tridgell
874e39cbf0 s4-waf: added implied_deps for system libraries
when we use a system version of a library such as talloc, then we
no longer get the automtica dependency propogation of talloc implying
libreplace. That means we don't get the includes for libreplace, which
means things can fail to build.

To fix this this change adds an implied_deps option to
CHECK_BUNDLED_SYSTEM(), which tells the samba_deps module to add an
implied dependency on the listed targets if the system library is
chosen.
2010-04-06 20:27:17 +10:00
Andrew Tridgell
b7ff06b904 build: tidy up the wafsamba rules a bit
use python string conventions for function comments
2010-04-06 20:27:14 +10:00
Andrew Tridgell
5e94bca62e build: a better way of calculating syslib dependencies 2010-04-06 20:27:07 +10:00
Andrew Tridgell
742cb4547a build: fixed case of system library deps 2010-04-06 20:27:05 +10:00
Andrew Tridgell
6ef817dd7c build: fixed the cflags for pkg_config libs 2010-04-06 20:27:04 +10:00
Andrew Tridgell
cc2284cca1 build: python 2.4 doesn't support multiple union arguments for sets 2010-04-06 20:27:00 +10:00
Andrew Tridgell
a973c5f280 build: expand indirect syslibs after loop unrolling
otherwide python libs in the disable-shared build don't get all the
needed syslibs
2010-04-06 20:27:00 +10:00
Andrew Tridgell
c5d0208aa9 build: fixed handling of full dependencies for --disable-shared
the subsystem dependency loops get quite complex when shared libs are
disabled
2010-04-06 20:27:00 +10:00
Andrew Tridgell
69c065c719 build: optimise and re-enable check_duplicate_sources 2010-04-06 20:26:59 +10:00
Andrew Tridgell
584986e392 build: cope with subsystems with no enabled modules
This happens for the notify subsystem on non-Linux systems
2010-04-06 20:26:58 +10:00
Andrew Tridgell
2a1520ba67 build: make bin/sambadeps depend on samba_deps.py modtime 2010-04-06 20:26:53 +10:00
Andrew Tridgell
651941abba build: python modules need the libs from broken lib loops too 2010-04-06 20:26:53 +10:00