1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-13 13:18:06 +03:00
Commit Graph

223 Commits

Author SHA1 Message Date
Jelmer Vernooij
2d1e91fd0c wafsamba: Use abi_match in version script files. 2010-12-18 00:47:06 +01:00
Jelmer Vernooij
c09d4b85b5 wafsamba: Specify full vscript path so non-autogenerated files are possible, too. 2010-12-17 19:38:12 +01:00
Jelmer Vernooij
48f91ebc5a wafsamba: Don't build vscript for modules. 2010-12-17 19:21:47 +01:00
Jelmer Vernooij
13b4e6e8c7 wafsamba: Move version script handling out of SAMBA_LIBRARY. 2010-12-17 19:16:33 +01:00
Jelmer Vernooij
85299bea65 heimdal_build: Simplify library handling. 2010-12-17 18:42:34 +01:00
Andrew Tridgell
6f6aa5f775 waf: fixed re-running of build rules
the addition of ldflags deps caused us to re-run the build rules every
time.
2010-12-15 21:48:15 +11:00
Matthieu Patou
a55f5e7080 wafsamba: change the default value for SAMBA_MODULE of pyembed to False
ALL SAMBA_MODULE didn't need this, new modules that could need will just
have to opt this in

Autobuild-User: Matthieu Patou <mat@samba.org>
Autobuild-Date: Tue Dec 14 14:45:15 CET 2010 on sn-devel-104
2010-12-14 14:45:15 +01:00
Andrew Tridgell
1b63c78693 waf: the libXX.inst.so file also depends on the vscript
this fixes a problem with installed libraries not relinking after a
git version change

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Fri Dec 10 09:30:46 CET 2010 on sn-devel-104
2010-12-10 09:30:46 +01:00
Andrew Tridgell
57f2f1d72a waf: remove the restriction that private libraries must not have a vnum
we need the vnum for ABI checking for public libraries built as
private libraries when bundled

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Thu Dec  9 12:47:41 CET 2010 on sn-devel-104
2010-12-09 12:47:40 +01:00
Andrew Tridgell
ca247bee2f waf: fixed path to abi_directory
this broke in a recent patch
2010-12-09 21:49:01 +11:00
Andrew Tridgell
a6351e2bce waf: add a dependency between the library and its vscript
Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Thu Dec  9 04:32:18 CET 2010 on sn-devel-104
2010-12-09 04:32:18 +01:00
Andrew Tridgell
f3d36b13ac waf: don't use symbol versioning on our modules
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-12-09 13:18:08 +11:00
Andrew Tridgell
c90b7824a6 waf: use vscripts for our private libraries too
if the library has a vnum, then use it. If it doesn't have a vnum then
use the application version for symbol versions
2010-12-09 13:18:03 +11:00
Andrew Tridgell
ebe2867fc2 waf-abi: auto-generate per-symbol versions from ABI files
This changes our version-script generation to use the ABI files that
are saved in git with each version number change of our public
libraries.

We use these ABI files to generate a linker version script that gives
the exact version number that each symbol was introduced. This
provides us with automatic fine grained symbol versioning.

Pair-Programmed-With: Jelmer Vernooij <jelmer@samba.org>
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-12-09 13:17:19 +11:00
Stefan Metzmacher
e3a7a080b4 buildtools: private_libraries should not have a version in the soname
metze
2010-12-08 16:11:49 +01:00
Stefan Metzmacher
3d289fe14d buildtools: make sure we have no '+' in the version scripts
This happens if '--git-local-changes' was used.

metze
2010-12-08 16:11:48 +01:00
Andrew Tridgell
be99d84972 waf: make all generators depend on their rules
this ensures we rebuild when a constructed rule changes
2010-12-08 05:26:06 +01:00
Andrew Tridgell
35134214ae waf: use -Wl,--version-script if available
This enables symbol version on our libraries, if the system supports
it

If the library is a public library, then set the symbol version based
on the major number. If it is a private library then set it based on
the full version number (which will include the git hash if
available).

This ensures that applications using our libraries don't use symbols
from other libraries that they may be linked to. It also ensures we
only use the right version of any private libraries.

Note that the linker ends up generating both a version and unversioned
symbol for all symbols. This means existing users of our public
libraries will continue to work, with symbols resolved to the
unversioned symbol. When applications are re-linked they will bind to
the specific symbol version.

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
Pair-Programmed-With: Jelmer Vernooij <jelmer@samba.org>
2010-12-08 05:26:06 +01:00
Andrew Tridgell
d5bf525591 s4-waf: get the version number right on private libraries
use the first digit of the version number for the library version

Pair-Programmed-With: Jelmer Vernooij <jelmer@samba.org>
2010-12-08 05:26:06 +01:00
Matthieu Patou
994bcf35d2 build: fix hpux build pb
Pair-Programmed-With: Thomas Nagy <tnagy2pow10@gmail.com>

