1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-27 08:23:49 +03:00

r14349: Kill proto.h!

Prototypes are now spread over multiple headers, usually one per subsystem.
This change is required to allow proper header dependencies later on,
without recompiling Samba each time the mtime of any source file changes.
This commit is contained in:
Jelmer Vernooij
2006-03-13 22:36:07 +00:00
committed by Gerald (Jerry) Carter
parent eb8687cdd4
commit 3da79bf909
14 changed files with 43 additions and 25 deletions

View File

@@ -1,15 +1,15 @@
- subdir handler for install headers into a specific directory
- saner names for some of the .pc files - saner names for some of the .pc files
- .pc files also when there is a public header? - .pc files also when there is a public header?
- get rid of include/structs.h and include/proto.h - get rid of include/structs.h and include/proto.h
- support including a custom header by librpc/gen_ndr/*.c files - support including a custom header by librpc/gen_ndr/*.c files
- if a ndr_.*_man.h file exists, include it.
- plugin loading support in ldb - plugin loading support in ldb
- add register function to smbtorture
- proper #include dependencies: - proper #include dependencies:
for each subsystem: for each subsystem:
- include line in Makefile - include line in Makefile
- rule in Makefile - rule in Makefile
- install (parts of ?) autogenerated headers - install autogenerated headers (seperate directory)
- subdir handler for install headers into a specific directory
set of test scripts that check the code: set of test scripts that check the code:
- configure_check_unused.pl - configure_check_unused.pl

View File

@@ -37,6 +37,7 @@
#include "system/time.h" /* needed by some systems for asctime() */ #include "system/time.h" /* needed by some systems for asctime() */
#include "libcli/resolve/resolve.h" #include "libcli/resolve/resolve.h"
#include "libcli/security/proto.h" #include "libcli/security/proto.h"
#include "lib/replace/readline.h"
static int io_bufsize = 64512; static int io_bufsize = 64512;

View File

