]> code.delx.au - gnu-emacs/blobdiff - configure.in
#
[gnu-emacs] / configure.in
index 484839b46d3c8ffc552fd7e3aba85ae078e106d2..0e10721fe6d788f5fa32909127e0226c4bde2aca 100644 (file)
@@ -3,7 +3,7 @@ dnl To rebuild the `configure' script from this, execute the command
 dnl    autoconf
 dnl in the directory containing this script.
 dnl
 dnl    autoconf
 dnl in the directory containing this script.
 dnl
-dnl  Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+dnl  Copyright (C) 1994, 1995, 1996, 1999 Free Software Foundation, Inc.
 dnl
 dnl  This file is part of GNU Emacs.
 dnl
 dnl
 dnl  This file is part of GNU Emacs.
 dnl
@@ -39,24 +39,9 @@ AC_ARG_WITH(gcc,
 AC_ARG_WITH(pop,
 [  --with-pop              support POP for mail retrieval],
 [AC_DEFINE(MAIL_USE_POP)])
 AC_ARG_WITH(pop,
 [  --with-pop              support POP for mail retrieval],
 [AC_DEFINE(MAIL_USE_POP)])
-AC_ARG_WITH(kerberos,
-[  --with-kerberos         support Kerberos-authenticated POP],
-[AC_DEFINE(KERBEROS)])
-AC_ARG_WITH(kerberos5,
-[  --with-kerberos5         support Kerberos version 5 authenticated POP],
-[if test "${with_kerberos5+set}" = set; then
-  if test "${with_kerberos+set}" != set; then
-    with_kerberos=yes
-    AC_DEFINE(KERBEROS)
-  fi
-fi
-AC_DEFINE(KERBEROS5)])
 AC_ARG_WITH(hesiod,
 [  --with-hesiod           support Hesiod to get the POP server host],
 [AC_DEFINE(HESIOD)])
 AC_ARG_WITH(hesiod,
 [  --with-hesiod           support Hesiod to get the POP server host],
 [AC_DEFINE(HESIOD)])
-AC_ARG_WITH(gssapi,
-[  --with-gssapi           support GSSAPI-authenticated POP],
-[AC_DEFINE(GSSAPI)])
 dnl This should be the last --with option, because --with-x is
 dnl added later on when we find the path of X, and it's best to
 dnl keep them together visually.
 dnl This should be the last --with option, because --with-x is
 dnl added later on when we find the path of X, and it's best to
 dnl keep them together visually.
@@ -81,6 +66,18 @@ Currently, \`yes', \`athena' and \`lucid' are synonyms.])
          esac
          with_x_toolkit=$val
 ])
          esac
          with_x_toolkit=$val
 ])
+AC_ARG_WITH(xpm,
+[  --with-xpm              use -lXpm for displaying XPM images])
+AC_ARG_WITH(jpeg,
+[  --with-jpeg             use -ljpeg for displaying JPEG images])
+AC_ARG_WITH(tiff,
+[  --with-tiff             use -ltiff for displaying TIFF images])
+AC_ARG_WITH(gif,
+[  --with-gif              use -lungif for displaying GIF images])
+AC_ARG_WITH(png,
+[  --with-png              use -lpng for displaying PNG images])
+AC_ARG_WITH(toolkit-scroll-bars,
+[  --with-toolkit-scroll-bars  use Motif or Xaw3d scroll bars])
 
 #### Make srcdir absolute, if it isn't already.  It's important to
 #### avoid running the path through pwd unnecessary, since pwd can
 
 #### Make srcdir absolute, if it isn't already.  It's important to
 #### avoid running the path through pwd unnecessary, since pwd can
@@ -92,7 +89,7 @@ case "${srcdir}" in
     ## We may be able to use the $PWD environment variable to make this
     ## absolute.  But sometimes PWD is inaccurate.
     ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
     ## We may be able to use the $PWD environment variable to make this
     ## absolute.  But sometimes PWD is inaccurate.
     ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
-    CDPATH=
+    unset CDPATH
     if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`"  ;
     then
       srcdir="$PWD"
     if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`"  ;
     then
       srcdir="$PWD"
@@ -171,6 +168,7 @@ case "${canonical}" in
       m68k-*-netbsd*)
                        # This is somewhat bogus.
                        machine=hp9000s300 ;;
       m68k-*-netbsd*)
                        # This is somewhat bogus.
                        machine=hp9000s300 ;;
+      powerpc-apple-netbsd*) machine=macppc ;;
       mips-*-netbsd*)  machine=pmax ;;
       ns32k-*-netbsd*) machine=ns32000 ;;
       sparc-*-netbsd*) machine=sparc ;;
       mips-*-netbsd*)  machine=pmax ;;
       ns32k-*-netbsd*) machine=ns32000 ;;
       sparc-*-netbsd*) machine=sparc ;;
@@ -188,7 +186,7 @@ case "${canonical}" in
       mipsel-*-openbsd*) machine=pmax ;;
       ns32k-*-openbsd*)        machine=ns32000 ;;
       sparc-*-openbsd*)        machine=sparc ;;
       mipsel-*-openbsd*) machine=pmax ;;
       ns32k-*-openbsd*)        machine=ns32000 ;;
       sparc-*-openbsd*)        machine=sparc ;;
-      vax-*-netbsd*)   machine=vax ;;
+      vax-*-openbsd*)  machine=vax ;;
     esac
   ;;
 
     esac
   ;;
 
@@ -215,6 +213,7 @@ case "${canonical}" in
       *-*-bsdi2.0* )           opsys=bsdos2 ;;
       *-*-bsdi2* )             opsys=bsdos2-1 ;;
       *-*-bsdi3* )             opsys=bsdos3 ;;
       *-*-bsdi2.0* )           opsys=bsdos2 ;;
       *-*-bsdi2* )             opsys=bsdos2-1 ;;
       *-*-bsdi3* )             opsys=bsdos3 ;;
+      *-*-bsdi4* )             opsys=bsdos4 ;;
     esac
   ;;
 
     esac
   ;;
 
@@ -325,7 +324,7 @@ case "${canonical}" in
   ## R this shouldn't conflict with older versions of the OS (which I
   ## think were named like dgux4.*). In addition, DG new AViiONs series
   ## uses either Motorola M88k or Intel Pentium CPUs.
   ## R this shouldn't conflict with older versions of the OS (which I
   ## think were named like dgux4.*). In addition, DG new AViiONs series
   ## uses either Motorola M88k or Intel Pentium CPUs.
-  i586-dg-dguxR4.* | m88k-dg-dguxR4.* | m88k-dg-dgux4* )
+  m88k-dg-dguxR4.* | m88k-dg-dgux4* )
     machine=aviion opsys=dgux4
   ;;
   m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
     machine=aviion opsys=dgux4
   ;;
   m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
@@ -340,6 +339,13 @@ case "${canonical}" in
     machine=aviion opsys=dgux
   ;;
 
     machine=aviion opsys=dgux
   ;;
 
+  ## Data General AViiON Intel (x86) Machines
+  ## Exists from 5.4.3 (current i586-dg-dguxR4.11)
+  ## Ehud Karni, 1998-may-30, ehud@unix.simonwiesel.co.il
+  i[345]86-dg-dguxR4* )
+    machine=aviion-intel opsys=dgux4
+  ;;
+
   ## DECstations
   mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
     machine=pmax opsys=bsd4-2
   ## DECstations
   mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
     machine=pmax opsys=bsd4-2
@@ -673,6 +679,11 @@ case "${canonical}" in
     machine=tower32v3 opsys=usg5-3
   ;;
 
     machine=tower32v3 opsys=usg5-3
   ;;
 
+  ## NEC EWS4800
+  mips-nec-sysv4*)
+  machine=ews4800 opsys=ux4800
+  ;;
+
   ## Nixdorf Targon 31
   m68*-nixdorf-sysv* )
     machine=targon31 opsys=usg5-2-2
   ## Nixdorf Targon 31
   m68*-nixdorf-sysv* )
     machine=targon31 opsys=usg5-2-2
@@ -731,6 +742,11 @@ case "${canonical}" in
   mips-sgi-irix4* )
     machine=iris4d opsys=irix4-0
   ;;
   mips-sgi-irix4* )
     machine=iris4d opsys=irix4-0
   ;;
+  mips-sgi-irix6.5 )
+    machine=iris4d opsys=irix6-5
+    NON_GNU_CPP=/lib/cpp
+    NON_GCC_TEST_OPTIONS="-n32 -G0"
+  ;;
   mips-sgi-irix6* )
     machine=iris4d opsys=irix6-0
     NON_GNU_CPP=/lib/cpp
   mips-sgi-irix6* )
     machine=iris4d opsys=irix6-0
     NON_GNU_CPP=/lib/cpp
@@ -769,7 +785,7 @@ case "${canonical}" in
   ;;
 
   ## Suns
   ;;
 
   ## Suns
-  sparc-*-linux-gnu* )
+  sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
     machine=sparc opsys=gnu-linux
   ;;
 
     machine=sparc opsys=gnu-linux
   ;;
 
@@ -962,6 +978,11 @@ case "${canonical}" in
     RANLIB="ar -ts"
   ;;
 
     RANLIB="ar -ts"
   ;;
 
+  ## UXP/V
+  f301-fujitsu-uxpv4.1)
+    machine=f301 opsys=uxpv
+  ;;
+
   * )
     unported=yes
   ;;
   * )
     unported=yes
   ;;
@@ -1085,8 +1106,11 @@ AC_PROG_YACC
 dnl checks for Unix variants
 AC_AIX
 
 dnl checks for Unix variants
 AC_AIX
 
+# Sound support for GNU/Linux and the free BSDs.
+AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h)
+
 dnl checks for header files
 dnl checks for header files
-AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h linux/version.h sys/systeminfo.h termios.h limits.h string.h)
+AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h termcap.h)
 AC_HEADER_STDC
 AC_HEADER_TIME
 AC_DECL_SYS_SIGLIST
 AC_HEADER_STDC
 AC_HEADER_TIME
 AC_DECL_SYS_SIGLIST
@@ -1216,7 +1240,7 @@ HAVE_MENUS=no
 case ${HAVE_X11} in
   yes ) HAVE_MENUS=yes ;;
 esac
 case ${HAVE_X11} in
   yes ) HAVE_MENUS=yes ;;
 esac
-
+  
 if test "${opsys}" = "hpux9"; then
   case "${x_libraries}" in
     *X11R4* )
 if test "${opsys}" = "hpux9"; then
   case "${x_libraries}" in
     *X11R4* )
@@ -1418,7 +1442,7 @@ AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
 
 AC_CHECK_LIB(pthreads, cma_open)
 
 
 AC_CHECK_LIB(pthreads, cma_open)
 
-AC_MSG_CHECKING(for XFree86)
+AC_MSG_CHECKING(for XFree86 in /usr/X386)
 if test -d /usr/X386/include; then
   HAVE_XFREE386=yes
   : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
 if test -d /usr/X386/include; then
   HAVE_XFREE386=yes
   : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
@@ -1584,6 +1608,120 @@ Motif version prior to 2.1.
   HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
   if test $emacs_cv_motif_version_2_1 = yes; then
     AC_DEFINE(HAVE_MOTIF_2_1)
   HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
   if test $emacs_cv_motif_version_2_1 = yes; then
     AC_DEFINE(HAVE_MOTIF_2_1)
+    AC_CHECK_LIB(Xp, XpCreateContext)
+  fi
+fi
+
+### Is -lXaw3d available?
+HAVE_XAW3D=no
+if test "${HAVE_X11}" = "yes"; then
+  if test "${USE_X_TOOLKIT}" != "none"; then
+    old_c_flags="${CFLAGS}"
+    CFLAGS="${LD_SWITCH_X_SITE}"
+    AC_CHECK_HEADER(X11/Xaw3d/Scrollbar.h,
+       AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb, HAVE_XAW3D=yes, , -lX11))
+    CFLAGS="${old_c_flags}"
+
+    if test "${HAVE_XAW3D}" = "yes"; then
+       AC_DEFINE(HAVE_XAW3D)
+    fi
+  fi
+fi
+  
+dnl Use toolkit scroll bars if configured for X toolkit and either
+dnl using Motif or Xaw3d is available, and unless
+dnl --with-toolkit-scroll-bars=no was specified.
+
+USE_TOOLKIT_SCROLL_BARS=no
+if test "${with_toolkit_scroll_bars}" != "no"; then
+  if test "${USE_X_TOOLKIT}" != "none"; then
+    if test "${USE_X_TOOLKIT}" = "MOTIF"; then
+      AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
+      HAVE_XAW3D=no
+      USE_TOOLKIT_SCROLL_BARS=yes
+    elif test "${HAVE_XAW3D}" = "yes"; then
+      AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
+      USE_TOOLKIT_SCROLL_BARS=yes
+    fi
+  fi
+fi
+
+### Use -lXpm if available, unless `--with-xpm=no'.
+HAVE_XPM=no
+if test "${HAVE_X11}" = "yes"; then
+  if test "${with_xpm}" != "no"; then
+    old_c_flags="${CFLAGS}"
+    CFLAGS="${LD_SWITCH_X_SITE}"
+    AC_CHECK_HEADER(X11/xpm.h,
+      AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11))
+    CFLAGS="${old_c_flags}"
+  fi
+
+  if test "${HAVE_XPM}" = "yes"; then
+    AC_DEFINE(HAVE_XPM)
+  fi
+fi
+  
+### Use -ljpeg if available, unless `--with-jpeg=no'.
+HAVE_JPEG=no
+if test "${HAVE_X11}" = "yes"; then
+  if test "${with_jpeg}" != "no"; then
+    old_c_flags="${CFLAGS}"
+    CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
+    AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes, , -lX11)
+    CFLAGS="${old_c_flags}"
+  fi
+
+  if test "${HAVE_JPEG}" = "yes"; then
+    AC_DEFINE(HAVE_JPEG)
+  fi
+fi
+  
+### Use -lpng if available, unless `--with-png=no'.
+HAVE_PNG=no
+if test "${HAVE_X11}" = "yes"; then
+  if test "${with_png}" != "no"; then
+    old_c_flags="${CFLAGS}"
+    CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
+    AC_CHECK_HEADER(png.h,
+      AC_CHECK_LIB(png, png_set_expand, HAVE_PNG=yes, , -lX11 -lz -lm))
+    CFLAGS="${old_c_flags}"
+  fi
+
+  if test "${HAVE_PNG}" = "yes"; then
+    AC_DEFINE(HAVE_PNG)
+  fi
+fi
+  
+### Use -ltiff if available, unless `--with-tiff=no'.
+HAVE_TIFF=no
+if test "${HAVE_X11}" = "yes"; then
+  if test "${with_tiff}" != "no"; then
+    old_c_flags="${CFLAGS}"
+    CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
+    AC_CHECK_HEADER(tiffio.h,
+      AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , -lX11 -lm))
+    CFLAGS="${old_c_flags}"
+  fi
+
+  if test "${HAVE_TIFF}" = "yes"; then
+    AC_DEFINE(HAVE_TIFF)
+  fi
+fi
+  
+### Use -lgif if available, unless `--with-gif=no'.
+HAVE_GIF=no
+if test "${HAVE_X11}" = "yes"; then
+  if test "${with_gif}" != "no"; then
+    old_c_flags="${CFLAGS}"
+    CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
+    AC_CHECK_HEADER(gif_lib.h,
+      AC_CHECK_LIB(ungif, DGifOpenFileName, HAVE_GIF=yes, , -lX11))
+    CFLAGS="${old_c_flags}"
+  fi
+
+  if test "${HAVE_GIF}" = "yes"; then
+    AC_DEFINE(HAVE_GIF)
   fi
 fi
 
   fi
 fi
 
