#! /usr/bin/perl -w

# I could use GNU configure, but this file is 1K vs 40K :-)

require 5.000;
use strict;

my(@files) = qw( Makefile.in yman2html.in ymanform.html.in );
my(@progs) = qw( perl man info uniq sort install sh apropos awk);
my($perlp, $manp, $infop, $uniqp, $sortp, $installp, $shp, $aproposp, $awkp);
my(@vars) = qw( cgidir mandir formdir cgiurl indexurl bindir usegnuinfo section_arg);
my($cgidir, $mandir, $formdir, $cgiurl, $indexurl, $bindir ,$section_arg);
my($usegnuinfo);

# defaults
$cgidir='/usr/local/httpd/cgi-bin';
$mandir='/usr/local/man';
$bindir='/usr/local/bin';
$formdir='/usr/doc';
my $hn = `hostname`;
# you must use "man -s section for sun "
my $UNAME=`uname`;
if($UNAME =~ 'SunOS' ){
	$section_arg = '-s';
}else{
	$section_arg = '';
} 

chomp($hn);
$cgiurl='http://' .$hn . '/cgi-bin';
$indexurl='../index.html';
$usegnuinfo=1;

sub get_args {
	A: while(my $a = shift(@ARGV)) {
		foreach (@vars) {
			eval("\$$_=shift(\@ARGV)"),next A if ($a =~ /--?$_/);
		}	
	}
	print "\nConfiguration:\n";
	map { print "\t--$_ '", eval("\$$_"),"'\n" } @vars;	 
}

sub get_paths {
	foreach (@progs) {
		eval("\$${_}p=`which $_`;chomp(\$${_}p)");
	}
}

sub subst_paths {
	my($f, $of, $p);
	foreach $f (@files) {
		open(IN, $f) || die("Can't read $f");
		$of = $f;
		$of =~ s/\.in$//;
		open(OUT, ">$of") || die("Can't write $of");
		undef $/;
		$_ = <IN>;
		foreach $p (@progs) {
			my($up)=uc $p;
			s/\@$up\@/"\$${p}p"/gee;
		}
		foreach $p (@vars) {
			s/\@$p\@/"\$$p"/gee;
		}	
		print OUT $_;	
		close(IN);
		close(OUT);
	}
}

get_args;
get_paths;
subst_paths;
print "\n";
