#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License"). You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
use 5.7.2;
use strict;
my $name = 'Byte';
my %tables = (
byte_t =>
[
# misc. vendors
'gsm0338.ucm',
'nextstep.ucm',
'hp-roman8.ucm',
'viscii.ucm',
'adobeStdenc.ucm',
# koi8
'koi8-f.ucm', 'koi8-r.ucm', 'koi8-u.ucm',
# Mac
qw(
),
],
);
my %not_here =
map {$_ => 1}
(
'8859-1.ucm', # default
);
{
}
closedir(ENC);
VERSION_FROM => "$name.pm",
OBJECT => '$(O_FILES)',
'dist' => {
COMPRESS => 'gzip -9f',
SUFFIX => 'gz',
DIST_DEFAULT => 'all tardist',
},
MAN3PODS => {},
# OS 390 winges about line numbers > 64K ???
XSOPT => '-nolinenumbers',
);
package MY;
sub post_initialize
{
my ($self) = @_;
my %o;
my $x = $self->{'OBJ_EXT'};
# Add the table O_FILES
foreach my $e (keys %tables)
{
$o{$e.$x} = 1;
}
$o{"$name$x"} = 1;
$self->{'O_FILES'} = [sort keys %o];
my @files = ("$name.xs");
my %xs;
# Do NOT add $table.h etc. to H_FILES unless we own up as to how they
# get built.
}
}
print XS <<'END';
#include <EXTERN.h>
#include <perl.h>
#include <XSUB.h>
#define U8 U8
#include "encode.h"
END
print XS qq[#include "${table}.h"\n];
}
print XS <<"END";
{
dSP;
int i = 0;
{
}
}
BOOT:
{
END
print XS qq[#include "${table}.exh"\n];
}
print XS "}\n";
close(XS);
return "# Built $name.xs\n\n";
}
sub postamble
{
my $self = shift;
my $str = "# $name\$(OBJ_EXT) depends on .h and .exh files not .c files - but all written by enc2xs\n";
$str .= "$name.c : $name.xs ";
{
$str .= " $table.c";
}
$str .= "\n\n";
$str .= "$name\$(OBJ_EXT) : $name.c\n\n";
{
my $numlines = 1;
my $lengthsofar = length($str);
my $continuator = '';
$str .= "$table.c : $enc2xs Makefile.PL";
{
{
$continuator .= " \\\n\t";
$numlines++;
} else {
$continuator = '';
}
}
my $ucopts = '-"Q" -"O"';
$str .=
open (FILELIST, ">$table.fnm")
|| die "Could not open $table.fnm: $!";
{
}
close(FILELIST);
}
return $str;
}