diff options
author | des <des@FreeBSD.org> | 2013-09-15 00:05:16 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2013-09-15 00:05:16 +0000 |
commit | f5cbd4e274ad51ad3805bcbafdff71eaa8d5699a (patch) | |
tree | 1e3e2f1e2ea49e5521a819f8e3d9db896cc2ae54 /contrib/unbound/freebsd-sources.pl | |
parent | 2f70e45a585f3e7be1b3af4b165ecef0fc5086ff (diff) | |
download | FreeBSD-src-f5cbd4e274ad51ad3805bcbafdff71eaa8d5699a.zip FreeBSD-src-f5cbd4e274ad51ad3805bcbafdff71eaa8d5699a.tar.gz |
Two helper scripts for porting Unbound:
- freebsd-configure.sh runs ./configure with the correct parameters
and regenerates the lex and yacc code.
- freebsd-sources.pl untangles the upstream Makefile and generates
source lists for our Makefiles.
Approved by: re (blanket)
Diffstat (limited to 'contrib/unbound/freebsd-sources.pl')
-rwxr-xr-x | contrib/unbound/freebsd-sources.pl | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/contrib/unbound/freebsd-sources.pl b/contrib/unbound/freebsd-sources.pl new file mode 100755 index 0000000..4cd66e3 --- /dev/null +++ b/contrib/unbound/freebsd-sources.pl @@ -0,0 +1,72 @@ +#!/usr/bin/perl -w +#- +# Copyright (c) 2013 Dag-Erling Smørgrav +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $Id$ +# + +use strict; +use warnings; +use Text::Wrap; + +our @targets = qw(LIBUNBOUND DAEMON UBANCHOR CHECKCONF); + +our %target_names = ( + LIBUNBOUND => "libunbound", + DAEMON => "unbound", + UBANCHOR => "unbound-anchor", + CHECKCONF => "unbound-checkconf", +); + +sub get_sources($) { + my ($target) = @_; + local $/; + + open(MAKE, "-|", "make", "-V${target}_OBJ_LINK") + or die("failed to exec make: $!\n"); + my $objs = <MAKE>; + close(MAKE); + chomp($objs); + $objs =~ s/\.l?o\b/.c/g; + return (split(/\s+/, $objs)); +} + +MAIN:{ + my %sources; + foreach my $target (@targets) { + $sources{$target} = { + map({ $_ => 1 } + grep({ !exists($sources{LIBUNBOUND}->{$_}) } + get_sources($target))) + }; + print("# $target_names{$target}\n"); + my $SRCS = fill("SRCS=\t", "\t", sort keys %{$sources{$target}}); + $SRCS =~ s/\n/ \\\n/gm; + print("$SRCS\n"); + } +} + +1; + |