diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2005-12-26 16:46:55 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:47:45 -0500 |
commit | 448483199fb436309735f5203b3282fca2c517ec (patch) | |
tree | fcd663e46d0eac19b98037008a435bdd57ca7f8e /source4/build/smb_build/input.pm | |
parent | ee10fb1a12391a76fe81e6e7a92d282ef885bc30 (diff) | |
download | samba-448483199fb436309735f5203b3282fca2c517ec.tar.gz samba-448483199fb436309735f5203b3282fca2c517ec.tar.bz2 samba-448483199fb436309735f5203b3282fca2c517ec.zip |
r12494: Support loading modules from .so files for most subsystems.
We now use a different system for initializing the modules for a subsystem.
Most subsystems now have an init function that looks something like this:
init_module_fn static_init[] = STATIC_AUTH_MODULES;
init_module_fn *shared_init = load_samba_modules(NULL, "auth");
run_init_functions(static_init);
run_init_functions(shared_init);
talloc_free(shared_init);
I hope to eliminate the other init functions later on (the
init_programname_subsystems; defines).
(This used to be commit b6d2ad4ce0a91c4be790dd258820c492ff1787ea)
Diffstat (limited to 'source4/build/smb_build/input.pm')
-rw-r--r-- | source4/build/smb_build/input.pm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index 11a5eac1fb..bbf7efd8a0 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -49,6 +49,10 @@ sub check_module($$$) die("Module $mod->{NAME} does not have a SUBSYSTEM set") if not defined($mod->{SUBSYSTEM}); my $use_default = 0; + + if (not exists($INPUT->{$mod->{SUBSYSTEM}}{INIT_FUNCTIONS})) { + $INPUT->{$mod->{SUBSYSTEM}}{INIT_FUNCTIONS} = []; + } if (!(defined($INPUT->{$mod->{SUBSYSTEM}}))) { $mod->{ENABLE} = "NO"; @@ -68,12 +72,12 @@ sub check_module($$$) $mod->{OUTPUT_TYPE} = $default_ot; } - if ($mod->{OUTPUT_TYPE} eq "SHARED_LIBRARY" or - $mod->{OUTPUT_TYPE} eq "STATIC_LIBRARY") { + if ($mod->{OUTPUT_TYPE} eq "SHARED_LIBRARY") { $mod->{INSTALLDIR} = "LIBDIR/$mod->{SUBSYSTEM}"; push (@{$mod->{REQUIRED_SUBSYSTEMS}}, $mod->{SUBSYSTEM}); } else { push (@{$INPUT->{$mod->{SUBSYSTEM}}{REQUIRED_SUBSYSTEMS}}, $mod->{NAME}); + push (@{$INPUT->{$mod->{SUBSYSTEM}}{INIT_FUNCTIONS}}, $mod->{INIT_FUNCTION}) if defined($mod->{INIT_FUNCTION}); } } |