build: -unsafe-string required (fix #25)
[mldonkey.git] / config / configure.in
blobd960388f9931db0c01767802016b4d1e95474aea
2 # **********                                                                                  **********
3 # **********                            Autoconf, configure internals                         **********
4 # **********                                                                                  **********
6 AC_REVISION(norev)
7 AC_PREREQ(2.53)
8 AC_INIT(Makefile.config.in)
9 AC_CONFIG_HEADER(config.h)
11 CONFIGURE_RUN=yes
12 CONFIGURE_ARGUMENTS=$ac_configure_args
13 echo "Arguments to configure: $CONFIGURE_ARGUMENTS"
15 cd ..
16 SOURCE_DIR=`pwd`
17 cd config
19 # **********                                                                                  **********
20 # **********                                   MLDonkey version                               **********
21 # **********                                                                                  **********
23 MAJOR_VERSION=3
24 MINOR_VERSION=1
25 SUB_VERSION=6   # range 0-7 due to eMule limitations
27 # **********                                                                                  **********
28 # **********                                  check for C compiler                            **********
29 # **********                                                                                  **********
31 AC_PROG_CC
32 CC_VERSION=`$CC -dumpversion`
33 AC_EXEEXT
34 AC_PROG_CPP
36 # **********                                                                                  **********
37 # **********                                    System checks                                 **********
38 # **********                                                                                  **********
40 AC_CANONICAL_HOST
42 OS_FILES=unix
43 OS_FILES2=unix
44 SYSTEM=unknown
45 FIX_BROKEN_CPP=
46 case $host in
47   *mingw*)
48     SYSTEM=mingw
49     OS_FILES=mingw
50     OS_FILES2=mingw
51     PTHREAD_LIBS="-lpthreadGC2 -lwsock32"
52     PTHREAD_MINGW_CFLAGS="-DPTW32_STATIC_LIB"
53     AC_MSG_CHECKING(for mingw-runtime version)
54       
55 cat >mingw_rt_ver.c <<'END'
56 #include <stdio.h>
57 #include <_mingw.h>
58 main(int argc, char *argv[[]])  {
60 int required_runtime_major=3;       /**********     change required mingw-runtime   **********/
61 int required_runtime_minor=10;      /**********              version here           **********/
63 #ifdef __MINGW32_MAJOR_VERSION
64 #  ifdef __MINGW32_MINOR_VERSION
65      switch(argv[[1]][[0]]) {
66        case 'x':
67          printf("%d.%d", __MINGW32_MAJOR_VERSION, __MINGW32_MINOR_VERSION);
68          break;
69        case 'y':
70          if ((__MINGW32_MAJOR_VERSION == required_runtime_major && __MINGW32_MINOR_VERSION < required_runtime_minor) || 
71              (__MINGW32_MAJOR_VERSION < required_runtime_major)) {
72            printf("no");
73            break; }
74          else {
75            printf("yes");
76            break; }
77        case 'z':
78          printf("%d.%d", required_runtime_major, required_runtime_minor);
79          break;
80      }
81      return 0;
82 #  else
83    printf("__MINGW32_MINOR_VERSION not defined in _mingw.h");
84    return 0;
85 #  endif
86 #else
87  printf("__MINGW32_MAJOR_VERSION not defined in _mingw.h");
88  return 0;
89 #endif
91 END
93     $CC -o mingw_rt_ver ./mingw_rt_ver.c
94     MINGW_RT_VER="`./mingw_rt_ver x`"
95     MINGW_RT_VER_OK="`./mingw_rt_ver y`"
96     MINGW_RT_VER_REQ="`./mingw_rt_ver z`"
97     rm -f mingw_rt_ver mingw_rt_ver.*
98     AC_MSG_RESULT($MINGW_RT_VER)
99     if test "$MINGW_RT_VER_OK" = "no"; then
100       echo "********  mingw-runtime version $MINGW_RT_VER_REQ is required  *********" 1>&2;
101       exit 1
102     fi
103     ;;
104   *cygwin*)
105     SYSTEM=cygwin
106     OS_FILES2=cygwin
107     ;;
108   *kfreebsd*)
109     SYSTEM=kfreebsd
110     ;;
111   *freebsd*|*dragonfly*)
112     SYSTEM=freebsd
113     CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
114     LDFLAGS="${LDFLAGS} -L/usr/local/lib"
115     ;;
116   *openbsd*)
117     SYSTEM=openbsd
118     CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
119     LDFLAGS="${LDFLAGS} -L/usr/local/lib"
120     ;;
121   *netbsd*)
122     SYSTEM=netbsd
123     ;;
124   *linux*)
125     SYSTEM=linux
126     ;;
127   *solaris*)
128     SYSTEM=solaris
129     ;;
130   *morphos*|*amigaos*)
131     SYSTEM=morphos
132     ;;
133   *aix*)
134     SYSTEM=aix
135     ;;
136   *beos*)
137     SYSTEM=beos
138     ;;
139   *osf*)
140     SYSTEM=osf
141     ;;
142   *irix*)
143     SYSTEM=irix
144     ;;
145   *hppa*|*hpux*)
146     SYSTEM=hpux
147     ;;
148   *darwin*|*rhapsody*|*macosx*)
149     SYSTEM=macos
150     AC_CHECK_PROG(SED, sed, sed)
151     if test "$ac_cv_prog_SED" = "sed"; then
152       FIX_BROKEN_CPP="| sed -n '/^\#pragma/!p'"
153     else
154       AC_CHECK_PROG(GREP, grep, grep)
155       if test "$ac_cv_prog_GREP" = "grep"; then
156         FIX_BROKEN_CPP="| grep -v '^\#pragma'"
157       fi
158     fi
159     if test "xFIX_BROKEN_CPP" = "x"; then
160       echo "Apple cpp produces broken files, your system lacks sed or grep to fix it"
161       exit 1
162     fi
163     ;;
164   *-gnu*)
165     SYSTEM=hurd
166     ;;
167 esac
168 if test "x$SYSTEM" = "xunknown"; then
169   echo "Unknown build system, please report to the MLDonkey development team at http://mldonkey.sourceforge.net/forums/"
170   exit 1
173 case "$host" in
174   alpha*-*-osf*)                arch=alpha; system=digital;;
175   alpha*-*-linux*)              arch=alpha; system=linux;;
176   alpha*-*-freebsd*)            arch=alpha; system=freebsd;;
177   alpha*-*-netbsd*)             arch=alpha; system=netbsd;;
178   alpha*-*-openbsd*)            arch=alpha; system=openbsd;;
179   sparc-*-sunos4.*)             arch=sparc; system=sunos;;
180   sparc-*-solaris2.*)           arch=sparc; system=solaris;;
181   sparc-*-*bsd*)                arch=sparc; system=bsd;;
182   sparc-*-linux*)               arch=sparc; system=linux;;
183   i?86-*-linux*)           arch=i386; system=linux;;
184   i386-*-*bsd*)            arch=i386; system=bsd;;
185   i486-*-*bsd*)            arch=i486; system=bsd;;
186   i586-*-*bsd*)            arch=i586; system=bsd;;
187   i686-*-*bsd*)            arch=i686; system=bsd;;
188   i?86-*-nextstep*)        arch=i386; system=nextstep;;
189   i?86-*-solaris*)         arch=i386; system=solaris;;
190   i?86-*-beos*)            arch=i386; system=beos;;
191   i?86-*-cygwin*)          arch=i386; system=cygwin;;
192   mips-*-irix6*)                arch=mips; system=irix;;
193   hppa1.1-*-hpux*)              arch=hppa; system=hpux;;
194   hppa1.1-*-nextstep*)          arch=hppa; system=nextstep;;
195   rs6000-*-aix*)                arch=power; model=rs6000; system=aix;;
196   powerpc-*-aix*)               arch=power; model=ppc; system=aix;;
197   powerpc-*-linux*)             arch=power; model=ppc; system=elf;;
198   powerpc-*-rhapsody*)          arch=power; model=ppc; system=rhapsody;;
199   powerpc-*-darwin*)            arch=power; model=ppc; system=rhapsody;;
200   arm*-*-linux*)                arch=arm; system=linux;;
201   ia64-*-linux*)                arch=ia64; system=linux;;
202 esac
204 MD4ARCH=$arch
205 case $host in
206   i386-pc-linux*|i386-*-*bsd*) MD4COMP=as; MD4ARCH=i386;;
207   i486-pc-linux*|i486-*-*bsd*) MD4COMP=as; MD4ARCH=i486;;
208   i586-pc-linux*|i586-*-*bsd*) MD4COMP=as; MD4ARCH=i586;;
209   i686-pc-linux*|i686-*-*bsd*) MD4COMP=as; MD4ARCH=i686;;
210   i386-pc-mingw32*) MD4COMP=cc; MD4ARCH=i386;;
211   i486-pc-mingw32*) MD4COMP=cc; MD4ARCH=i486;;
212   i586-pc-mingw32*) MD4COMP=cc; MD4ARCH=i586;;
213   i686-pc-mingw32*) MD4COMP=cc; MD4ARCH=i686;;
214   *) MD4COMP=cc;;
215 esac
217 ARCH=$arch
219 # **********                                                                                  **********
220 # **********               Parse checkout date (CVS) or revision (SVN) if available           **********
221 # **********                                                                                  **********
223 if test -d ../.git; then
224   AC_MSG_NOTICE(checking git revision)
225   AC_CHECK_PROG(GIT,git,yes)
226   SUB_VERSION3="git"
227   if test "$ac_cv_prog_GIT" = "yes"; then
228     GIT_BRANCH=`git symbolic-ref -q --short HEAD`
229     GIT_COMMIT=`git describe --always --tags`
230     case "$GIT_BRANCH" in
231     ""|"master")
232       SCM_VERSION="${GIT_COMMIT}"
233       ;;
234     *)
235       SCM_VERSION="${GIT_COMMIT}-${GIT_BRANCH}"
236       ;;
237     esac
238   else
239     AC_MSG_NOTICE(cannot determine git revision)
240     SCM_VERSION=""
241   fi
244 if test -d .svn; then
245   AC_MSG_NOTICE(checking SVN revision)
246   AC_CHECK_PROG(SVNVERSION,svnversion,svnversion)
247   if test "$ac_cv_prog_SVNVERSION" = "svnversion"; then
248     SUB_VERSION3="SVN"
249     SCM_VERSION=`svnversion -n .`
250   else
251     AC_MSG_NOTICE(cannot checking SVN revision... no SVNVERSION)
252     SCM_VERSION="cannot find out SVN revision (no SVNVERSION)"
253   fi
256 if test -f ./CVS/Entries ; then
257   AC_MSG_NOTICE(checking CVS checkout date)
258   AC_CHECK_PROGS(STAT, stat gstat, stat)
259   if [ test "$ac_cv_prog_STAT" = "stat" ] || [ test "$ac_cv_prog_STAT" = "gstat" ]; then
260     AC_CHECK_PROG(SED, sed, sed)
261     if test "$ac_cv_prog_SED" = "sed"; then
262       AC_CHECK_PROG(CUT, cut, cut)
263       if test "$ac_cv_prog_CUT" = "cut"; then
264         SUB_VERSION3="CVS"
265         if [ test "$SYSTEM" = "freebsd"] || [ test "$SYSTEM" = "netbsd"] || ( [ test "$SYSTEM" = "macos" ] && [ test "$ac_cv_prog_STAT" != "gstat" ] ); then
266           SCM_VERSION=`$STAT -f "%Sm" ./CVS/Entries | $SED -e 's/\(.*\) \(.*\) \(.*\) \(.*\)/\4-\1-\2 \3/'`
267         else
268         if [ test "$SYSTEM" = "openbsd"]; then
269           AC_CHECK_PROG(GREP, grep, grep)
270           if test "$ac_cv_prog_GREP" = "grep"; then
271             SCM_VERSION=`$STAT -f %a ./CVS/Entries | $GREP -v Entries | $SED -e 's/\(.*\) \(.*\) \(.*\) \(.*\)/\1-\2-\4 \3/'`
272           fi
273         else
274         if [ test "$SYSTEM" = "mingw"] || [ test "$SYSTEM" = "cygwin"]; then
275           AC_CHECK_PROG(GREP, grep, grep)
276           if test "$ac_cv_prog_GREP" = "grep"; then
277             SCM_VERSION=`$STAT ./CVS/Entries  | $GREP Modify | $SED -e 's/\(.*\) \(.*\) \(.*\) \(.*\) \(.*\)/\5-\2-\3 \4/'`
278           fi
279         else
280           SCM_VERSION=`$STAT -Lc %y ./CVS/Entries | $SED -e 's#\.[0-9]*##' | $CUT -c 1-19`
281         fi  #if [ test "$SYSTEM" = "mingw"] || ...
282         fi  #if [ test "$SYSTEM" = "openbsd"]
283         fi  #if [ test "$SYSTEM" = "freebsd"] || ...
284       else
285         AC_MSG_NOTICE(cannot checking CVS checkout date... no CUT)
286         SCM_VERSION="cannot find out SCM Version (no CUT)"
287       fi
288     else
289       AC_MSG_NOTICE(cannot checking CVS checkout date... no SED)
290       SCM_VERSION="cannot find out SCM Version (no SED)"
291     fi
292   else
293     AC_MSG_NOTICE(cannot checking CVS checkout date... no STAT)
294     SCM_VERSION="cannot find out SCM Version (no STAT)"
295   fi
298 # **********                                                                                  **********
299 # **********             build MLDonkey version, Required OCaml and LablGTK versions          **********
300 # **********                                                                                  **********
302 MLDONKEY_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$SUB_VERSION
303 if test -f ./subrelease; then
304   MLDONKEY_VERSION=$MLDONKEY_VERSION`cat ./subrelease`
306 if test ! -z "$SUB_VERSION3"; then
307   MLDONKEY_VERSION=$MLDONKEY_VERSION.$SUB_VERSION3
310 REQUIRED_OCAML=3.12.0
311 DOWNLOAD_OCAML_MAJOR=3.12
312 DOWNLOAD_OCAML=3.12.0
314 REQUIRED_LABLGTK=1.2.7
316 touch install-sh
318 LABLGTK_NAME=lablgtk
320 # **********                                                                                  **********
321 # **********                    Network and Feature configure switch variables                **********
322 # **********                                                                                  **********
324 # **********   currently not working Networks, can't be enabled
326 SOULSEEK=no
327 OPEN_NAPSTER=no
328 OPENFT=no
330 # **********   working Networks, enabled by default
332 DONKEY=yes
333 BITTORRENT=yes
334 GNUTELLA=no
335 GNUTELLA2=no
336 FASTTRACK=yes
337 FILETP=yes
338 DIRECT_CONNECT=yes
340 # **********   predefined configure variations
342 MULTINET=yes
343 MINIMUM=no
345 # **********   Features, enabled by default
347 DONKEY_SUI=yes
348 DONKEY_SUI_FILE=DonkeySui2
349 GD=yes
350 BZIP2=yes
351 MAGIC=yes
352 ICONV=yes
353 USE_PTHREAD=yes
354 UPNP_NATPMP=no
355 UPNP_NATPMP_FORCE=no
357 # **********
359 BATCH=no
360 FORCE_OCAML=no
361 FORCE_MINGW=no
362 PROFILE=no
363 DEBUG=no
364 DEV=no
365 GUI=no
366 CHECKBOUNDS=false
367 DEVFLAGS=
369 # **********                                                                                  **********
370 # **********                Network and Feature configure switches and dependency             **********
371 # **********                                                                                  **********
373 AC_ARG_ENABLE(multinet,
374   AS_HELP_STRING([--disable-multinet], [disable all networks except eDonkey (with Overnet and Kademlia)]),
375   [MULTINET="$enableval"])
376 AC_ARG_ENABLE(minimum,
377   AS_HELP_STRING([--enable-minimum], [enable minimum set of features and networks (eDonkey, iconv and threads enabled)]),
378   [MINIMUM="$enableval"])
379 AC_ARG_ENABLE(minimum,
380   AS_HELP_STRING([--enable-minimum=all], [enable only eDonkey network and disable all optional features (not recommended)]),
381   [MINIMUM="$enableval"])
383 if [ test ! "$MULTINET" = "yes" ] || [ test "$MINIMUM" = "yes" ] || [ test "$MINIMUM" = "all" ]; then
384   GNUTELLA=no
385   GNUTELLA2=no
386   FASTTRACK=no
387   DIRECT_CONNECT=no
388   FILETP=no
389   BITTORRENT=no
391 if [ test "$MINIMUM" = "yes" ] || [ test "$MINIMUM" = "all" ]; then
392   DONKEY_SUI=no
393   GD=no
394   BZIP2=no
395   MAGIC=no
397 if [ test "$MINIMUM" = "all" ]; then
398   USE_PTHREAD=no
399   ICONV=no
402 #AC_ARG_ENABLE(soulseek,      [  --disable-soulseek      disable support for SoulSeek], [SOULSEEK="$enableval"])
403 #AC_ARG_ENABLE(opennap,       [  --disable-opennap       disable support for Open Napster], [OPEN_NAPSTER="$enableval"])
404 AC_ARG_ENABLE(directconnect,
405   AS_HELP_STRING([--disable-directconnect], [disable support for Direct Connect]),
406   [DIRECT_CONNECT="$enableval"])
407 #AC_ARG_ENABLE(openft,        [  --disable-openft        disable support for OpenFT], [OPENFT="$enableval"])
409 AC_ARG_ENABLE(donkey,
410   AS_HELP_STRING([--disable-donkey], [disable support for eDonkey]),
411   [DONKEY="$enableval"])
412 AC_ARG_ENABLE(donkeysui,
413   AS_HELP_STRING([--disable-donkeysui], [disable support for eMule SecureUserIdent]),
414   [DONKEY_SUI="$enableval"])
415 AC_ARG_ENABLE(bittorrent,
416   AS_HELP_STRING([--disable-bittorrent], [disable support for Bittorent]),
417   [BITTORRENT="$enableval"])
418 AC_ARG_ENABLE(filetp,
419   AS_HELP_STRING([--disable-filetp], [disable support for fileTP]),
420   [FILETP="$enableval"])
421 AC_ARG_ENABLE(gnutella,
422   AS_HELP_STRING([--disable-gnutella], [disable support for Gnutella]),
423   [GNUTELLA="$enableval"])
424 AC_ARG_ENABLE(gnutella2,
425   AS_HELP_STRING([--disable-gnutella2], [disable support for Gnutella2]),
426   [GNUTELLA2="$enableval"])
427 AC_ARG_ENABLE(fasttrack,
428   AS_HELP_STRING([--disable-fasttrack], [disable support for FastTrack]),
429   [FASTTRACK="$enableval"])
431 AC_ARG_ENABLE(batch,
432   AS_HELP_STRING([--enable-batch], [reply YES to all queries in this script]),
433   [BATCH="$enableval"])
434 AC_ARG_ENABLE(force-ocaml,
435   AS_HELP_STRING([--enable-force-ocaml], [force usage of self-compiled OCaml]),
436   [FORCE_OCAML="$enableval"])
437 AC_ARG_ENABLE(ocamlver,
438   AS_HELP_STRING([--enable-ocamlver=VER], [force usage of specific OCaml version (3.10.1|SVN), ]),
439   [REQUIRED_OCAML="$enableval"])
440 AC_ARG_ENABLE(mingw,
441   AS_HELP_STRING([--enable-mingw], [force compilation with MINGW on Cygwin]),
442   [FORCE_MINGW="$enableval"])
443 AC_ARG_ENABLE(checks,
444   AS_HELP_STRING([--enable-checks], [enable bounds-checking for array/string accesses]),
445   [CHECKBOUNDS="$enableval"])
446 if test "$CHECKBOUNDS" = "yes"; then
447   CHECKBOUNDS=true
450 AC_ARG_ENABLE(profile,
451   AS_HELP_STRING([--enable-profile], [compile with gprof profiling support (enables debug)]),
452   [PROFILE="$enableval"])
453 AC_ARG_ENABLE(debug,
454   AS_HELP_STRING([--enable-debug], [compile with debugging information]),
455   [DEBUG="$enableval"])
456 AC_ARG_ENABLE(dev,
457   AS_HELP_STRING([--enable-dev], [development mode (enables debug and annot information)]),
458   [DEV="$enableval"])
459 if test "$PROFILE" = "yes"; then
460   DEBUG="yes"
462 if test "$DEV" = "yes"; then
463   DEBUG="yes"
465 AC_ARG_ENABLE(gui,
466   AS_HELP_STRING([--disable-gui], [disable GUI build (default)]),
467   [GUI="$enableval"])
468 AC_ARG_ENABLE(gui,
469   AS_HELP_STRING([--enable-gui=oldgui|newgui1|newgui2], 
470                  [enable GUI (newgui2 uses GTK2 (default), other GUIs use GTK1)]),
471   [GUI="$enableval"])
472 if test "$GUI" = "yes"; then
473   GUI=newgui2
475 if test ! "$GUI" = "newgui2"; then
476   if test ! "$GUI" = "newgui1"; then
477     if test ! "$GUI" = "oldgui"; then
478       GUI=no
479     fi
480   fi
483 AC_ARG_ENABLE(pthread,
484   AS_HELP_STRING([--disable-pthread], [disable the use of pthread, hurts performance!]),
485   [USE_PTHREAD="$enableval"])
486 AC_ARG_ENABLE(pthread-lib,
487   AS_HELP_STRING([--enable-pthread-lib], [legacy option]),
488   [USE_PTHREAD="$enableval"])
489 AC_ARG_ENABLE(iconv,
490   AS_HELP_STRING([--disable-iconv], [disable the use of iconv]),
491   [ICONV="$enableval"])
492 AC_ARG_ENABLE(gd,
493   AS_HELP_STRING([--disable-gd], [disable the use of gd]),
494   [GD="$enableval"])
495 AC_ARG_ENABLE(bzip2,
496   AS_HELP_STRING([--disable-bzip2], [disable the use of bzip2]),
497   [BZIP2="$enableval"])
498 AC_ARG_ENABLE(magic,
499   AS_HELP_STRING([--disable-magic], [disable the use of libmagic (GNU file)]),
500   [MAGIC="$enableval"])
501 AC_ARG_ENABLE(upnp-natpmp,
502   AS_HELP_STRING([--enable-upnp-natpmp], [enable the use of libminiupnpc and libnatpmp]),
503   [UPNP_NATPMP="$enableval"])
504 AC_ARG_ENABLE(force-upnp-natpmp,
505   AS_HELP_STRING([--enable-force-upnp-natpmp], [force local compilation of libminiupnpc and libnatpmp]),
506   [UPNP_NATPMP_FORCE="$enableval"])
508 if test "$FORCE_MINGW" = "yes"; then
509     CC="$CC -mno-cygwin"
510     CPP="$CPP -mno-cygwin"
511     OS_FILES=mingw
512     OS_FILES2=mingw
513     SYSTEM=mingw
516 OCAML_PATH=
518 echo ""
519 echo "--------------------------------"
520 echo "     Checking system tools."
521 echo "--------------------------------"
523 AC_PROG_RANLIB
524 AC_CHECK_PROG(GNU_MAKE, gmake, gmake)
525 AC_CHECK_PROG(GNU_MAKE, make, make)
527 if test "x$GNU_MAKE" != "x"; then
528   AC_MSG_CHECKING( [if $GNU_MAKE is GNU make] )
529   $GNU_MAKE --version > /dev/null 2>&1
530   if test "$?" != "0"; then
531     AC_MSG_RESULT([no])
532         AC_MSG_ERROR(GNU make not found)
533   else
534     AC_MSG_RESULT([yes])
535   fi
536 else
537   AC_MSG_ERROR(GNU make not found)
540 AC_CHECK_PROG(COMPRESS, bzip2, bzip2)
541 AC_CHECK_PROG(COMPRESS, gzip, gzip)
543 if test "$ac_cv_prog_COMPRESS" = "bzip2"; then
544    COMPRESS_EXT=bz2
545 else
546    COMPRESS_EXT=gz
549 AC_PATH_PROG(PERL, perl, perl)
550 AC_CHECK_PROG(RPMBUILD,rpmbuild,rpmbuild)
551 AC_CHECK_PROG(RPMBUILD,rpm,rpm)
553 AC_CHECK_PROG(WGET, wget, wget)
554 if test -z "$ac_cv_prog_WGET"; then
555   $CC -o wget wget.c || echo "Cannot compile wget.c"
556   AC_PATH_PROG(WGET, wget,,$SOURCE_DIR/config)
557   ac_cv_prog_WGET="$ac_cv_path_WGET"
559 WGET="$ac_cv_prog_WGET"
561 echo "----------------------------------------"
562 echo "     Checking system tools finished."
563 echo "----------------------------------------"
564 echo ""
565 echo "--------------------------------"
566 echo "     Checking OCaml compiler."
567 echo "--------------------------------"
569 CONFIG_DIR=$SOURCE_DIR/config
570 PATCH_DIR=$SOURCE_DIR/patches
571 LOCAL_DIR=$PATCH_DIR/local
572 BUILD_DIR=$PATCH_DIR/build
574 AC_ARG_ENABLE(local-prefix,
575   AS_HELP_STRING([--enable-local-prefix=DIR], [specify path for temporary tools installation (DIR must be absolute)]),
576   [LOCAL_DIR="$enableval"])
578 LOCAL=$LOCAL_DIR
579 LOCAL_OCAML=$LOCAL_DIR/bin
581 AC_PATH_PROG(OCAMLC,ocamlc.opt,"",[$LOCAL_DIR/bin:$PATH])
582 AC_CHECK_TOOL(OCAMLC,ocamlc,ocamlrun ocamlc)
583 AC_PATH_PROG(CAMLP4, camlp4,"",[$LOCAL_DIR/bin:$PATH])
585 BUILD_OCAML=no
586 if [ test -z "$OCAMLC" ] || [ test -z "$CAMLP4" ] || [ test "$REQUIRED_OCAML" = "SVN" ]; then
587    BUILD_OCAML=yes
588 else
589   OCAMLVERSION=`$OCAMLC -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
590   case "$OCAMLVERSION" in
591     "$REQUIRED_OCAML"*|4.*|3.12.*|3.11.*|3.10.1*|3.10.2*) ;;
592     *)
593         echo "Need build"
594         BUILD_OCAML=yes
595         ;;
596   esac
598 case "$REQUIRED_OCAML" in
599   3.10.0|3.0*)
600     echo "Need build"
601     REQUIRED_OCAML=3.12.0
602     BUILD_OCAML=yes
603     ;;
604 esac
605 if [ test "$BUILD_OCAML" = "yes" ] || [ test "$FORCE_OCAML" = "yes" ]; then
607   if [ test "$SYSTEM" = "mingw" ]; then
608     echo "********         Objective-Caml $REQUIRED_OCAML is required               *********" 1>&2;
609     echo "********     no valid OCaml compiler found on your system        *********" 1>&2;
610     echo "********   on MinGW there is no possibility to let configure     *********" 1>&2;
611     echo "********   build the OCaml compiler with the included script     *********" 1>&2;
612     echo "********    check http://mldonkey.sourceforge.net/Windows        *********" 1>&2;
613     echo "********   for instuctions how to compile OCaml under MinGW      *********" 1>&2;
614     exit 1
615   else  
616     
617   echo "********  Objective-Caml $REQUIRED_OCAML is required  *********" 1>&2;
618   if [ test "$WGET" = "" ] && [ test "$REQUIRED_OCAML" != "SVN" ]; then
619     echo "********          wget is missing          *********" 1>&2;
620     echo "********       cannot download OCaml       *********" 1>&2;
621     exit 1
622   fi
623   echo "*******  Check http://caml.inria.fr/  ********" 1>&2;
624   echo "Do you want this script to try to download and install ocaml"
625   echo "LOCALLY in mldonkey directory ?"
626   if test "$BATCH" = "no"; then read i <&1; else i=yes; fi
627   case "$i" in
628    y* | Y*)
629       cd $PATCH_DIR
630       if [ test "$REQUIRED_OCAML" = "SVN" ]; then
631         rm -rf $BUILD_DIR
632         mkdir -p $BUILD_DIR
633         cd $BUILD_DIR
634         svn checkout http://caml.inria.fr/svn/ocaml/trunk
635         cd trunk
636       else
637         if test ! -f ocaml-"$REQUIRED_OCAML".tar.gz; then
638           echo Downloading ...
639           $WGET http://caml.inria.fr/pub/distrib/ocaml-"$DOWNLOAD_OCAML_MAJOR"/ocaml-"$REQUIRED_OCAML".tar.gz
640         fi
641         if test ! -f ocaml-"$REQUIRED_OCAML".tar.gz; then
642           $WGET http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-"$REQUIRED_OCAML".tar.gz
643         fi
644         if test ! -f ocaml-"$REQUIRED_OCAML".tar.gz; then
645           $WGET http://caml.inria.fr/pub/distrib/ocaml-3.10/ocaml-"$REQUIRED_OCAML".tar.gz
646         fi
647         if test ! -f ocaml-"$REQUIRED_OCAML".tar.gz; then
648           $WGET http://caml.inria.fr/pub/distrib/ocaml-4.00/ocaml-"$REQUIRED_OCAML".tar.gz
649         fi
650         if test ! -f ocaml-"$REQUIRED_OCAML".tar.gz; then
651           echo "********        download OCaml $REQUIRED_OCAML not successful, try do download it manually       *********" 1>&2;
652           echo "********        from http://caml.inria.fr/pub/distrib/                                   *********" 1>&2;
653           echo "********        and copy the tar.gz into $PATCH_DIR              *********" 1>&2;
654           exit 1
655         fi
657         echo Uncompressing ...
658         mkdir -p $BUILD_DIR
659         cd $BUILD_DIR
660         rm -rf ocaml-"$REQUIRED_OCAML"
661         gzip -cd $PATCH_DIR/ocaml-"$REQUIRED_OCAML".tar.gz | tar vxf -
662         cd ocaml-"$REQUIRED_OCAML"
663         if test -f $PATCH_DIR/ocaml-"$REQUIRED_OCAML".patch; then
664           echo Patching ...
665           patch -p1 < $PATCH_DIR/ocaml-"$REQUIRED_OCAML".patch
666         fi
667       fi
668       echo Configuring ...
669       ./configure -prefix $LOCAL_DIR -host $host -cc $CC
670       cd config
671       cp -f Makefile Makefile.old
672       sed "s/OTHERLIBRARIES=.*/OTHERLIBRARIES=unix dynlink num str bigarray threads/" Makefile.old > Makefile
673       cd ..
674       cp -f $PATCH_DIR/Makefile.ocamldoc ocamldoc/Makefile
675       echo Compiling ...
676       $GNU_MAKE world opt opt.opt
677       echo Installing ...
678       $GNU_MAKE install
679       if ! test -f $LOCAL_DIR/lib/ocaml/threads; then
680         if ! test -f $LOCAL_DIR/lib/ocaml/vmthreads; then
681           ln -s vmthreads  $LOCAL_DIR/lib/ocaml/threads
682         fi
683       fi
684       cd $BUILD_DIR
685       if [ test "$REQUIRED_OCAML" = "SVN" ]; then
686         rm -rf trunk
687       else
688         rm -rf ocaml-"$REQUIRED_OCAML"
689       fi
690       cd $CONFIG_DIR
691       echo OCaml locally installed for mldonkey
693       if test -f "$LOCAL_OCAML"/ocamlc.opt; then
694          OCAMLC=$LOCAL_OCAML/ocamlc.opt
695          ac_cv_prog_OCAMLC=$LOCAL_OCAML/ocamlc.opt
696       else
697       if test -f "$LOCAL_OCAML"/ocamlc; then
698          OCAMLC=$LOCAL_OCAML/ocamlc
699          ac_cv_prog_OCAMLC=$LOCAL_OCAML/ocamlc
700       else
701         echo "OCaml installation failed"; exit 1
702       fi
703       fi
704       ;;
705    *)  exit 1;;
706   esac
707   fi
710 if test "$OCAMLC" = "$LOCAL_OCAML"/ocamlc.opt ; then
711   OCAML_PATH="$LOCAL_OCAML"/
712   OCAMLOPT=$LOCAL_OCAML/ocamlopt.opt
713   OCAMLDOC=$LOCAL_OCAML/ocamldoc
714   OCAMLMKTOP=$LOCAL_OCAML/ocamlmktop
715   OCAMLDEP=$LOCAL_OCAML/ocamldep
716   OCAMLLEX=$LOCAL_OCAML/ocamllex.opt
717   OCAMLYACC=$LOCAL_OCAML/ocamlyacc
718   CAMLP4=$LOCAL_OCAML/camlp4
719   CAMLP4OF=$LOCAL_OCAML/camlp4of
720 else
721   if test "$OCAMLC" = "$LOCAL_OCAML"/ocamlc ; then
722   OCAML_PATH="$LOCAL_OCAML"/
723   if test -f "$LOCAL_OCAML/ocamlopt"; then
724     OCAMLOPT=$LOCAL_OCAML/ocamlopt
725   else
726     OCAMLOPT=no
727   fi
728   OCAMLDOC=$LOCAL_OCAML/ocamldoc
729   OCAMLMKTOP=$LOCAL_OCAML/ocamlmktop
730   OCAMLDEP=$LOCAL_OCAML/ocamldep
731   OCAMLLEX=$LOCAL_OCAML/ocamllex
732   OCAMLYACC=$LOCAL_OCAML/ocamlyacc
733   CAMLP4=$LOCAL_OCAML/camlp4
734   CAMLP4OF=$LOCAL_OCAML/camlp4of
735   else
736   AC_CHECK_PROG(OCAMLOPT, ocamlopt.opt, ocamlopt.opt)
737   AC_CHECK_PROG(OCAMLOPT, ocamlopt, ocamlopt, no)
738   AC_CHECK_PROG(OCAMLDEP, ocamldep, ocamldep)
739   AC_CHECK_PROG(OCAMLLEX, ocamllex.opt, ocamllex.opt)
740   AC_CHECK_PROG(OCAMLLEX, ocamllex, ocamllex)
741   AC_CHECK_PROG(OCAMLYACC, ocamlyacc, ocamlyacc)
742   AC_CHECK_PROG(OCAMLDOC, ocamldoc, ocamldoc)
743   AC_CHECK_PROG(OCAMLMKTOP, ocamlmktop, ocamlmktop)
744   AC_CHECK_PROG(CAMLP4, camlp4, camlp4)
745   AC_CHECK_PROG(CAMLP4OF, camlp4of, camlp4of, $CAMLP4 pa_o.cmo pr_o.cmo Camlp4QuotationExpander.cmo Camlp4GrammarParser.cmo)
749 OCAMLVERSION=`$OCAMLC -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
750 OCAMLLIB=`$OCAMLC -where`
752 # check if native dynlink is supported and therefore needed for linking
753 CAMLP4LIB_OPT="camlp4lib.cmxa"
754 CAMLP4LIB_BYTE="camlp4lib.cma"
755 if test -f $OCAMLLIB/dynlink.cma; then
756   CAMLP4LIB_BYTE="dynlink.cma $CAMLP4LIB_BYTE"
758 if test -f $OCAMLLIB/dynlink.cmxa; then
759   CAMLP4LIB_OPT="dynlink.cmxa $CAMLP4LIB_OPT"
762 # force usage of supported OCaml versions
763 case "$OCAMLVERSION" in
764     3.10.1*|3.10.2*|3.1*|4.*) ;;
765     *)
766       if [ test "$REQUIRED_OCAML" != "SVN" ]; then
767         echo "********  Version $REQUIRED_OCAML of Objective-Caml is required  *********" 1>&2;
768         echo "*******  Check http://caml.inria.fr/  ********" 1>&2;
769         exit 1
770       fi
771       ;;
772 esac
774 case "$OCAMLVERSION" in
775   3.*|4.00*|4.01*|4.02*) ;;
776   *) OCAMLC="$OCAMLC -unsafe-string" ;;
777 esac
779 if test "$OCAMLOPT" = "no"; then
780   TARGET_TYPE=byte
781   OCAMLLIB_EXT=cma
782 else
783   TARGET_TYPE=opt
784   OCAMLLIB_EXT=cmxa
786   OCAMLOPTVERSION=`$OCAMLOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
788   test "$OCAMLOPTVERSION" = "$OCAMLVERSION" || {
789     echo "********  Version $REQUIRED_OCAML of ocamlopt is required  *********" 1>&2;
790     echo "*******  Check http://caml.inria.fr/  ********" 1>&2;
791     exit 1; }
793   case "$OCAMLVERSION" in
794     3.*|4.00*|4.01*|4.02*) ;;
795     *) OCAMLOPT="$OCAMLOPT -unsafe-string" ;;
796   esac
800 echo "-------------------------------------------"
801 echo "     Checking OCaml $OCAMLVERSION finished."
802 echo "-------------------------------------------"
805 if test "$PROFILE" = "yes"; then
806    OCAMLOPT="$OCAMLOPT -p"
807    CFLAGS="$CFLAGS -pg"
809 if test "$FORCE_MINGW" = "yes"; then
810     OCAMLC="$OCAMLC -ccopt -mno-cygwin"
811     OCAMLOPT="$OCAMLOPT -ccopt -mno-cygwin"
812     OCAMLMKTOP="$OCAMLMKTOP -ccopt -mno-cygwin"
814 if test "$DEBUG" = "yes"; then
815     OCAMLC="$OCAMLC -g"
816     OCAMLOPT="$OCAMLOPT -g"
819 if test "$DEV" = "yes"; then
820   case "$OCAMLVERSION" in
821     3.*) DEVFLAGS="-annot" ;;
822     *) DEVFLAGS="-annot -bin-annot" ;;
823   esac
826 echo ""
827 echo "----------------------------------"
828 echo "     Checking system headers."
829 echo "----------------------------------"
831 ifelse(AC_ACVERSION, [2.13], [],
832 [dnl Large file enabled
833    AC_SYS_LARGEFILE
837 dnl Check for native endianness.
838 AC_C_BIGENDIAN(,,
839   [AC_MSG_ERROR([Machine endianness could not be determined])]
841 if test "x$WORDS_BIGENDIAN" = "x"; then
842   NATIVEENDIAN=LittleEndian
843 else
844   NATIVEENDIAN=BigEndian
846 AC_SUBST(NATIVEENDIAN)
848 # various header files
849 AC_CHECK_FUNCS(setrlimit getrlimit strerror_r strerror posix_fallocate)
850 AC_CHECK_HEADERS(byteswap.h,,)
851 AC_CHECK_HEADERS([sys/utsname.h])
852 AC_CHECK_HEADERS(arpa/inet.h,,)
853 AC_CHECK_HEADERS([sys/types.h sys/time.h sys/resource.h netinet/in_systm.h netinet/in.h netinet/ip.h],,,
854 [#ifdef HAVE_SYS_TYPES_H
855 #include <sys/types.h>
856 #endif
857 #ifdef HAVE_SYS_TIME_H
858 #include <sys/time.h>
859 #endif
860 #ifdef HAVE_NETINET_IN_SYSTM_H
861 #include <netinet/in_systm.h>
862 #endif
863 #ifdef HAVE_NETINET_IN_H
864 #include <netinet/in.h>
865 #endif
868 # poll if possible
869 AC_CHECK_HEADERS(sys/poll.h,,)
870 AC_CHECK_FUNCS(poll,,)
872 AC_CHECK_HEADERS(sys/vfs.h,,)
873 AC_CHECK_HEADERS(sys/statvfs.h,,)
874 AC_CHECK_HEADERS([sys/param.h sys/mount.h],,,
875 [#if HAVE_SYS_PARAM_H
876 #include <sys/param.h>
877 #endif
879 echo "-------------------------------------------"
880 echo "     Checking system headers finished."
881 echo "-------------------------------------------"
882 echo ""
883 echo "-----------------------------------"
884 echo "     Checking system libraries."
885 echo "-----------------------------------"
886 echo "----- checking zlib (required)"
887 AC_CHECK_LIB(z,inflate,,[echo "Zlib missing, did you install zlib and zlib-developer packages?"; exit 1])
888 AC_CHECK_HEADERS(zlib.h,,[echo "Zlib missing, did you install zlib and zlib-developer packages?"; exit 1])
889 AC_CHECK_LIB(z,zlibVersion,[AC_DEFINE(HAVE_ZLIBVERSION, 1,)])
891 if test "$BZIP2" != "no"; then
892   echo "----- checking bzlib (optional)"
893   AC_CHECK_HEADERS(bzlib.h,[AC_CHECK_LIB(bz2,BZ2_bzReadOpen,[BZIP2=yes],[BZIP2=no])],[BZIP2=no])
896 if test "$BZIP2" = "yes"; then
897   AC_CHECK_LIB(bz2,BZ2_bzlibVersion,[AC_DEFINE(HAVE_BZLIBVERSION, 1,)])
898   AC_DEFINE(USE_BZIP2, 1, [Define to 1 if you have bzip2 support.])
899 else
900   AC_MSG_NOTICE(bzlib not available)
903 if test "$UPNP_NATPMP_FORCE" = "yes"; then
904         UPNP_NATPMP=yes
905         cd $PATCH_DIR
906         MINIUPNPC=miniupnpc-1.9
907         LIBNATPMP=libnatpmp-20131126
908         $WGET http://miniupnp.tuxfamily.org/files/$MINIUPNPC.tar.gz
909         $WGET http://miniupnp.tuxfamily.org/files/$LIBNATPMP.tar.gz
910         mkdir -p $BUILD_DIR $LOCAL_DIR/usr/bin $LOCAL_DIR/usr/lib $LOCAL_DIR/usr/include/miniupnpc
911         cd $BUILD_DIR
912         rm -rf $LIBNATPMP $MINIUPNPC
913         tar -xzf $PATCH_DIR/$MINIUPNPC.tar.gz
914         tar -xzf $PATCH_DIR/$LIBNATPMP.tar.gz
915         cd $BUILD_DIR/$LIBNATPMP
916         $GNU_MAKE all install PREFIX=$LOCAL_DIR
917         cd $BUILD_DIR/$MINIUPNPC
918         $GNU_MAKE all install PREFIX=$LOCAL_DIR
919         cd $CONFIG_DIR
920         rm -rf $BUILD_DIR/$LIBNATPMP $BUILD_DIR/$MINIUPNPC
921         CPPFLAGS="${CPPFLAGS} -I$LOCAL_DIR/usr/include"
922         LDFLAGS="${LDFLAGS} -L$LOCAL_DIR/usr/lib"
925 if test "$UPNP_NATPMP" = "yes"; then
926   echo "----- checking libminiupnpc >= 1.6 (optional)"
927   AC_CHECK_HEADERS(miniupnpc/miniupnpc.h,[AC_CHECK_LIB(miniupnpc,upnpDiscover,[UPNP_NATPMP=yes],[UPNP_NATPMP=no])],[UPNP_NATPMP=no])
930 if test "$UPNP_NATPMP" = "yes"; then
931   echo "----- checking libnatpmp >= 20110808 (optional)"
932   AC_CHECK_HEADERS(natpmp.h,[AC_CHECK_LIB(natpmp,initnatpmp,[UPNP_NATPMP=yes],[UPNP_NATPMP=no])],[UPNP_NATPMP=no])
935 if test "$UPNP_NATPMP" = "yes"; then
936   AC_DEFINE(ENABLE_UPNP_NATPMP, 1, [Define to 1 if you have libminiupnpc & libnatpmp for port forwarding support.])
937   UPNP_NATPMP_LIBS="-lminiupnpc -lnatpmp $LIBS"
938   UPNP_NATPMP_STATIC_LIBS="-lminiupnpc -lnatpmp $LIBS"
941 if test "$MAGIC" != "no"; then
942   echo "----- checking libmagic (GNU file) (optional)"
943   AC_CHECK_HEADERS(magic.h,
944     [AC_CHECK_LIB(magic,magic_file,
945       [AC_CHECK_DECL([MAGIC_ERROR], [MAGIC=yes], [MAGIC=no],[#include <magic.h>])],
946       [MAGIC=no])],
947     [MAGIC=no])
950 if test "$MAGIC" = "yes"; then
951   MAGICLIB=Magic_magic
952 else
953   MAGICLIB=Magic_nomagic
954   AC_MSG_NOTICE(libmagic not available)
957 GD_JPG=no
958 GD_PNG=no
959 if test "$GD" != "no"; then
960   echo "----- checking gd (optional)"
961   GD=no
962   LIBGD=no
963   SAVE_LIBS=$LIBS
964   SAVE_CFLAGS=$CFLAGS
965   SAVE_LDFLAGS=$LDFLAGS
966   AC_CHECK_PROG(GDLIBCONFIG, gdlib-config, gdlib-config)
967   if test "$ac_cv_prog_GDLIBCONFIG" = "gdlib-config"; then
968     GD_LIBS=`$GDLIBCONFIG --libs`
969     $GDLIBCONFIG --static-libs > /dev/null 2>&1
970     if test "$?" = "0"; then
971       GD_STATIC_LIBS=`$GDLIBCONFIG --static-libs`
972     fi
973     GD_LIBS2="$LIBS -lgd $GD_LIBS"
974     LIBS=$GD_LIBS2
975     GD_CFLAGS=`$GDLIBCONFIG --cflags`
976     CFLAGS="$CFLAGS $GD_CFLAGS"
977     GD_LDFLAGS=`$GDLIBCONFIG --ldflags`
978     LDFLAGS="$LDFLAGS $GD_LDFLAGS"
979     AC_MSG_CHECKING(for libgd > 2.0.14)
980     GDVERSION=`$GDLIBCONFIG --version`
981     GDMAJORVERSION=`$GDLIBCONFIG --majorversion`
982     GDMINORVERSION=`$GDLIBCONFIG --minorversion`
983     GDREVISION=`$GDLIBCONFIG --revision`
984     case $GDMAJORVERSION in
985         1)
986             AC_MSG_RESULT(no (found $GDVERSION))
987             LIBGD=no
988             ;;
989         2)
990             if test $GDMINORVERSION -ge 1; then
991                 AC_MSG_RESULT($GDVERSION)
992                 LIBGD=yes
993             else
994                 if test $GDREVISION -gt 14; then
995                     AC_MSG_RESULT($GDVERSION)
996                     LIBGD=yes
997                 else
998                     AC_MSG_RESULT(no (found $GDVERSION))
999                     LIBGD=no
1000                 fi
1001             fi
1002             ;;
1003         *)
1004             AC_MSG_RESULT($GDVERSION)
1005             LIBGD=yes
1006             ;;
1007     esac
1008   else
1009     LIBGD=yes
1010   fi
1012   if test "$LIBGD" = "yes"; then
1013     AC_CHECK_HEADERS(gd.h,[LIBGD=yes],[LIBGD=no])
1014   fi
1016   if test "$LIBGD" = "yes"; then
1017     AC_MSG_CHECKING(for gdImageCreate in -lgd)
1018     AC_TRY_LINK([#include <gd.h>],
1019     [gdImageCreate (0,0);],
1020     [LIBGD=yes], [LIBGD=no])
1021     AC_MSG_RESULT($LIBGD)
1022     LIBS=$SAVE_LIBS
1024     if test "$LIBGD" = "no"; then
1025       AC_MSG_NOTICE([not found, trying another method])
1026       AC_CHECK_LIB(gd, gdImageCreate, [LIBGD=yes], [LIBGD=no])
1027     fi
1028   fi
1030   if test "$LIBGD" = "yes"; then
1031     LIBPNG=no
1032 # saving current variables
1033     SAVE_LIBS_PNG=$LIBS
1034     SAVE_CFLAGS_PNG=$CFLAGS
1035     SAVE_LDFLAGS_PNG=$LDFLAGS
1036     AC_CHECK_PROG(PNGLIBCONFIG, libpng-config, libpng-config)
1037     if test "$ac_cv_prog_PNGLIBCONFIG" = "libpng-config"; then
1038 # check libpng-config contents and update system variables
1039       PNG_LIBS=`$PNGLIBCONFIG --libs`
1040       LIBS="$LIBS $PNG_LIBS"
1041       PNG_CFLAGS=`$PNGLIBCONFIG --cflags`
1042       CFLAGS="$CFLAGS $PNG_CFLAGS"
1043       PNG_LDFLAGS=`$PNGLIBCONFIG --ldflags`
1044       LDFLAGS="$LDFLAGS $PNG_LDFLAGS"
1045     fi
1046     AC_CHECK_LIB(png, png_create_read_struct , [LIBPNG=yes])
1047 # restore variables
1048     LIBS=$SAVE_LIBS_PNG
1049     CFLAGS=$SAVE_CFLAGS_PNG
1050     LDFLAGS=$SAVE_LDFLAGS_PNG
1052     if test "$LIBPNG" = "no"; then
1053       AC_MSG_NOTICE(png support not available)
1054     else
1055       LIBGD_PNG=no
1056       LIBS=$GD_LIBS2
1057       AC_MSG_CHECKING(for gdImagePng in -lgd)
1058       AC_TRY_LINK([#include <gd.h>],
1059       [gdImagePng (0,0);],
1060       [LIBGD_PNG=yes], [LIBGD_PNG=no])
1061       AC_MSG_RESULT($LIBGD_PNG)
1062       LIBS=$SAVE_LIBS
1064       if test "$LIBGD_PNG" = "no"; then
1065         AC_MSG_NOTICE([not found, trying another method])
1066         AC_CHECK_LIB(gd, gdImagePng, [LIBGD_PNG=yes], [LIBGD_PNG=no])
1067       fi
1069       AC_MSG_CHECKING(for png support in libgd)
1070       if test "$LIBGD_PNG" = "yes"; then
1071         GD=yes
1072         GD_PNG=yes
1073         GD_LIBS="$GD_LIBS $PNG_LIBS"
1074         AC_MSG_RESULT(yes)
1075         AC_CHECK_LIB(png, png_access_version_number,[AC_DEFINE(HAVE_PNGVERSION, 1,)])
1076         AC_DEFINE(HAVE_GD_PNG, 1, [Define to 1 if you have png support in libgd.])
1077       else
1078         AC_MSG_RESULT(no)
1079       fi
1080     fi
1082     LIBJPEG=no
1083     AC_CHECK_LIB(jpeg, jpeg_CreateCompress, [LIBJPEG=yes])
1085     if test "$LIBJPEG" = "no"; then
1086       AC_MSG_NOTICE(jpeg support not available)
1087     else
1088       LIBGD_JPG=no
1089       LIBS=$GD_LIBS2
1090       AC_MSG_CHECKING(for gdImageJpeg in -lgd)
1091       AC_TRY_LINK([#include <gd.h>],
1092       [gdImageJpeg (0,0,0);],
1093       [LIBGD_JPG=yes], [LIBGD_JPG=no])
1094       AC_MSG_RESULT($LIBGD_JPG)
1095       LIBS=$SAVE_LIBS
1097       if test "$LIBGD_JPG" = "no"; then
1098         AC_MSG_NOTICE([not found, trying another method])
1099         AC_CHECK_LIB(gd, gdImageJpeg, [LIBGD_JPG=yes], [LIBGD_JPG=no])
1100       fi
1102       AC_MSG_CHECKING(for jpeg support in libgd)
1103       if test "$LIBGD_JPG" = "yes"; then
1104         GD=yes
1105         GD_JPG=yes
1106         GD_LIBS="$GD_LIBS -ljpeg"
1107         AC_DEFINE(HAVE_GD_JPG, 1, [Define to 1 if you have jpg support in libgd.])
1108         AC_MSG_RESULT(yes)
1109       else
1110         AC_MSG_RESULT(no)
1111       fi
1112     fi
1113   else
1114     AC_MSG_NOTICE(libgd not available)
1115   fi
1116   LIBS=$SAVE_LIBS
1117   CFLAGS=$SAVE_CFLAGS
1118   LDFLAGS=$SAVE_LDFLAGS
1121 if test "$GD" != "no"; then
1122   GDGRAPHICS=DriverGraphics_gd
1123 else
1124   GDGRAPHICS=DriverGraphics_nogd
1127 if test "$ICONV" = "yes"; then
1128   echo "----- checking iconv (optional)"
1129   AM_ICONV
1130   if test "$am_cv_func_iconv" != "yes"; then
1131     AC_DEFINE(DISABLE_ICONV, 1, [Define to 1 if you want to replace iconv and related with stubs.])
1132     ICONV=no
1133   else
1134   LIBS="$LIBS $LIBICONV"
1135   AC_CHECK_FUNCS([locale_charset],,
1136   AC_TRY_LINK([#include <langinfo.h>],
1137   [char* cs = nl_langinfo(CODESET);],
1138   AC_MSG_NOTICE(found nl_langinfo(CODESET)),
1139   [echo "Your iconv implementation is incomplete"; exit 1]))
1140   AC_CHECK_LIB(charset,locale_charset)
1141   AC_CHECK_HEADERS([libcharset.h])
1142   AC_CHECK_HEADERS([langinfo.h])
1143   AC_CHECK_HEADERS([locale.h])
1144   fi
1145 else
1146   AC_DEFINE(DISABLE_ICONV, 1, [Define to 1 if you want to replace iconv and related with stubs.])
1147   ICONV=no
1150 if test "$USE_PTHREAD" = "no"; then
1151  PTHREAD_LIBS=""
1152  echo "You disabled thread support, this will hurt MLDonkey performance!"
1153 else
1154   echo "----- checking thread support (optional, strongly advised)"
1155   ACX_PTHREAD
1158 # On linux plaforms, we will have to check that includes from kernel are
1159 # available. glibc version test was shamelessly taken from
1160 # http://public.activestate.com/gsar/APC/perl-5.8.x/Configure
1161 GLIBC_VERSION=""
1162 case $host in
1163         *linux*)
1164            echo "----- GNU C Library version"
1165            AC_CHECK_HEADERS(linux/limits.h,, [
1166              OLD_CPPFLAGS=$CPPFLAGS
1167              CPPFLAGS="-I /usr/src/linux/include"
1168              AC_CHECK_HEADER(linux/types.h,[CONFIG_INCLUDES="-I /usr/src/linux/include"])
1169              CPPFLAGS=$OLD_CPPFLAGS]
1170            )
1171            AC_CHECK_HEADERS(gnu/libc-version.h,[AC_MSG_CHECKING(for GNU C Library version)
1173 cat >try.c <<'EOCP'
1174 /* Find out version of GNU C library.  __GLIBC__ and __GLIBC_MINOR__
1175    alone are insufficient to distinguish different versions, such as
1176    2.0.6 and 2.0.7.  The function gnu_get_libc_version() appeared in
1177    libc version 2.1.0.      A. Dougherty,  June 3, 2002.
1179 #include <stdio.h>
1180 int main(void)
1182 #ifdef __GLIBC__
1183 #   ifdef __GLIBC_MINOR__
1184 #       if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
1185 #           include <gnu/libc-version.h>
1186     printf("%s\n",  gnu_get_libc_version());
1187 #       else
1188     printf("%d.%d\n",  __GLIBC__, __GLIBC_MINOR__);
1189 #       endif
1190 #   else
1191 printf("%d\n",  __GLIBC__);
1192 #   endif
1193     return 0;
1194 #else
1195     return 1;
1196 #endif
1198 EOCP
1200            $CC -o try ./try.c
1201            GLIBC_VERSION="`./try`"
1202            AC_MSG_RESULT($GLIBC_VERSION)
1203            rm -f try try.*],)
1204         ;;
1205         *)         ;;
1206 esac
1208 echo "---------------------------------------------"
1209 echo "     Checking system libraries finished."
1210 echo "---------------------------------------------"
1211 echo ""
1213 CXX_VERSION=
1214 CRYPTOPPFLAGS=
1215 echo "--------------------------------------"
1216 echo "     Checking activated networks."
1217 echo "--------------------------------------"
1219   if test "$DONKEY" = "yes"; then
1220     AC_MSG_CHECKING(eDonkey)
1221     if test -d ../src/networks/donkey; then
1222       AC_MSG_RESULT(yes)
1223       if test "$DONKEY_SUI" = "yes"; then
1224         AC_PROG_CXX
1226 # GCC miscompiles cryptopp.cc with -O2 on armhf
1227 # http://mldonkey.sourceforge.net/phpBB2/viewtopic.php?p=32309#32309
1228 # https://bugs.launchpad.net/ubuntu/+source/mldonkey/+bug/1060007
1229         case "$host" in
1230                 armv7l-*-linux-gnueabihf)
1231                         CXXFLAGS="-g -Os"
1232                         ;;
1233         esac
1235         AC_CHECK_TOOL(NEWCXX, [$CXX], [no])
1236         AC_MSG_CHECKING(eMule SUI)
1237         if test x"$NEWCXX" = x"no"
1238         then
1239           AC_MSG_RESULT(no)
1240           CXX=
1241           DONKEY_SUI=no
1242         else
1243           AC_MSG_RESULT(yes)
1244           ACX_CHECK_CXX_FLAGS(-fno-omit-frame-pointer,cv_no_omit_frame_pointer, CRYPTOPPFLAGS="-fno-omit-frame-pointer")
1245           ACX_CHECK_CXX_FLAGS(-mno-omit-leaf-frame-pointer,cv_no_omit_leaf_frame_pointer, CRYPTOPPFLAGS="$CRYPTOPPFLAGS -mno-omit-leaf-frame-pointer")
1246           CXX=$NEWCXX
1247           CXX_VERSION=`$CXX -dumpversion`
1248           DONKEY_SUI_FILE=DonkeySui1
1249           AC_DEFINE(HAVE_CRYPTOPP, 1,)
1250         fi
1251       fi
1252 #      AC_MSG_CHECKING(eDonkey server)
1253 #      if test -d ../src/networks/server; then
1254 #        AC_MSG_RESULT(no)
1255 #        DONKEY_SERVER=no
1256 #      else
1257 #        AC_MSG_RESULT(no)
1258 #        DONKEY_SERVER=no
1259 #      fi
1260     else
1261       DONKEY=no
1262       DONKEY_SUI=no
1263       AC_MSG_RESULT(no)
1264     fi
1265   else
1266     DONKEY_SUI=no
1267   fi
1269   if test "$BITTORRENT" = "yes"; then
1270     AC_MSG_CHECKING(BitTorrent)
1271     if test -d ../src/networks/bittorrent; then
1272       AC_MSG_RESULT(yes)
1273     else
1274       BITTORRENT=no
1275       AC_MSG_RESULT(no)
1276     fi
1277   fi
1279   if test "$FILETP" = "yes"; then
1280     AC_MSG_CHECKING(FileTP)
1281     if test -d ../src/networks/fileTP; then
1282       AC_MSG_RESULT(yes)
1283     else
1284       FILETP=no
1285       AC_MSG_RESULT(no)
1286     fi
1287   fi
1289   if test "$GNUTELLA" = "yes"; then
1290     AC_MSG_CHECKING(Gnutella)
1291     if test -d ../src/networks/gnutella; then
1292       AC_MSG_RESULT(yes)
1293     else
1294       GNUTELLA=no
1295       AC_MSG_RESULT(no)
1296     fi
1297   fi
1299   if test "$GNUTELLA2" = "yes"; then
1300     AC_MSG_CHECKING(G2)
1301     if test -d ../src/networks/gnutella2; then
1302       AC_MSG_RESULT(yes)
1303     else
1304       GNUTELLA2=no
1305       AC_MSG_RESULT(no)
1306     fi
1307   fi
1309   if test "$FASTTRACK" = "yes"; then
1310     AC_MSG_CHECKING(Fasttrack)
1311     if test -d ../src/networks/fasttrack; then
1312       AC_MSG_RESULT(yes)
1313     else
1314       FASTTRACK=no
1315       AC_MSG_RESULT(no)
1316     fi
1317   fi
1319   if test "$DIRECT_CONNECT" = "yes"; then
1320     AC_MSG_CHECKING(DirectConnect)
1321     if test "$BZIP2" = "yes"; then
1322       if test -d ../src/networks/direct_connect; then
1323         AC_MSG_RESULT(yes)
1324       else
1325         DIRECT_CONNECT=no
1326         AC_MSG_RESULT(no)
1327       fi
1328     else
1329       DIRECT_CONNECT=no
1330       AC_MSG_RESULT(no - bzip2 support missing)
1331     fi
1332   fi
1334   if test "$SOULSEEK" = "yes"; then
1335     AC_MSG_CHECKING(Soulseek)
1336     if test -d ../src/networks/soulseek; then
1337       AC_MSG_RESULT(yes)
1338     else
1339       SOULSEEK=no
1340       AC_MSG_RESULT(no)
1341     fi
1342   fi
1344   if test "$OPEN_NAPSTER" = "yes"; then
1345     AC_MSG_CHECKING(OpenNapster)
1346     if test -d ../src/networks/opennap; then
1347       AC_MSG_RESULT(yes)
1348     else
1349       OPEN_NAPSTER=no
1350       AC_MSG_RESULT(no)
1351     fi
1352   fi
1354   if test "$OPENFT" = "yes"; then
1355     AC_MSG_CHECKING(OpenFT)
1356     if test -d ../src/networks/openFT; then
1357       AC_MSG_RESULT(yes)
1358     else
1359       OPENFT=no
1360       AC_MSG_RESULT(no)
1361     fi
1362   fi
1363 echo "-----------------------------------------------"
1364 echo "     Checking activated networks finished."
1365 echo "-----------------------------------------------"
1367 if test -f $OCAMLLIB/lablgl.cma; then
1368   LABLGL_CMA=lablgl.cma
1371 if test -f $OCAMLLIB/lablgl.$OCAMLLIB_EXT; then
1372   LABLGL_CMXA=lablgl.$OCAMLLIB_EXT
1375 # Check for GTK only if we want to build the GUI
1376 if test ! "$GUI" = "no"; then
1377   echo "---------------------------------------------------------"
1378   echo "Checking the libraries required to build the GTK GUI."
1379   echo "---------------------------------------------------------"
1380   if test "$GUI" = "newgui2"; then
1381       REQUIRED_GTK=2.4.0
1382       PKG_GTK=gtk+-2.0
1383       AC_MSG_CHECKING(for GTK+ - version >= $REQUIRED_GTK)
1384       if pkg-config --atleast-version $REQUIRED_GTK $PKG_GTK; then
1385         AC_MSG_RESULT(yes)
1386         REQUIRED_RSVG=2.4.0
1387         PKG_RSVG=librsvg-2.0
1388         AC_MSG_CHECKING(for librsvg - version >= $REQUIRED_RSVG)
1389         if pkg-config --atleast-version $REQUIRED_RSVG $PKG_RSVG; then
1390           GTK_CONFIG="pkg-config $PKG_GTK $PKG_RSVG"
1391           REQUIRED_LABLGTK=2.14.2
1392           LABLGTK_NAME=lablgtk2
1393           AC_MSG_RESULT(yes)
1394         else
1395           GTK_CONFIG=no
1396           AC_MSG_RESULT(no)
1397         fi
1398       else
1399         GTK_CONFIG=no
1400         AC_MSG_RESULT(no)
1401       fi
1402   else
1403     if test "$OS_FILES2" = "mingw"; then
1404       REQUIRED_GTK=1.3.0
1405       PKG_GTK=gtk+-1.3-win32-production
1406       AC_MSG_CHECKING(for GTK+ - version >= $REQUIRED_GTK)
1407       if pkg-config --atleast-version $REQUIRED_GTK $PKG_GTK; then
1408         GTK_CONFIG="pkg-config $PKG_GTK"
1409         AC_MSG_RESULT(yes)
1410       else
1411         GTK_CONFIG=no
1412         AC_MSG_RESULT(no)
1413       fi
1414     else
1415       AC_CHECK_PROG(GTK_CONFIG, gtk-config, gtk-config, no)
1416       if test "$GTK_CONFIG" = "no"; then
1417         AC_MSG_RESULT(no)
1418       else
1419         AC_MSG_RESULT(yes)
1420       fi
1421     fi
1422   fi
1423 else
1424   GTK_CONFIG=no
1426 if test "$GTK_CONFIG" = "no"; then
1427      LABLGTK_CONFIG=no
1428 else
1429   AC_MSG_CHECKING(for native code $LABLGTK_NAME)
1430   if test -f $OCAMLLIB/$LABLGTK_NAME/lablgtk.$OCAMLLIB_EXT; then
1431      if test "$GUI" = "newgui2"; then
1432        if test -f $OCAMLLIB/$LABLGTK_NAME/lablrsvg.$OCAMLLIB_EXT; then
1433          AC_MSG_RESULT(yes)
1434          LABLGTK_CONFIG=yes
1435        else
1436          AC_MSG_RESULT(no)
1437          LABLGTK_CONFIG=no
1438          if test -f $OCAMLLIB/$LABLGTK_NAME/lablrsvg.cma; then
1439            echo "---------------------------------------------------------"
1440            echo "lablrsvg is not installed properly. See the INSTALL.txt"
1441            echo "file of mldonkey to see how to compile $LABLGTK_NAME. You"
1442            echo "probably forgot to call 'make opt' before 'make install'."
1443            echo "---------------------------------------------------------"
1444          else
1445            echo "---------------------------------------------------------"
1446            echo "lablrsvg is not installed. See the INSTALL.txt file of"
1447            echo "mldonkey to see how to compile $LABLGTK_NAME. Librsvg"
1448            echo "may not be installed when you compiled $LABLGTK_NAME."
1449            echo "---------------------------------------------------------"
1450          fi
1451        fi
1452      else
1453        AC_MSG_RESULT(yes)
1454        LABLGTK_CONFIG=yes
1455      fi
1456   else
1457      AC_MSG_RESULT(no)
1458      LABLGTK_CONFIG=no
1459      if test -f $OCAMLLIB/$LABLGTK_NAME/lablgtk.cma; then
1460        echo "-------------------------------------------------------------"
1461        echo "$LABLGTK_NAME is not installed properly. See the INSTALL.txt"
1462        echo "file of mldonkey to see how to compile $LABLGTK_NAME. You"
1463        echo "probably forgot to call 'make opt' before 'make install'."
1464        echo "-------------------------------------------------------------"
1465      else
1466        echo "Do you want this script to try to download and install $LABLGTK_NAME"
1467        echo "LOCALLY in mldonkey directory ?"
1468        if test "$BATCH" = "no"; then read i <&1; else i=yes; fi
1469        case "$i" in
1470         y* | Y*)
1472          cd $PATCH_DIR
1473          rm -rf lablgtk-"$REQUIRED_LABLGTK"
1474          if test ! -f lablgtk-"$REQUIRED_LABLGTK".tar.gz; then
1475            echo Downloading ...
1476            $WGET http://www.math.nagoya-u.ac.jp/~garrigue/soft/olabl/dist/lablgtk-"$REQUIRED_LABLGTK".tar.gz
1477          fi
1478          if test ! -f lablgtk-"$REQUIRED_LABLGTK".tar.gz; then exit 1; fi
1480          mkdir -p $BUILD_DIR
1481          cd $BUILD_DIR
1482          echo Uncompressing ...
1483          gzip -cd $PATCH_DIR/lablgtk-"$REQUIRED_LABLGTK".tar.gz | tar xf -
1484          (cd lablgtk-"$REQUIRED_LABLGTK"
1485           if test -f $PATCH_DIR/lablgtk-"$REQUIRED_LABLGTK".patch; then
1486             echo Patching ...
1487             patch -p0 < $PATCH_DIR/lablgtk-"$REQUIRED_LABLGTK".patch
1488           fi
1489           PATH=$OCAML_PATH:$PATH
1490           export PATH
1491           echo $PATH
1493           if test "$GUI" = "newgui2"; then
1494             ./configure --prefix=$LOCAL_DIR
1495             $GNU_MAKE world
1496             $GNU_MAKE install
1497           else
1498             $GNU_MAKE configure
1499             $GNU_MAKE
1500             $GNU_MAKE opt
1501             $GNU_MAKE install
1502           fi
1504           cd ..
1505           rm -rf lablgtk-"$REQUIRED_LABLGTK"
1506          )
1507          cd $CONFIG_DIR
1508          if test -f $OCAMLLIB/$LABLGTK_NAME/lablgtk.$OCAMLLIB_EXT; then
1509             LABLGTK_CONFIG=yes
1510          else
1511             echo "Installation of $LABLGTK_NAME failed"
1512             LABLGTK_CONFIG=no
1513          fi
1514          ;;
1515         *);;
1516       esac
1517      fi
1518   fi
1521 if test "$GUI" = "newgui2" ; then
1522   GUIS="mldonkey_gui\$(EXE)"
1523   GTKCFLAGS="`pkg-config --cflags-only-I gtk+-2.0`"
1524   GTKLLIBS="`pkg-config --libs-only-L gtk+-2.0`"
1525   GTKLFLAGS="`pkg-config --libs-only-l gtk+-2.0` -lX11"
1526 else
1527   GUIS="mldonkey_gui\$(EXE) mldonkey_gui2\$(EXE)"
1530 if test "$LABLGTK_CONFIG" = "no"; then
1531   GUI="no"
1532 else
1533   MORE_TARGETS="$MORE_TARGETS $GUIS"
1534   AC_MSG_CHECKING(GToolbox.popup_menu args)
1535   GTOOLBOX="$OCAMLLIB/$LABLGTK_NAME/gToolbox.mli"
1536   grep popup $GTOOLBOX | grep -i button 2> /dev/null && GTOOLBOX_ARGS=new
1537   if test "$GTOOLBOX_ARGS" = "new"; then
1538     GTOOLBOX_POPUPMENU=' ~button: button ~time: time '
1539     AC_MSG_RESULT(new)
1540   else
1541     GTOOLBOX_POPUPMENU=' ~x: button ~y: time '
1542     AC_MSG_RESULT(old)
1543   fi
1544   echo "---------------------------------------------------------"
1545   echo "End of GTK GUI configuration."
1546   echo "---------------------------------------------------------"
1549 if test "$OS_FILES" = "mingw"; then
1550    OCAMLDEP_OPTIONS="-slash"
1553 AC_SUBST(LIBS)
1554 AC_SUBST(CFLAGS)
1555 AC_SUBST(CPPFLAGS)
1556 AC_SUBST(CXXFLAGS)
1557 AC_SUBST(LDFLAGS)
1558 AC_SUBST(CC)
1559 AC_SUBST(CPP)
1560 AC_SUBST(CXX)
1561 AC_SUBST(FIX_BROKEN_CPP)
1562 AC_SUBST(CONFIG_INCLUDES)
1563 AC_SUBST(OCAMLC)
1564 AC_SUBST(OCAMLLIB)
1565 AC_SUBST(OCAMLOPT)
1566 AC_SUBST(OCAMLLEX)
1567 AC_SUBST(OCAMLYACC)
1568 AC_SUBST(OCAMLDEP)
1569 AC_SUBST(OCAMLDEP_OPTIONS)
1570 AC_SUBST(CAMLP4)
1571 AC_SUBST(CAMLP4OF)
1572 AC_SUBST(CAMLP4LIB_OPT)
1573 AC_SUBST(CAMLP4LIB_BYTE)
1574 AC_SUBST(PERL)
1575 AC_SUBST(OCAMLDOC)
1576 AC_SUBST(OCAMLMKTOP)
1577 AC_SUBST(SYSTEM)
1578 AC_SUBST(MORE_TARGETS)
1579 AC_SUBST(MORE_SUBDIRS)
1580 AC_SUBST(LABLGL_CMA)
1581 AC_SUBST(LABLGL_CMXA)
1582 AC_SUBST(MD4ARCH)
1583 AC_SUBST(MD4COMP)
1584 AC_SUBST(ICONV)
1585 AC_SUBST(OPEN_NAPSTER)
1586 AC_SUBST(DIRECT_CONNECT)
1587 AC_SUBST(GNUTELLA)
1588 AC_SUBST(GNUTELLA2)
1589 AC_SUBST(BITTORRENT)
1590 AC_SUBST(FILETP)
1591 AC_SUBST(SOULSEEK)
1592 AC_SUBST(OPENFT)
1593 AC_SUBST(FASTTRACK)
1594 AC_SUBST(DONKEY)
1595 AC_SUBST(DONKEY_SUI)
1596 AC_SUBST(CRYPTOPPFLAGS)
1597 AC_SUBST(DONKEY_SUI_FILE)
1598 AC_SUBST(DONKEY_SERVER)
1599 AC_SUBST(GUI)
1600 AC_SUBST(REQUIRED_OCAML)
1601 AC_SUBST(REQUIRED_LABLGTK)
1602 AC_SUBST(ARCH)
1603 AC_SUBST(COMPRESS)
1604 AC_SUBST(COMPRESS_EXT)
1605 AC_SUBST(CHECKBOUNDS)
1606 AC_SUBST(MLDONKEY_VERSION)
1607 AC_SUBST(SCM_VERSION)
1608 AC_SUBST(MAJOR_VERSION)
1609 AC_SUBST(MINOR_VERSION)
1610 AC_SUBST(SUB_VERSION)
1611 AC_SUBST(GTOOLBOX_POPUPMENU)
1612 AC_SUBST(OS_FILES)
1613 AC_SUBST(OS_FILES2)
1614 AC_SUBST(TARGET_TYPE)
1615 AC_SUBST(RPMBUILD)
1616 AC_SUBST(GTKCFLAGS)
1617 AC_SUBST(GTKLLIBS)
1618 AC_SUBST(GTKLFLAGS)
1619 AC_SUBST(GD)
1620 AC_SUBST(GD_JPG)
1621 AC_SUBST(GD_PNG)
1622 AC_SUBST(GDGRAPHICS)
1623 AC_SUBST(GD_LIBS)
1624 AC_SUBST(GD_STATIC_LIBS)
1625 AC_SUBST(GD_CFLAGS)
1626 AC_SUBST(GD_LDFLAGS)
1627 AC_SUBST(BZIP2)
1628 AC_SUBST(MAGIC)
1629 AC_SUBST(MAGICLIB)
1630 AC_SUBST(UPNP_NATPMP)
1631 AC_SUBST(UPNP_NATPMP_LIBS)
1632 AC_SUBST(UPNP_NATPMP_STATIC_LIBS)
1633 BUILD_SYSTEM="`uname -s` `uname -m` `uname -r`"
1634 AC_SUBST(BUILD_SYSTEM)
1635 AC_SUBST(GLIBC_VERSION)
1636 AC_SUBST(CC_VERSION)
1637 AC_SUBST(CXX_VERSION)
1638 AC_SUBST(CONFIGURE_ARGUMENTS)
1639 AC_SUBST(CONFIGURE_RUN)
1640 AC_SUBST(DEVFLAGS)
1642 AUTOCONF=../src/utils/lib/autoconf.ml
1643 GTK_AUTOCONF=../src/utils/lib/gAutoconf.ml
1644 AC_OUTPUT(\
1645   Makefile.config \
1646   mldonkey.rc \
1647   $AUTOCONF.new $GTK_AUTOCONF.new \
1648    ../src/utils/bitstring/bitstring.ml \
1649    ../src/utils/lib/magic.ml \
1650    ../src/networks/donkey/donkeySui.ml \
1651    ../src/daemon/driver/driverGraphics.ml \
1652    ../packages/rpm/mldonkey.spec \
1653    ../packages/rpm/Makefile \
1654    ../packages/slackware/mldonkey.options)
1655 diff $AUTOCONF.new $AUTOCONF 2> /dev/null > /dev/null || cp -f $AUTOCONF.new $AUTOCONF
1656 diff $GTK_AUTOCONF.new $GTK_AUTOCONF 2> /dev/null > /dev/null || cp -f $GTK_AUTOCONF.new $GTK_AUTOCONF
1658 cd ..
1660 echo ""
1661 echo "Building dependencies (if it blocks, try '$GNU_MAKE depend' to see the problem)"
1662 $GNU_MAKE depend 2> /dev/null > /dev/null || echo "Building dependencies fails: try: '$GNU_MAKE depend'"
1664 echo ""
1665 printf "Configuring MLDonkey %s" "$MLDONKEY_VERSION"
1666 if test ! -z "$SCM_VERSION"; then
1667   printf " - SCM: %s" "$SCM_VERSION"
1669 echo " completed."
1671 echo ""
1672 echo "Network modules:"
1673 printf " - eDonkey           "
1674 if test "$DONKEY" = "yes"; then
1675   if test "$DONKEY_SUI" = "yes"; then
1676     echo "enabled (eMule SUI enabled)"
1677   else
1678     echo "enabled (eMule SUI disabled)"
1679   fi
1680 else
1681   echo "        disabled"
1684 printf " - BitTorrent        "
1685 if test "$BITTORRENT" = "yes"; then
1686   echo "enabled"
1687 else
1688   echo "        disabled"
1691 printf " - FileTP (aka wget) "
1692 if test "$FILETP" = "yes"; then
1693   echo "enabled"
1694 else
1695   echo "        disabled"
1698 printf " - Fasttrack         "
1699 if test "$FASTTRACK" = "yes"; then
1700   echo "enabled"
1701 else
1702   echo "        disabled"
1705 printf " - Gnutella          "
1706 if test "$GNUTELLA" = "yes"; then
1707   echo "enabled (warning: this network module is unmaintained)"
1708 else
1709   echo "        disabled - unmaintained"
1712 printf " - Gnutella2         "
1713 if test "$GNUTELLA2" = "yes"; then
1714   echo "enabled (warning: this network module is unmaintained)"
1715 else
1716   echo "        disabled - unmaintained"
1719 printf " - Direct Connect    "
1720 if test "$DIRECT_CONNECT" = "yes"; then
1721   echo "enabled"
1722 else
1723   echo "        disabled"
1726 printf " - Open Napster      "
1727 if test "$OPEN_NAPSTER" = "yes"; then
1728   echo "enabled          - currently not usable"
1729 else
1730   echo "        disabled - currently not usable"
1733 printf " - Soulseek          "
1734 if test "$SOULSEEK" = "yes"; then
1735   echo "enabled          - currently not usable"
1736 else
1737   echo "        disabled - currently not usable"
1740 printf " - OpenFT            "
1741 if test "$OPENFT" = "yes"; then
1742   echo "enabled          - currently not usable"
1743 else
1744   echo "        disabled - currently not usable"
1747 echo ""
1748 echo "Core features:"
1750 echo " - zlib (required)   enabled"
1752 printf " - threads           "
1753 if test "$USE_PTHREAD" = "yes"; then
1754   echo "enabled"
1755 else
1756   echo "        disabled"
1759 printf " - bzip2             "
1760 if test "$BZIP2" = "yes"; then
1761   echo "enabled"
1762 else
1763   echo "        disabled"
1766 printf " - iconv             "
1767 if test "$ICONV" = "yes"; then
1768   echo "enabled"
1769 else
1770   echo "        disabled"
1773 printf " - libmagic          "
1774 if test "$MAGIC" = "yes"; then
1775   echo "enabled"
1776 else
1777   echo "        disabled"
1780 printf " - upnp & natpmp     "
1781 if test "$UPNP_NATPMP" = "yes"; then
1782   echo "enabled"
1783 else
1784   echo "        disabled"
1787 printf " - graphical stats   "
1788 if test "$GD" = "yes"; then
1789   echo "enabled"
1790   printf "   - png support     "
1791   if test "$GD_PNG" = "yes"; then
1792     echo "enabled"
1793   else
1794     echo "        disabled"
1795   fi
1797   printf "   - jpg support     "
1798   if test "$GD_JPG" = "yes"; then
1799     echo "enabled"
1800   else
1801     echo "        disabled"
1802   fi
1803 else
1804   echo "        disabled"
1807 if test "$LABLGTK_CONFIG" = "yes"; then
1808   echo ""
1809   printf "\n - GUI support       "
1810   if test "$GUI" = "newgui1"; then
1811     echo "GTK1 newgui"
1812   else
1813     if test "$GUI" = "newgui2"; then
1814       echo "GTK2 GUI"
1815     else
1816       echo "GTK1 oldgui"
1817     fi
1818   fi
1821 if test "$OLDGUI_NO_31" = "yes"; then
1822   echo " - GUI support       GTK1 oldgui does not work with Ocaml 3.1*, disabled"
1825 if test "$TARGET_TYPE" = "byte"; then
1826   OCAML_TYPE="- byte code"
1827   COMPILE_TARGET=".byte"
1829 echo ""
1830 echo "Compilers:"
1831 echo " - OCaml version     $OCAMLVERSION $OCAML_TYPE"
1832 echo " - $CC version       $CC_VERSION"
1833 if test "x$CXX" != "x"; then
1834   echo " - $CXX version       $CXX_VERSION"
1836 echo ""
1837 echo "\nNow execute '$GNU_MAKE' to start compiling. Good luck!"
1839 echo ""
1840 echo "To compile a static code execute:     $GNU_MAKE mlnet$COMPILE_TARGET.static"
1841 echo "To produce a release tarball execute: $GNU_MAKE release.mlnet.static"
1842 echo "To clean the build directory execute: $GNU_MAKE maintainerclean"
1843 if test "$DONKEY_SUI" = "yes"; then
1844   echo ""
1845   echo "Compiling CryptoPP.cc can take several minutes, on slow machines up to half an hour."