diff options
-rwxr-xr-x | Tools/scripts/mkptools/mkpbuild | 47 | ||||
-rwxr-xr-x | Tools/scripts/mkptools/mkpinstall | 89 |
2 files changed, 136 insertions, 0 deletions
diff --git a/Tools/scripts/mkptools/mkpbuild b/Tools/scripts/mkptools/mkpbuild new file mode 100755 index 0000000..e06f89f --- /dev/null +++ b/Tools/scripts/mkptools/mkpbuild @@ -0,0 +1,47 @@ +#!/usr/bin/perl -w +# +# Copyright (c) 2000 Neil Blakey-Milner +# 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. +# + +use strict; + +my ($user, $origdir, $portname, $tmpdir, $wdpdir, $predir, $hmake); +chomp ($user = `logname`); +chomp ($origdir = `pwd`); +chomp ($portname = `basename $origdir`); +$tmpdir = "/usr/tmp/$user.$portname"; +$wdpdir = "$tmpdir/wdp"; +$predir = "$tmpdir/prefix"; + +$hmake = "env WRKDIRPREFIX=$wdpdir " . + "{SHARE,MAN,LIB,BIN}{OWN,GRP}=$user " . + "PREFIX=$predir NO_PKG_REGISTER=1 make"; + + +open(BUILD, "$hmake |"); +while(<BUILD>) { + print; +} +close(BUILD); diff --git a/Tools/scripts/mkptools/mkpinstall b/Tools/scripts/mkptools/mkpinstall new file mode 100755 index 0000000..598982c --- /dev/null +++ b/Tools/scripts/mkptools/mkpinstall @@ -0,0 +1,89 @@ +#!/usr/bin/perl -w +# +# Copyright (c) 2000 Neil Blakey-Milner +# 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. +# + +use strict; + +my ($user, $origdir, $portname, $tmpdir, $wdpdir, $predir, $hmake); +chomp ($user = `logname`); +chomp ($origdir = `pwd`); +chomp ($portname = `basename $origdir`); +$tmpdir = "/usr/tmp/$user.$portname"; +$wdpdir = "$tmpdir/wdp"; +$predir = "$tmpdir/prefix"; + +$hmake = "env WRKDIRPREFIX=$wdpdir PREFIX=$predir NO_PKG_REGISTER=1 "; +foreach (qw"SHARE MAN LIB BIN") { + $hmake .= $_ . "OWN=$user "; + $hmake .= $_ . "GRP=$user "; +} +$hmake .= "PREFIX=$predir NO_PKG_REGISTER=1 make"; + +my ($origdirs) = "$tmpdir/dirs.orig"; +my ($currdirs) = "$tmpdir/dirs.curr"; +my ($mtreedist) = "/etc/mtree/BSD.local.dist"; + +my ($redest) = "mtree -d -f $mtreedist -r -U -p $predir"; + +my ($ff) = "(cd $predir && find . ! -type d | cut -d/ -f2- | grep -v man | sort)"; +my ($fd) = "(cd $predir && find . -type d | cut -d/ -f2- | grep -v '^\.\$'| sort)"; + +system("mkdir $tmpdir"); +system("mkdir $predir"); +open(MT, "<$mtreedist") || die "Cannot open mtree file"; +open(TMT, ">$origdirs") || die "Cannot open temporary dirs file $origdirs: $!"; +my($mydir) = ""; +while (<MT>) { + chomp; + /^#/ && next; + /^\// && next; + /^\s*$/ && next; + s/^\s*//; + /^\.$/ && next; + /^\.\.$/ && do { + $mydir =~ s#/[^/]*$##; + next; + }; + s/\s+\S+$//g; + #print "$_\n"; + $mydir = "$mydir/$_"; + my ($acwrite) = $mydir; + $acwrite =~ s#^/##; + print TMT "$acwrite\n"; +} +close(TMT); + +system("$redest >/dev/null"); +open(INSTALL, "$hmake install |"); +while(<INSTALL>) { + print; +} +close(INSTALL); +die "abnormal program completion ($?): $!" if $?; +system($ff); + +system("$fd > $currdirs"); +system("comm -23 $currdirs $origdirs | sort -r | xargs -n1 echo \@dirrm"); |