From bc4aebfaecf52678eb40aee2fd4bd81a315c554d Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 2 Jan 2006 00:16:08 +0000 Subject: r12670: Make a couple of dependencies stricter Re-introduce and use the OUTPUT_TYPE property for MODULEs to force specific modules to always be included (This used to be commit f9eede3d40098eddc3618ee48f9253cdddb94a6f) --- source4/auth/credentials/config.mk | 2 +- source4/auth/gensec/config.mk | 2 +- source4/auth/kerberos/config.mk | 2 +- source4/build/smb_build/config_mk.pm | 2 ++ source4/build/smb_build/input.pm | 4 ++-- source4/build/smb_build/makefile.pm | 2 ++ source4/dsdb/config.mk | 2 +- source4/dsdb/samdb/ldb_modules/config.mk | 7 +++++++ source4/heimdal_build/config.mk | 3 ++- source4/lib/basic.mk | 2 +- source4/lib/ldb/config.mk | 8 ++++++++ source4/lib/registry/config.mk | 1 + source4/lib/socket/config.mk | 3 +++ source4/libcli/auth/config.mk | 2 +- source4/libnet/config.mk | 2 +- source4/librpc/config.mk | 19 ++++++++++++++----- source4/librpc/rpc/config.mk | 18 ------------------ source4/main.mk | 2 ++ source4/param/config.mk | 1 - source4/passdb/config.mk | 3 +++ source4/rpc_server/config.mk | 5 ++++- source4/smbd/config.mk | 2 ++ 22 files changed, 59 insertions(+), 35 deletions(-) delete mode 100644 source4/librpc/rpc/config.mk create mode 100644 source4/passdb/config.mk diff --git a/source4/auth/credentials/config.mk b/source4/auth/credentials/config.mk index f0e5ea3f21..5c72630d5a 100644 --- a/source4/auth/credentials/config.mk +++ b/source4/auth/credentials/config.mk @@ -8,7 +8,7 @@ OBJ_FILES = credentials.o \ credentials_ntlm.o \ credentials_gensec.o REQUIRED_SUBSYSTEMS = \ - HEIMDAL GENSEC LIBCLI_AUTH LIBLDB + HEIMDAL GENSEC LIBCLI_AUTH LIBLDB SECRETS # End SUBSYSTEM CREDENTIALS ################################# diff --git a/source4/auth/gensec/config.mk b/source4/auth/gensec/config.mk index 84e8cfd3cc..0ba5a5e282 100644 --- a/source4/auth/gensec/config.mk +++ b/source4/auth/gensec/config.mk @@ -9,7 +9,7 @@ PUBLIC_HEADERS = gensec.h PRIVATE_PROTO_HEADER = gensec_proto.h OBJ_FILES = gensec.o REQUIRED_SUBSYSTEMS = \ - SCHANNELDB CREDENTIALS + CREDENTIALS # End SUBSYSTEM GENSEC ################################# diff --git a/source4/auth/kerberos/config.mk b/source4/auth/kerberos/config.mk index 53720dd5f6..93b45ddedc 100644 --- a/source4/auth/kerberos/config.mk +++ b/source4/auth/kerberos/config.mk @@ -8,6 +8,6 @@ OBJ_FILES = kerberos.o \ kerberos_pac.o \ gssapi_parse.o \ krb5_init_context.o -REQUIRED_SUBSYSTEMS = KERBEROS_LIB NDR_KRB5PAC +REQUIRED_SUBSYSTEMS = HEIMDAL_KRB5 NDR_KRB5PAC # End SUBSYSTEM KERBEROS ################################# diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm index 64fd5e6fc9..6a8426974f 100644 --- a/source4/build/smb_build/config_mk.pm +++ b/source4/build/smb_build/config_mk.pm @@ -43,6 +43,8 @@ my $section_types = { "ENABLE" => "bool", "NOPROTO" => "bool", + "OUTPUT_TYPE" => "string", + "MANPAGE" => "string", "PRIVATE_PROTO_HEADER" => "string" }, diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index ceddd75c3f..ef90e3c122 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -69,12 +69,12 @@ sub check_module($$$) if (defined($mod->{CHOSEN_BUILD}) and $mod->{CHOSEN_BUILD} ne "DEFAULT") { $mod->{OUTPUT_TYPE} = $mod->{CHOSEN_BUILD}; - } else { + } elsif (not defined($mod->{OUTPUT_TYPE})) { $mod->{OUTPUT_TYPE} = $default_ot; } if ($mod->{OUTPUT_TYPE} eq "SHARED_LIBRARY") { - $mod->{INSTALLDIR} = "LIBDIR/$mod->{SUBSYSTEM}"; + $mod->{INSTALLDIR} = "MODULESDIR/$mod->{SUBSYSTEM}"; push (@{$mod->{REQUIRED_SUBSYSTEMS}}, $mod->{SUBSYSTEM}); } else { push (@{$INPUT->{$mod->{SUBSYSTEM}}{REQUIRED_SUBSYSTEMS}}, $mod->{NAME}); diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index e28aaec9d1..2e06dc179a 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -242,6 +242,7 @@ sub SharedLibrary($$) my ($self,$ctx) = @_; push (@{$self->{shared_libs}}, "bin/$ctx->{LIBRARY_REALNAME}"); + push (@{$self->{shared_modules}}, "bin/$ctx->{LIBRARY_REALNAME}"); $self->_prepare_list($ctx, "OBJ_LIST"); $self->_prepare_list($ctx, "CFLAGS"); @@ -498,6 +499,7 @@ sub write($$) $self->output("ALL_OBJS = " . array2oneperline($self->{all_objs}) . "\n"); $self->output("PROTO_OBJS = " . array2oneperline($self->{proto_objs}) . "\n"); $self->output("PROTO_HEADERS = " . array2oneperline($self->{proto_headers}) . "\n"); + $self->output("SHARED_MODULES = " . array2oneperline($self->{shared_modules}) . "\n"); $self->_prepare_mk_files(); diff --git a/source4/dsdb/config.mk b/source4/dsdb/config.mk index d7188e43b5..b1a00cc387 100644 --- a/source4/dsdb/config.mk +++ b/source4/dsdb/config.mk @@ -6,7 +6,7 @@ include samdb/ldb_modules/config.mk # Start SUBSYSTEM SAMDB [SUBSYSTEM::SAMDB] PRIVATE_PROTO_HEADER = samdb/samdb.h -REQUIRED_SUBSYSTEMS = DB_WRAP +REQUIRED_SUBSYSTEMS = DB_WRAP LIBCLI_LDAP OBJ_FILES = \ samdb/samdb.o \ samdb/samdb_privilege.o \ diff --git a/source4/dsdb/samdb/ldb_modules/config.mk b/source4/dsdb/samdb/ldb_modules/config.mk index f9c267e2db..a18d2c4359 100644 --- a/source4/dsdb/samdb/ldb_modules/config.mk +++ b/source4/dsdb/samdb/ldb_modules/config.mk @@ -2,6 +2,7 @@ # Start MODULE libldb_objectguid [MODULE::libldb_objectguid] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ objectguid.o REQUIRED_SUBSYSTEMS = \ @@ -13,8 +14,10 @@ REQUIRED_SUBSYSTEMS = \ # Start MODULE libldb_samldb [MODULE::libldb_samldb] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ samldb.o +REQUIRED_SUBSYSTEMS = SAMDB # # End MODULE libldb_samldb ################################################ @@ -23,6 +26,7 @@ OBJ_FILES = \ # Start MODULE libldb_samba3sam [MODULE::libldb_samba3sam] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ samba3sam.o # @@ -33,6 +37,7 @@ OBJ_FILES = \ # Start MODULE libldb_proxy [MODULE::libldb_proxy] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ proxy.o # @@ -44,6 +49,7 @@ OBJ_FILES = \ # Start MODULE libldb_rootdse [MODULE::libldb_rootdse] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ rootdse.o # @@ -54,6 +60,7 @@ OBJ_FILES = \ # Start MODULE libldb_password_hash [MODULE::libldb_password_hash] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ password_hash.o REQUIRED_SUBSYSTEMS = \ diff --git a/source4/heimdal_build/config.mk b/source4/heimdal_build/config.mk index 9aab1cf21a..4cea6fa4f9 100644 --- a/source4/heimdal_build/config.mk +++ b/source4/heimdal_build/config.mk @@ -87,6 +87,7 @@ OBJ_FILES = \ ../heimdal/lib/gssapi/get_mic.o \ ../heimdal/lib/gssapi/import_name.o \ ../heimdal/lib/gssapi/init.o +REQUIRED_SUBSYSTEMS = KERBEROS HEIMDAL_KRB5 NOPROTO = YES # End SUBSYSTEM HEIMDAL_GSSAPI ####################### @@ -450,7 +451,7 @@ heimdal_clean: hdb_asn1_clean spnego_asn1_clean krb5_asn1_clean [LIBRARY::HEIMDAL] NOPROTO = YES REQUIRED_SUBSYSTEMS = \ - HEIMDAL_GSSAPI HEIMDAL_KRB5 \ + HEIMDAL_GSSAPI HEIMDAL_KRB5 KERBEROS \ HEIMDAL_ASN1 HEIMDAL_DES HEIMDAL_ROKEN HEIMDAL_COM_ERR HEIMDAL_VERS HEIMDAL_GLUE EXT_LIB_RESOLV # End SUBSYSTEM HEIMDAL ####################### diff --git a/source4/lib/basic.mk b/source4/lib/basic.mk index 92b60bfd40..d5bff95f01 100644 --- a/source4/lib/basic.mk +++ b/source4/lib/basic.mk @@ -97,7 +97,7 @@ REQUIRED_SUBSYSTEMS = \ [SUBSYSTEM::DB_WRAP] OBJ_FILES = db_wrap.o \ gendb.o -REQUIRED_SUBSYSTEMS = LIBLDB +REQUIRED_SUBSYSTEMS = LIBLDB LIBTDB [SUBSYSTEM::PIDFILE] OBJ_FILES = pidfile.o diff --git a/source4/lib/ldb/config.mk b/source4/lib/ldb/config.mk index 9cb74f551b..96cd0dbad8 100644 --- a/source4/lib/ldb/config.mk +++ b/source4/lib/ldb/config.mk @@ -2,6 +2,7 @@ # Start MODULE libldb_operational [MODULE::libldb_operational] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ modules/operational.o # End MODULE libldb_operational @@ -11,6 +12,7 @@ OBJ_FILES = \ # Start MODULE libldb_objectclass [MODULE::libldb_objectclass] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ modules/objectclass.o # End MODULE libldb_objectclass @@ -20,6 +22,7 @@ OBJ_FILES = \ # Start MODULE libldb_rdn_name [MODULE::libldb_rdn_name] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ modules/rdn_name.o # End MODULE libldb_rdn_name @@ -29,6 +32,7 @@ OBJ_FILES = \ # Start MODULE libldb_schema [MODULE::libldb_schema] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ modules/schema.o # End MODULE libldb_schema @@ -38,6 +42,7 @@ OBJ_FILES = \ # Start MODULE libldb_ildap [MODULE::libldb_ildap] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ ldb_ildap/ldb_ildap.o REQUIRED_SUBSYSTEMS = \ @@ -50,6 +55,7 @@ NOPROTO = YES # Start MODULE libldb_map [MODULE::libldb_map] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = modules/ldb_map.o # End MODULE libldb_map ################################################ @@ -58,6 +64,7 @@ OBJ_FILES = modules/ldb_map.o # Start MODULE libldb_sqlite3 [MODULE::libldb_sqlite3] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ ldb_sqlite3/ldb_sqlite3.o REQUIRED_SUBSYSTEMS = \ @@ -70,6 +77,7 @@ NOPROTO = YES # Start MODULE libldb_tdb [MODULE::libldb_tdb] SUBSYSTEM = LIBLDB +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ ldb_tdb/ldb_tdb.o \ ldb_tdb/ldb_search.o \ diff --git a/source4/lib/registry/config.mk b/source4/lib/registry/config.mk index fbef97a299..a977e0ea5c 100644 --- a/source4/lib/registry/config.mk +++ b/source4/lib/registry/config.mk @@ -46,6 +46,7 @@ OBJ_FILES = \ # Start MODULE registry_rpc [MODULE::registry_rpc] INIT_FUNCTION = registry_rpc_init +OUTPUT_TYPE = MERGEDOBJ SUBSYSTEM = REGISTRY OBJ_FILES = \ reg_backend_rpc.o diff --git a/source4/lib/socket/config.mk b/source4/lib/socket/config.mk index 60db3ab07e..ad555522a3 100644 --- a/source4/lib/socket/config.mk +++ b/source4/lib/socket/config.mk @@ -3,6 +3,7 @@ # Start MODULE socket_ipv4 [MODULE::socket_ipv4] SUBSYSTEM = SOCKET +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ socket_ipv4.o NOPROTO=YES @@ -13,6 +14,7 @@ NOPROTO=YES # Start MODULE socket_ipv6 [MODULE::socket_ipv6] SUBSYSTEM = SOCKET +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ socket_ipv6.o NOPROTO=YES @@ -23,6 +25,7 @@ NOPROTO=YES # Start MODULE socket_unix [MODULE::socket_unix] SUBSYSTEM = SOCKET +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ socket_unix.o NOPROTO=YES diff --git a/source4/libcli/auth/config.mk b/source4/libcli/auth/config.mk index 75b4180976..0d8c21d527 100644 --- a/source4/libcli/auth/config.mk +++ b/source4/libcli/auth/config.mk @@ -5,6 +5,6 @@ OBJ_FILES = credentials.o \ session.o \ smbencrypt.o REQUIRED_SUBSYSTEMS = \ - AUTH SCHANNELDB + AUTH SCHANNELDB gensec_ntlmssp # End SUBSYSTEM LIBCLI_AUTH ################################# diff --git a/source4/libnet/config.mk b/source4/libnet/config.mk index 3c695edd39..b76fe0c7e5 100644 --- a/source4/libnet/config.mk +++ b/source4/libnet/config.mk @@ -25,6 +25,6 @@ OBJ_FILES = \ userinfo.o \ userman.o \ domain.o -REQUIRED_SUBSYSTEMS = RPC_NDR_SAMR RPC_NDR_LSA RPC_NDR_SRVSVC RPC_NDR_DRSUAPI LIBCLI_COMPOSITE LIBCLI_RESOLVE LIBSAMBA3 LIBCLI_CLDAP +REQUIRED_SUBSYSTEMS = RPC_NDR_SAMR RPC_NDR_LSA RPC_NDR_SRVSVC RPC_NDR_DRSUAPI LIBCLI_COMPOSITE LIBCLI_RESOLVE LIBSAMBA3 LIBCLI_CLDAP gensec_schannel # End SUBSYSTEM LIBNET ################################# diff --git a/source4/librpc/config.mk b/source4/librpc/config.mk index d87ac86ce5..4ca36a6b3b 100644 --- a/source4/librpc/config.mk +++ b/source4/librpc/config.mk @@ -26,8 +26,6 @@ REQUIRED_SUBSYSTEMS = LIBCOMPRESSION # End SUBSYSTEM NDR_COMPRESSION ################################################ -include rpc/config.mk - [SUBSYSTEM::NDR_SECURITY_HELPER] OBJ_FILES = ndr/ndr_sec_helper.o ndr/ndr_sec.o @@ -127,7 +125,7 @@ REQUIRED_SUBSYSTEMS = LIBNDR [SUBSYSTEM::NDR_SAMR] OBJ_FILES = gen_ndr/ndr_samr.o NOPROTO = YES -REQUIRED_SUBSYSTEMS = LIBNDR +REQUIRED_SUBSYSTEMS = LIBNDR NDR_LSA [SUBSYSTEM::NDR_SPOOLSS] OBJ_FILES = gen_ndr/ndr_spoolss.o @@ -273,7 +271,7 @@ REQUIRED_SUBSYSTEMS = LIBNDR [SUBSYSTEM::NDR_KRB5PAC] OBJ_FILES = gen_ndr/ndr_krb5pac.o NOPROTO = YES -REQUIRED_SUBSYSTEMS = LIBNDR NDR_KRB5PAC_UTIL +REQUIRED_SUBSYSTEMS = LIBNDR NDR_KRB5PAC_UTIL NDR_NETLOGON [SUBSYSTEM::NDR_KRB5PAC_UTIL] OBJ_FILES = ndr/ndr_krb5pac.o @@ -522,7 +520,18 @@ MINOR_VERSION = 0 DESCRIPTION = DCE/RPC client library RELEASE_VERSION = 1 PUBLIC_HEADERS = rpc/dcerpc.h -REQUIRED_SUBSYSTEMS = LIBNDR RPC_RAW LIBSMB NDR_MISC NDR_DCERPC NDR_SCHANNEL NDR_LSA NDR_NETLOGON NDR_SAMR NDR_UNIXINFO RPC_NDR_NETLOGON RPC_NDR_EPMAPPER +PRIVATE_PROTO_HEADER = rpc/dcerpc_proto.h +OBJ_FILES = \ + rpc/dcerpc.o \ + rpc/dcerpc_auth.o \ + rpc/dcerpc_schannel.o \ + rpc/dcerpc_util.o \ + rpc/dcerpc_error.o \ + rpc/dcerpc_smb.o \ + rpc/dcerpc_smb2.o \ + rpc/dcerpc_sock.o \ + rpc/dcerpc_connect.o +REQUIRED_SUBSYSTEMS = SOCKET LIBNDR LIBSMB NDR_MISC NDR_DCERPC NDR_SCHANNEL NDR_LSA NDR_NETLOGON NDR_SAMR NDR_UNIXINFO RPC_NDR_NETLOGON RPC_NDR_EPMAPPER # End SUBSYSTEM LIBRPC ################################################ diff --git a/source4/librpc/rpc/config.mk b/source4/librpc/rpc/config.mk deleted file mode 100644 index 7206d2f651..0000000000 --- a/source4/librpc/rpc/config.mk +++ /dev/null @@ -1,18 +0,0 @@ -################################################ -# Start SUBSYSTEM RPC_RAW -[SUBSYSTEM::RPC_RAW] -PRIVATE_PROTO_HEADER = dcerpc_proto.h -OBJ_FILES = \ - dcerpc.o \ - dcerpc_auth.o \ - dcerpc_schannel.o \ - dcerpc_util.o \ - dcerpc_error.o \ - dcerpc_smb.o \ - dcerpc_smb2.o \ - dcerpc_sock.o \ - dcerpc_connect.o -REQUIRED_SUBSYSTEMS = SOCKET -# End SUBSYSTEM RPC_RAW -################################################ - diff --git a/source4/main.mk b/source4/main.mk index e9e28bd035..55cbb03d30 100644 --- a/source4/main.mk +++ b/source4/main.mk @@ -29,9 +29,11 @@ include client/config.mk include libcli/config.mk include scripting/config.mk include kdc/config.mk +include passdb/config.mk binaries: $(BINARIES) libraries: $(STATIC_LIBS) $(SHARED_LIBS) +modules: $(SHARED_MODULES) headers: $(PUBLIC_HEADERS) manpages: $(MANPAGES) everything: all diff --git a/source4/param/config.mk b/source4/param/config.mk index cf21871503..800e130e9e 100644 --- a/source4/param/config.mk +++ b/source4/param/config.mk @@ -2,6 +2,5 @@ OBJ_FILES = ../dynconfig.o \ loadparm.o \ params.o \ - ../passdb/secrets.o \ generic.o REQUIRED_SUBSYSTEMS = LIBBASIC DB_WRAP diff --git a/source4/passdb/config.mk b/source4/passdb/config.mk new file mode 100644 index 0000000000..c57f79a577 --- /dev/null +++ b/source4/passdb/config.mk @@ -0,0 +1,3 @@ +[SUBSYSTEM::SECRETS] +OBJ_FILES = secrets.o +REQUIRED_SUBSYSTEMS = SAMDB diff --git a/source4/rpc_server/config.mk b/source4/rpc_server/config.mk index f6ec5d3080..ac4ca4962a 100644 --- a/source4/rpc_server/config.mk +++ b/source4/rpc_server/config.mk @@ -119,6 +119,7 @@ REQUIRED_SUBSYSTEMS = \ [MODULE::dcerpc_winreg] INIT_FUNCTION = dcerpc_server_winreg_init SUBSYSTEM = DCERPC +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ winreg/rpc_winreg.o REQUIRED_SUBSYSTEMS = \ @@ -159,6 +160,7 @@ REQUIRED_SUBSYSTEMS = \ [MODULE::dcerpc_spoolss] INIT_FUNCTION = dcerpc_server_spoolss_init SUBSYSTEM = DCERPC +OUTPUT_TYPE = MERGEDOBJ OBJ_FILES = \ spoolss/dcesrv_spoolss.o REQUIRED_SUBSYSTEMS = \ @@ -207,7 +209,8 @@ OBJ_FILES = \ handles.o REQUIRED_SUBSYSTEMS = \ LIBCLI_AUTH \ - LIBNDR + LIBNDR \ + LIBRPC # # End SUBSYSTEM DCERPC ################################################ diff --git a/source4/smbd/config.mk b/source4/smbd/config.mk index 7378b3b2c3..6acc30fcaf 100644 --- a/source4/smbd/config.mk +++ b/source4/smbd/config.mk @@ -14,6 +14,7 @@ REQUIRED_SUBSYSTEMS = \ # Start MODULE server_service_smb [MODULE::server_service_smb] INIT_FUNCTION = server_service_smb_init +OUTPUT_TYPE = MERGEDOBJ SUBSYSTEM = SERVER_SERVICE REQUIRED_SUBSYSTEMS = \ SMB @@ -25,6 +26,7 @@ REQUIRED_SUBSYSTEMS = \ [MODULE::server_service_rpc] INIT_FUNCTION = server_service_rpc_init SUBSYSTEM = SERVER_SERVICE +OUTPUT_TYPE = MERGEDOBJ REQUIRED_SUBSYSTEMS = \ DCERPC # End MODULE server_rpc -- cgit