Blame lib/Autom4te/Configure_ac.pm

Packit 47b4ca
# Copyright (C) 2003-2012 Free Software Foundation, Inc.
Packit 47b4ca
Packit 47b4ca
# This program is free software; you can redistribute it and/or modify
Packit 47b4ca
# it under the terms of the GNU General Public License as published by
Packit 47b4ca
# the Free Software Foundation; either version 2, or (at your option)
Packit 47b4ca
# any later version.
Packit 47b4ca
Packit 47b4ca
# This program is distributed in the hope that it will be useful,
Packit 47b4ca
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 47b4ca
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 47b4ca
# GNU General Public License for more details.
Packit 47b4ca
Packit 47b4ca
# You should have received a copy of the GNU General Public License
Packit 47b4ca
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit 47b4ca
Packit 47b4ca
###############################################################
Packit 47b4ca
# The main copy of this file is in Automake's git repository. #
Packit 47b4ca
# Updates should be sent to automake-patches@gnu.org.         #
Packit 47b4ca
###############################################################
Packit 47b4ca
Packit 47b4ca
package Autom4te::Configure_ac;
Packit 47b4ca
Packit 47b4ca
use 5.006;
Packit 47b4ca
use strict;
Packit 47b4ca
use Exporter;
Packit 47b4ca
use Autom4te::Channels;
Packit 47b4ca
use Autom4te::ChannelDefs;
Packit 47b4ca
Packit 47b4ca
use vars qw (@ISA @EXPORT);
Packit 47b4ca
Packit 47b4ca
@ISA = qw (Exporter);
Packit 47b4ca
@EXPORT = qw (&find_configure_ac &require_configure_ac);
Packit 47b4ca
Packit 47b4ca
=head1 NAME
Packit 47b4ca
Packit 47b4ca
Autom4te::Configure_ac - Locate configure.ac or configure.in.
Packit 47b4ca
Packit 47b4ca
=head1 SYNOPSIS
Packit 47b4ca
Packit 47b4ca
  use Autom4te::Configure_ac;
Packit 47b4ca
Packit 47b4ca
  # Try to locate configure.in or configure.ac in the current
Packit 47b4ca
  # directory.  It may be absent.  Complain if both files exist.
Packit 47b4ca
  my $file_name = find_configure_ac;
Packit 47b4ca
Packit 47b4ca
  # Likewise, but bomb out if the file does not exist.
Packit 47b4ca
  my $file_name = require_configure_ac;
Packit 47b4ca
Packit 47b4ca
  # Likewise, but in $dir.
Packit 47b4ca
  my $file_name = find_configure_ac ($dir);
Packit 47b4ca
  my $file_name = require_configure_ac ($dir);
Packit 47b4ca
Packit 47b4ca
=over 4
Packit 47b4ca
Packit 47b4ca
=back
Packit 47b4ca
Packit 47b4ca
=head2 Functions
Packit 47b4ca
Packit 47b4ca
=over 4
Packit 47b4ca
Packit 47b4ca
=item C<$configure_ac = find_configure_ac ([$directory])>
Packit 47b4ca
Packit 47b4ca
Find a F<configure.ac> or F<configure.in> file in C<$directory>,
Packit 47b4ca
defaulting to the current directory.  Complain if both files are present.
Packit 47b4ca
Return the name of the file found, or the former if neither is present.
Packit 47b4ca
Packit 47b4ca
=cut
Packit 47b4ca
Packit 47b4ca
sub find_configure_ac (;@)
Packit 47b4ca
{
Packit 47b4ca
  my ($directory) = @_;
Packit 47b4ca
  $directory ||= '.';
Packit 47b4ca
  my $configure_ac =
Packit 47b4ca
    File::Spec->canonpath (File::Spec->catfile ($directory, 'configure.ac'));
Packit 47b4ca
  my $configure_in =
Packit 47b4ca
    File::Spec->canonpath (File::Spec->catfile ($directory, 'configure.in'));
Packit 47b4ca
Packit 47b4ca
  if (-f $configure_ac)
Packit 47b4ca
    {
Packit 47b4ca
      if (-f $configure_in)
Packit 47b4ca
	{
Packit 47b4ca
	  msg ('unsupported',
Packit 47b4ca
	       "'$configure_ac' and '$configure_in' both present.\n"
Packit 47b4ca
	       . "proceeding with '$configure_ac'");
Packit 47b4ca
	}
Packit 47b4ca
      return $configure_ac
Packit 47b4ca
    }
Packit 47b4ca
  elsif (-f $configure_in)
Packit 47b4ca
    {
Packit 47b4ca
      return $configure_in;
Packit 47b4ca
    }
Packit 47b4ca
  return $configure_ac;
Packit 47b4ca
}
Packit 47b4ca
Packit 47b4ca
Packit 47b4ca
=item C<$configure_ac = require_configure_ac ([$directory])>
Packit 47b4ca
Packit 47b4ca
Like C<find_configure_ac>, but fail if neither is present.
Packit 47b4ca
Packit 47b4ca
=cut
Packit 47b4ca
Packit 47b4ca
sub require_configure_ac (;$)
Packit 47b4ca
{
Packit 47b4ca
  my $res = find_configure_ac (@_);
Packit 47b4ca
  fatal "'configure.ac' or 'configure.in' is required"
Packit 47b4ca
    unless -f $res;
Packit 47b4ca
  return $res
Packit 47b4ca
}
Packit 47b4ca
Packit 47b4ca
1;
Packit 47b4ca
Packit 47b4ca
### Setup "GNU" style for perl-mode and cperl-mode.
Packit 47b4ca
## Local Variables:
Packit 47b4ca
## perl-indent-level: 2
Packit 47b4ca
## perl-continued-statement-offset: 2
Packit 47b4ca
## perl-continued-brace-offset: 0
Packit 47b4ca
## perl-brace-offset: 0
Packit 47b4ca
## perl-brace-imaginary-offset: 0
Packit 47b4ca
## perl-label-offset: -2
Packit 47b4ca
## cperl-indent-level: 2
Packit 47b4ca
## cperl-brace-offset: 0
Packit 47b4ca
## cperl-continued-brace-offset: 0
Packit 47b4ca
## cperl-label-offset: -2
Packit 47b4ca
## cperl-extra-newline-before-brace: t
Packit 47b4ca
## cperl-merge-trailing-else: nil
Packit 47b4ca
## cperl-continued-statement-offset: 2
Packit 47b4ca
## End: