view libpurple/plugins/perl/scripts/plugin_action.pl @ 24389:2b62300d2c19

Use libtool to build static archives when --with-static-prpls is passed to configure. Does anyone know why we weren't using libtool before? We were building old-fashioned .a files. But libtool archives (.la) can contain either static or shared libraries. I found it a lot easier to get static prpl compilation working after making this change (that is to say, it worked). Without this I got this error, which is probably fixable, but consistently using libtool seems like it makes things easier: *** Warning: Linking the shared library libpurple.la against the *** static library ../libpurple/protocols/msn/libmsn.a is not portable! /usr/bin/ld: ../libpurple/protocols/msn/libmsn.a(libmsn_a-msn.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC ../libpurple/protocols/msn/libmsn.a: could not read symbols: Bad value collect2: ld returned 1 exit status
author Mark Doliner <mark@kingant.net>
date Wed, 12 Nov 2008 11:30:51 +0000
parents 2f8274ce570a
children
line wrap: on
line source

$MODULE_NAME = "Plugin Action Test Plugin";
use Purple;

sub plugin_init {
	return %PLUGIN_INFO;
}

sub plugin_load {
	my $plugin = shift;
}

sub plugin_unload {
	my $plugin = shift;
}

sub fun1 {
	print "1\n";
}

sub fun2 {
	print "2\n";
}

sub fun3 {
	print "3\n";
}

%plugin_actions = (
	"Action 1" => \&fun1,
	"Action 2" => \&fun2,
	"Action 3" => \&fun3
#	"Action 1" => sub { print "1\n"; },
#	"Action 2" => sub { print "2\n"; },
#	"Action 3" => sub { print "3\n"; }
);

sub plugin_action_names {
	foreach $key (keys %plugin_actions) {
		push @array, $key;
	}

	return @array;
}

# All the information Purple gets about our nifty plugin
%PLUGIN_INFO = (
	perl_api_version => 2,
	name => "Perl: $MODULE_NAME",
	version => "0.1",
	summary => "Test plugin for the Perl interpreter.",
	description => "Just a basic test plugin template.",
	author => "Etan Reisner <deryni\@gmail.com>",
	url => "http://sourceforge.net/users/deryni9/",

	load => "plugin_load",
	unload => "plugin_unload",
	plugin_action_sub => "plugin_action_names"
);