diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2005-12-27 20:29:19 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:47:51 -0500 |
commit | 10c183d9ae941f0ef143b2d50aebfcaf550c72b3 (patch) | |
tree | 604e40ec0aa035de6df204a50e5e55d7a3ff3706 /source4/build/smb_build/makefile.pm | |
parent | d49f11df218699014af32d19eef8dcc0a70ff38f (diff) | |
download | samba-10c183d9ae941f0ef143b2d50aebfcaf550c72b3.tar.gz samba-10c183d9ae941f0ef143b2d50aebfcaf550c72b3.tar.bz2 samba-10c183d9ae941f0ef143b2d50aebfcaf550c72b3.zip |
r12520: Add support for --help to mkproto.pl
Allow the use of {PRIVATE,PUBLIC}_PROTO_HEADER for [SUBSYSTEM]
and [LIBRARY] sections in .mk files. Public functions can be marked
by adding _PUBLIC_ between their return type and function name.
This should eventually make include/proto.h and include/structs.h obsolete.
(This used to be commit cdfd20fa17c5c4655689e8611e0106d5716b6995)
Diffstat (limited to 'source4/build/smb_build/makefile.pm')
-rw-r--r-- | source4/build/smb_build/makefile.pm | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 598aaaba44..bae6fd5b93 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -425,8 +425,8 @@ sub Manpage($$) my ($self,$ctx) = @_; my $dir = $ctx->{BASEDIR}; - - $dir =~ s/^\.\///g; + + $ctx->{BASEDIR} =~ s/^\.\///g; push (@{$self->{manpages}}, "$dir/$ctx->{MANPAGE}"); } @@ -463,7 +463,21 @@ sub ProtoHeader($$) { my ($self,$ctx) = @_; - $self->_prepare_list($ctx, "OBJ_LIST"); + my $dir = $ctx->{BASEDIR}; + $ctx->{BASEDIR} =~ s/^\.\///g; + + my $comment = ""; + my $target = "$dir/$ctx->{PRIVATE_PROTO_HEADER}"; + if (defined($ctx->{PUBLIC_PROTO_HEADER})) { + $comment.= " and $dir/$ctx->{PRIVATE_PROTO_HEADER}"; + } else { + $ctx->{PUBLIC_PROTO_HEADER} = $ctx->{PRIVATE_PROTO_HEADER}; + } + + $self->output("$target: \$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST:.o=.c)\n"); + $self->output("\t\@echo \"Creating $dir/$ctx->{PRIVATE_PROTO_HEADER}$comment\"\n"); + + $self->output("\t\@\$(PERL) \${srcdir}/script/mkproto.pl --private=$dir/$ctx->{PRIVATE_PROTO_HEADER} --public=$dir/$ctx->{PUBLIC_PROTO_HEADER} \$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST)\n\n"); } sub write($$) @@ -479,8 +493,7 @@ sub write($$) $self->output("PUBLIC_HEADERS = " . array2oneperline($self->{headers}) . "\n"); $self->output("PC_FILES = " . array2oneperline($self->{pc_files}) . "\n"); $self->output("ALL_OBJS = " . array2oneperline($self->{all_objs}) . "\n"); - $self->output("PROTO_OBJS = " . array2oneperline($self->{proto_objs}) . "\n"); - + $self->output("PROTO_OBJS = " . array2oneperline($self->{proto_objs}) . "\n"); $self->_prepare_mk_files(); |