diff options
Diffstat (limited to 'bootstrap')
-rwxr-xr-x | bootstrap | 40 |
1 files changed, 39 insertions, 1 deletions
@@ -1,4 +1,8 @@ -#!/usr/bin/perl +#!/bin/sh +#! -*-perl-*- +eval 'exec perl -x -wS $0 ${1+"$@"}' + if 0; + use strict; use autodie; @@ -7,6 +11,40 @@ my $mib2c_config = 'src/varnish_mib.mib2c'; die "This file must be run from the varnish-mib top level source directory" unless -r $mib2c_config; +sub vercmp { + my ($va, $vb) = @_; + my @a = split /\./, $va; + my @b = split /\./, $vb; + my $res; + while (defined(my $na = shift @a)) { + return 0 unless $na =~ /^\d+$/; + my $nb = shift @b; + return 1 unless defined($nb); + return 0 unless $nb =~ /^\d+$/; + $res = $na <=> $nb; + last if $res; + } + $res; +} + +if (-f 'lib/prereq.pl') { + print "$0: checking prerequisites\n"; + our @prereq; + do 'lib/prereq.pl'; + + while ((my $pkg = shift @prereq) && defined(my $req = shift @prereq)) { + my $v = eval "require $pkg; \$${pkg}::VERSION"; + if ($@) { + warn "$pkg not installed"; + next; + } + print "$0: $pkg version $v installed\n"; + if ($v && vercmp($v, $req) < 0) { + warn "$pkg: version $v too old (at least $req is required)"; + } + } +} + print "$0: creating ancillary directories and files\n"; foreach my $dir ('m4', 'build-aux') { mkdir($dir) unless -d $dir; |