Gtk-Perl

 view release on metacpan or  search on metacpan

Gtk/Makefile.PL  view on Meta::CPAN

} else {
	push @defines, "-DNEED_DERIVED";
}

$Lazy = grep($_ eq "--lazy-load", @ARGV);
@ARGV = grep($_ ne "--lazy-load", @ARGV);

$Lazy = 1;

if ($Lazy) {
	#print "\n\nLazy loading enabled -- if anything breaks, please try disabling this.\n";
	push @defines, "-DLAZY_LOAD";
}

if (exists($Config{usethreads}) && $Config{usethreads} eq 'define') {
	print "Current perl supports threads. Enabling thread support\n";
	push(@defines, "-DPGTK_THREADS");
	$threadl = " gthread ";
} else {
	$threadl = "";
}

$libs = `gtk-config --libs $threadl`;
$inc = `gtk-config --cflags $threadl`;
$libs =~ s/\s+/ /g;
$inc =~ s/\s+/ /g;

$inc .= ' -I. -I./build';

$gtk_version = gtk_version();

if ($gtk_version =~ /^(\d+)\.(\d+)\.(\d+)/) {
	$gtk_major = $1;
	$gtk_minor = $2;
	$gtk_micro = $3;
} else {
	$gtk_major = $gtk_minor = $gtk_micro = 0;
}

$gtk_hverstr = sprintf("0x%02x%02x%02x", $gtk_major, $gtk_minor, $gtk_micro);

push @defines, "-DGTK_HVER=$gtk_hverstr";

if (not defined $gtk_version) {
	die "Unable to find  Gtk version...\n";
} else {
	print "Located Gtk version $gtk_version...\n";
}

mkdir("build", 0777);

$gtk->set_inc($inc);
$gtk->set_libs($libs);
$gtk->add_typemaps(map {cwd().'/'.$_} "build/GtkTypemap", "gtk-0.99.typemap", "gtk-1.2.typemap");
$gtk->add_headers ('<gtk/gtk.h>', '<gtk/gtkinvisible.h>', '"GtkTypes.h"', '"GdkTypes.h"', '"MiscTypes.h"');
$gtk->install (qw(build/PerlGtkInt.h build/PerlGtkExt.h ppport.h build/GtkDefs.h));
$gtk->add_c(qw(build/GtkDefs.c build/PerlGtkExt.c 
	GdkTypes.c GtkTypes.c MiscTypes.c Derived.c));
$gtk->add_xs ('Gtk.xs', "Gtk-1.1.xs", "GtkAccelGroup.xs", "GtkProgressBar-1.1.xs", 
	"GtkToolbar-1.1.6.xs", "GtkAccelGroup.xs", "GtkProgressBar-1.1.xs", "GtkCList-1.2.xs",
	"GtkTearoffMenuItem.xs", "GtkCalendar.xs", "Gtk-1.2.xs");
$gtk->add_defs (qw(gtk-0.99.defs gtk-1.0.defs gtk-1.1.defs gtk-1.1.1.defs gtk-1.1.3.defs gtk-1.1.4.defs gtk-1.1.6.defs gtk-1.2.defs ));

$gtk->add_xs ("GtkSelection.xs");
$gtk->add_boot ("Gtk::Selection", "Gtk11", "Gtk__AccelGroup", "Gtk::ProgressBar11",
	"Gtk::Toolbar116", "Gtk__AccelGroup", "Gtk::ProgressBar11", "Gtk::CList12", "Gtk12");

$gtk->add_pm (
	'Gdk.pm' => '$(INST_LIBDIR)/Gtk/Gdk.pm',
	'Gtk.pm' => '$(INST_LIBDIR)/Gtk.pm',
	'LWP.pm' => '$(INST_LIBDIR)/Gtk/LWP.pm',
	'http.pm' => '$(INST_LIBDIR)/Gtk/LWP/http.pm',
	'io.pm' => '$(INST_LIBDIR)/Gtk/io.pm',
	'lazy.pm' => '$(INST_LIBDIR)/Gtk/lazy.pm',
	'Atoms.pm' => '$(INST_LIBDIR)/Gtk/Atoms.pm',
	'GtkCListModel.pm' => '$(INST_LIBDIR)/Gtk/CListModel.pm',
	'GtkColorSelectButton.pm' => '$(INST_LIBDIR)/Gtk/ColorSelectButton.pm',
	'LogHandler.pm' => '$(INST_LIBDIR)/Gtk/LogHandler.pm',
	'build/GtkTypes.pm' => '$(INST_ARCHLIBDIR)/Gtk/Types.pm',
	'build/GtkKeysyms.pm' => '$(INST_ARCHLIBDIR)/Gtk/Keysyms.pm'
);

$gtk->add_pm(
	'build/GtkTypesLazy.pm' => '$(INST_ARCHLIBDIR)/Gtk/TypesLazy.pm'
) if $Lazy;

@clean = qw( build/* */*.o */*/*.o);

require "../tools/gendefs.pl";

print "Invoking gendefs.pl with [",join(", ",$gtk->get_defs), "].\n";
print "Please wait, this may take a moment...\n";

@a = (	'-f', 'Gtk', 
		'-p', 'Gtk=Gtk',
		'-p', 'GdkGL=Gtk::Gdk::GL',
		'-p', 'GdkRgb=Gtk::Gdk::Rgb',
		'-p', 'Gdk=Gtk::Gdk',
		'-p', 'Gnome=Gnome',
		'-p', 'Panel=Gnome::Panel',
		'-m', 'Gtk');
if ($Lazy) {
	push @a, "-L";
}
foreach ($gtk->get_defs) {
	push @a, '-d', $_;
}
foreach ($gtk->get_headers) {
	push @a, '-i', $_;
}

$gtk->add_xs(gendefs::gendefs(@a));

# documentation
gendefs::gen_doc();
system($Config{perlpath}, "../tools/gendoc.pl", $gtk->get_xs);
system($Config{perlpath}, "../tools/gpdoc2pod");

use File::Basename;

foreach ( '../tools/gendefs.pl', '../tools/genext.pl', '../tools/gendoc.pl', '../tools/gpdoc2pod') {



( run in 0.899 second using v1.01-cache-2.11-cpan-39bf76dae61 )