/usr/local/CPAN/Gtk/Makefile.PL
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
$libs = `gtk-config --libs`;
$libs = "-L/usr/X11R6/lib -lgtk -lgdk -lglib -lX11 -lXext" if not defined $libs;
@L = (LIBS => [$libs]);
$inc = `gtk-config --cflags`;
if (defined $inc) {
@I = (INC => $inc);
} else {
@I = (); #e.g, INC => -I/usr/other/include
}
$object = 'Gtk.o GtkDefs.o GtkTypes.o GdkTypes.o MiscTypes.o ' . (do 'Objects.xpl');
$typemap = ["typemap.gtk"];
$pm = {'Gdk.pm' => '$(INST_LIBDIR)/Gtk/Gdk.pm',
'Gtk.pm' => '$(INST_LIBDIR)/Gtk.pm',
'GtkTypes.pm' => '$(INST_LIBDIR)/Gtk/Types.pm',
'Atoms.pm' => '$(INST_LIBDIR)/Gtk/Atoms.pm'
};
open (EXT, ">extension.xsh");
print EXT "BOOT:\n{\n";
if (grep {/--with-gdkimlib/} @ARGV) {
$object .= 'GdkImlib.o';
push(@$typemap, 'typemap.gdkimlib');
foreach (@$libs) {
# we need to know what libraries are used by the
# gdk_imlib lib we are going to link to....
s/-l/-lgdk_imlib -lgif -ltiff -lpng -ljpeg -lz -l/; # hack hack
}
print EXT "callXS (boot_Gtk__Gdk__ImlibImage, cv, mark);\n";
}
if (grep {/--with-gnome/} @ARGV) {
$object .= 'Gnome.o';
push(@$typemap, 'typemap.gnome');
$pm->{'Gnome.pm'} = '$(INST_LIBDIR)/Gnome.pm';
# use gnomeConfig.sh...
foreach (@$libs) {
s/-l/-lgnome -lgnomeui -l/; #hack hack
}
}
print EXT "}\n";
close(EXT);
WriteMakefile(
'NAME' => 'Gtk',
'VERSION' => '0.1.16',
'PM' => $pm,
'TYPEMAPS' => $typemap,
'XSOPT' => '-noversioncheck',
'DEFINE' => '', # e.g., '-DHAVE_SOMETHING'
'OBJECT' => $object,
'XSPROTOARG' => '-noprototypes',
@I,
@L
);