summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2006-03-13 22:36:07 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:57:14 -0500
commit7a121583b496a8fc0c1fcf44504d814700273e40 (patch)
tree50ffb9241cdd158ad13bcb97f49fecb30f011dc1
parent35447f0a486a00dc11355613ea7aaa7928c69961 (diff)
downloadsamba-7a121583b496a8fc0c1fcf44504d814700273e40.tar.gz
samba-7a121583b496a8fc0c1fcf44504d814700273e40.tar.xz
samba-7a121583b496a8fc0c1fcf44504d814700273e40.zip
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 used to be commit 3da79bf909f801386a52e6013db399c384d0401c)
-rw-r--r--source4/build/smb_build/TODO6
-rw-r--r--source4/client/client.c1
-rw-r--r--source4/include/includes.h13
-rw-r--r--source4/lib/db_wrap.c1
-rw-r--r--source4/lib/ldb/config.mk1
-rw-r--r--source4/lib/ldb/include/includes.h1
-rw-r--r--source4/lib/ldb/tools/cmdline.c1
-rw-r--r--source4/lib/registry/tools/regshell.c1
-rw-r--r--source4/lib/replace/config.mk4
-rw-r--r--source4/lib/replace/readline.m48
-rw-r--r--source4/libcli/config.mk3
-rw-r--r--source4/librpc/config.mk6
-rw-r--r--source4/librpc/ndr/ndr_orpc.h2
-rw-r--r--source4/main.mk20
14 files changed, 43 insertions, 25 deletions
diff --git a/source4/build/smb_build/TODO b/source4/build/smb_build/TODO
index 7d6999e973a..53027d33d52 100644
--- a/source4/build/smb_build/TODO
+++ b/source4/build/smb_build/TODO
@@ -1,15 +1,15 @@
-- subdir handler for install headers into a specific directory
- saner names for some of the .pc files
- .pc files also when there is a public header?
- get rid of include/structs.h and include/proto.h
- 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
-- add register function to smbtorture
- proper #include dependencies:
for each subsystem:
- include line 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:
- configure_check_unused.pl
diff --git a/source4/client/client.c b/source4/client/client.c
index a9d7f6cd47d..7f043f9a5db 100644
--- a/source4/client/client.c
+++ b/source4/client/client.c
@@ -37,6 +37,7 @@
#include "system/time.h" /* needed by some systems for asctime() */
#include "libcli/resolve/resolve.h"
#include "libcli/security/proto.h"
+#include "lib/replace/readline.h"
static int io_bufsize = 64512;
diff --git a/source4/include/includes.h b/source4/include/includes.h
index fb3bf44bf49..68d4d0e4a24 100644
--- a/source4/include/includes.h
+++ b/source4/include/includes.h
@@ -125,12 +125,19 @@ enum brl_type {
#include "libcli/nbt/libnbt.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
#define _PRINTF_ATTRIBUTE(a1, a2)
-/***** automatically generated prototypes *****/
-#include "include/proto.h"
-
/* String routines */
#include "util/safe_string.h"
diff --git a/source4/lib/db_wrap.c b/source4/lib/db_wrap.c
index d2481994c69..edcea2b9332 100644
--- a/source4/lib/db_wrap.c
+++ b/source4/lib/db_wrap.c
@@ -32,6 +32,7 @@
#include "lib/events/events.h"
#include "lib/tdb/include/tdb.h"
#include "lib/ldb/include/ldb.h"
+#include "lib/ldb/samba/ldif_handlers.h"
#include "db_wrap.h"
static struct tdb_wrap *tdb_list;
diff --git a/source4/lib/ldb/config.mk b/source4/lib/ldb/config.mk
index 5fbe7826265..44e6bbd43b4 100644
--- a/source4/lib/ldb/config.mk
+++ b/source4/lib/ldb/config.mk
@@ -162,6 +162,7 @@ PUBLIC_HEADERS = include/ldb.h
################################################
# Start SUBSYSTEM LDBSAMBA
[SUBSYSTEM::LDBSAMBA]
+PRIVATE_PROTO_HEADER = samba/ldif_handlers.h
REQUIRED_SUBSYSTEMS = LIB_SECURITY SAMDB
OBJ_FILES = \
samba/ldif_handlers.o
diff --git a/source4/lib/ldb/include/includes.h b/source4/lib/ldb/include/includes.h
index c85ffadb6d1..d8e2125eaa0 100644
--- a/source4/lib/ldb/include/includes.h
+++ b/source4/lib/ldb/include/includes.h
@@ -38,6 +38,7 @@
#define discard_const(ptr) ((void *)((intptr_t)(ptr)))
#define discard_const_p(type, ptr) ((type *)discard_const(ptr))
+#include "lib/ldb/samba/ldif_handlers.h"
#include "talloc.h"
#endif /*_SAMBA_BUILD_*/
diff --git a/source4/lib/ldb/tools/cmdline.c b/source4/lib/ldb/tools/cmdline.c
index 31cfcc1d08c..fa01f5c3fb0 100644
--- a/source4/lib/ldb/tools/cmdline.c
+++ b/source4/lib/ldb/tools/cmdline.c
@@ -28,6 +28,7 @@
#ifdef _SAMBA_BUILD_
#include "lib/cmdline/popt_common.h"
+#include "lib/ldb/samba/ldif_handlers.h"
#include "auth/auth.h"
#include "db_wrap.h"
#endif
diff --git a/source4/lib/registry/tools/regshell.c b/source4/lib/registry/tools/regshell.c
index 4d1bb95f351..8829d862d33 100644
--- a/source4/lib/registry/tools/regshell.c
+++ b/source4/lib/registry/tools/regshell.c
@@ -24,6 +24,7 @@
#include "lib/cmdline/popt_common.h"
#include "lib/registry/reg_backend_rpc.h"
#include "system/time.h"
+#include "lib/replace/readline.h"
/*
* ck/cd - change key
diff --git a/source4/lib/replace/config.mk b/source4/lib/replace/config.mk
index 459465c64f0..386029a7ebb 100644
--- a/source4/lib/replace/config.mk
+++ b/source4/lib/replace/config.mk
@@ -18,3 +18,7 @@ NOPROTO = YES
REQUIRED_SUBSYSTEMS = REPLACE_READDIR
# End SUBSYSTEM LIBREPLACE
##############################
+
+[SUBSYSTEM::SMBREADLINE]
+OBJ_FILES = readline.o
+PRIVATE_PROTO_HEADER = readline.h
diff --git a/source4/lib/replace/readline.m4 b/source4/lib/replace/readline.m4
index 8248a1d9003..2e42befd6f6 100644
--- a/source4/lib/replace/readline.m4
+++ b/source4/lib/replace/readline.m4
@@ -72,14 +72,10 @@ AC_MSG_CHECKING(whether to use extern readline)
if test x"$EXTERNAL_READLINE" = x"yes"; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
- SMB_SUBSYSTEM(LIBREADLINE,
- [lib/replace/readline.o],
- [EXT_LIB_READLINE])
+ SMB_SUBSYSTEM(LIBREADLINE, [], [SMBREADLINE EXT_LIB_READLINE])
SMB_EXT_LIB(READLINE, [${TERMLIBS}])
SMB_EXT_LIB_ENABLE(READLINE,YES)
else
- SMB_SUBSYSTEM(LIBREADLINE,
- [lib/replace/readline.o],
- [])
+ SMB_SUBSYSTEM(LIBREADLINE, [], [SMBREADLINE])
AC_MSG_RESULT(no)
fi
diff --git a/source4/libcli/config.mk b/source4/libcli/config.mk
index 41faf36237f..0ccf1d71260 100644
--- a/source4/libcli/config.mk
+++ b/source4/libcli/config.mk
@@ -36,7 +36,8 @@ OBJ_FILES = \
REQUIRED_SUBSYSTEMS = LIBCLI_COMPOSITE
[SUBSYSTEM::NDR_NBT_BUF]
-OBJ_FILES = nbt/nbtname.o\
+PRIVATE_PROTO_HEADER = nbt/nbtname.h
+OBJ_FILES = nbt/nbtname.o
[LIBRARY::LIBCLI_NBT]
VERSION = 0.0.1
diff --git a/source4/librpc/config.mk b/source4/librpc/config.mk
index a3f6a825975..6d63b1bde83 100644
--- a/source4/librpc/config.mk
+++ b/source4/librpc/config.mk
@@ -22,6 +22,7 @@ REQUIRED_SUBSYSTEMS = LIBCLI_UTILS LIBTALLOC
VERSION = 0.0.1
SO_VERSION = 0.0.1
DESCRIPTION = NDR support for compressed subcontexts
+PRIVATE_PROTO_HEADER = ndr/ndr_compression.h
OBJ_FILES = \
ndr/ndr_compression.o
REQUIRED_SUBSYSTEMS = LIBCOMPRESSION
@@ -29,6 +30,7 @@ REQUIRED_SUBSYSTEMS = LIBCOMPRESSION
################################################
[SUBSYSTEM::NDR_SECURITY_HELPER]
+PRIVATE_PROTO_HEADER = ndr/ndr_sec.h
OBJ_FILES = ndr/ndr_sec_helper.o ndr/ndr_sec.o
[LIBRARY::NDR_SECURITY]
@@ -144,6 +146,7 @@ NOPROTO = YES
REQUIRED_SUBSYSTEMS = LIBNDR NDR_DRSUAPI_PRINT NDR_COMPRESSION NDR_SECURITY
[SUBSYSTEM::NDR_DRSUAPI_PRINT]
+PRIVATE_PROTO_HEADER = ndr/ndr_drsuapi.h
OBJ_FILES = ndr/ndr_drsuapi.o
[LIBRARY::NDR_DRSBLOBS]
@@ -195,6 +198,7 @@ NOPROTO = YES
REQUIRED_SUBSYSTEMS = LIBNDR NDR_SPOOLSS_BUF
[SUBSYSTEM::NDR_SPOOLSS_BUF]
+PRIVATE_PROTO_HEADER = ndr/ndr_spoolss_buf.h
OBJ_FILES = ndr/ndr_spoolss_buf.o
[LIBRARY::NDR_WKSSVC]
@@ -318,6 +322,7 @@ NOPROTO = YES
REQUIRED_SUBSYSTEMS = LIBNDR NDR_ORPC
[SUBSYSTEM::NDR_ORPC_MANUAL]
+PRIVATE_PROTO_HEADER = ndr/ndr_orpc_proto.h
OBJ_FILES = ndr/ndr_orpc.o
[LIBRARY::NDR_ORPC]
@@ -417,6 +422,7 @@ NOPROTO = YES
REQUIRED_SUBSYSTEMS = LIBNDR NDR_KRB5PAC_UTIL NDR_NETLOGON
[SUBSYSTEM::NDR_KRB5PAC_UTIL]
+PRIVATE_PROTO_HEADER = ndr/ndr_krb5pac.h
OBJ_FILES = ndr/ndr_krb5pac.o
[LIBRARY::NDR_XATTR]
diff --git a/source4/librpc/ndr/ndr_orpc.h b/source4/librpc/ndr/ndr_orpc.h
index d1817969a48..6c35d010671 100644
--- a/source4/librpc/ndr/ndr_orpc.h
+++ b/source4/librpc/ndr/ndr_orpc.h
@@ -34,4 +34,6 @@ struct DUALSTRINGARRAY
struct SECURITYBINDING **securitybindings;
};
+#include "librpc/ndr/ndr_orpc_proto.h"
+
#endif /* __NDR_ORPC_H__ */
diff --git a/source4/main.mk b/source4/main.mk
index cea417d3020..6e1584c61fe 100644
--- a/source4/main.mk
+++ b/source4/main.mk
@@ -218,14 +218,6 @@ include/config.h:
@echo "You need to rerun ./autogen.sh and ./configure"
@/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/ndr/libndr.h: librpc/ndr/libndr_proto.h librpc/gen_ndr/misc.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/config.h \
- include/proto.h \
librpc/ndr/libndr.h \
librpc/rpc/dcerpc.h \
auth/credentials/credentials_proto.h \
@@ -243,7 +234,14 @@ include/includes.h: \
lib/util/util_proto.h \
lib/charset/charset.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:
-rm -f include/includes.h.gch
@@ -256,8 +254,6 @@ basics: include/includes.h \
heimdal_basics
clean: heimdal_clean clean_pch
- @echo Removing headers
- @-rm -f include/proto.h
@echo Removing objects
@-find . -name '*.o' -exec rm -f '{}' \;
@echo Removing hostcc objects