Fix the library extension from .so to .sl
Add full path to library when linking this is needed due to a strange
behavior of HP-UX:

This command: gcc demo demo.c -L dir1/dir2/ -lsomelib
will give a binary with a hard coded lib like dir1/dir2/libsomelib.sl.
Somehow like a partial rpath, it has the first impact of fooling waf
detection of wether the plateform support libraries or not (leading to
being unable to compile samba on HPUX) and the impact of having non
functionnal binaries.

Autobuild-User: Matthieu Patou <mat@samba.org>
Autobuild-Date: Wed Dec  8 00:32:50 CET 2010 on sn-devel-104
2010-12-08 00:32:49 +01:00
Andrew Tridgell
fcdbd06136 waf: fixed the build with a space in the source directory 2010-11-21 23:10:14 +11:00
Jelmer Vernooij
c9756cac05 waf: Put private libraries in a separate directory when building.
Thanks to Tridge for pointing out what exactly I had to change. :-)
2010-11-05 02:06:06 +00:00
Andrew Tridgell
dfa20fcd48 waf: split pkgconfig logic into a separate module 2010-11-03 01:34:04 +00:00
Andrew Tridgell
4404b4c700 waf: removed the module aliases code
This is not needed with the new ldb modules approacg
2010-11-01 18:55:19 +11:00
Andrew Tridgell
fd6d29bc08 waf: added module_init_name parameter to SAMBA_MODULE()
this will be used for ldb module loading
2010-11-01 18:55:18 +11:00
Matthieu Patou
edebb76a61 build: strip -single_module when doing bundle on mac OS X 2010-10-30 13:45:18 +00:00
Andrew Tridgell
e08c9ac696 waf: get rid of target aliases in wafsamba
these aliases are no longer needed, and can cause a lot of confusion
2010-10-30 23:49:01 +11:00
Andrew Tridgell
df34bb2685 waf: build all libraries after all object files
this makes it easier to perform symbol checking before the link
stage. The two new build groups symbolcheck and syslibcheck will be
used by the symbols.py extension
2010-10-30 23:49:00 +11:00
Andrew Tridgell
d1e94980bf waf: cope with rules with no inputs
when we display a rule with no inputs, just call the original display
function

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-30 23:49:00 +11:00
Stefan Metzmacher
073d3bf1fc wafsamba: support 'soname' attribute on SAMBA_LIBRARY()
It's sometimes needed to specifiy the soname directly.

metze
2010-10-27 05:07:22 +02:00
Jelmer Vernooij
c251cb62ec wafsamba: Fix soname for standalone private libraries.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Tue Oct 26 18:10:13 UTC 2010 on sn-devel-104
2010-10-26 18:10:13 +00:00
Jelmer Vernooij
a74e8be6d1 waf: Stop automaticaly changing dashes to underscores in library names. 2010-10-26 10:17:18 -07:00
Jelmer Vernooij
8cf61377aa waf: Remove lib prefix from libraries manually. 2010-10-26 10:17:17 -07:00
Jelmer Vernooij
df76c3f147 waf: build private libraries with so names. 2010-10-26 10:17:17 -07:00
Jelmer Vernooij
49ef288819 waf: Rename some BUNDLED_ functios to PRIVATE_. 2010-10-23 22:24:06 +00:00
Andrew Tridgell
7ffb781e81 waf-python: make the pyext flag add the pyembed features for libraries
this is rather strange, but we get build errors without it. There may
be a bug in the waf python tool, or I may misunderstand how to use it
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
ec7bb906db waf: added pyext option to SAMBA_LIBRARY()
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-21 19:03:26 +11:00
Andrew Tridgell
7cba3cfac8 waf: replace the is_bundled option with private_library
'private_library' better captures what we are trying to get at when we
bundle a library
2010-10-21 19:03:24 +11:00
Andrew Tridgell
29c0b86126 waf: re-work the module alias code
we now create a base library, and then create the alias modules as
wrappers around that base. That prevents double instantiation of any
object files in the modules

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-21 19:03:23 +11:00
Andrew Tridgell
cd7190b802 waf: allows libraries to be marked as private_library=True
this is for libraries where we make no promises about the API, but
where we wish it to be a library to allow our binaries to use common
code.

