summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-01-08 17:13:13 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:49:52 -0500
commit022553500b75d13631a7838e93631ce8b6b458cc (patch)
tree501e5b4e402b0bdebc5450020f5f2d4b19a0418a
parentb589ac5d863e171429d5ee620615a2920a82e04d (diff)
downloadsamba-022553500b75d13631a7838e93631ce8b6b458cc.tar.gz
samba-022553500b75d13631a7838e93631ce8b6b458cc.tar.bz2
samba-022553500b75d13631a7838e93631ce8b6b458cc.zip
r12772: - create variables for the %(patsubst ...) statements for the idl files
- this also fixes the build on BSD systems metze (This used to be commit 31ff172773f1700bfd7ff24fc764d37d9b6e82c1)
-rw-r--r--source4/build/smb_build/config_mk.pm1
-rw-r--r--source4/build/smb_build/makefile.pm7
-rw-r--r--source4/librpc/config.mk5
-rw-r--r--source4/main.mk17
4 files changed, 22 insertions, 8 deletions
diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm
index 7827315541..1475ee09ee 100644
--- a/source4/build/smb_build/config_mk.pm
+++ b/source4/build/smb_build/config_mk.pm
@@ -152,6 +152,7 @@ sub run_config_mk($$$)
# global stuff is considered part of the makefile
if ($section eq "GLOBAL") {
+ if (!$infragment) { $makefile.="\n"; }
$makefile .= $line;
$infragment = 1;
next;
diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm
index 4bf2e11b6e..e8761bfb8c 100644
--- a/source4/build/smb_build/makefile.pm
+++ b/source4/build/smb_build/makefile.pm
@@ -505,12 +505,9 @@ sub write($$)
if ($self->{developer}) {
$self->output(<<__EOD__
+
#-include \$(ALL_OBJS:.o=.d)
-IDL_FILES = \$(wildcard librpc/idl/*.idl)
-\$(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_%.c,\$(IDL_FILES)) \\
-\$(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_\%_c.c,\$(IDL_FILES)) \\
-\$(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_\%_ejs.c,\$(IDL_FILES)) \\
-\$(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_%.h,\$(IDL_FILES)): idl
+
__EOD__
);
}
diff --git a/source4/librpc/config.mk b/source4/librpc/config.mk
index 52f9a7589b..a42c1b8e03 100644
--- a/source4/librpc/config.mk
+++ b/source4/librpc/config.mk
@@ -296,9 +296,8 @@ OBJ_FILES = gen_ndr/ndr_winsrepl.o
NOPROTO = YES
REQUIRED_SUBSYSTEMS = LIBNDR NDR_NBT
-librpc/gen_ndr/tables.c: $(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_%.h,$(IDL_FILES))
- @$(PERL) librpc/tables.pl --output=librpc/gen_ndr/tables.c $^
-
+librpc/gen_ndr/tables.c: $(IDL_NDR_HEADER_FILES)
+ @$(PERL) $(srcdir)/librpc/tables.pl --output=librpc/gen_ndr/tables.c $(IDL_NDR_HEADER_FILES)
[SUBSYSTEM::NDR_IFACE_TABLE]
OBJ_FILES = gen_ndr/tables.o
diff --git a/source4/main.mk b/source4/main.mk
index 5257497956..e4cdd816b0 100644
--- a/source4/main.mk
+++ b/source4/main.mk
@@ -181,6 +181,23 @@ pidl/Makefile: pidl/Makefile.PL
installpidl: pidl/Makefile
cd pidl && $(MAKE) install
+IDL_FILES = $(wildcard librpc/idl/*.idl)
+IDL_HEADER_FILES = $(patsubst librpc/idl/%.idl,librpc/gen_ndr/%.h,$(IDL_FILES))
+IDL_NDR_HEADER_FILES = $(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_%.h,$(IDL_FILES))
+IDL_NDR_PARSE_C_FILES = $(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_%.c,$(IDL_FILES))
+IDL_NDR_CLIENT_C_FILES = $(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_%_c.c,$(IDL_FILES))
+IDL_NDR_SERVER_C_FILES = $(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_%_s.c,$(IDL_FILES))
+IDL_NDR_EJS_C_FILES = $(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_%_ejs.c,$(IDL_FILES))
+IDL_NDR_EJS_H_FILES = $(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_%_ejs.h,$(IDL_FILES))
+
+$(IDL_HEADER_FILES): idl
+$(IDL_NDR_HEADER_FILES): idl
+$(IDL_NDR_PARSE_C_FILES): idl
+$(IDL_NDR_CLIENT_C_FILES): idl
+$(IDL_NDR_SERVER_C_FILES): idl
+$(IDL_NDR_EJS_C_FILES): idl
+$(IDL_NDR_EJS_H_FILES): idl
+
idl_full: pidl/lib/Parse/Pidl/IDL.pm
@CPP="$(CPP)" PERL="$(PERL)" script/build_idl.sh FULL $(PIDL_ARGS)