1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250
|
mDNkit
Compilation and Installation
Japan Network Information Center (JPNIC)
This file explains how to compile and install the source package.
These procedures take the following steps:
+ Prerequisite: making iconv() available
+ System Configuration: running `configure' script
+ Compilation: running `make'
+ Installation: running `make install'
+ Site Configuration: tailoring `mdn.conf'
+ Configuration Check (optional)
0. Prerequisite
If your system's library does not have iconv() function, which is a
general codeset conversion utility, install it as an external library.
You also need external library if the system's implementation cannot
handle UTF-8 encoding, or it doesn't support some encodings which your
client applications uses.
You can get a free version of iconv() implementation (under LGPL
license, aka GNU libiconv) from:
ftp://ftp.gnu.org/gnu/libiconv/
and mirrors of that site.
*Note*
GNU libiconv-1.6.1 have a compilation problem on NetBSD 1.5. There
is a patch file for the bug under patch/libiconv directory. If you
are a NetBSD 1.5 user and found a problem in compiling libiconv,
apply the patch and try again. The patch file contains brief
instructions on how to apply it at the beginning.
1. Running configure script
Run `configure' script in the top directory. This checks various
characteristics of your system and it will create Makefiles and
config.h appropriate for your system.
% ./configure
`configure' accepts many options. Here is a list of some important
options.
--prefix=PREFIX
Specifies the prefix of install directories of mDNkit. The
default is /usr/local.
--with-libiconv=LIBICONV_PREFIX
If you have installed GNU libiconv and would like to link it
to mDNkit, specify this option. The argument LIBICONV_PREFIX
is install prefix of GNU libiconv. If the argument is omitted,
PREFIX (derived from --prefix=PREFIX option) is assumed.
--with-libiconv is shorthand option for GNU libiconv.
--with-libiconv=/usr/local
This is equivalent to:
--with-iconv-include='-I/usr/local/include'
--with-iconv='-L/usr/local/lib -R/usr/local/lib -liconv'
If both the shorthand option (--with-libiconv) and longhand
options (--with-iconv-include and/or --with-iconv) are specified,
the longhand options have priority.
--with-iconv-include=ICONV_INCDIR
If the header file "iconv.h" resides in a directory where your
C compiler doesn't search by default, specify the directory as
DIR like this:
--with-iconv-include=/usr/local/include
--with-iconv=ICONV_LIB
If your libc doesn't contain iconv(), specify the library
that contains iconv(). For example, if iconv() is libiconv
in /usr/local/lib, you should specify:
--with-iconv="-L/usr/local/lib -liconv"
Note that if the library is a shared one, you might also want
to specify -R option, like:
--with-iconv="-L/usr/local/lib -R/usr/local/lib -liconv"
--with-iconv-sofile=SOFILE_PATH
``runmdn'' command in this kit needs to know the pathname of
shared library file that contains iconv(), if iconv() is not
part of libc. mDNkit tries to find out the pathname from the
informaiton provided by ``--with-iconv'' option described
above. But when it fails, you have to specify it with this
option, like:
--with-iconv-sofile=/usr/local/lib/libiconv.so.2.0
--with-utf8=UTF8_NAME
If your iconv() (precisely, iconv_open()) does not accept
"UTF-8" as the name of UTF-8 encoding, specify the name for
it. For example if your iconv() uses "utf8" instead, you
should specify:
--with-utf8=utf8
2. Other configure options
The configure script has many other options though they are not widely
used:
--with-preference=PREFERENCE
This option sets the preference for the sample mDNkit
configuration file (mdn.conf.sample). Also this option
enables to install default configuration file (mdn.conf)
if the file didn't exist.
The only preference supported by this version is "jp".
--with-punycode-prefix=PUNYCODE_PREFIX
Punycode is a formal name of AMC-ACE-Z, which was one of
the proposed encodings for multilingual domain name in DNS
protocol data. It requires a specific prefix string to
distinguish domain names encoded by them from normal ASCII
domain names, but the current Internet draft of Punycode
doesn't define prefix. You can specify the prefix with this
option. Otherwise mDNkit defines "zq--" as the prefix.
--with-race-prefix=RACE_PREFIX
--with-dude-prefix=DUDE_PREFIX
Also RACE and DUDE are encodings for multilingual domain name,
but they are obsolete. Since Internet drafts for these
encodings defines ACE prefixes, mDNkit uses them by default,
but you can specify prefix with these options.
--exec-prefix=EXEC_PREFIX
Specifies the prefix of install directories for machine-specific
files. The default is PREFIX (derived from ``--prefix=PREFIX''
and its default is /usr/local).
--sbindir=SBINDIR
Specifies the install directory for mdnsproxy. The default is
EXEC_PREFIX/sbin.
--bindir=BINDIR
Specifies the install directory for mdnconv and runmdn.
The default is EXEC_PREFIX/bin.
--libdir=LIBDIR
Specifies the install directory for the MDN libraries (libmdn
and libmdnlite). The default is EXEC_PREFIX/lib.
--includedir=INCDIR
Specifies the install directory for the header files of the MDN
library. The default is PREFIX/include.
--sysconfdir=SYSCONFDIR
Specifies the install directory for sample configuration files
of the MDN Library and mdnsproxy. The default is PREFIX/etc.
--mandir=MANDIR
Specifies the base install directory for online manuals.
The default is PREFIX/man.
--datadir=DATADIR
Specifies the base install directory for machine independent
data files. The default is PREFIX/share. Some data files for
mDNkit will be put under the DATADIR/mdnkit directory.
--localstatedir=LOCALSTATEDIR
--with-logdir=LOGDIR
LOGDIR specifies the directory where mdnsproxy outputs log
files by default. Its default value is LOCALSTATEDIR/mdnsproxy,
and the default value of LOCALSTATEDIR is PREFIX/var.
--enable-debug
Enable debugging codes. The fault is "no".
--enable-shared
Build shared library. The fault is "yes".
--enable-static
Build static library. The fault is "yes".
To see the list of available options, you should run it with --help
option.
% ./configure --help
3. Compiling
Run `make' for compilation.
% make
4. Installation
Run `make install' to install binaries and manuals. Don't forget to
become a super-user before the installation.
% su
# make install
5. Configuration and usage
mDNkit needs a configuration file `mdn.conf' to work properly. Unless
you specified --with-preference option to the `configure' script, you
have to create the file. Please refer the manual for `mdn.conf' for
details. A sample configuration (`mdn.conf.sample') is also provided
for your convenience.
Also online manuals for `mdnsproxy', `mdnconv' and `runmdn' commands
are available. Please refer them for the usage and configuration of
these commands.
% man mdn.conf
% man mdnsproxy
% man mdnconv
% man runmdn
6. Check your configuration
A simple shell script `mdnslookup' is available in the directory
`tools/mdnconv', with which you can make queries for multilingual
domain names. It may help you check your configuration.
The usage of `mdnslookup' is:
% tools/mdnconv/mdnslookup <domain-name> <dns-server>
Suppose that <domain-name> is an internationalized domain name written
in the local codeset (see ``LOCAL CODESET'' in the `mdn.conf' man page
for details), and <dns-server> is a hostname or IP address of DNS
server.
`mdnslookup' inquires <mdn-domain-name> from <dns-server>, using
`mdnconv' and `nslookup' commands. If something is wrong, you will
see an error message output by `mdnconv', `nslookup' or `mdnslookup'
itself.
; $Id: INSTALL,v 1.3.2.3 2002/01/24 07:24:27 m-kasahr Exp $
|