Date: Sun, 15 Sep 2013 00:05:16 +0000 (UTC) From: Dag-Erling Smørgrav <des@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r255577 - head/contrib/unbound Message-ID: <201309150005.r8F05GoO071583@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: des Date: Sun Sep 15 00:05:16 2013 New Revision: 255577 URL: http://svnweb.freebsd.org/changeset/base/255577 Log: 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) Added: head/contrib/unbound/freebsd-configure.sh (contents, props changed) head/contrib/unbound/freebsd-sources.pl (contents, props changed) Added: head/contrib/unbound/freebsd-configure.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/unbound/freebsd-configure.sh Sun Sep 15 00:05:16 2013 (r255577) @@ -0,0 +1,38 @@ +#!/bin/sh + +set -e + +error() { + echo "$@" >&2 + exit 1 +} + +unbound=$(dirname $(realpath $0)) +cd $unbound + +ldnssrc=$(realpath $unbound/../ldns) +[ -f $ldnssrc/ldns/ldns.h ] || error "can't find LDNS sources" +export CFLAGS="-I$ldnssrc" + +ldnsbld=$(realpath $unbound/../../lib/libldns) +[ -f $ldnsbld/Makefile ] || error "can't find LDNS build directory" + +ldnsobj=$(realpath $(make -C$ldnsbld -V.OBJDIR)) +[ -f $ldnsobj/libldns.a ] || error "can't find LDNS object directory" +export LDFLAGS="-L$ldnsobj" + +./configure \ + --with-conf-file=/etc/unbound/unbound.conf \ + --with-run-dir=/var/unbound \ + --with-username=unbound + +# Regenerate the configuration parser +{ +cat <<EOF +#include "config.h" +#include "util/configyyrename.h" +EOF +/usr/bin/flex -L -t util/configlexer.lex +} >util/configlexer.c + +/usr/bin/yacc -o util/configparser.c util/configparser.y Added: head/contrib/unbound/freebsd-sources.pl ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/unbound/freebsd-sources.pl Sun Sep 15 00:05:16 2013 (r255577) @@ -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; +
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201309150005.r8F05GoO071583>