These libraries always get the project suffix added to the library
name, to ensure we are in a separate namespace

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-21 19:03:23 +11:00
Andrew Tridgell
968381a4e2 waf: put -Wl,-no-undefined only in the linker flags, not when compiling C 2010-10-19 11:22:35 +11:00
Andrew Tridgell
d485701436 waf: automap shared library names from .so to the right extension
this should help with MacOSX .dylib libraries
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
5324b943e7 wafsamba: Fix handling of pyembed/pyext. 2010-10-10 23:54:04 +00:00
Jelmer Vernooij
ea6a3f5c48 wafsamba: Support setting pyembed on libraries. 2010-10-11 01:06:36 +02:00
Jelmer Vernooij
a20f025ff6 wafsamba: Fix init function when building modules as shared objects.
Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
2010-10-10 23:05:40 +02:00
Jelmer Vernooij
c15e919a09 wafsamba: Clarify needs_python argument name, use pyembed/pyext where
applicable.

Allow using both pyembed and pyext, to prevent unresolved symbols.

Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Oct 10 03:54:01 UTC 2010 on sn-devel-104
2010-10-10 03:54:01 +00:00
Andrew Tridgell
c24240bcd2 waf: fixed some python3.x portability issues
these have crept into the tree over time. Maybe we should add testing
of a range of python versions to autobuild?
2010-10-06 11:13:05 +00:00
Andrew Tridgell
8fcccae6aa waf: update to waf version 1.5.19
this includes a number of perforance improvements and bug
fixes. Thanks to Thomas for all the recent improvements!
2010-10-06 11:13:05 +00:00
Jelmer Vernooij
120f5ee429 wafsamba: Some reformatting. 2010-10-03 16:25:38 +02:00
Jelmer Vernooij
3c1eca124e wafsamba: Move heimdal library code to heimdal_build. 2010-10-03 16:25:37 +02:00
Jelmer Vernooij
beed95e3a2 heimdal: convert some subsystems to libraries, consistent with upstream heimdal. 2010-10-03 16:25:37 +02:00
Jelmer Vernooij
8140182f3d wafsamba: Eliminate sys.path updating if installing to a standard python
path.
2010-09-08 22:52:43 +02:00
Jelmer Vernooij
cf616ec316 wafsamba: Create bin/defaukt/modules if it does not yet exist. 2010-09-05 20:16:50 +02:00
Jelmer Vernooij
84c1874677 waf: Support aliases in SAMBA_MODULE. 2010-09-04 15:00:32 +02:00
Jelmer Vernooij
1ba533f4cb waf: Make shared modules available in the build dir. 2010-09-04 15:00:32 +02:00
Andrew Tridgell
cfcfe3c1f5 s4-waf: re-use SAMBA_LIBRARY() in building shared modules
make SAMBA_MODULE() call SAMBA_LIBRARY() to do the heavy lifting. This
fixes the problem with modules being a bit too slim :-)

Pair-Programmed-With: Jelmer Vernooij <jelmer@samba.org>
2010-08-22 16:35:30 +02:00
Andrew Tridgell
8cbd36afe8 build: allow always=True/False on SAMBA_GENERATOR()
this allows us to force a rule to always run. Will be used by 
samba_version

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-06-29 14:28:08 +10:00
Andrew Tridgell
f6e46ee0fb build: check if the manpages stylesheet is available locally
this avoids trying to fetch the stylesheet from the internet. If we
can't process the stylesheet with --nonet at configure time then don't
build manpages.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-06-24 18:46:57 +10:00
Jelmer Vernooij
24930aa716 wafsamba: Use octal modes directly rather than constants. 2010-06-19 16:00:04 +02:00
Jelmer Vernooij
e0fe941218 wafsamba: Use BUILTIN_LIBRARY() rather than relying on side-effects. 2010-06-18 23:51:40 +02:00
Jelmer Vernooij
a4a127ea5a s4-waf: Fix build of libldb_ildap against system ldb. 2010-06-15 20:52:01 +02:00
Jelmer Vernooij
773e47f4a9 wafsamba: Fix include path inheritance from module subsystems. 2010-06-15 20:35:22 +02:00
Jelmer Vernooij
fb7a98aa32 ldb: Fix included ldb build. 2010-06-15 13:15:50 +02:00
Jelmer Vernooij
de68718d3d wafsamba: Fix filenames for ldb modules. 2010-06-15 13:15:50 +02:00
Jelmer Vernooij
0d7f8fb73d wafsamba: Fix building of modules as shared libraries. 2010-06-15 13:15:50 +02:00
Jelmer Vernooij
419928b8df wafsamba: Only add init function if not building module as shared library. 2010-06-15 13:15:50 +02:00
Jelmer Vernooij
2edd652729 s4-waf: Fix installation of .so links for libraries that are not bundled but have a mangled name. 2010-06-13 20:52:47 +02:00
Thomas Nagy
09fb7fcd5f Do not use headermap.txt for the header installation
Try to find the headers by searching on the filesystem. Warn when
a public header replacement cannot be found (talloc.h, ...).

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
2010-06-13 19:26:48 +02:00
Jelmer Vernooij
a22d7db308 wafsamba: Only try to build manpages if XSLTPROC was actually found. 2010-05-31 20:45:14 +02:00
Stefan Metzmacher
1da4153459 buildtools/wafsamba: use build group 'final' for the creation of manpages
This way we don't try to build manpages just for waf build --target=smbtorture

