r14349: Kill proto.h!
authorJelmer Vernooij <jelmer@samba.org>
Mon, 13 Mar 2006 22:36:07 +0000 (22:36 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:57:14 +0000 (13:57 -0500)
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)

14 files changed:
source4/build/smb_build/TODO
source4/client/client.c
source4/include/includes.h
source4/lib/db_wrap.c
source4/lib/ldb/config.mk
source4/lib/ldb/include/includes.h
source4/lib/ldb/tools/cmdline.c
source4/lib/registry/tools/regshell.c
source4/lib/replace/config.mk
source4/lib/replace/readline.m4
source4/libcli/config.mk
source4/librpc/config.mk
source4/librpc/ndr/ndr_orpc.h
source4/main.mk

index 7d6999e973ae53442df63504af8638100bb50a7e..53027d33d527f1ecd8374fe635c75f1912cf8518 100644 (file)
@@ -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
index a9d7f6cd47d16125f05b461957abde9fe2b33249..7f043f9a5db9ad3e6d2e81f4f1a65cdb17b2f86f 100644 (file)
@@ -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;
 
index fb3bf44bf49434a9c52c315df3f69a2449ecd166..68d4d0e4a2483fd0293750b3eab630ca4f2a0902 100644 (file)
@@ -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"
index d2481994c69604fdd9460774917f728b68a90dba..edcea2b93324326acaddc83b77da282ddd51de11 100644 (file)
@@ -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;
index 5fbe7826265d2bea4b81005fa8cef14c93c17614..44e6bbd43b4946628417dfe4149ae90990d41638 100644 (file)
@@ -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
index c85ffadb6d1213b813ce22790b0100cca8c4d4ac..d8e2125eaa0f662e2716e560265ae7e7c8a85f83 100644 (file)
@@ -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_*/
index 31cfcc1d08c28715df3d8bd16710b308b4dfd897..fa01f5c3fb0de1695cd6bd1c52947472b5e933cf 100644 (file)
@@ -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
index 4d1bb95f351fcea69413a02a42622e6aa585ab77..8829d862d330630506a00a4906222215b580762c 100644 (file)
@@ -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
index 459465c64f03655f932f396920956c17a9fb40eb..386029a7ebbc3efa1221ec0ee3deda51dcad9391 100644 (file)
@@ -18,3 +18,7 @@ NOPROTO = YES
 REQUIRED_SUBSYSTEMS = REPLACE_READDIR
 # End SUBSYSTEM LIBREPLACE
 ##############################
+
+[SUBSYSTEM::SMBREADLINE]
+OBJ_FILES = readline.o
+PRIVATE_PROTO_HEADER = readline.h
index 8248a1d9003a3a4e7e946289a9b83858d634726c..2e42befd6f644ee9dafe67b8cc6b07cba3185de9 100644 (file)
@@ -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
index 41faf36237f115b5b0b122d0f3cbe78524dfd9f2..0ccf1d712603bddddb1f673f25592a720146ce27 100644 (file)
@@ -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
index a3f6a8259755720b0429e5f575b1264a6edced7d..6d63b1bde833c821d527d84691d5123f6c3e9256 100644 (file)
@@ -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]
index d1817969a48287bdaf75c0d7b157f63fc3142b96..6c35d0106711ef4b1b73274a43b694d7ed8c13df 100644 (file)
@@ -34,4 +34,6 @@ struct DUALSTRINGARRAY
        struct SECURITYBINDING **securitybindings;
 };
 
+#include "librpc/ndr/ndr_orpc_proto.h"
+
 #endif /* __NDR_ORPC_H__ */
index cea417d3020ad71d2ca3cb598632271df813e6eb..6e1584c61fedd9630b25fae09a822146aeb15986 100644 (file)
@@ -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