The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use ExtUtils::MakeMaker;

if (shift(@ARGV) =~ /CCLIENT_DIR=(.*)/) {
    $CCLIENT_DIR = $1;
} else {
    die "You need to specify the CCLIENT_DIR directory--read README\n";
}

if (! -r "$CCLIENT_DIR/c-client.a") {
    die "CCLIENT_DIR $CCLIENT_DIR does not contain c-client.a\n";
}
#
# We want to turn Cclient.o (ours) plus the object files in the
# $CCLIENT_DIR/c-client.a archive into a shared object. Simply
# including both in the MakeMaker OBJECT list works fine for Linux
# but under Digital UNIX, the combination of its ar and "ld -shared"
# can't cope with simply "ar cr tmp.a Cclient.o .../c-client.a".
# To get around that look at the contents of the c-client.a archive
# and extract all .o files from it into the current directory. Then
# we set OBJECT to be our Cclient.o plus all of those. Blech.
#

print "Examining archive file $CCLIENT_DIR/c-client.a...\n";
chomp(@contents = `ar t $CCLIENT_DIR/c-client.a`);
@objects = grep(/\.o$/, @contents);
print "Extracting object files from archive: ", join(", ", @objects), "\n";
system("ar", "x", "$CCLIENT_DIR/c-client.a", @objects);
my $err = $? >> 8;
if ($err) {
    print "Extraction failed: ar returned exit code $err\n",
	  "Please extract them manually into the current directory\n",
	  "edit Makefile.PL to remove this section of code and then rerun\n",
	  "    perl Makefile.PL\n";
    exit 1;
}
print "Extraction was apparently successful\n";

WriteMakefile(
    NAME		=> "Mail::Cclient",
    VERSION_FROM	=> "Cclient.pm",
    INC			=> "-I$CCLIENT_DIR",
    LIBS		=> ["-lc"],
    OBJECT		=> "Cclient.o @objects"
);