Blame config/getver.pl

Packit ed3af9
#!/usr/bin/env perl
Packit ed3af9
Packit ed3af9
# Simple script to extract the version number parts from src/gd.h.  If
Packit ed3af9
# called with the middle word of the version macro, it prints the
Packit ed3af9
# value of that macro.  If called with no argument, it outputs a
Packit ed3af9
# human-readable version string.  This must be run in the project
Packit ed3af9
# root.  It is used by configure.ac and docs/naturaldocs/run_docs.sh.
Packit ed3af9
Packit ed3af9
use strict;
Packit ed3af9
Packit ed3af9
my $key = shift;
Packit ed3af9
my @version_parts = ();
Packit ed3af9
Packit ed3af9
open FH, "
Packit ed3af9
  or die "Unable to open 'version.h' for reading.\n";
Packit ed3af9
Packit ed3af9
while(<FH>) {
Packit ed3af9
  next unless m{version605b5d1778};
Packit ed3af9
  next unless /^#define\s+GD_([A-Z0-9]+)_VERSION+\s+(\S+)/;
Packit ed3af9
  my ($lk, $lv) = ($1, $2);
Packit ed3af9
  if ($lk eq $key) {
Packit ed3af9
    chomp $lv;
Packit ed3af9
    $lv =~ s/"//g;
Packit ed3af9
Packit ed3af9
    print $lv;   # no newline
Packit ed3af9
    exit(0);    # success!
Packit ed3af9
  }
Packit ed3af9
Packit ed3af9
  push @version_parts, $lv if (!$key);
Packit ed3af9
}
Packit ed3af9
Packit ed3af9
close(FH);
Packit ed3af9
Packit ed3af9
if (scalar @version_parts == 4) {
Packit ed3af9
  my $result = join(".", @version_parts[0..2]);
Packit ed3af9
  $result .= $version_parts[3];
Packit ed3af9
  $result =~ s/"//g;
Packit ed3af9
  print $result;
Packit ed3af9
  exit(0);
Packit ed3af9
}
Packit ed3af9
Packit ed3af9
exit(1);        # failure