metze
2010-05-31 17:52:31 +02:00
Jelmer Vernooij
f89e390fbc waf: Refactor manpage building code. 2010-05-31 13:56:25 +02:00
Jelmer Vernooij
f98bb7ffc3 Add manpages argument to SAMBA_LIBRARY(). 2010-05-31 13:56:25 +02:00
Kai Blin
e3997c2a6d wafsamba: Correctly detect if bld.env.XSLTPROC is not set
This fixes the build on some build farm hosts and my machine.

Jelmer, please check.
2010-05-31 09:40:14 +02:00
Jelmer Vernooij
3858b5db8b s4-waf: sanitize library names like the old build system did, only add
-samba4 suffix for libraries that are bundled.
2010-05-31 03:28:42 +02:00
Jelmer Vernooij
f3f1745e27 wafsamba: Actually install manual pages. 2010-05-31 01:38:35 +02:00
Andrew Bartlett
892a4b24e7 waf Read VERSION file inside WAF to set package version
This replaces the call to mkversion.sh in both the Samba3 and Samba4
WAF builds.

Andrew Bartlett
2010-05-28 15:20:03 +10:00
Thomas Nagy
792743cfab solve the error "ldb.inst.h does not exist"
The error happens when headermap.txt is not available

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
2010-05-24 01:26:43 +02:00
Thomas Nagy
bd8e3cf855 Substitute the pidl files without using 'headermap.txt'
The headers generated by pidl contain references to bin/default. Those paths
may be replaced automatically.

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
2010-05-23 17:51:06 +02:00
Thomas Nagy
66cbc62961 s4-waf: Replace local includes in header files with proper system names.
Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
2010-05-19 22:30:05 +02:00
Andrew Tridgell
022266566d build: fixed pc file variable substitution
We should not substitute for the first use of each variable
declaration in the pkgconfig file
2010-05-07 15:14:49 +02:00
Andrew Tridgell
7281b02181 build: allow use of target names as commands in waf
This allows for the following types of commands:

 waf smbd/samba
 waf smbd/server.c
 waf ../lib/util/util_file.c
 waf ../lib/util/util_file_*.o

this will be used as part of an updated minimal_includes.pl script
2010-05-04 11:45:43 +02:00
Andrew Tridgell
08c3ce25c6 build: added enabled=True/False option to SAMBA_BINARY() 2010-04-29 08:01:48 +10:00
Andrew Tridgell
f66fcd9608 build: cope with realname for install of non-python libs
this fixes the install of mit_samba.so
2010-04-26 19:06:06 +10:00
Andrew Tridgell
a241daae2d build: a library is only empty if it has no deps 2010-04-26 14:36:54 +10:00
Andrew Tridgell
6c79b9f480 build: cope with duplicates in source lists 2010-04-26 14:36:54 +10:00
Stefan Metzmacher
1ed5f71820 buildtools/wafsamba: make sure we create bin/default/ before trying to create symlinks in it
metze
2010-04-24 20:03:50 +02:00
Andrew Tridgell
456351cdb1 s4-waf: follow the configure directories for the empty install dirs
Thanks to Metze for spotting this
2010-04-19 21:54:40 +10:00
Andrew Tridgell
db0eb2f239 s4-waf: install some missing empty directories 2010-04-19 21:00:36 +10:00
Andrew Tridgell
211bf1ea17 s4-waf: removed the unused installdir= option to SAMBA_BINARY()
This was left over from the automatic conversion of the config.mk
files
2010-04-18 21:47:00 +10:00
Andrew Tridgell
d3dea9b124 build: added ABI checking to the WAF build
See http://wiki.samba.org/index.php/Waf#ABI_Checking for details
2010-04-18 15:00:37 +10:00
Andrew Tridgell
0bda3bae4c build: throw a fatal error for duplicate target declarations
We don't want someone to declare two subsystems of the same name but
with different source files

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-04-15 14:43:50 +10:00
Andrew Tridgell
167ba0eac9 build: make the 'wrong version of waf' message even clearer
suggest ./autogen-waf.sh
2010-04-15 09:22:24 +10:00
Andrew Tridgell
208eb7469d build: check that the user is not using an old /usr/bin/waf
some systems have /usr/bin/waf installed, and its quite old
2010-04-15 08:57:07 +10:00
Stefan Metzmacher
4f73658544 wafsamba: don't add global dependencies to hostcc targets
metze
2010-04-12 12:31:14 +02:00
Stefan Metzmacher
8a00c56649 wafsamba: allow passing 'use_hostcc' to SAMBA_SUBSYSTEM()
metze
2010-04-12 12:31:13 +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
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