Oops, forgot to see perl-unicode(_at_)perl(_dot_)org
Dan
Begin forwarded message:
From: Dan Kogai <dankogai(_at_)dan(_dot_)co(_dot_)jp>
Date: Fri Mar 29, 2002 05:39:42 Asia/Tokyo
To: Nick Ing-Simmons <nick(_dot_)ing-simmons(_at_)elixent(_dot_)com>, Jarkko Hietaniemi
<jhi(_at_)iki(_dot_)fi>, Autrijus Tang <autrijus(_at_)autrijus(_dot_)org>, Jungshik Shin
<jshin(_at_)mailaps(_dot_)org>, SADAHIRO Tomoyuki <bqw10602(_at_)nifty(_dot_)com>
Subject: [Encode] compile -> bin/enc2xs
NI-S and Encode Hackers,
NI-S in (Prehistoric) Encode.pm
The tables are produced by the Perl script F<compile> (the name needs
to change so we can eventually install it somewhere). F<compile> can
currently read two formats:
I have worked this one out at last! To do so, I have applied the
changes below;
- encode.h
+ Encode/encode.h
encode.h moved to Encode/ so it will be installed for the later
use by enc2xs
! enc2xs
h2xs-like feature added via "h2xs -M Name *.(enc|ucm)"
! Makefile.PL
! */Makefile.PL
- compile
+ bin/enc2xs
compile renamed to enc2xs.
Affected Makefle.PL updated
After making sure renamed bin/enc2xs works, I have added one more
option to enc2xs, the -M option that generates the module suite out of
*.ucm or *.enc. Have a look at enc2xs in action.
dankogai(_at_)dan-attic[2714]:~/work/test_enc2xs>
ls total 5
5 my.ucm
dankogai(_at_)dan-attic[2715]:~/work/test_enc2xs> perl5.7.3
../Encode-current/bin/enc2xs -M My *.ucm
dankogai(_at_)dan-attic[2716]:~/work/test_enc2xs> ls
total 11
4 Makefile.PL 1 My.pm 5 my.ucm 1 t/
dankogai(_at_)dan-attic[2717]:~/work/test_enc2xs> perl5.7.3 Makefile.PL
Writing Makefile for Encode::My
dankogai(_at_)dan-attic[2718]:~/work/test_enc2xs> make test
cp My.pm blib/lib/Encode/My.pm
/usr/home/dankogai/bin/perl5.7.3 /home/dankogai/work/Encode-
current/bin/enc2xs -Q -O -o encode_t.c -f encode_t.fnm
Reading myascii (myascii)
Writing compiled form
128 bytes in string tables
384 bytes (25%) saved spotting duplicates
1 bytes (99.2%) saved using substrings
/usr/home/dankogai/bin/perl5.7.3
/home/dankogai/lib/perl5/5.7.3/ExtUtils/xsubpp -nolinenumbers -typemap
/home/dankogai/lib/perl5/5.7.3/ExtUtils/typemap My.xs > My.xsc && mv
My.xsc My.c
cc -c -I/home/dankogai/lib/perl5/site_perl/5.7.3/i386-freebsd/Encode
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing
-I/usr/local/include -O -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\"
-DPIC -fpic -I/home/dankogai/lib/perl5/5.7.3/i386-freebsd/CORE My.c
cc -c -I/home/dankogai/lib/perl5/site_perl/5.7.3/i386-freebsd/Encode
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing
-I/usr/local/include -O -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\"
-DPIC -fpic -I/home/dankogai/lib/perl5/5.7.3/i386-freebsd/CORE
encode_t.c
Running Mkbootstrap for Encode::My ()
chmod 644 My.bs
rm -f blib/arch/auto/Encode/My/My.so
LD_RUN_PATH="" cc -shared -L/usr/local/lib My.o encode_t.o -o
blib/arch/auto/Encode/My/My.so
chmod 755 blib/arch/auto/Encode/My/My.so
cp My.bs blib/arch/auto/Encode/My/My.bs
chmod 644 blib/arch/auto/Encode/My/My.bs
PERL_DL_NONLAZY=1 /usr/home/dankogai/bin/perl5.7.3 -Iblib/arch
-Iblib/lib -e 'use Test::Harness qw(&runtests $verbose); $verbose=0;
runtests @ARGV;' t/*.t
t/My....ok
All tests successful.
Files=1, Tests=2, 0 wallclock secs ( 0.09 cusr + 0.01 csys = 0.09
CPU)
As you see, you can now add any (table-based) encoding so long as you
can edit UCM! I hope you guys like it.
For the time being, things in bin/ directory will not be installed
unless you explictly say
breadperl Makefile.PL USE_SCRIPTS
jhi, whether you put enc2xs to utils/ is up to you.
I will release 1.00 after I am done with pod for this.
Dan the Encode Maintainer