Annotation of libwww/configure.in, revision 1.50
1.1 frystyk 1: dnl Process this file with Autoconf to create configure
2: dnl (c) COPYRIGHT MIT 1995.
3: dnl Please first read the full copyright statement in the file COPYRIGH.
1.50 ! frystyk 4: dnl @(#) $Id: configure.in,v 1.49 1998/02/27 18:35:37 frystyk Exp $
1.1 frystyk 5:
1.50 ! frystyk 6: AC_REVISION([$Id: configure.in,v 1.49 1998/02/27 18:35:37 frystyk Exp $])
1.1 frystyk 7: AC_PREREQ(2.2)
8: AC_INIT(Library)
1.41 frystyk 9:
1.5 frystyk 10: AC_CONFIG_AUX_DIR(config)
1.1 frystyk 11:
1.43 frystyk 12: AC_CANONICAL_SYSTEM
13: AC_ARG_PROGRAM
14:
1.41 frystyk 15: dnl Initialize Automake.
1.3 frystyk 16: PACKAGE=w3c-libwww
1.1 frystyk 17: AC_SUBST(PACKAGE)
1.28 frystyk 18: AC_DEFINE_UNQUOTED(W3C_PACKAGE, "$PACKAGE")
1.41 frystyk 19:
1.50 ! frystyk 20: VERSION=5.1k
1.1 frystyk 21: AC_SUBST(VERSION)
22: AC_DEFINE_UNQUOTED(W3C_VERSION, "$VERSION")
23:
1.41 frystyk 24: AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
1.43 frystyk 25: AM_CONFIG_HEADER(config.h)
1.41 frystyk 26:
27: AC_SUBST(PURIFY_CACHE)
28:
29: dnl Regular configure...
1.1 frystyk 30: AC_PROG_CC
31: AC_PROG_RANLIB
1.41 frystyk 32: AC_PROG_MAKE_SET
33:
1.1 frystyk 34: dnl Remove next line and you get an error -- autoconf
35: dnl should deal with this automatically.
36: AC_ISC_POSIX
37: AC_PATH_X
1.7 frystyk 38: dnl AC_PATH_XTRA Causes problems...
1.1 frystyk 39:
1.28 frystyk 40: dnl Default location of icons
1.50 ! frystyk 41: icondir=$datadir/w3c-icons
1.28 frystyk 42: AC_SUBST(icondir)
43:
1.34 frystyk 44: dnl Location for purify cache
45: PURIFY_CACHE=/tmp/purify.cache
46: AC_SUBST(PURIFY_CACHE)
47:
1.1 frystyk 48: dnl Various compiler directives
1.28 frystyk 49: AC_MSG_CHECKING(whether to define additional compiler specific flags)
1.5 frystyk 50: case "$target" in
51: alpha-dec*)
52: if test "$CC" = "cc"; then
53: CFLAGS="$CFLAGS -std1"
1.28 frystyk 54: AC_MSG_RESULT(Digital Unix's cc)
1.14 frystyk 55: fi
56: ;;
57: hp*)
58: if test "$CC" = "cc"; then
59: CFLAGS="$CFLAGS -Aa -D_HPUX_SOURCE"
1.28 frystyk 60: AC_MSG_RESULT(HT-UX's cc)
1.5 frystyk 61: fi
62: ;;
1.28 frystyk 63: *)
64: AC_MSG_RESULT(no)
65: ;;
1.5 frystyk 66: esac
1.1 frystyk 67:
1.31 frystyk 68: dnl Checks for configuration arguments
69:
1.50 ! frystyk 70: AC_MSG_CHECKING(whether to support direct WAIS access.)
1.31 frystyk 71: AC_ARG_WITH(wais,
72: [ --with-wais[=PATH] Compile with support for direct WAIS access.],
73: [ case "$withval" in
74: no)
75: AC_MSG_RESULT(no)
76: HTWAIS=""
77: ;;
78: *)
79: AC_MSG_RESULT(yes)
80: if test "x$withval" = "xyes"; then
1.50 ! frystyk 81: withval="/usr/local/lib/wais/wais.a /usr/local/lib/wais/client.a"
1.31 frystyk 82: fi
1.50 ! frystyk 83: LIBS="$withval -lm $LIBS"
1.31 frystyk 84: AC_TRY_LINK([],
1.50 ! frystyk 85: [ makeDocID(); ],
1.31 frystyk 86: [],
1.50 ! frystyk 87: [ AC_MSG_ERROR(Could not find one or more of the $withval libraries. You must first install WAIS.) ])
1.31 frystyk 88: HTWAIS="HTWAIS.o"
89: ;;
90: esac ],
91: AC_MSG_RESULT(no)
1.18 frystyk 92: HTWAIS=""
1.31 frystyk 93: )
1.1 frystyk 94: AC_SUBST(HTWAIS)
95:
1.31 frystyk 96: AC_MSG_CHECKING(whether to support zlib compress/decompress)
97: AC_ARG_WITH(zlib,
98: [ --with-zlib[=PATH] Compile with zlib compress/decompress support.],
99: [ case "$withval" in
100: no)
101: AC_MSG_RESULT(no)
1.33 eric 102: HTZLIB=""
1.31 frystyk 103: ;;
104: *)
105: AC_MSG_RESULT(yes)
106: if test "x$withval" = "xyes"; then
107: withval="-lz"
108: fi
109: LIBS="$withval $LIBS"
1.35 frystyk 110: AC_DEFINE(HT_ZLIB)
1.31 frystyk 111: AC_TRY_LINK([],
112: [ zlibVersion(); ],
113: [],
114: [ AC_MSG_ERROR(Could not find the $withval library. You must first install zlib.) ])
1.33 eric 115: HTZLIB="HTZip.o"
1.31 frystyk 116: ;;
117: esac ],
118: AC_MSG_RESULT(no)
1.33 eric 119: HTZLIB=""
1.31 frystyk 120: )
1.33 eric 121: AC_SUBST(HTZLIB)
1.43 frystyk 122:
123: AC_MSG_CHECKING(whether to support POSIX regex)
124: AC_ARG_WITH(regex,
125: [ --with-regex[=PATH] Compile with POSIC regex library support.],
126: [ case "$withval" in
127: no)
128: AC_MSG_RESULT(no)
129: ;;
130: *)
131: AC_MSG_RESULT(yes)
1.46 frystyk 132: AC_DEFINE(HT_POSIX_REGEX)
1.43 frystyk 133: if test "x$withval" = "xyes"; then
1.46 frystyk 134: AC_CHECK_LIB(rx, regexec,
135: [ LIBS="-lrx $LIBS" ],
136: [ AC_CHECK_LIB(c, regexec,
137: [],
138: [ AC_MSG_ERROR(Could not find a POSIX regex library. You must first install regex.) ] ) ] )
139: else
140: LIBS="$withval $LIBS"
141: AC_TRY_LINK([],
142: [ regexec(); ],
143: [],
144: [ AC_MSG_ERROR(Could not find the $withval library. You must first install regex.) ] )
1.43 frystyk 145: fi
146: ;;
147: esac ],
148: AC_MSG_RESULT(no)
149: )
1.31 frystyk 150:
1.26 frystyk 151: # borrowed from SSH - thanks!
152: AC_MSG_CHECKING(whether to support SOCKS)
153: AC_ARG_WITH(socks,
154: [ --with-socks Compile with SOCKS firewall traversal support.],
155: [ case "$withval" in
156: no)
157: AC_MSG_RESULT(no)
158: ;;
159: yes)
160: AC_MSG_RESULT(yes)
161: AC_CHECK_LIB(socks5, SOCKSconnect, [
162: socks=5
163: LIBS="-lsocks5 $LIBS"], [
164: AC_CHECK_LIB(socks, Rconnect, [
165: socks=4
166: LIBS="-lsocks $LIBS"], [
167: AC_MSG_ERROR(Could not find socks library. You must first install socks.) ] ) ] )
168: ;;
169: esac ],
170: AC_MSG_RESULT(no)
1.1 frystyk 171: )
172:
1.26 frystyk 173: if test "x$socks" = "x"; then
174: AC_MSG_CHECKING(whether to support SOCKS5)
175: AC_ARG_WITH(socks5,
176: [ --with-socks5[=PATH] Compile with SOCKS5 firewall traversal support.],
177: [ case "$withval" in
178: no)
179: AC_MSG_RESULT(no)
180: ;;
181: *)
182: AC_MSG_RESULT(yes)
183: socks=5
184: if test "x$withval" = "xyes"; then
185: withval="-lsocks5"
186: fi
187: LIBS="$withval $LIBS"
188: AC_TRY_LINK([],
189: [ SOCKSconnect(); ],
190: [],
191: [ AC_MSG_ERROR(Could not find the $withval library. You must first install socks5.) ])
192: ;;
193: esac ],
194: AC_MSG_RESULT(no)
195: )
196: fi
197:
198: if test "x$socks" = "x"; then
199: AC_MSG_CHECKING(whether to support SOCKS4)
200: AC_ARG_WITH(socks4,
201: [ --with-socks4[=PATH] Compile with SOCKS4 firewall traversal support.],
202: [ case "$withval" in
203: no)
204: AC_MSG_RESULT(no)
205: ;;
206: *)
207: AC_MSG_RESULT(yes)
208: socks=4
209: if test "x$withval" = "xyes"; then
210: withval="-lsocks"
211: fi
212: LIBS="$withval $LIBS"
213: AC_TRY_LINK([],
214: [ Rconnect(); ],
215: [],
216: [ AC_MSG_ERROR(Could not find the $withval library. You must first install socks.) ])
217: ;;
218: esac ],
219: AC_MSG_RESULT(no)
220: )
221: fi
222:
223: if test "x$socks" = "x4"; then
224: AC_DEFINE(SOCKS)
225: AC_DEFINE(SOCKS4)
226: fi
227:
228: if test "x$socks" = "x5"; then
229: AC_DEFINE(SOCKS)
230: AC_DEFINE(SOCKS5)
231: fi
232:
1.28 frystyk 233: AC_MSG_CHECKING(whether to use internal signal handlers)
234: AC_ARG_ENABLE(signals, [ --enable-signals use internal libwww signal handler.],
235: [ case "${enableval}" in
236: no)
237: AC_MSG_RESULT(no)
238: ;;
239: *)
240: AC_MSG_RESULT(yes)
241: AC_DEFINE(WWWLIB_SIG)
242: ;;
243: esac ],
244: AC_MSG_RESULT(no)
245: )
1.26 frystyk 246:
1.28 frystyk 247: AC_MSG_CHECKING(whether to disable Nagle's algorithm)
248: AC_ARG_ENABLE(nagle,
1.30 frystyk 249: [ --disable-nagle Turning off Nagle's algorithm.],
1.28 frystyk 250: [ case "${enableval}" in
251: no)
252: AC_MSG_RESULT(yes)
253: AC_DEFINE(HT_NO_NAGLE)
254: ;;
255: *)
256: AC_MSG_RESULT(no)
257: ;;
258: esac ],
1.29 frystyk 259: AC_MSG_RESULT(yes)
260: AC_DEFINE(HT_NO_NAGLE)
1.28 frystyk 261: )
262:
1.40 frystyk 263: AC_MSG_CHECKING(whether to accept new rule files without asking an end user.)
264: AC_ARG_ENABLE(autorules,
265: [ --enable-autorules Enabling acceptance of rule files without user interaction.],
266: [ case "${enableval}" in
267: yes)
268: AC_MSG_RESULT(yes)
269: AC_DEFINE(HT_AUTOMATIC_RULES)
270: ;;
271: *)
272: AC_MSG_RESULT(no)
273: ;;
274: esac ],
275: AC_MSG_RESULT(no)
276: )
277:
1.30 frystyk 278: AC_MSG_CHECKING(whether to disable HTTP/1.1 pipelining)
279: AC_ARG_ENABLE(pipelining,
280: [ --disable-pipelining Turning off HTTP/1.1 Pipelining.],
281: [ case "${enableval}" in
282: no)
283: AC_MSG_RESULT(yes)
284: AC_DEFINE(HT_NO_PIPELINING)
1.41 frystyk 285: ;;
286: *)
287: AC_MSG_RESULT(no)
288: ;;
289: esac ],
290: AC_MSG_RESULT(no)
291: )
292:
293:
294: AC_MSG_CHECKING(whether to use MUX as transport for HTTP.)
295: AC_ARG_ENABLE(mux,
296: [ --enable-mux Enabling MUX as transport for HTTP.],
297: [ case "${enableval}" in
298: yes)
299: AC_MSG_RESULT(yes)
300: AC_DEFINE(HT_MUX)
1.30 frystyk 301: ;;
302: *)
303: AC_MSG_RESULT(no)
304: ;;
305: esac ],
306: AC_MSG_RESULT(no)
307: )
308:
1.28 frystyk 309: AC_MSG_CHECKING(whether to define _REENTRANT)
1.26 frystyk 310: AC_ARG_ENABLE(reentrant, [ --enable-reentrant define _REENTRANT to enable reentrant system calls],
1.28 frystyk 311: [ case "${enableval}" in
312: no)
313: AC_MSG_RESULT(no)
314: ;;
315: *)
316: AC_MSG_RESULT(yes)
317: AC_DEFINE(HT_REENTRANT) [CFLAGS="$CFLAGS -D_REENTRANT"]
318: ;;
319: esac ],
320: AC_MSG_RESULT(no)
321: )
1.1 frystyk 322:
1.28 frystyk 323: AC_MSG_CHECKING(whether to define _POSIX_SOURCE)
1.4 frystyk 324: AC_ARG_ENABLE(posix, [ --enable-posix define _POSIX_SOURCE],
1.28 frystyk 325: [ case "${enableval}" in
326: no)
327: AC_MSG_RESULT(no)
328: ;;
329: *)
330: AC_MSG_RESULT(yes)
331: AC_DEFINE(_POSIX_SOURCE) [CFLAGS="$CFLAGS -D_POSIX_SOURCE"]
332: ;;
333: esac ],
334: AC_MSG_RESULT(no)
335: )
1.4 frystyk 336:
1.26 frystyk 337: AC_ARG_ENABLE(cyrillic, [ --enable-cyrillic include support for Cyrillic in line mode browser],
338: AC_DEFINE(CYRILLIC)
339: A_STDIO="a_stdio.o", A_STDIO="")
340: AC_SUBST(A_STDIO)
1.4 frystyk 341:
1.1 frystyk 342: dnl Checks for programs.
343: AC_PROG_INSTALL
344: AC_PROG_RANLIB
345:
346: AC_CHECK_PROGS(have_telnet, telnet)
347: if test -n "$have_telnet" ; then
348: AC_DEFINE_UNQUOTED(TELNET_PROGRAM, "$have_telnet")
349: fi
350: AC_CHECK_PROGS(have_rlogin, rlogin)
351: if test -n "$have_rlogin" ; then
352: AC_DEFINE_UNQUOTED(RLOGIN_PROGRAM, "$have_rlogin")
353: fi
354: AC_CHECK_PROGS(have_tn3270, tn3270 x3270)
355: if test -n "$have_tn3270" ; then
356: AC_DEFINE_UNQUOTED(TN3270_PROGRAM, "$have_tn3270")
357: fi
358:
359: AC_PATH_PROG(RM, rm, rm)
360: AC_PATH_PROG(AR, ar, ar)
361: AC_PATH_PROG(MKDIR, mkdir, mkdir)
362: AC_PATH_PROG(CHMOD, chmod, chmod)
363: AC_PATH_PROG(CP, cp, cp)
364: AC_PATH_PROG(TAR, tar, tar)
365: AC_PATH_PROG(CVS, cvs, cvs)
366: AC_PATH_PROG(SED, sed, sed)
367: AC_PATH_PROGS(COMPRESS, gzip compress, compress)
368: AC_PROG_LN_S
369:
370: dnl One remaining platform-specific difference in the library is the
371: dnl default postscript and image viewers: On the NeXT they are "open,"
372: dnl on other platforms they are ghostview or xv. We should decide
373: dnl how to handle these things; perhaps the following lines would be
374: dnl useful:
375: dnl AC_PATH_PROGS(postscript_viewer, open ghostview, ghostview)
376: dnl AC_DEFINE_UNQUOTED(PRESENT_POSTSCRIPT, "$postscript_viewer %s")
377: dnl AC_PATH_PROGS(image_viewer, open xv, xv)
378: dnl AC_DEFINE_UNQUOTED(PRESENT_IMAGE, "$image_viewer %s")
379:
380: dnl Checks for misc files
381: dnl AC_FILE_RESOLV_CONF
1.5 frystyk 382: AC_PATH_PROG(have_resolv_conf, resolv.conf, , /etc, /usr/etc)
383: if test -n "$have_resolv_conf" ; then
384: AC_DEFINE_UNQUOTED(RESOLV_CONF, "$have_resolv_conf")
385: fi
1.22 frystyk 386:
1.1 frystyk 387: dnl Checks for libraries:
1.7 frystyk 388: AC_CHECK_LIB(ICE, IceConnectionNumber)
389: AC_CHECK_LIB(socket, socket)
390: AC_CHECK_LIB(inet, connect)
391: AC_CHECK_LIB(nsl, t_accept)
1.20 frystyk 392: AC_CHECK_LIB(dl, dlopen)
1.1 frystyk 393:
394: dnl Checks for header files:
395: AC_CHECK_HEADERS(stdio.h)
396: AC_CHECK_HEADERS(sys/fcntl.h fcntl.h)
1.38 frystyk 397: AC_CHECK_HEADERS(sys/file.h)
398: AC_CHECK_HEADERS(sys/ioctl.h)
399: AC_CHECK_HEADERS(sys/ipc.h)
1.1 frystyk 400: AC_CHECK_HEADERS(sys/limits.h limits.h)
1.38 frystyk 401: AC_CHECK_HEADERS(sys/resource.h resource.h)
402: AC_CHECK_HEADERS(sys/select.h select.h)
403: AC_CHECK_HEADERS(sys/socket.h socket.h)
1.1 frystyk 404: AC_CHECK_HEADERS(sys/stat.h stat.h)
1.38 frystyk 405: AC_CHECK_HEADERS(sys/systeminfo.h)
1.1 frystyk 406: AC_CHECK_HEADERS(sys/time.h time.h)
1.38 frystyk 407: AC_CHECK_HEADERS(sys/types.h types.h)
408: AC_CHECK_HEADERS(sys/unistd.h unistd.h)
1.1 frystyk 409: AC_CHECK_HEADERS(string.h strings.h)
410: AC_CHECK_HEADERS(syslog.h)
411: AC_CHECK_HEADERS(appkit/appkit.h appkit.h)
1.38 frystyk 412: AC_CHECK_HEADERS(net/errno.h sys/errno.h errno.h)
1.28 frystyk 413: AC_CHECK_HEADERS(netinet/tcp.h tcp.h)
1.1 frystyk 414: AC_CHECK_HEADERS(netinet/in.h in.h)
415: AC_CHECK_HEADERS(dn.h)
1.38 frystyk 416: AC_CHECK_HEADERS(termios.h)
1.1 frystyk 417: AC_CHECK_HEADERS(pwd.h)
418: AC_CHECK_HEADERS(grp.h)
419: AC_CHECK_HEADERS(arpa/inet.h inet.h)
420: AC_CHECK_HEADERS(netdb.h)
421: AC_CHECK_HEADERS(manifest.h)
422: AC_CHECK_HEADERS(bsdtypes.h)
423: AC_CHECK_HEADERS(stdefs.h)
424: AC_CHECK_HEADERS(bsdtime.h)
425: AC_CHECK_HEADERS(dnetdb.h)
426: AC_CHECK_HEADERS(libc.h)
427: AC_CHECK_HEADERS(stdlib.h)
428: AC_CHECK_HEADERS(malloc.h)
429: AC_CHECK_HEADERS(memory.h)
430: AC_CHECK_HEADERS(unixlib.h)
431: AC_CHECK_HEADERS(ctype.h)
432: AC_CHECK_HEADERS(cursesX.h curses.h)
1.46 frystyk 433: AC_CHECK_HEADERS(rxposix.h regex.h)
1.50 ! frystyk 434: AC_CHECK_HEADERS(wais.h wais/wais.h)
1.1 frystyk 435: AC_HEADER_DIRENT
436: AC_CHECK_HEADERS(dir.h direct.h) dnl AC_HEADER_DIRENT only checks for some..
437: AC_HEADER_STDC
438: AC_HEADER_SYS_WAIT
439: AC_HEADER_TIME
440: AC_HEADER_STAT
441:
442: dnl Checks for typedefs, structures, and compiler characteristics:
443: AC_TYPE_UID_T
1.5 frystyk 444: AC_TYPE_PID_T
1.1 frystyk 445: AC_TYPE_GETGROUPS
446: AC_TYPE_MODE_T
447: AC_TYPE_SIZE_T
1.50 ! frystyk 448: AC_TYPE_SIGNAL
! 449:
1.1 frystyk 450: AC_CHECK_TYPE(BOOLEAN, char)
451: AC_CHECK_TYPE(u_char, unsigned char)
452: AC_CHECK_TYPE(u_short, unsigned short)
453: AC_CHECK_TYPE(u_long, unsigned long)
1.50 ! frystyk 454:
! 455: AC_CHECK_SIZEOF(char)
! 456: AC_CHECK_SIZEOF(char *)
1.6 frystyk 457: AC_CHECK_SIZEOF(int)
458: AC_CHECK_SIZEOF(long)
1.50 ! frystyk 459: AC_CHECK_SIZEOF_TIME_T
! 460: AC_CHECK_SIZEOF_SIZE_T
! 461:
1.1 frystyk 462: AC_C_CONST
463: AC_C_BIGENDIAN
464: AC_C_CHAR_UNSIGNED
1.50 ! frystyk 465: AC_C_LONG_DOUBLE
! 466:
1.1 frystyk 467: AC_STRUCT_TM
468: AC_STRUCT_GMTOFF
469: AC_STRUCT_TIMEZONE
470: AC_STRUCT_WINSIZE
471:
472: dnl Other types that aren't checked for, but maybe should be:
1.5 frystyk 473: dnl AC_TYPE_OFF_T AC_STRUCT_ST_RDEV
1.1 frystyk 474:
475: dnl Checks for library functions:
476: AC_FUNC_VPRINTF
477: AC_FUNC_STRFTIME
1.42 frystyk 478: AC_CHECK_FUNCS(getcwd gethostname getdomainname getwd \
1.1 frystyk 479: select socket strerror strtol opendir getpid strchr memcpy \
1.42 frystyk 480: getlogin getpass fcntl readdir sysinfo ioctl chdir tempnam \
481: getsockopt setsockopt \
482: gettimeofday mktime timegm)
1.1 frystyk 483: AC_CHECK_FUNC(unlink, , AC_CHECK_FUNC(remove, AC_DEFINE(unlink, remove)))
484:
485: dnl Checks for external globals.
486: dnl AC_CHECK_EXTERNS(socket_errno sys_errlist sys_nerr)
487:
488: dnl This is the standard UNIX value
489: AC_DEFINE(CACHE_FILE_PREFIX, "/usr/wsrc/")
490:
491: dnl THINGS TO CONSIDER
492: dnl ******************
493: AC_DEFINE(TTY_IS_SELECTABLE)
494:
495: dnl Create output files
496: AC_OUTPUT([Makefile
1.11 frystyk 497: config/Makefile
1.3 frystyk 498: Library/Makefile Library/User/Makefile Library/User/Patch/Makefile
499: Library/User/Architecture/Makefile Library/User/Using/Makefile Library/User/Guide/Makefile
1.12 frystyk 500: Library/User/Style/Makefile Library/User/Platform/Makefile
1.17 neon 501: Library/Test/Makefile Library/Test/User/Makefile Library/Test/src/Makefile
1.3 frystyk 502: Library/src/Makefile Library/src/windows/Makefile Library/src/vms/Makefile
1.11 frystyk 503: Library/Examples/Makefile
1.37 frystyk 504: Library/External/Makefile
1.9 frystyk 505: PICS-client/Makefile PICS-client/User/Makefile PICS-client/src/Makefile PICS-client/src/windows/Makefile
1.3 frystyk 506: LineMode/Makefile LineMode/User/Makefile
507: LineMode/src/Makefile LineMode/src/windows/Makefile LineMode/src/vms/Makefile
1.13 frystyk 508: Robot/Makefile Robot/User/Makefile Robot/src/Makefile Robot/src/windows/Makefile
1.39 frystyk 509: ComLine/Makefile ComLine/User/Makefile ComLine/src/Makefile ComLine/src/windows/Makefile
1.34 frystyk 510: MiniServ/Makefile MiniServ/User/Makefile MiniServ/src/Makefile
1.3 frystyk 511: Listen/Makefile Listen/User/Makefile Listen/src/Makefile
1.13 frystyk 512: Icons/Makefile Icons/WWW/Makefile Icons/32x32/Makefile Icons/internal/Makefile
1.1 frystyk 513: ], date>stamp-h)
Webmaster