@@ -1604,16 +1742,34 @@ AC_FUNC_ALLOCA
 AC_CHECK_LIB(m, sqrt)
 
 # Check for mail-locking functions in a "mail" library
 AC_CHECK_LIB(m, sqrt)
 
 # Check for mail-locking functions in a "mail" library
-AC_CHECK_LIB(mail, maillock,
-            AC_DEFINE(HAVE_LIBMAIL)
-            AC_CHECK_FUNCS(touchlock)
-            AC_CHECK_HEADERS(maillock.h))
+AC_CHECK_LIB(mail, maillock)
+dnl Debian, at least:
+dnl AC_CHECK_LIB(lockfile, maillock, [AC_DEFINE(HAVE_LIBMAIL)])
+AC_CHECK_LIB(lockfile, maillock)
+# If we have the shared liblockfile, assume we must use it for mail
+# locking (e.g. Debian).  If we couldn't link against liblockfile
+# (no liblockfile.a installed), ensure that we don't need to.
+if test "$ac_cv_lib_lockfile_maillock" = no; then
+  dnl This works for files generally, not just executables.
+  dnl Should we look elsewhere for it?  Maybe examine /etc/ld.so.conf?
+  AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
+                /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
+  if test $ac_cv_prog_liblockfile = yes; then
+    AC_MSG_ERROR([Shared liblockfile found but can't link against it.
+This probably means that movemail could lose mail.
+There may be a \`development' package to install containing liblockfile.])
+  else AC_DEFINE(LIBMAIL, -llockfile)
+  fi
+  else :
+fi
+AC_CHECK_FUNCS(touchlock)
+AC_CHECK_HEADERS(maillock.h)
 
 AC_CHECK_FUNCS(gettimeofday gethostname getdomainname dup2 \
 rename closedir mkdir rmdir sysinfo \
 random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \
 strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
 
 AC_CHECK_FUNCS(gettimeofday gethostname getdomainname dup2 \
 rename closedir mkdir rmdir sysinfo \
 random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \
 strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
-utimes setrlimit setpgid getcwd shutdown strftime)
+utimes setrlimit setpgid getcwd shutdown strftime getaddrinfo)
 
 # Check this now, so that we will NOT find the above functions in ncurses.
 # That is because we have not set up to link ncurses in lib-src.
 
 # Check this now, so that we will NOT find the above functions in ncurses.
 # That is because we have not set up to link ncurses in lib-src.
@@ -1621,40 +1777,6 @@ utimes setrlimit setpgid getcwd shutdown strftime)
 # than to expect to find it in ncurses.
 AC_CHECK_LIB(ncurses, tparm)
 
 # than to expect to find it in ncurses.
 AC_CHECK_LIB(ncurses, tparm)
 
-# These tell us which Kerberos-related libraries to use.
-if test "${with_kerberos+set}" = set; then
-  AC_CHECK_LIB(com_err, com_err)
-  AC_CHECK_LIB(crypto, mit_des_cbc_encrypt)
-  AC_CHECK_LIB(krb5, krb5_init_context)
-  if test "${with_kerberos5+set}" = set; then
-    if test "${with_gssapi+set}" = set; then
-      AC_CHECK_LIB(gssapi_krb5,gss_init_sec_context)
-    fi
-  else
-    AC_CHECK_LIB(des, des_cbc_encrypt,,
-                AC_CHECK_LIB(des425, des_cbc_encrypt))
-    AC_CHECK_LIB(krb, krb_get_cred,,
-                AC_CHECK_LIB(krb4, krb_get_cred))
-  fi
-
-  if test "${with_kerberos5+set}" = set; then
-    AC_CHECK_HEADERS(krb5.h)
-  else
-    AC_CHECK_HEADERS(des.h,,
-                    AC_CHECK_HEADERS(kerberosIV/des.h,,
-                                     AC_CHECK_HEADERS(kerberos/des.h)))
-    AC_CHECK_HEADERS(krb.h,,
-                    AC_CHECK_HEADERS(kerberosIV/krb.h,,
-                                     AC_CHECK_HEADERS(kerberos/krb.h)))
-  fi
-  AC_CHECK_HEADERS(com_err.h)
-fi
-
-if test "${with_gssapi+set}" = set; then
-  AC_CHECK_LIB(gssapi, gss_init_sec_context)
-  AC_CHECK_HEADERS(gssapi.h)
-fi
-
 # Solaris requires -lintl if you want strerror (which calls dgettext)
 # to return localized messages.
 AC_CHECK_LIB(intl, dgettext)
 # Solaris requires -lintl if you want strerror (which calls dgettext)
 # to return localized messages.
 AC_CHECK_LIB(intl, dgettext)
@@ -1852,6 +1974,13 @@ else
 echo "  Where do we find X Windows libraries?                   Standard dirs"
 fi
 
 echo "  Where do we find X Windows libraries?                   Standard dirs"
 fi
 
+echo "  Does Emacs use -lXaw3d?                                 ${HAVE_XAW3D}"
+echo "  Does Emacs use -lXpm?                                   ${HAVE_XPM}"
+echo "  Does Emacs use -ljpeg?                                  ${HAVE_JPEG}"
+echo "  Does Emacs use -ltiff?                                  ${HAVE_TIFF}"
+echo "  Does Emacs use -lungif?                                 ${HAVE_GIF}"
+echo "  Does Emacs use -lpng?                                   ${HAVE_PNG}"
+echo "  Does Emacs use X toolkit scroll bars?                   ${USE_TOOLKIT_SCROLL_BARS}"
 echo
 
 # Remove any trailing slashes in these variables.
 echo
 
 # Remove any trailing slashes in these variables.
@@ -1867,7 +1996,7 @@ AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
        leim/Makefile, [
 
 ### Make the necessary directories, if they don't exist.
        leim/Makefile, [
 
 ### Make the necessary directories, if they don't exist.
-for dir in cpp etc lisp ; do
+for dir in etc lisp ; do
   test -d ${dir} || mkdir ${dir}
 done
 
   test -d ${dir} || mkdir ${dir}
 done
 
@@ -1888,8 +2017,8 @@ sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
 `"
 changequote([, ])dnl
 
 `"
 changequote([, ])dnl
 
-echo creating src/paths.h
-make paths-force
+echo creating src/epaths.h
+make epaths-force
 
 echo creating lib-src/Makefile
 ( cd lib-src
 
 echo creating lib-src/Makefile
 ( cd lib-src