1356N/A Compilation and Installation
792N/A Japan Network Information Center (JPNIC)
792N/AThis file explains how to compile and install the source package.
919N/AThese procedures take the following steps:
919N/A + Prerequisite: making iconv() available
919N/A + System Configuration: running `configure' script
919N/A + Compilation: running `make'
919N/A + Test: running `make test' (optional)
919N/A + Installation: running `make install'
919N/A + Configuration Check (optional)
919N/ASee also the following section if you'd like to apply patch and install
792N/AIf you want to install generic idnkit library with code conversion
792N/Asupport, and also if your system's library does not have iconv()
792N/Afunction, which is a general codeset conversion utility, install iconv
792N/Aas an external library. You also need external library if the
792N/Asystem's implementation cannot handle UTF-8 encoding, or it doesn't
970N/Asupport some encodings which your client applications uses.
970N/AYou can get a free version of iconv() implementation (under LGPL
1356N/Alicense, aka GNU libiconv) from:
792N/A and mirrors of that site.
911N/ABut if you don't want code conversion support and you want to install
911N/Aidnkitlite library without iconv support alone, you have not install
911N/Aexternal library. Instead, set `--enable-liteonly' value to "yes" at
911N/Aconfigure script execution.
792N/A1. Running configure script
1141N/ARun `configure' script in the top directory. This checks various
1425N/Acharacteristics of your system and it will create Makefiles and
1440N/A`configure' accepts many options. Here is a list of some important
1199N/A Specifies the prefix of install directories of idnkit. The
792N/A Build `runidn' command. The default is "no".
1610N/A You cannot set this option "yes" when `--enable-liteonly' is
792N/A --with-libiconv=LIBICONV_PREFIX
792N/A If you have installed GNU libiconv and would like to link it
1199N/A to idnkit, specify this option. The argument LIBICONV_PREFIX
792N/A is install prefix of GNU libiconv. If the argument is omitted,
792N/A PREFIX (derived from --prefix=PREFIX option) is assumed.
792N/A --with-libiconv is shorthand option for GNU libiconv.
792N/A If both the shorthand option (--with-libiconv) and longhand
1196N/A options (--with-iconv-include
and/or --with-iconv) are specified,
1196N/A the longhand options have priority.
1425N/A You cannot set this option when --enable-liteonly is set
1425N/A "yes", because libidnkitlite library doesn't need iconv
792N/A --with-iconv-include=ICONV_INCDIR
792N/A If the header file "
iconv.h" resides in a directory where your
792N/A C compiler doesn't search by default, specify the directory as
792N/A You cannot set this option when `--enable-liteonly' is set
792N/A "yes", because libidnkitlite library doesn't need iconv
792N/A If your libc doesn't contain iconv(), specify the library
792N/A that contains iconv(). For example, if iconv() is libiconv
792N/A Note that if the library is a shared one, you might also want
1466N/A to specify -R option, like:
792N/A You cannot set this option when `--enable-liteonly' is set
792N/A "yes", because libidnkitlite library doesn't need iconv
792N/A --with-iconv-sofile=SOFILE_PATH
792N/A The runidn command in this kit needs to know the pathname of
792N/A shared library file that contains iconv(), if iconv() is not
792N/A part of libc. idnkit tries to find out the pathname from the
792N/A informaiton provided by `--with-iconv' option described above.
792N/A But when it fails, you have to specify it with this option,
1466N/A You cannot set this option when `--enable-liteonly' is set
792N/A "yes", because libidnkitlite library doesn't need iconv
792N/A If your iconv() (precisely, iconv_open()) does not accept
1466N/A "UTF-8" as the name of UTF-8 encoding, specify the name for
792N/A it. For example if your iconv() uses "utf8" instead, you
1466N/AThe configure script has many other options though they are not widely
792N/A Specifies the prefix of install directories for machine-specific
792N/A files. The default is PREFIX (derived from `--prefix=PREFIX'
Specifies the install directory for idnconv and runidn.
Specifies the install directory for the libraries (libidnkit
Specifies the install directory for the header files of the
Specifies the install directory for sample configuration files
Specifies the base install directory for online manuals.
Specifies the base install directory for machine independent
data files. The default is
PREFIX/share. Some data files for
Enable debugging codes. The fault is "no".
Build shared library. The fault is "yes".
Build static library. The fault is "yes".
Build the `libidnlkitite' library only. Do not build the
`libidnkit' library, idnconv and runidn. The fault is "no".
If you want to set "yes" to this option, you cannot specify it
together with `--enable-runidn', `--with-libiconv',
`--with-iconv-include', `--with-iconv' or `--with-iconv-sofile'.
To see the list of available options, you should run it with --help
Run `make' for compilation.
Optionally, type `make test' to compile and run test programs.
Note that Perl 5 is required for comipilation of the test programs.
The test programs assume that iconv() on the system recognizes the
encoding name "EUC-JP" as Japanese EUC, and "SJIS" as Japanese Shift
JIS. If iconv() on the system doesn't support the encoding name,
If you use standard iconv which is attached as default on Solaris,
converter's test "idn_converter_convfromucs4()" may fail. But it's
not the problem because the result is derived from the difference of
specification of iconv. So please ignore it if you run the test on
Run `make install' to install binaries and manuals. Don't forget to
become a super-user before the installation.
If you have installed pre-release versions of idnkit (such as 1.0pr1),
idnkit-1.0 may not work correctly because of the old configuration
file '
idn.conf'. If this is the case, you should overwrite existing
configuration files with the new ones by executing the following command
6. Configuration and usage
Edit the `
idn.conf' configuation file if you'd like to cosutomize
is also provided for your convenience.
The sample configuration file has also been installed as `
idn.conf'
if it has not exist on your system.
Also online manuals for `idnconv' and `runidn' commands are available.
Please refer them for the usage and configuration of these commands.
7. Check your configuration
A simple shell script `idnslookup' is available in the directory
`
tools/idnconv', with which you can make queries for internationalized
domain names. It may help you check your configuration.
The usage of `idnslookup' is:
Suppose that <domain-name> is an internationalized domain name written
in the local codeset (see ``LOCAL CODESET'' in the `
idn.conf' man page
for details), and <dns-server> is a hostname or IP address of DNS
`idnslookup' inquires <idn-domain-name> from <dns-server>, using
`idnconv' and `nslookup' commands. If something is wrong, you will
see an error message output by `idnconv', `nslookup' or `idnslookup'
Run `make clean' to delete files generated by `make' and `make test'
from the idnkit source directory. (Files installed by `make install'
Run `make distclean' instead to also delete files generated by
After `make distclean', you can run `configure' and compile idnkit for
another system using the source directory.
Appendix A. Applying patches
This distribution also contains patches for BIND9.
The top of these patch files describe how to apply the patch and
Note that on Solaris, "patch" command that comes with the system
sometimes doesn't work correctly. You may want to install the GNU
; $Id: INSTALL,v 1.1 2003/06/04 00:24:59 marka Exp $