view libpurple/plugins/test.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 c9dc220e0301
children
line wrap: on
line source

use Purple;

%PLUGIN_INFO = (
	perl_api_version => 2,
	name             => 'Test Perl Plugin',
	version          => '1.0',
	summary          => 'Provides as a test base for the perl plugin.',
	description      => 'Provides as a test base for the perl plugin.',
	author           => 'Etan Reisner <deryni\@pidgin.im>',
	url              => 'http://pidgin.im',

	load             => "plugin_load"
);

sub plugin_init {
	return %PLUGIN_INFO;
}

sub account_status_cb {
	my ($account, $old, $new, $data) = @_;

	Purple::Debug::info("perl test plugin", "In account_status_cb\n");

	Purple::Debug::info("perl test plugin", "Account " .
	                    $account->get_username() . " changed status.\n");
	Purple::Debug::info("perl test plugin", $data . "\n");
}

sub plugin_load {
	my $plugin = shift;

	Purple::Debug::info("perl test plugin", "plugin_load\n");

	Purple::Debug::info("perl test plugin", "Listing accounts.\n");
	foreach $account (Purple::Accounts::get_all()) {
		Purple::Debug::info("perl test plugin", $account->get_username() . "\n");
	}

	Purple::Signal::connect(Purple::Accounts::get_handle(),
	                        "account-status-changed", $plugin,
	                        \&account_status_cb, "test");
}