Blame lib/Autom4te/Configure_ac.pm

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