use Config;
#
# Convert perls Config info into -DXXXX for Tk
#
$define = "" unless (defined $define);

sub try_compile
{
 my $file  = shift;
 my $msgs  = `$Config{'cc'} $file 2>&1`;
 my $ok = ($? == 0);
 unlink('a.out') if (-f 'a.out');
 return $ok;
}

if (defined $Config{'gccversion'})
 {
  # retain author's favourite warnings if using gcc
  $ver = $Config{'gccversion'};
  $define .= " -Wall -Wno-comment -Wno-unused -MMD -D__USE_FIXED_PROTOTYPES__"  if ($ver ge "2.5");
 }

$define .= " -DUSE_PROTO" if ($Config{'prototype'});
$define .= " -DHAVE_UNISTD_H" if ($Config{'i_unistd'});
$define .= " -DHAVE_SYS_SELECT_H" if ($Config{'i_sysselct'});
$define .= " -DNO_STDLIB_H" unless ($Config{'i_stdlib'});
$define .= " -DHAVE_SYS_TIME_H" if ($Config{'i_systime'});
$define .= " -DHAVE_LIMITS_H" if ($Config{'i_limits'});
$define .= " -DUSE_BCOPY" if (!$Config{'d_memmove'} && $Config{'d_bcopy'});
$define .= " -DTK_FILE_COUNT=_cnt" if ($Config{'d_stdstdio'});

if (defined $Config{'selecttype'})
 {
   my $type = $Config{'selecttype'};
   $type =~ s/\s*\*\s*$//;
   $define .= " \"-DSELECT_MASK=$type\"";
 }


my $voidflags = $Config{'voidflags'};
my $voidused  = $Config{'defvoidused'}+0;

$define .= " -DNOVOID" if (($voidflags & $voidused) != $voidused);
$define .= " -DNOCONST" unless ($Config{'d_const'});

#
# Hunt down X Library - first a function
#
sub lX11
{
 foreach (@_)
  {
   # allow any of libX11.a libX11.so.* etc.
   if (-d $_)
    {
     return "-L$_" if (<$_/libX11.*>);
    }
  }
 return undef;
}

#
# Try places perl looks for libraries
#
$xlib = &lX11(split(/\s+/,$Config{'libpth'}));

sub chooseX11
{
 # Aim to prefer X11R5 over X11R4 over X11
 (reverse(sort(@_)));
}

#
# If no luck there try "common" places 
#
unless (defined $xlib)
 {
  $xlib = &lX11('/usr/openwin/lib',chooseX11(</usr/X11*/lib>),chooseX11(</usr/lib/X11*>),</usr/Xfree*/lib>,'/usr/X386/lib')
 }

#
# Hunt down X include files 
#
$inc = "";

unless (-r "$Config{'usrinc'}/X11/Xlib.h")
 {
  foreach ('/usr/openwin/include',chooseX11(</usr/X11*/include>),chooseX11(</usr/include/X11*>),</usr/Xfree*/include>,'/usr/X386/include')
   {
    if (-d "$_/X11" && -r "$_/X11/Xlib.h")
     {
      $inc  = "-I$_";
      last;
     }
   }
 }

sub upgrade_pic
{
 my $flags = "";
 if (defined $Config{'cccdlflags'})
  {
   $flags = $Config{'cccdlflags'};
   $flags =~ s/(-[fK]? ?)pic\b/${1}PIC/; 
   $flags = "CCCDLFLAGS = $flags\n";
  }
 return $flags;
}

1;