@@ -125,12 +125,19 @@ enum brl_type {
#include "libcli/nbt/libnbt.h" #include "libcli/nbt/libnbt.h"
#include "libcli/util/proto.h" #include "libcli/util/proto.h"
/* These headers are used by the NDR parsers. They are globally
* included at the moment, but will be included by the autogenerated
* NDR parsers later on and removed from here. */
#include "libcli/nbt/nbtname.h"
#include "librpc/ndr/ndr_sec.h"
#include "librpc/ndr/ndr_drsuapi.h"
#include "librpc/ndr/ndr_spoolss_buf.h"
#include "librpc/ndr/ndr_krb5pac.h"
#include "librpc/ndr/ndr_compression.h"
#undef _PRINTF_ATTRIBUTE #undef _PRINTF_ATTRIBUTE
#define _PRINTF_ATTRIBUTE(a1, a2) #define _PRINTF_ATTRIBUTE(a1, a2)
/***** automatically generated prototypes *****/
#include "include/proto.h"
/* String routines */ /* String routines */
#include "util/safe_string.h" #include "util/safe_string.h"

View File

@@ -32,6 +32,7 @@
#include "lib/events/events.h" #include "lib/events/events.h"
#include "lib/tdb/include/tdb.h" #include "lib/tdb/include/tdb.h"
#include "lib/ldb/include/ldb.h" #include "lib/ldb/include/ldb.h"
#include "lib/ldb/samba/ldif_handlers.h"
#include "db_wrap.h" #include "db_wrap.h"
static struct tdb_wrap *tdb_list; static struct tdb_wrap *tdb_list;

View File

@@ -162,6 +162,7 @@ PUBLIC_HEADERS = include/ldb.h
################################################ ################################################
# Start SUBSYSTEM LDBSAMBA # Start SUBSYSTEM LDBSAMBA
[SUBSYSTEM::LDBSAMBA] [SUBSYSTEM::LDBSAMBA]
PRIVATE_PROTO_HEADER = samba/ldif_handlers.h
REQUIRED_SUBSYSTEMS = LIB_SECURITY SAMDB REQUIRED_SUBSYSTEMS = LIB_SECURITY SAMDB
OBJ_FILES = \ OBJ_FILES = \
samba/ldif_handlers.o samba/ldif_handlers.o

View File

@@ -38,6 +38,7 @@
#define discard_const(ptr) ((void *)((intptr_t)(ptr))) #define discard_const(ptr) ((void *)((intptr_t)(ptr)))
#define discard_const_p(type, ptr) ((type *)discard_const(ptr)) #define discard_const_p(type, ptr) ((type *)discard_const(ptr))
#include "lib/ldb/samba/ldif_handlers.h"
#include "talloc.h" #include "talloc.h"
#endif /*_SAMBA_BUILD_*/ #endif /*_SAMBA_BUILD_*/

View File

@@ -28,6 +28,7 @@
#ifdef _SAMBA_BUILD_ #ifdef _SAMBA_BUILD_
#include "lib/cmdline/popt_common.h" #include "lib/cmdline/popt_common.h"
#include "lib/ldb/samba/ldif_handlers.h"
#include "auth/auth.h" #include "auth/auth.h"
#include "db_wrap.h" #include "db_wrap.h"
#endif #endif

View File

@@ -24,6 +24,7 @@
#include "lib/cmdline/popt_common.h" #include "lib/cmdline/popt_common.h"
#include "lib/registry/reg_backend_rpc.h" #include "lib/registry/reg_backend_rpc.h"
#include "system/time.h" #include "system/time.h"
#include "lib/replace/readline.h"
/* /*
* ck/cd - change key * ck/cd - change key

View File

@@ -18,3 +18,7 @@ NOPROTO = YES
REQUIRED_SUBSYSTEMS = REPLACE_READDIR REQUIRED_SUBSYSTEMS = REPLACE_READDIR
# End SUBSYSTEM LIBREPLACE # End SUBSYSTEM LIBREPLACE
############################## ##############################
[SUBSYSTEM::SMBREADLINE]
OBJ_FILES = readline.o
PRIVATE_PROTO_HEADER = readline.h

View File

@@ -72,14 +72,10 @@ AC_MSG_CHECKING(whether to use extern readline)
if test x"$EXTERNAL_READLINE" = x"yes"; then if test x"$EXTERNAL_READLINE" = x"yes"; then
AC_MSG_RESULT(yes) AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline]) AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
SMB_SUBSYSTEM(LIBREADLINE, SMB_SUBSYSTEM(LIBREADLINE, [], [SMBREADLINE EXT_LIB_READLINE])
[lib/replace/readline.o],
[EXT_LIB_READLINE])
SMB_EXT_LIB(READLINE, [${TERMLIBS}]) SMB_EXT_LIB(READLINE, [${TERMLIBS}])
SMB_EXT_LIB_ENABLE(READLINE,YES) SMB_EXT_LIB_ENABLE(READLINE,YES)
else else
SMB_SUBSYSTEM(LIBREADLINE, SMB_SUBSYSTEM(LIBREADLINE, [], [SMBREADLINE])
[lib/replace/readline.o],
[])
AC_MSG_RESULT(no) AC_MSG_RESULT(no)
fi fi

View File

@@ -36,7 +36,8 @@ OBJ_FILES = \
REQUIRED_SUBSYSTEMS = LIBCLI_COMPOSITE REQUIRED_SUBSYSTEMS = LIBCLI_COMPOSITE
[SUBSYSTEM::NDR_NBT_BUF] [SUBSYSTEM::NDR_NBT_BUF]
OBJ_FILES = nbt/nbtname.o\ PRIVATE_PROTO_HEADER = nbt/nbtname.h
OBJ_FILES = nbt/nbtname.o
[LIBRARY::LIBCLI_NBT] [LIBRARY::LIBCLI_NBT]
VERSION = 0.0.1 VERSION = 0.0.1

View File

@@ -22,6 +22,7 @@ REQUIRED_SUBSYSTEMS = LIBCLI_UTILS LIBTALLOC
VERSION = 0.0.1 VERSION = 0.0.1
SO_VERSION = 0.0.1 SO_VERSION = 0.0.1
DESCRIPTION = NDR support for compressed subcontexts DESCRIPTION = NDR support for compressed subcontexts
PRIVATE_PROTO_HEADER = ndr/ndr_compression.h
OBJ_FILES = \ OBJ_FILES = \
ndr/ndr_compression.o ndr/ndr_compression.o
REQUIRED_SUBSYSTEMS = LIBCOMPRESSION REQUIRED_SUBSYSTEMS = LIBCOMPRESSION
@@ -29,6 +30,7 @@ REQUIRED_SUBSYSTEMS = LIBCOMPRESSION
################################################ ################################################
[SUBSYSTEM::NDR_SECURITY_HELPER] [SUBSYSTEM::NDR_SECURITY_HELPER]
PRIVATE_PROTO_HEADER = ndr/ndr_sec.h
OBJ_FILES = ndr/ndr_sec_helper.o ndr/ndr_sec.o OBJ_FILES = ndr/ndr_sec_helper.o ndr/ndr_sec.o
[LIBRARY::NDR_SECURITY] [LIBRARY::NDR_SECURITY]
@@ -144,6 +146,7 @@ NOPROTO = YES
REQUIRED_SUBSYSTEMS = LIBNDR NDR_DRSUAPI_PRINT NDR_COMPRESSION NDR_SECURITY REQUIRED_SUBSYSTEMS = LIBNDR NDR_DRSUAPI_PRINT NDR_COMPRESSION NDR_SECURITY
[SUBSYSTEM::NDR_DRSUAPI_PRINT] [SUBSYSTEM::NDR_DRSUAPI_PRINT]
PRIVATE_PROTO_HEADER = ndr/ndr_drsuapi.h
OBJ_FILES = ndr/ndr_drsuapi.o OBJ_FILES = ndr/ndr_drsuapi.o
[LIBRARY::NDR_DRSBLOBS] [LIBRARY::NDR_DRSBLOBS]
@@ -195,6 +198,7 @@ NOPROTO = YES
REQUIRED_SUBSYSTEMS = LIBNDR NDR_SPOOLSS_BUF REQUIRED_SUBSYSTEMS = LIBNDR NDR_SPOOLSS_BUF
[SUBSYSTEM::NDR_SPOOLSS_BUF] [SUBSYSTEM::NDR_SPOOLSS_BUF]
PRIVATE_PROTO_HEADER = ndr/ndr_spoolss_buf.h
OBJ_FILES = ndr/ndr_spoolss_buf.o OBJ_FILES = ndr/ndr_spoolss_buf.o
[LIBRARY::NDR_WKSSVC] [LIBRARY::NDR_WKSSVC]
@@ -318,6 +322,7 @@ NOPROTO = YES
REQUIRED_SUBSYSTEMS = LIBNDR NDR_ORPC REQUIRED_SUBSYSTEMS = LIBNDR NDR_ORPC
[SUBSYSTEM::NDR_ORPC_MANUAL] [SUBSYSTEM::NDR_ORPC_MANUAL]
PRIVATE_PROTO_HEADER = ndr/ndr_orpc_proto.h
OBJ_FILES = ndr/ndr_orpc.o OBJ_FILES = ndr/ndr_orpc.o
[LIBRARY::NDR_ORPC] [LIBRARY::NDR_ORPC]
@@ -417,6 +422,7 @@ NOPROTO = YES
REQUIRED_SUBSYSTEMS = LIBNDR NDR_KRB5PAC_UTIL NDR_NETLOGON REQUIRED_SUBSYSTEMS = LIBNDR NDR_KRB5PAC_UTIL NDR_NETLOGON
[SUBSYSTEM::NDR_KRB5PAC_UTIL] [SUBSYSTEM::NDR_KRB5PAC_UTIL]
PRIVATE_PROTO_HEADER = ndr/ndr_krb5pac.h
OBJ_FILES = ndr/ndr_krb5pac.o OBJ_FILES = ndr/ndr_krb5pac.o
[LIBRARY::NDR_XATTR] [LIBRARY::NDR_XATTR]

View File

@@ -34,4 +34,6 @@ struct DUALSTRINGARRAY
struct SECURITYBINDING **securitybindings; struct SECURITYBINDING **securitybindings;
}; };
#include "librpc/ndr/ndr_orpc_proto.h"
#endif /* __NDR_ORPC_H__ */ #endif /* __NDR_ORPC_H__ */

View File

@@ -218,14 +218,6 @@ include/config.h:
@echo "You need to rerun ./autogen.sh and ./configure" @echo "You need to rerun ./autogen.sh and ./configure"
@/bin/false @/bin/false
include/proto.h: $(PROTO_OBJS:.o=.c)
@echo "Creating include/proto.h"
@$(PERL) $(srcdir)/script/mkproto.pl --public-define=_PROTO_H_ \
--public=include/proto.h --private=include/proto.h \
$(PROTO_OBJS)
proto: include/proto.h
librpc/gen_ndr/misc.h: idl librpc/gen_ndr/misc.h: idl
librpc/ndr/libndr.h: librpc/ndr/libndr_proto.h librpc/gen_ndr/misc.h librpc/ndr/libndr.h: librpc/ndr/libndr_proto.h librpc/gen_ndr/misc.h
librpc/rpc/dcerpc.h: librpc/rpc/dcerpc_proto.h librpc/rpc/dcerpc.h: librpc/rpc/dcerpc_proto.h
@@ -235,7 +227,6 @@ lib/charset/charset.h: lib/charset/charset_proto.h
include/includes.h: \ include/includes.h: \
include/config.h \ include/config.h \
include/proto.h \
librpc/ndr/libndr.h \ librpc/ndr/libndr.h \
librpc/rpc/dcerpc.h \ librpc/rpc/dcerpc.h \
auth/credentials/credentials_proto.h \ auth/credentials/credentials_proto.h \
@@ -243,7 +234,14 @@ include/includes.h: \
lib/util/util_proto.h \ lib/util/util_proto.h \
lib/charset/charset.h \ lib/charset/charset.h \
param/param.h \ param/param.h \
libcli/util/proto.h libcli/util/proto.h \
librpc/ndr/ndr_orpc_proto.h \
libcli/nbt/nbtname.h \
librpc/ndr/ndr_sec.h \
librpc/ndr/ndr_drsuapi.h \
librpc/ndr/ndr_spoolss_buf.h \
librpc/ndr/ndr_krb5pac.h \
librpc/ndr/ndr_compression.h
clean_pch: clean_pch:
-rm -f include/includes.h.gch -rm -f include/includes.h.gch
@@ -256,8 +254,6 @@ basics: include/includes.h \
heimdal_basics heimdal_basics
clean: heimdal_clean clean_pch clean: heimdal_clean clean_pch
@echo Removing headers
@-rm -f include/proto.h
@echo Removing objects @echo Removing objects
@-find . -name '*.o' -exec rm -f '{}' \; @-find . -name '*.o' -exec rm -f '{}' \;
@echo Removing hostcc objects @echo Removing hostcc objects