source: libcaca/trunk/configure.ac @ 2088

Last change on this file since 2088 was 2088, checked in by Sam Hocevar, 12 years ago
  • Generate CLI .config files at configure time so that we can embed the library version and not rely on .so being present.
  • Property svn:keywords set to Id
File size: 15.0 KB
Line 
1# $Id: configure.ac 2088 2007-11-28 07:15:01Z sam $
2
3AC_INIT(caca/caca.c)
4
5AC_PREREQ(2.50)
6AC_CONFIG_AUX_DIR(autotools)
7AC_CANONICAL_SYSTEM
8
9AM_INIT_AUTOMAKE(libcaca, 0.99.beta12)
10LT_MAJOR="0"
11LT_MINOR="99"
12LT_MICRO="12"
13AC_SUBST(LT_MAJOR)
14AC_SUBST(LT_MINOR)
15AC_SUBST(LT_MICRO)
16LT_VERSION="$LT_MAJOR:$LT_MINOR:$LT_MICRO"
17AC_SUBST(LT_VERSION)
18AM_CONFIG_HEADER(config.h)
19
20AM_PROG_CC_C_O
21AC_PROG_CPP
22AC_PROG_CXX
23AC_PROG_CXXCPP
24_AM_DEPENDENCIES([OBJC])
25OBJC="${CC}"
26AC_SUBST(OBJC)
27AC_SUBST(OBJCFLAGS)
28AM_PROG_AS
29
30AC_LIBTOOL_WIN32_DLL
31AM_PROG_LIBTOOL
32AC_LIBTOOL_CXX
33
34AC_C_CONST
35AC_C_INLINE
36AC_TYPE_SIGNAL
37
38dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right
39dnl now otherwise it might be set in an obscure if statement. Same thing for
40dnl PKG_PROG_PKG_CONFIG which needs to be called first.
41AC_EGREP_CPP(yes, foo)
42PKG_PROG_PKG_CONFIG()
43m4_pattern_allow([^PKG_CONFIG_LIBDIR$])
44if test "${build}" != "${host}" -a "${PKG_CONFIG_LIBDIR}" = ""; then
45  export PKG_CONFIG_LIBDIR=/dev/null
46fi
47
48dnl output driver features
49AC_ARG_ENABLE(slang,
50  [  --enable-slang          slang graphics support (autodetected)])
51AC_ARG_ENABLE(ncurses,
52  [  --enable-ncurses        ncurses graphics support (autodetected)])
53AC_ARG_ENABLE(win32,
54  [  --enable-win32          Windows console support (autodetected)])
55AC_ARG_ENABLE(conio,
56  [  --enable-conio          DOS conio.h graphics support (autodetected)])
57AC_ARG_ENABLE(x11,
58  [  --enable-x11            X11 support (autodetected)])
59AC_ARG_ENABLE(gl,
60  [  --enable-gl             OpenGL support (autodetected)])
61AC_ARG_ENABLE(cocoa,
62  [  --enable-cocoa          Cocoa support (autodetected)])
63AC_ARG_ENABLE(network,
64  [  --enable-network        Network support (autodetected)])
65AC_ARG_ENABLE(vga,
66  [  --enable-vga            VGA support (default disabled)])
67
68dnl language bindings
69AC_ARG_ENABLE(csharp,
70  [  --enable-csharp         C# bindings (autodetected)])
71AC_ARG_ENABLE(cxx,
72  [  --enable-cxx            C++ bindings (autodetected)])
73AC_ARG_ENABLE(ruby,
74  [  --enable-ruby           Ruby bindings (autodetected)])
75
76dnl example programs features
77AC_ARG_ENABLE(imlib2,
78  [  --enable-imlib2         Imlib2 graphics support (autodetected)])
79
80dnl conditional builds
81AC_ARG_ENABLE(debug,
82  [  --enable-debug          build debug versions of the library])
83AC_ARG_ENABLE(plugins,
84  [  --enable-plugins        build X11 and GL drivers as plugins])
85AC_ARG_ENABLE(doc,
86  [  --enable-doc            build documentation (needs doxygen and LaTeX)])
87
88AC_CHECK_HEADERS(stdio.h stdarg.h signal.h sys/ioctl.h sys/time.h inttypes.h endian.h unistd.h arpa/inet.h netinet/in.h winsock2.h errno.h locale.h getopt.h dlfcn.h termios.h)
89AC_CHECK_FUNCS(signal ioctl vsnprintf getenv putenv strcasecmp htons)
90AC_CHECK_FUNCS(usleep gettimeofday)
91
92AC_CHECK_FUNCS(getopt_long,
93 [AC_DEFINE(HAVE_GETOPT_LONG, 1, Define to 1 if you have the `getopt_long' function.)],
94 [AC_CHECK_LIB(gnugetopt, getopt_long,
95   [AC_DEFINE(HAVE_GETOPT_LONG, 1, Define to 1 if you have the `getopt_long' function.)
96    GETOPT_LIBS="${GETOPT_LIBS} -lgnugetopt"])])
97AC_SUBST(GETOPT_LIBS)
98
99AC_MSG_CHECKING(for Sleep)
100AC_TRY_COMPILE([#include <windows.h>],[Sleep(42);],
101 [AC_MSG_RESULT(yes)
102  AC_DEFINE(HAVE_SLEEP, 1, [Define to 1 if you have the `Sleep' function.])],
103 [AC_MSG_RESULT(no)])
104
105AC_MSG_CHECKING(for fsin/fcos)
106AC_TRY_COMPILE([],[asm("fsin\n\tfcos");],
107 [AC_MSG_RESULT(yes)
108  AC_DEFINE(HAVE_FSIN_FCOS, 1, [Define to 1 if you have the `fsin' and `fcos' operands.])],
109 [AC_MSG_RESULT(no)])
110
111AC_MSG_CHECKING(for fldln2/fxch/fyl2x)
112AC_TRY_COMPILE([],[asm("fldln2; fldln2; fxch; fyl2x");],
113 [AC_MSG_RESULT(yes)
114  AC_DEFINE(HAVE_FLDLN2, 1, [Define to 1 if you have the `fldln2' and other floating points operands.])],
115 [AC_MSG_RESULT(no)])
116
117AC_CHECK_LIB(m, sin, MATH_LIBS="${MATH_LIBS} -lm")
118
119CACA_DRIVERS=""
120
121if test "${enable_conio}" != "no"; then
122  ac_cv_my_have_conio="no"
123  AC_CHECK_HEADERS(conio.h,
124   [AC_MSG_CHECKING(for ScreenUpdate in pc.h)
125    AC_EGREP_HEADER(ScreenUpdate, pc.h,
126     [ac_cv_my_have_conio="yes"
127      AC_MSG_RESULT(yes)
128      AC_DEFINE(SCREENUPDATE_IN_PC_H, 1,
129                Define to 1 if <pc.h> defines ScreenUpdate.)
130      AC_DEFINE(USE_CONIO, 1, Define to 1 to activate the conio.h backend driver)
131      CACA_DRIVERS="${CACA_DRIVERS} conio"],
132     [AC_MSG_RESULT(no)])])
133  if test "${ac_cv_my_have_conio}" = "no" -a "${enable_conio}" = "yes"; then
134    AC_MSG_ERROR([cannot find conio.h])
135  fi
136fi
137
138if test "${enable_win32}" != "no"; then
139  ac_cv_my_have_win32="no"
140  AC_CHECK_HEADERS(windows.h,
141   [AC_MSG_CHECKING(for AllocConsole in windows.h)
142    AC_EGREP_HEADER(AllocConsole, windows.h,
143     [ac_cv_my_have_win32="yes"
144      AC_MSG_RESULT(yes)
145      AC_DEFINE(ALLOCCONSOLE_IN_WINDOWS_H, 1,
146                Define to 1 if <windows.h> defines AllocConsole.)
147      AC_DEFINE(USE_WIN32, 1, Define to 1 to activate the win32 backend driver)
148      CACA_DRIVERS="${CACA_DRIVERS} win32"],
149     [AC_MSG_RESULT(no)])])
150  if test "${ac_cv_my_have_win32}" = "no" -a "${enable_win32}" = "yes"; then
151    AC_MSG_ERROR([cannot find win32 console development files])
152  fi
153fi
154
155if test "${enable_slang}" != "no"; then
156  ac_cv_my_have_slang="no"
157  AC_CHECK_HEADERS(slang.h slang/slang.h,
158   [ac_cv_my_have_slang="yes"
159    AC_DEFINE(USE_SLANG, 1, Define to 1 to activate the slang backend driver)
160    AC_CHECK_LIB(slang, SLsmg_utf8_enable,
161     [AC_DEFINE(HAVE_SLSMG_UTF8_ENABLE, 1, Define to 1 if you have the `SLsmg_utf8_enable' function.)])
162    CPPFLAGS="${CPPFLAGS} -DOPTIMISE_SLANG_PALETTE=1"
163    CACA_LIBS="${CACA_LIBS} -lslang"
164    CACA_DRIVERS="${CACA_DRIVERS} slang"
165    break])
166  if test "${ac_cv_my_have_slang}" = "no" -a "${enable_slang}" = "yes"; then
167    AC_MSG_ERROR([cannot find slang development files])
168  fi
169fi
170
171if test "${enable_x11}" != "no"; then
172  AC_PATH_X
173  AC_CHECK_LIB(X11, XOpenDisplay,
174   [ac_cv_my_have_x11="yes"
175    if test -n "${x_includes}"; then X_CFLAGS="-I${x_includes}"; fi
176    if test -n "${x_libraries}"; then X_LIBS="-L${x_libraries}"; fi
177    AC_DEFINE(USE_X11, 1, Define to 1 to activate the X11 backend driver)
178    CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
179    X11_LIBS="${X11_LIBS} -lX11 ${X_LIBS}"
180    CACA_DRIVERS="${CACA_DRIVERS} x11"],
181   [ac_cv_my_have_x11="no"],
182   [[`if test -n "${x_libraries}"; then echo -L${x_libraries}; fi`]])
183  AC_CHECK_HEADERS(X11/XKBlib.h)
184  if test "${ac_cv_my_have_x11}" != "yes" -a "${enable_x11}" = "yes"; then
185    AC_MSG_ERROR([cannot find X11 development files])
186  fi
187fi
188
189if test "${enable_gl}" != "no"; then
190  ac_cv_my_have_gl="no"
191  AC_CHECK_HEADERS(GL/gl.h OpenGL/gl.h,
192   [AC_CHECK_HEADERS(GL/glut.h,
193     [AC_CHECK_LIB(glut, glutCloseFunc,
194       [AC_DEFINE(HAVE_GLUTCLOSEFUNC, 1, Define to 1 if you have the `glutCloseFunc' function.)])
195      AC_CHECK_LIB(glut, glutMainLoopEvent,
196       [ac_cv_my_have_gl="yes"])
197      AC_CHECK_LIB(glut, glutCheckLoop,
198       [ac_cv_my_have_gl="yes"
199        AC_DEFINE(HAVE_GLUTCHECKLOOP, 1, Define to 1 if you have the `glutCheckLoop' function.)])])
200      break])
201  if test "${ac_cv_my_have_gl}" = "yes"; then
202    AC_DEFINE(USE_GL, 1, Define to 1 to activate the OpenGL backend driver)
203    GL_LIBS="${GL_LIBS} -lGL -lglut"
204    CACA_DRIVERS="${CACA_DRIVERS} gl"
205  elif test "${enable_gl}" = "yes"; then
206    AC_MSG_ERROR([cannot find OpenGL+FreeGLUT development files])
207  fi
208fi
209
210if test "${enable_cocoa}" != "no"; then
211  ac_cv_my_have_cocoa="no"
212  AC_CHECK_HEADERS(Cocoa/Cocoa.h,
213   [ac_cv_my_have_cocoa="yes"])
214  if test "${ac_cv_my_have_cocoa}" = "yes"; then
215    case x${target} in
216    xpowerpc*darwin*)
217      # 10.3 needed to link with X11
218      MACOSX_SDK=/Developer/SDKs/MacOSX10.3.9.sdk
219      GCC_VERSION=3.3
220      ARCH="-arch ppc"
221      MACOSX_SDK_CFLAGS="-nostdinc -isystem ${MACOSX_SDK}/usr/include/gcc/darwin/${GCC_VERSION} -isystem ${MACOSX_SDK}/usr/include"
222      MACOSX_SDK_CXXFLAGS="-nostdinc++ -I${MACOSX_SDK}/usr/include/gcc/darwin/${GCC_VERSION}/c++ -I${MACOSX_SDK}/usr/include/gcc/darwin/${GCC_VERSION}/c++/ppc-darwin -I${MACOSX_SDK}/usr/include/gcc/darwin/${GCC_VERSION}/c++/backward"
223      MACOSX_SDK_LDFLAGS="-L${MACOSX_SDK}/usr/lib/gcc/darwin -L${MACOSX_SDK}/usr/lib/gcc/darwin/${GCC_VERSION} -L${MACOSX_SDK}/usr/lib"
224      ;;
225    x*86*darwin*)
226      MACOSX_SDK=/Developer/SDKs/MacOSX10.4u.sdk
227      GCC_VERSION=4.0
228      ARCH="-arch i386"
229      MACOSX_SDK_CFLAGS="-isysroot ${MACOSX_SDK}"
230      MACOSX_SDK_CXXFLAGS="${MACOSX_SDK_CFLAGS}"
231      ;;
232    esac
233    CC=gcc-${GCC_VERSION}
234    CXX=g++-${GCC_VERSION}
235    MACOSX_SDK_FRAMEWORKS="-F${MACOSX_SDK}/System/Library/Frameworks"
236    CPPFLAGS="${CPPFLAGS} ${ARCH} ${MACOSX_SDK_FRAMEWORKS}"
237    CFLAGS="${CFLAGS} ${MACOSX_SDK_CFLAGS}"
238    CXXFLAGS="${CXXFLAGS} ${MACOSX_SDK_CXXFLAGS}"
239    OBJCFLAGS="${OBJCFLAGS} ${MACOSX_SDK_CFLAGS}"
240    LDFLAGS="${ARCH} ${MACOSX_SDK_LDFLAGS} ${LDFLAGS}"
241    AC_DEFINE(USE_COCOA, 1, Define to 1 to activate the Cocoa backend driver)
242    CACA_LIBS="${CACA_LIBS} -Wl,-syslibroot,${MACOSX_SDK},-framework,Cocoa"
243    CACA_DRIVERS="${CACA_DRIVERS} cocoa"
244  elif test "${enable_cocoa}" = "yes"; then
245    AC_MSG_ERROR([cannot find Cocoa development files])
246  fi
247fi
248AM_CONDITIONAL(USE_COCOA, test "${ac_cv_my_have_cocoa}" = "yes")
249
250if test "${enable_ncurses}" != "no"; then
251  ac_cv_my_have_ncurses="no"
252  AC_CHECK_HEADERS(ncursesw/ncurses.h ncurses/ncurses.h ncurses.h curses.h,
253   [ncurses="no"
254    AC_CHECK_LIB(ncursesw, initscr,
255     [ncurses="-lncursesw"],
256     [AC_CHECK_LIB(ncurses, initscr,
257       [ncurses="-lncurses"])])
258    if test "${ncurses}" = "no"; then
259      continue
260    fi
261    ac_cv_my_have_ncurses="yes"
262    AC_DEFINE(USE_NCURSES, 1, Define to 1 to activate the ncurses backend driver)
263    CACA_LIBS="${CACA_LIBS} ${ncurses}"
264    CACA_DRIVERS="${CACA_DRIVERS} ncurses"
265    dnl  Check for resizeterm or resize_term
266    SAVED_LIBS="${LIBS}"
267    LIBS="${LIBS} ${ncurses}"
268    AC_CHECK_FUNCS(resizeterm resize_term)
269    LIBS="${SAVED_LIBS}"
270    break])
271  if test "${ac_cv_my_have_ncurses}" = "no" -a "${enable_ncurses}" = "yes"; then
272    AC_MSG_ERROR([cannot find ncurses development files])
273  fi
274fi
275
276if test "${enable_vga}" = "yes"; then
277  ac_cv_my_have_vga="yes"
278  CPPFLAGS="${CPPFLAGS} -I. -D__KERNEL__ -nostdinc -include kernel/kernel.h"
279  CFLAGS="${CFLAGS} -fno-builtin -O2 -Wall"
280  CCASFLAGS="${CCASFLAGS} -I."
281  LDFLAGS="${LDFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,100000"
282  AC_DEFINE(USE_VGA, 1, Define to 1 to activate the VGA backend driver)
283  CACA_DRIVERS="${CACA_DRIVERS} vga"
284fi
285AM_CONDITIONAL(USE_KERNEL, test "${ac_cv_my_have_vga}" = "yes")
286
287if test "${enable_debug}" = "yes"; then
288  AC_DEFINE(DEBUG, 1, Define to 1 to activate debug)
289fi
290
291if test "${enable_plugins}" = "yes"; then
292  ac_cv_my_have_plugins="yes"
293  AC_DEFINE(USE_PLUGINS, 1, Define to 1 to activate plugins)
294  CACA_LIBS="${CACA_LIBS} -ldl"
295else
296  CACA_LIBS="${CACA_LIBS} ${X11_LIBS} ${GL_LIBS}"
297fi
298AM_CONDITIONAL(USE_PLUGINS, test "${ac_cv_my_have_plugins}" = "yes")
299
300AC_MSG_CHECKING(valid output drivers)
301if test -z "${CACA_DRIVERS}"; then
302  AC_MSG_RESULT(no)
303  AC_MSG_ERROR([no output drivers were selected!])
304else
305  CACA_DRIVERS="${CACA_DRIVERS# *}"
306  AC_MSG_RESULT([${CACA_DRIVERS}])
307fi
308
309AC_SUBST(MATH_LIBS)
310AC_SUBST(GETOPT_LIBS)
311AC_SUBST(CACA_LIBS)
312AC_SUBST(X11_LIBS)
313AC_SUBST(GL_LIBS)
314
315# Optimizations
316CFLAGS="${CFLAGS} -g -O2 -fno-strength-reduce -fomit-frame-pointer"
317# Code qui fait des warnings == code de porc == deux baffes dans ta gueule
318# [Jylam] Removed -Wshadow in order to avoid ncurses/gl conflict
319# (Comme quoi on n'est pas les seuls porcs)
320CFLAGS="${CFLAGS} -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare"
321
322CACA_BINDINGS=""
323
324# Build the C++ bindings?
325ac_cv_my_have_cxx="no"
326if test "${enable_cxx}" != "no"; then
327  AC_MSG_CHECKING([working <iostream>])
328  AC_LANG_PUSH(C++)
329  AC_TRY_COMPILE(
330   [#include <iostream>],
331   [],
332   [ac_cv_my_have_cxx="yes"
333    CACA_BINDINGS="${CACA_BINDINGS} C++"])
334  AC_LANG_POP(C++)
335  AC_MSG_RESULT([$ac_cv_my_have_cxx])
336fi
337AM_CONDITIONAL(USE_CXX, test "${ac_cv_my_have_cxx}" = "yes")
338
339# Build the .NET bindings?
340ac_cv_my_have_csharp="no"
341if test "${enable_csharp}" != "no"; then
342  AC_PATH_PROG(GMCS, gmcs, no)
343  AC_PATH_PROG(GACUTIL, gacutil, no)
344  if test "${GMCS}" != "no" -a "${GACUTIL}" != "no"; then
345    ac_cv_my_have_csharp="yes"
346    CACA_BINDINGS="${CACA_BINDINGS} C#"
347  fi
348fi
349AM_CONDITIONAL(USE_CSHARP, test "${ac_cv_my_have_csharp}" = "yes")
350
351# Build the Ruby bindings?
352ac_cv_my_have_ruby="no"
353if test "${enable_ruby}" != "no"; then
354  AC_PATH_PROG(RUBY, ruby, no)
355  if test "${RUBY}" != "no"; then
356    RUBY_CFLAGS="-I$(ruby -r rbconfig -e 'print Config::CONFIG@<:@"archdir"@:>@')"
357    RUBY_LIBS="-L$(ruby -r rbconfig -e 'print Config::CONFIG@<:@"libdir"@:>@') -l$(ruby -r rbconfig -e 'print Config::CONFIG@<:@"RUBY_SO_NAME"@:>@')"
358    RUBY_SITEARCHDIR=`ruby -r rbconfig -e 'print Config::CONFIG@<:@"sitearchdir"@:>@'`
359    RUBY_SITELIBDIR=`ruby -r rbconfig -e 'print Config::CONFIG@<:@"sitelibdir"@:>@'`
360    AC_SUBST(RUBY_CFLAGS)
361    AC_SUBST(RUBY_LIBS)
362    AC_SUBST(RUBY_SITEARCHDIR)
363    AC_SUBST(RUBY_SITELIBDIR)
364    CPPFLAGS="${CPPFLAGS} ${RUBY_CFLAGS}"
365    AC_CHECK_HEADERS([ruby.h],
366     [ac_cv_my_have_ruby="yes"
367      CACA_BINDINGS="${CACA_BINDINGS} Ruby"])
368  fi
369fi
370AM_CONDITIONAL(USE_RUBY, test "${ac_cv_my_have_ruby}" = "yes")
371
372AC_MSG_CHECKING(available language bindings)
373if test -z "${CACA_BINDINGS}"; then
374  AC_MSG_RESULT(no)
375else
376  CACA_BINDINGS="${CACA_BINDINGS# *}"
377  AC_MSG_RESULT([${CACA_BINDINGS}])
378fi
379
380# Build cacaserver?
381ac_cv_my_have_network="no"
382AC_CHECK_HEADERS(sys/socket.h,
383 [ac_cv_my_have_network="yes"])
384AM_CONDITIONAL(USE_NETWORK, test "${ac_cv_my_have_network}" = "yes")
385
386# Use Imlib2?
387if test "${enable_imlib2}" != "no"; then
388  IMLIB2="no"
389  PKG_CHECK_MODULES(IMLIB2, imlib2, [IMLIB2="yes"], [AC_MSG_RESULT(no)])
390  if test "${IMLIB2}" != "no"; then
391    AC_DEFINE(USE_IMLIB2, 1, Define to 1 to use Imlib2)
392  fi
393fi
394
395# Build development tools?
396PANGOFT2="no"
397PKG_CHECK_MODULES(PANGOFT2, pangoft2, [PANGOFT2="yes"], [AC_MSG_RESULT(no)])
398AM_CONDITIONAL(USE_PANGO, test "${PANGOFT2}" != "no")
399
400# Build documentation?
401DOXYGEN="no"
402LATEX="no"
403if test "${enable_doc}" != "no"; then
404  AC_PATH_PROG(DOXYGEN, doxygen, no)
405  if test "${DOXYGEN}" != "no"; then
406    # Build LaTeX documentation?
407    AC_PATH_PROG(LATEX, pdflatex, no)
408    AC_PATH_PROG(KPSEWHICH, kpsewhich, no)
409    AC_PATH_PROG(DVIPS, dvips, no)
410    if test "${DVIPS}" = "no" -o "${KPSEWHICH}" = "no"; then
411      LATEX="no"
412    fi
413    if test "${LATEX}" != "no"; then
414      AC_MSG_CHECKING(for a4.sty and a4wide.sty)
415      if "${KPSEWHICH}" a4.sty >/dev/null 2>&1; then
416        if "${KPSEWHICH}" a4wide.sty >/dev/null 2>&1; then
417          AC_MSG_RESULT(yes)
418        else
419          LATEX="no"
420          AC_MSG_RESULT(no)
421        fi
422      else
423        LATEX="no"
424        AC_MSG_RESULT(no)
425      fi
426    fi
427  fi
428fi
429AM_CONDITIONAL(BUILD_DOCUMENTATION, test "${DOXYGEN}" != "no")
430AM_CONDITIONAL(USE_LATEX, test "${LATEX}" != "no")
431
432AC_CONFIG_FILES([
433  Makefile
434  kernel/Makefile
435  cucul/Makefile
436  caca/Makefile
437  src/Makefile
438  test/Makefile
439  tools/Makefile
440  csharp/Makefile
441  cxx/Makefile
442  python/Makefile
443  ruby/Makefile
444  doc/Makefile
445  msvc/Makefile
446])
447AC_CONFIG_FILES([
448  cucul/cucul.pc
449  caca/caca.pc
450  csharp/cucul-sharp.dll.config
451  csharp/caca-sharp.dll.config
452  doc/doxygen.cfg
453])
454AC_CONFIG_FILES([caca-config], [chmod 0755 caca-config])
455AC_OUTPUT
456
Note: See TracBrowser for help on using the repository browser.