summaryrefslogtreecommitdiff
path: root/source4/build/pidl/pidl.pl
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/pidl/pidl.pl')
-rwxr-xr-xsource4/build/pidl/pidl.pl27
1 files changed, 22 insertions, 5 deletions
diff --git a/source4/build/pidl/pidl.pl b/source4/build/pidl/pidl.pl
index 8388bcfd4c..c430c75236 100755
--- a/source4/build/pidl/pidl.pl
+++ b/source4/build/pidl/pidl.pl
@@ -168,18 +168,35 @@ sub process_file($)
}
if ($opt_server) {
- my($server) = util::ChangeExtension($output, "_s.c");
- my $res = "";
+ my $h_filename = util::ChangeExtension($output, ".h");
+ my $plain = "";
+ my $dcom = "";
+
foreach my $x (@{$pidl}) {
next if ($x->{TYPE} ne "INTERFACE");
if (util::has_property($x, "object")) {
- $res .= IdlStub::ParseInterface($x);
+ $dcom .= IdlStub::ParseInterface($x);
} else {
- $res .= IdlServer::ParseInterface($x);
+ $plain .= IdlServer::ParseInterface($x);
}
}
- util::FileSave($server, $res);
+
+ if ($plain ne "") {
+ util::FileSave(util::ChangeExtension($output, "_s.c"), $plain);
+ }
+
+ if ($dcom ne "") {
+ $dcom = "
+#include \"includes.h\"
+#include \"$h_filename\"
+#include \"rpc_server/dcerpc_server.h\"
+#include \"rpc_server/common/common.h\"
+
+$dcom
+";
+ util::FileSave(util::ChangeExtension($output, "_d.c"), $dcom);
+ }
}
if ($opt_parser) {