#!/bin/sh # # $NetBSD: createbuildlink,v 1.40 2022/07/08 18:06:19 rillig Exp $ # # Copyright (c) 2002 The NetBSD Foundation, Inc. # All rights reserved. # # This code is derived from software contributed to The NetBSD Foundation # by Rene Hexel. # # 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. # # Create an initial buildlink3.mk from a package's Makefile and PLIST # REV=`echo '$Revision: 1.40 $' | sed 's/\\$//g'` tmpdir=/tmp spacesintab=8 makefile=Makefile sedrules=$tmpdir/sedrules.buildlink.$$ PLIST=PLIST CREATEPLSUBST=false args=`getopt 3p $*` if [ $? != 0 ]; then echo "Usage: $0 [-p] > buildlink3.mk" exit 2 fi set -- $args while [ $# -gt 0 ]; do case "$1" in -3) shift;; -p) CREATEPLSUBST=true shift;; --) shift; break ;; esac shift done ## ## some simple integrity checking ## if [ ! -f $makefile ]; then echo "===> Incomplete package! To create a buildlink file <===" echo "===> a working $makefile is required! <===" exit 1 fi ## ## try to find any included Makefile.common's ## commons=`grep '^.include.*Makefile.common\"' $makefile | \ sed 's/^.*"\(.*\)".*/\1/'` ## ## package specific variables ## CURDIR=`pwd | sed 's|^.*/\([^/]*/[^/]*\)$|\1|'` PKGNAME=`@MAKE@ show-var VARNAME=PKGNAME` PKGVER=`echo $PKGNAME | sed -e 's/^.*-//'` PKGNOVER=`echo $PKGNAME | sed -e 's/-[^-]*$//'` PKGUPPER=`echo $PKGNOVER | tr '[:lower:]' '[:upper:]' | tr - _` GO_PACKAGE=`@MAKE@ show-var VARNAME=GO_SRCPATH` PREFIX=LOCALBASE ## ## create sed rules ## echo >$sedrules "s|@@CURDIR@@|$CURDIR|g" echo >>$sedrules "s|@@ID@@|\$Net""BSD\$|g" echo >>$sedrules "s|@@PKGNAME@@|$PKGNAME|g" echo >>$sedrules "s|@@PKGNOVER@@|$PKGNOVER|g" echo >>$sedrules "s|@@PKGUPPER@@|$PKGUPPER|g" echo >>$sedrules "s|@@PKGVER@@|$PKGVER|g" echo >>$sedrules "s|@@PREFIX@@|$PREFIX|g" echo >>$sedrules "s|@@REV@@|$REV|g" # # buildlink header # sed -f $sedrules <=$PKGVER EOF sed -f $sedrules </dev/null 2>&1 && cat <