/usr/local/CPAN/Inline-Tcl/Makefile.PL
use ExtUtils::MakeMaker;
#============================================================================
# What perl are we running?
#============================================================================
use Config;
$version = $Config{version};
#============================================================================
# TCL libraries to look for
#============================================================================
my @tcl_libs =
(
'/usr/local/lib/libtcl8.4.so',
'/usr/lib/libtcl8.3.so',
'/usr/local/lib/libtcl8.3.so',
'/usr/tcl84/lib/libtcl8.4.so',
'/usr/tcl83/lib/libtcl8.3.so',
'/usr/local/lib/libtcl83.so',
'/usr/local/lib/libtcl84.so',
);
#============================================================================
# TCL include files to look for
#============================================================================
my @tcl_incs =
(
'/usr/tcl84/include/',
'/usr/tcl83/include/',
'/usr/local/include/tcl8.3/',
'/usr/local/include/tcl8.4/',
'/usr/local/include/',
'/usr/include/',
);
#============================================================================
# Search for libraries
#============================================================================
my @tcl_libs_found;
for my $loc (@tcl_libs) {
push(@tcl_libs_found, $loc) if -f $loc;
}
#============================================================================
# Search for include directories
#============================================================================
my @tcl_incs_found;
for my $loc (@tcl_incs) {
# push(@tcl_incs_found, $loc) if -d $loc;
push(@tcl_incs_found, $loc) if -f $loc."tcl.h";
}
#============================================================================
# Prompt for library to use
#============================================================================
my $num = 1;
my $lib = prompt(join("\n",("Found these TCL libraries: ",
map {$num++ . ". $_"} @tcl_libs_found))."\nUse? (or enter alternative)",
"1") if @tcl_libs_found;
$lib = prompt ("Please enter the TCL library.", "")
unless @tcl_libs_found;
$lib = $tcl_libs_found[$lib-1] if $lib =~ /^\d+$/;
#============================================================================
# Prompt for include directory to use
#============================================================================
$num = 1;
my $inc = prompt(join("\n",("Found these TCL include dirs: ",
map {$num++ . ". $_"} @tcl_incs_found))."\nUse? (or enter alternative)",
"1") if @tcl_incs_found;
$inc = prompt ("Please enter the TCL include directory.", "")
unless @tcl_incs_found;
$inc = $tcl_incs_found[$inc-1] if $inc =~ /^\d+$/;
my $lib_path = substr($lib,0,rindex($lib,'/'));
my $lib = substr($lib,rindex($lib,'/lib')+4);
$lib = substr($lib,0,rindex($lib,'.'));
#============================================================================
# Linker hints
#============================================================================
my $libs = join " ", "-l$lib";
my $path_str = "-L$lib_path";
$path_str = ($path_str . "-R$lib_path") if $^O != "linux";
print "Platform = $^O\n";
print "Tcl include path = $inc\n";
print "Tcl library path = $lib_path\n";
print "Tcl include options = -Wall -l$lib\n";
print "Tcl link options = $path_str -l$lib\n";
#============================================================================
# Write the makefile
#============================================================================
WriteMakefile(
INC => "-Wall \$(DEBUG) -I$inc",
LIBS => "-L$lib_path -R$lib_path $libs",
NAME => 'Inline::Tcl',
VERSION_FROM => 'Tcl.pm',
PREREQ_PM => {
Inline => 0.40,
},
clean => {FILES => 'blib_test/'},
);