Moved make_escapes() and remove_escapes() to support.c.
[freeciv.git] / configure.ac
blob7160c61ab778e946461e65ed171f446a02474053
1 dnl configure.ac for freeciv
2 dnl Process this file with autoconf to produce a configure script.
4 AC_INIT([Freeciv], m4_esyscmd([./fc_version | tr -d '\n']),
5         [http://gna.org/projects/freeciv/],
6         [freeciv])
7 AC_PREREQ(2.61)
9 dnl Initialize with some random file to ensure the source is here.
10 AC_CONFIG_SRCDIR([common/game.c])
11 AC_CONFIG_AUX_DIR(bootstrap) # This can't be quoted or automake will fail
12 AC_CONFIG_MACRO_DIR([m4])
13 ifdef([AC_CONFIG_MACRO_DIRS],[AC_CONFIG_MACRO_DIRS([dependencies/m4])])
14 AC_CONFIG_HEADERS([gen_headers/fc_config.h gen_headers/freeciv_config.h])
15 AC_CANONICAL_HOST
16 AC_USE_SYSTEM_EXTENSIONS
17 AC_C_BIGENDIAN
19 BUG_URL="$PACKAGE_BUGREPORT"
20 WIKI_URL="http://www.freeciv.org/"
21 MAIL_ADDRESS="freeciv-dev AT gna.org"
23 AC_DEFINE(FC_CONFIG_H, 1, [Configuration autogenerated])
24 AC_DEFINE_UNQUOTED([BUG_URL], ["$BUG_URL"], [Bug reporting URL])
25 AC_DEFINE([FREECIV_META_URL], ["http://meta.freeciv.org/metaserver.php"], [Metaserver URL])
26 AC_DEFINE_UNQUOTED([WIKI_URL], ["$WIKI_URL"], [Informational URL])
28 AC_DEFINE(DEFAULT_SOCK_PORT, 5556, [Connection TCP Port])
30 AC_SUBST([BUG_URL])
31 AC_SUBST([WIKI_URL])
32 AC_SUBST([MAIL_ADDRESS])
34 dnl client/server should always have the same major and minor versions
35 dnl different patch versions are compatible
36 VERSION_SCRIPT_SILENT=yes
37 m4_include(fc_version)
39 VERSION_WITHOUT_LABEL=${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}${EMERG_PART}
40 VERSION=${VERSION_WITHOUT_LABEL}${VERSION_LABEL}x
42 AC_DEFINE_UNQUOTED([MAJOR_VERSION], [$MAJOR_VERSION], [Major version])
43 AC_DEFINE_UNQUOTED([MINOR_VERSION], [$MINOR_VERSION], [Minor version])
44 AC_DEFINE_UNQUOTED([PATCH_VERSION], [$PATCH_VERSION], [Patch version])
45 if test x$EMERGENCY_VERSION != x ; then
46   AC_DEFINE_UNQUOTED([EMERGENCY_VERSION], [$EMERGENCY_VERSION], [Emergency version])
48 AC_DEFINE_UNQUOTED([VERSION_LABEL], ["${VERSION_LABEL}"], [Version label])
49 AC_DEFINE_UNQUOTED([VERSION_STRING], ["${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}${EMERG_PART}${VERSION_LABEL}"], [Version string])
50 AC_DEFINE_UNQUOTED([IS_DEVEL_VERSION], [$IS_DEVEL_VERSION], [Is this a devel version])
51 AC_DEFINE_UNQUOTED([IS_FREEZE_VERSION], [$IS_FREEZE_VERSION], [Is this a frozen version])
52 AC_DEFINE_UNQUOTED([IS_BETA_VERSION], [$IS_BETA_VERSION], [Is this a beta version])
53 AC_DEFINE_UNQUOTED([NEXT_STABLE_VERSION], ["$NEXT_STABLE_VERSION"], [Version number of next release])
54 AC_DEFINE_UNQUOTED([FREECIV_RELEASE_MONTH], [$RELEASE_MONTH], [Month next version will be released])
55 AC_SUBST([MAJOR_VERSION])
56 AC_SUBST([MINOR_VERSION])
58 AC_DEFINE_UNQUOTED([NETWORK_CAPSTRING_MANDATORY],
59                    ["$NETWORK_CAPSTRING_MANDATORY"],
60                    [Network capability string])
61 AC_SUBST([NETWORK_CAPSTRING_MANDATORY])
62 AC_DEFINE_UNQUOTED([NETWORK_CAPSTRING_OPTIONAL],
63                    ["$NETWORK_CAPSTRING_OPTIONAL"],
64                    [Additional optional network capabilities])
65 AC_SUBST([NETWORK_CAPSTRING_OPTIONAL])
67 AC_DEFINE_UNQUOTED([DATASUBDIR],
68                    ["$DATASUBDIR"],
69                    [Version specific subdir for default data path])
70 AC_SUBST([DATASUBDIR])
72 AC_DEFINE_UNQUOTED([FREECIV_DISTRIBUTOR], ["$FREECIV_DISTRIBUTOR"],
73                    [Distribution this freeciv is built for])
75 dnl Initialize automake stuff
76 AM_INIT_AUTOMAKE([subdir-objects dist-bzip2 dist-zip])
78 dnl Use Automake 1.11 silent rules by default if available
79 dnl verbose build using  make V=1
80 ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
82 UTILITY_LIBS=
84 AC_PROG_MKDIR_P
86 dnl Sed is needed for the configuration
87 dnl of the clients, database setting and the mapimg toolkits.
88 AC_PROG_SED
90 AC_CACHE_CHECK([for malloc(0) return value], [fc_cv_malloc_zero_ok], [
91 AC_RUN_IFELSE([AC_LANG_SOURCE([[
92 #include <stdlib.h>
94 int
95 main()
97   void *allocation = malloc(0);
99   if (allocation != NULL) {
100     free(allocation);
101   }
103   return (allocation == NULL);
105 ]])], [fc_cv_malloc_zero_ok=true], [fc_cv_malloc_zero_ok=false], [fc_cv_malloc_zero_ok=false])])
107 if test "x$fc_cv_malloc_zero_ok" = "xtrue" ; then
108   AC_DEFINE([MALLOC_ZERO_OK], [1], [It's ok to call malloc() for zero bytes])
111 dnl set default values
112 fcdb_all=no
113 fcdb_mysql=no
114 fcdb_postgres=no
115 fcdb_sqlite3=no
117 dnl checks for databases
118 dnl all:                  Autodetect as many as possible [default].
119 dnl mysql:                use mysql database
120 dnl postgres:             use postgres database
121 dnl comma-separated-list: Detect these or abort.
122 AC_ARG_ENABLE([fcdb],
123   AS_HELP_STRING([--enable-fcdb[=no/all/mysql/postgres/sqlite3]],
124                  [database backends [no](no, or list)]),
125 [databases=${enableval}],
126 [databases=no])
128 for db in $(echo $databases | $SED 's/,/ /g') ; do
129   if test "x$db" = "xall" ; then
130     fcdb_all=yes
131   elif test "x$db" = "xno" ; then
132     fcdb_all=no
133   elif test "x$db" = "xmysql" ; then
134     fcdb_mysql=yes
135   elif test "x$db" = "xpostgres" ; then
136     fcdb_postgres=yes
137   elif test "x$db" = "xsqlite3" ; then
138     fcdb_sqlite3=yes
139   else
140     AC_MSG_ERROR([bad value ${db} for --enable-fcdb])
141   fi
142 done
144 dnl checks for database mysql
145 dnl sets FCDB_MYSQL(conditional), FCDB_MYSQL_CFLAGS
146 FC_FCDB_MYSQL
148 dnl checks for database postgres
149 dnl sets FCDB_POSTGRES(conditional), FCDB_POSTGRES_CFLAGS
150 FC_FCDB_POSTGRES
152 dnl checks for database sqlite3
153 dnl sets FCDB_SQLITE3(conditional), FCDB_SQLITE3_CFLAGS
154 FC_FCDB_SQLITE3
156 dnl check if a database backend is available
157 if test "x$fcdb_mysql" = "xyes" || test "x$fcdb_postgres" = "xyes" \
158    || test "x$fcdb_sqlite3" = "xyes"; then
159   enable_fcdb=yes
160   AC_DEFINE([HAVE_FCDB], [1], [Database backend available])
161 else
162   enable_fcdb=no
164 AM_CONDITIONAL([FCDB_DB], [test "x$enable_fcdb" = "xyes"])
166 dnl  no=do not compile server,  yes=compile server,  *=error
167 AC_ARG_ENABLE([server],
168   AS_HELP_STRING([--disable-server], [do not compile the server]),
169 [case "${enableval}" in
170   yes) server=yes ;;
171   no)  server=no ;;
172   *)   AC_MSG_ERROR(bad value ${enableval} for --disable-server) ;;
173 esac], [server=yes])
174 AM_CONDITIONAL(SERVER, test x$server = xyes)
176 dnl Host type variable defaults
177 MINGW=no
178 AMIGA=no
180 dnl Settings specific to host OS
181 case "$host_os" in
183   *mingw*)
184     dnl Windows-specific settings
185     MINGW=yes
186     FC_WINSOCK2_INCLUDE([AC_DEFINE([FREECIV_HAVE_WINSOCK2], [1], [Mingw-specific setting - winsock2])])
187     AC_DEFINE([FREECIV_HAVE_WINSOCK], [1], [Mingw-specific setting - winsock])
188     AC_CHECK_HEADERS([ws2tcpip.h], [AC_DEFINE([FREECIV_HAVE_WS2TCPIP_H], [1], [ws2tcpip.h available])])
189     AC_CHECK_HEADERS([direct.h])
191     dnl Without WINSOCK2, use: LIBS="$LIBS -lwsock32"
192     LIBS="${LIBS} -lws2_32"
193     ;;
194 esac
196 dnl Networking headers
197 AC_CHECK_HEADERS([sys/types.h], [AC_DEFINE([FREECIV_HAVE_SYS_TYPES_H], [1], [sys/types.h available])])
199 dnl Avoid including the unix emulation layer if we build mingw executables
200 dnl There would be type conflicts between winsock and bsd/unix includes
201 if test "x$MINGW" != "xyes"; then
202   AC_CHECK_HEADERS([sys/socket.h], [AC_DEFINE([FREECIV_HAVE_SYS_SOCKET_H], [1], [sys/socket.h available])])
205 dnl Check getaddrinfo just once here, and remember the result
206 AC_CHECK_FUNCS([getaddrinfo], [have_getaddrinfo=yes], [
207   AC_MSG_CHECKING([getaddrinfo() as a macro])
208   AC_LINK_IFELSE([AC_LANG_PROGRAM([
209 #ifdef FREECIV_HAVE_WS2TCPIP_H
210 #include <ws2tcpip.h>
211 #endif], [getaddrinfo(NULL, NULL, NULL, NULL);])], [
212   AC_MSG_RESULT([yes])
213   have_getaddrinfo=yes
214   AC_DEFINE([HAVE_GETADDRINFO])], [AC_MSG_RESULT([no])])])
216 dnl yes     - Support for IPv6 required
217 dnl no      - Legacy IPv4 support
218 dnl test    - Try to enable IPv6 support
219 AC_ARG_ENABLE([ipv6],
220   AS_HELP_STRING([--enable-ipv6=yes/no/test], [use IPv6 [test]]),
221 [case "${enableval}" in
222   yes|no|test) ipv6=${enableval} ;;
223   *)   AC_MSG_ERROR(bad value ${enableval} for --enable-ipv6) ;;
224 esac], [ipv6=test])
225 if test x$ipv6 != xno ; then
226   if test "x$have_getaddrinfo" = "xyes" ; then
227     enable_ipv6=yes
228     AC_CHECK_FUNCS([inet_pton], [],
229        [AC_MSG_CHECKING([inet_pton() as a macro])
230       AC_LINK_IFELSE([AC_LANG_PROGRAM([
231 #ifdef FREECIV_HAVE_WS2TCPIP_H
232 #include <ws2tcpip.h>
233 #endif], [inet_pton(0, NULL, NULL);])], [
234       AC_MSG_RESULT([yes])], [enable_ipv6=no])])
235     AC_CHECK_FUNCS([inet_ntop], [],
236        [AC_MSG_CHECKING([inet_ntop() as a macro])
237       AC_LINK_IFELSE([AC_LANG_PROGRAM([
238 #ifdef FREECIV_HAVE_WS2TCPIP_H
239 #include <ws2tcpip.h>
240 #endif], [inet_ntop(0, NULL, NULL, 0);])], [
241       AC_MSG_RESULT([yes])], [enable_ipv6=no])])
242     AC_CHECK_FUNCS([getnameinfo], [],
243        [AC_MSG_CHECKING([getnameinfo() as a macro])
244       AC_LINK_IFELSE([AC_LANG_PROGRAM([
245 #ifdef FREECIV_HAVE_WS2TCPIP_H
246 #include <ws2tcpip.h>
247 #endif], [getnameinfo(NULL, 0, NULL, 0, NULL, 0, 0);])], [
248       AC_MSG_RESULT([yes])], [enable_ipv6=no])])
249   else
250      enable_ipv6=no
251   fi
252   if test x$enable_ipv6 = xyes ; then
253     AC_MSG_CHECKING([for AF_INET6])
254     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
255 #ifdef FREECIV_HAVE_WINSOCK2
256 #include <winsock2.h>
257 #endif
258 #ifdef FREECIV_HAVE_SYS_TYPES_H
259 #include <sys/types.h>
260 #endif
261 #ifdef FREECIV_HAVE_SYS_SOCKET_H
262 #include <sys/socket.h>
263 #endif]], [[return AF_INET6;]])], [AC_MSG_RESULT([yes])],
264        [AC_MSG_RESULT([no])
265         enable_ipv6=no])
266   fi
267   if test x$enable_ipv6 = xno && test x$ipv6 = xyes ; then
268     AC_MSG_ERROR([Cannot enable IPv6 functionality])
269   fi
270   if test x$enable_ipv6 = xyes ; then
271     AC_DEFINE([FREECIV_IPV6_SUPPORT], [1], [IPv6 Support built in])
272   else
273     feature_ipv6=missing
274   fi
277 AC_ARG_WITH([readline],
278   AS_HELP_STRING([--with-readline], [support fancy command line editing]),
279 WITH_READLINE=$withval, dnl yes/no - required to use / never use
280 WITH_READLINE="maybe"   dnl maybe  - use if found [default]
283 FOLLOWTAG=${DEFAULT_FOLLOW_TAG}
284 AC_ARG_WITH([followtag],
285   AS_HELP_STRING([--with-followtag], [version tag to follow]),
286 [FOLLOWTAG=${withval}])
287 AC_DEFINE_UNQUOTED([FOLLOWTAG], ["${FOLLOWTAG}"], [Version tag to follow])
289 AC_ARG_WITH([modlist],
290   AS_HELP_STRING([--with-modlist], [default modlist URL]),
291 [modlist_url=${withval}])
292 if test "x$modlist_url" != "x" ; then
293   AC_DEFINE_UNQUOTED([MODPACK_LIST_URL], ["${modlist_url}"], [Default modpack list URL])
296 AC_ARG_WITH([desktopdir],
297   AS_HELP_STRING([--with-desktopdir], [install desktop files to given dir]),
298 [ DESKTOPDIR=${withval} ], [ DESKTOPDIR="\$(prefix)/share/applications" ])
299 AC_SUBST([DESKTOPDIR])
301 AC_ARG_WITH([appdatadir],
302   AS_HELP_STRING([--with-appdatadir], [install appdata files to given dir]),
303 [ APPDATADIR=${withval} ], [ APPDATADIR="\$(prefix)/share/appdata" ])
304 AC_SUBST([APPDATADIR])
306 dnl set default values
307 mapimg_all=auto
308 mapimg_magickwand=no
310 dnl map images
311 dnl all:                  Autodetect as many as possible [default].
312 dnl no:                   No additional toolkits.
313 dnl magickwand:           compile magickwand (imagemagick) support.
314 dnl comma-separated-list: Detect these or abort.
315 AC_ARG_ENABLE([mapimg],
316   AS_HELP_STRING([--enable-mapimg=no/auto/magickwand],
317                  [additional map image toolkits to compile [auto](no, or list)]),
318 [toolkits=${enableval}],
319 [enable_mapimg=auto])
321 for toolkit in $(echo $toolkits | $SED 's/,/ /g') ; do
322   if test "x$toolkit" = "xauto" ; then
323     enable_mapimg=auto
324   elif test "x$toolkit" = "xno" ; then
325     enable_mapimg=no
326   else
327     enable_mapimg=selected
328   fi
330   if test "x$toolkit" = "xmagickwand" ; then
331     mapimg_magickwand=yes
332   fi
333 done
335 dnl checks for MagickWand mapimg support
336 dnl sets MAPIMG_WAND_CFLAGS, MAPIMG_WAND_LIBS
337 FC_MAPIMG_MAGICKWAND
339 dnl Option not available in stable branch
340 fcweb=false
342 FC_WEB_CLIENT
344 FC_TESTMATIC
346 dnl no:   Do not compile client.
347 dnl auto: Autodetect one.
348 dnl all:  Autodetect as many as possible.
349 dnl comma-separated-list: Detect these or abort.
350 AC_ARG_ENABLE([client],
351   AS_HELP_STRING([--enable-client=auto/all/gtk2/gtk3/sdl/sdl2/xaw/qt/stub],
352                  [clients to compile [auto](list for multiple)]),
353 [clients=${enableval}],
354 [client=auto])
356 if test "x$fcweb" = "xtrue" ; then
357   if test "x$clients" != "x" && test "x$clients" != "xauto" &&
358      test "x$clients" != "xno" ; then
359     AC_MSG_ERROR([One cannot enable any clients for freeciv-web build])
360   fi
361   clients=no
364 gui_gtk2=no
365 gui_gtk3=no
366 gui_sdl=no
367 gui_sdl2=no
368 gui_xaw=no
369 gui_qt=no
370 gui_stub=no
372 for gui in $(echo $clients | $SED 's/,/ /g') ; do
373   if test "x$gui" = "xno" ; then
374     client=no
375   elif test "x$gui" = "xauto" || test "x$gui" = "xyes" ; then
376     client=auto
377   elif test "x$gui" = "xall" ; then
378     client=all
379   else
380     if test "x$gui" = "xgtk2"   ||
381        test "x$gui" = "xgtk2.0" ||
382        test "x$gui" = "xgtk20"  ||
383        test "x$gui" = "xgtk-2.0" ; then
384       gui_gtk2=yes
385     elif test "x$gui" = "xgtk3"   ||
386          test "x$gui" = "xgtk3.0" ||
387          test "x$gui" = "xgtk30"  ||
388          test "x$gui" = "xgtk-3.0" ; then
389       gui_gtk3=yes
390     elif test "x$gui" = "xgtk" ; then
391       AC_MSG_WARN([for requested client 'gtk' enabled gtk3-client, that has changed since earlier versions])
392       gui_gtk3=yes
393     else
394       if test ! -d "${srcdir}/client/gui-$gui" ; then
395         AC_MSG_ERROR(bad value ${gui} for --enable-client)
396       fi
397       eval "gui_$gui=yes"
398     fi
399     client=yes
400   fi
401 done
403 AC_ARG_WITH([zoom],
404   [AS_HELP_STRING([--with-zoom], [expose experimental/WIP zoom support on gtk3-client to user])],
405   [AC_DEFINE([GTK3_ZOOM_ENABLED], [1], [Experimental zoom functionality exposed to user])])
407 AC_ARG_WITH([xaw],
408   [AS_HELP_STRING([--with-xaw], [use the Xaw widget set for the xaw client])],
409   [WITH_XAW=1])
411 AC_ARG_WITH([xaw3d],
412   [AS_HELP_STRING([--with-xaw3d], [use the Xaw3d widget set for the xaw client])],
413   [WITH_XAW3D=1])
415 if test "x$WITH_XAW" != "x" && test "x$WITH_XAW3D" != "x" ; then
416   AC_MSG_ERROR([Cannot use both --with-xaw and --with-xaw3d at the same time])
419 AC_ARG_ENABLE([svnrev],
420   AS_HELP_STRING([--enable-svnrev], [get svn revision to version information]),
421 [case "${enableval}" in
422   yes) svnrev=true  ;;
423   no)  svnrev=false ;;
424   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-svnrev]) ;;
425 esac], [svnrev=false])
426 AM_CONDITIONAL([SVNREV], [test x$svnrev = xtrue])
427 if test x$svnrev = xtrue ; then
428   AC_DEFINE([SVNREV], [1], [Get svn revision information to version number])
431 AC_ARG_ENABLE([gitrev],
432   AS_HELP_STRING([--enable-gitrev], [get git revision to version information]),
433 [case "${enableval}" in
434   yes) gitrev=true  ;;
435   no)  gitrev=false ;;
436   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-gitrev]) ;;
437 esac], [gitrev=false])
438 AM_CONDITIONAL([GITREV], [test x$gitrev = xtrue])
439 if test x$gitrev = xtrue ; then
440   AC_DEFINE([GITREV], [1], [Get git revision information to version number])
443 AC_ARG_ENABLE([make_data],
444   AS_HELP_STRING([--disable-make-data], [do not recurse make into data directories]),
445 [case "${enableval}" in
446   yes) make_data=true ;;
447   no)  make_data=false ;;
448   *)   AC_MSG_ERROR(bad value ${enableval} for --disable-make-data) ;;
449 esac], [make_data=true])
450 AM_CONDITIONAL(MAKE_DATA, test x$make_data = xtrue)
452 AC_ARG_ENABLE([make_include],
453   AS_HELP_STRING([--enable-make-include], [force make to recurse into include directory]),
454 [case "${enableval}" in
455   yes) make_include=true ;;
456   no)  make_include=false ;;
457   *)   AC_MSG_ERROR(bad value ${enableval} for --enable-make-include) ;;
458 esac], [make_include=false])
459 AM_CONDITIONAL(MAKE_CLIENT_INCLUDE, test "$make_include" = "true")
461 AC_ARG_WITH([efence],
462   AS_HELP_STRING([--with-efence], [use Electric Fence, malloc debugger]),
463   WITH_EFENCE=1
466 AC_ARG_ENABLE([aimodules],
467   AS_HELP_STRING([--enable-aimodules=yes/no/experimental], [support for ai modules [no]]),
468 [case "${enableval}" in
469   yes) enable_aimodules=yes ;;
470   no)  enable_aimodules=no ;;
471   experimental) enable_aimodules=yes
472                 exp_aimodules=yes ;;
473   *)   AC_MSG_ERROR([bad value ${enable_aimodules} for --enable-aimodules]) ;;
474 esac], [enable_aimodules=no])
475 aimoduledir="${libdir}/fcai"
476 AC_SUBST(aimoduledir)
477 AM_CONDITIONAL(AI_MODULES, test "x$enable_aimodules" = "xyes")
478 if test $enable_aimodules = yes ; then
479   if test x$enable_shared != xyes ; then
480     AC_MSG_ERROR([cannot enable ai module support if also build of shared libraries is not enabled with --enable-shared])
481   fi
482   LIBS_TMP="$LIBS"
483   LIBS="$LIBS -lltdl"
484   AC_MSG_CHECKING([whether can build modules])
485   AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <ltdl.h>]],
486      [[lt_dlopenext(NULL);]])],
487      [AC_MSG_RESULT([yes])],
488      [AC_MSG_RESULT([no])
489       AC_MSG_ERROR([cannot build loadable AI modules as requested])])
490   LIBS="$LIBS_TMP"
491   SERVER_LIBS="${SERVER_LIBS} -lltdl"
492   AC_DEFINE([AI_MODULES], [1], [Enable ai modules])
493   CPPFLAGS="${CPPFLAGS} -DAI_MODULEDIR=\"\\\"${aimoduledir}\\\"\""
494   ai_mod_default_needed=yes
496 AM_CONDITIONAL(EXP_AI_MODULES, test "x$exp_aimodules" = "xyes")
498 AC_ARG_ENABLE([ai-static],
499   AS_HELP_STRING([--enable-ai-static], [statically link listed modules to server]),
500 [static_modules="${enableval}"],
501 [static_modules="classic"])
503 ai_mod_static_classic=no
504 ai_mod_static_threaded=no
505 ai_mod_static_stub=no
507 for module in $(echo $static_modules | $SED 's/,/ /g') ; do
508   if test "x$module" = "xclassic" ; then
509     ai_mod_static_classic=yes
510     ai_mod_default_needed=yes
511     AC_DEFINE([AI_MOD_STATIC_CLASSIC], [1],
512               [classic ai module statically linked])
513   elif test "x$module" = "xthreaded" ; then
514     ai_mod_static_threaded=yes
515     ai_mod_default_needed=yes
516     AC_DEFINE([AI_MOD_STATIC_THREADED], [1],
517               [threaded ai module statically linked])
518   elif test "x$module" = "xstub" ; then
519     ai_mod_static_stub=yes
520     AC_DEFINE([AI_MOD_STATIC_STUB], [1],
521               [stub ai module statically linked]) 
522   else
523     AC_MSG_ERROR([bad value ${module} for --enable-ai-static])
524   fi
525   if test "x$default_ai_set" = "x" ; then
526     dnl Make first static module default ai type
527     default_ai_set="${module}"
528   fi
529 done
530 AM_CONDITIONAL([AI_MOD_STATIC_CLASSIC],
531 [test "x$ai_mod_static_classic" = "xyes" || test "x$enable_aimodules" != "xyes"])
532 AM_CONDITIONAL([AI_MOD_STATIC_THREADED],
533 [test "x$ai_mod_static_threaded" = "xyes"])
534 AM_CONDITIONAL([AI_MOD_STATIC_STUB],
535 [test "x$ai_mod_static_stub" = "xyes"])
537 AC_ARG_WITH([default-ai],
538   AS_HELP_STRING([--with-default-ai], [default ai type [first_static]]),
539   [default_ai_set="${withval}"],
540   [])
542 AC_ARG_WITH([ai-lib],
543   AS_HELP_STRING([--with-ai-lib], [build in default AI code [if_needed]]),
544   [ai_mod_default_needed=yes], [])
546 AM_CONDITIONAL([AI_MOD_DEFAULT_NEEDED],
547 [test  "x${ai_mod_default_needed}" = "xyes" || test "x${default_ai_set}" = "x"])
549 if test "x${default_ai_set}" = "x" ; then
550   default_ai_set="classic"
553 fc_ai_last=0
554 if test "x$ai_mod_static_classic" = "xyes" ; then
555   fc_ai_last=$fc_ai_last+1
557 if test "x$ai_mod_static_threaded" = "xyes" ; then
558   fc_ai_last=$fc_ai_last+1
560 if test "x$ai_mod_static_stub" = "xyes" ; then
561   fc_ai_last=$fc_ai_last+1
563 if test "x$enable_aimodules" = "xyes" ; then
564   dnl Dynamic modules allowed, give slots for them
565   fc_ai_last=$fc_ai_last+3
567 AC_DEFINE_UNQUOTED([FREECIV_AI_MOD_LAST], [(${fc_ai_last})], [Max number of AI modules])
569 AC_DEFINE_UNQUOTED([AI_MOD_DEFAULT], ["${default_ai_set}"], [Default ai type name])
571 dnl Checks for programs.
572 AC_PROG_AWK
573 AC_PROG_CC
574 AC_PROG_CPP
575 AC_PROG_LN_S
576 AC_DISABLE_SHARED
577 dnl Replace AC_PROG_LIBTOOL with LT_INIT when minimum libtool
578 dnl version 2.2
579 m4_ifdef([AM_PROG_AR], [AM_PROG_AR], [AC_CHECK_TOOL([AR], [ar])])
580 AC_PROG_LIBTOOL
581 AC_SUBST(LIBTOOL)
582 if test -z $AR; then
583         AC_MSG_ERROR([*** 'ar' missing.  Install binutils, fix your \$PATH, or set \$AR manually. ***])
586 AM_PROG_CC_C_O
587 AC_PROG_CXX
588 FC_WORKING_CXX
589 FC_C99_TOKEN_CONCENATION
591 AC_CHECK_PROG(UNAME,uname,uname,:)
593 AC_CHECK_SIZEOF([int])
595 dnl Programs already checked by AM_INIT_AUTOMAKE:
597 dnl AC_PROG_MAKE_SET required with automake-ng
598 AC_PROG_MAKE_SET
600 dnl Check for libiconv (which is usually included in glibc, but may be
601 dnl distributed separately).  The libcharset check must come after the
602 dnl iconv check.  This whole thing must come before the gettext check below.
603 AM_ICONV
604 FC_LIBCHARSET
605 AM_LANGINFO_CODESET
606 if test "$am_cv_func_iconv" != yes; then
607   AC_MSG_ERROR([Iconv is missing. You can get libiconv from http://gnu.org/, \
608 or try using --with-libiconv-prefix.])
610 LIBS="$LIBS $LIBICONV"
612 dnl I18n support
613 ALL_LINGUAS="ar bg cs ca da de el en_GB eo es et fa fi fr ga gd he hu id it ja 
614 ko lt nl nb pl pt pt_BR ro ru sr sv tr uk zh_CN zh_TW"
615 PODOMAINS="freeciv nations ruledit"
617 AM_GNU_GETTEXT([external], [need-ngettext])
619 if test "x$USE_NLS" = "xyes" ; then
620   AC_DEFINE([FREECIV_ENABLE_NLS], [1], [Native language support enabled])
623 AM_XGETTEXT_OPTION([--keyword=Q_])
624 AM_XGETTEXT_OPTION([--keyword=PL_:1,2])
625 AM_XGETTEXT_OPTION([--language=C])
626 AM_XGETTEXT_OPTION([--escape])
627 AM_XGETTEXT_OPTION([--add-comments="TRANS:"])
628 AM_XGETTEXT_OPTION([--from-code=UTF-8])
630 PKG_PROG_PKG_CONFIG
631 if test "x$PKG_CONFIG" = "x" ; then
632   AC_MSG_ERROR([pkg-config not found])
634 PKG_CHECK_MODULES([CURL], [libcurl >= 7.12.1],,
635     [AC_MSG_ERROR([libcurl development files required])])
636 UTILITY_CFLAGS="${UTILITY_CFLAGS} ${CURL_CFLAGS}"
637 UTILITY_LIBS="${UTILITY_LIBS} ${CURL_LIBS}"
639 AC_ARG_ENABLE([xml-registry],
640   AS_HELP_STRING([--enable-xml-registry], [build xml-backend for registry (WIP)]),
641 [case "${enableval}" in
642   yes) XMLREGISTRY=yes ;;
643   no)  XMLREGISTRY=no  ;;
644   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-xml-registry]) ;;
645 esac], [XMLREGISTRY=no])
647 if test "x$XMLREGISTRY" = "xyes" ; then
648   PKG_CHECK_MODULES([LIBXML2], [libxml-2.0],,
649       [AC_MSG_ERROR([libxml2 development files required])])
650   UTILITY_CFLAGS="${UTILITY_CFLAGS} ${LIBXML2_CFLAGS}"
651   UTILITY_LIBS="${UTILITY_LIBS} ${LIBXML2_LIBS}"
652   AC_DEFINE([FREECIV_HAVE_XML_REGISTRY], [1], [Build xml-backend for registry])
655 dnl Set debug flags supported by compiler
656 EXTRA_DEBUG_CFLAGS=""
657 EXTRA_DEBUG_CXXFLAGS=""
658 EXTRA_DEBUG_LDFLAGS=""
659 dnl check debugging
660 FC_DEBUG
661 dnl check profiling
662 FC_GPROF
664 AC_C99_VARIADIC_MACROS
665 AC_C99_VARIABLE_ARRAYS
666 AC_C99_INITIALIZERS
667 AC_C99_STDINT_H
669 FC_C99_INITIALIZER_BRACES
671 FC_C11_STATIC_ASSERT
672 FC_C11_AT_QUICK_EXIT
674 FC_CXX11_STATIC_ASSERT
675 FC_CXX11_NULLPTR
677 dnl BeOS-specific settings
678 if test x`$UNAME -s` = xBeOS ; then
679   AC_DEFINE([FREECIV_SOCKET_ZERO_NOT_STDIN], [1], [BeOS-specific setting])
680   CFLAGS="$CFLAGS -Wno-multichar"
681   LDFLAGS="$LDFLAGS -x none"
682   if test x$enable_debug = xyes ; then
683     CFLAGS="$CFLAGS -gdwarf-2"
684     LDFLAGS="$LDFLAGS -gdwarf-2"
685   fi
686   # We used to set ARFLAGS here, but under recent versions of automake this
687   # broke compilation on other systems.  Setting ARFLAGS shouldn't be
688   # necessary with a working automake.
691 dnl Defaults to override with host specific values
692 HOST_PATH_SEPARATOR=":"
693 HOST_DIR_SEPARATOR="/"
695 dnl Settings specific to host OS
696 case "$host_os" in
698   *mingw*)
699     dnl Windows-specific settings
700     AC_CHECK_TOOL([WINDRES], [windres])
701     if test -z $WINDRES; then
702           AC_MSG_ERROR([*** 'windres' missing.  Install binutils, fix your \$PATH, or set \$WINDRES manually. ***])
703     fi
705     HOST_PATH_SEPARATOR=";"
706     HOST_DIR_SEPARATOR="\\"
708     AC_DEFINE([FREECIV_SOCKET_ZERO_NOT_STDIN], [1], [Mingw-specific setting - stdin])
709     AC_DEFINE([ALWAYS_ROOT], [1], [Can execute program as root - Mingw])
710     AC_DEFINE([FREECIV_MSWINDOWS], [1], [Windows build])
712     dnl Backward compatibility macro, FREECIV_MSWINDOWS is the preferred one, and
713     dnl one that must be used in public headers.
714     AC_DEFINE([WIN32_NATIVE], [1], [Mingw-specific setting - native])
715     AC_DEFINE([NONBLOCKING_SOCKETS], [1], [nonblocking sockets support])
716     ;;
718   *skyos*)
719     dnl SkyOS specific settings
720     AC_DEFINE([ALWAYS_ROOT], [1], [Can execute program as root - SkyOS])
721     ;;
723   *haiku*)
724     dnl Haiku specific settings
725     AC_DEFINE([ALWAYS_ROOT], [1], [Can execute program as root - Haiku])
726     LIBS="$LIBS -lnetwork"
727     ;;
729   *amigaos*)
730     AMIGA=yes
731     AC_DEFINE([ALWAYS_ROOT], [1], [Can execute program as root - Amiga])
732     ;;
734 esac
736 dnl Autoconf provides path separator for build system.
737 dnl Use that instead of our own guess in case of native build.
738 dnl Actually; Don't, since at least with autoconf-2.69 msys2 builds got wrong separator this way
739 dnl if test x$build = x$host ; then
740 dnl   HOST_PATH_SEPARATOR=$PATH_SEPARATOR
741 dnl fi
743 dnl note this has to match the path installed by translations/freeciv/Makefile
744 if test x"$MINGW" != "xyes"; then
745   CPPFLAGS="$CPPFLAGS -DLOCALEDIR=\"\\\"$localedir\\\"\""
746 else
747   AC_DEFINE_UNQUOTED([LOCALEDIR], [".\\\\share\\\\locale"], [Locale directory (windows)])
750 CPPFLAGS="$CPPFLAGS -DBINDIR=\"\\\"$bindir\\\"\""
752 COMMON_LIBS=-lm
754 dnl Check for zlib
755 AC_CHECK_LIB([z], [gzgets],
756   [AC_DEFINE([FREECIV_HAVE_LIBZ], [1], [zlib is available])
757 UTILITY_LIBS="${UTILITY_LIBS} -lz"
758 COMMON_LIBS="$COMMON_LIBS -lz"], 
759   AC_MSG_ERROR([Could not find zlib library.]))
761 AC_CHECK_HEADER(zlib.h, , 
762   AC_MSG_ERROR([zlib found but not zlib.h.
763 You may need to install a zlib devel package.]))
765 AC_PATH_PROG(GZIP, gzip, "no")
766 if test "$GZIP" = "no"; then
767   AC_MSG_ERROR([You need the gzip program for compilation.])
770 dnl Check for bzip2 compression
771 AC_ARG_WITH([libbz2],
772   AS_HELP_STRING([--with-libbz2], [support bzip2 compressed files [if_possible]]),
773 [WITH_BZ2="${withval}"],
774 [WITH_BZ2="test"])
776 if test "x$WITH_BZ2" != xno ; then
777   AC_CHECK_LIB([bz2], [BZ2_bzReadOpen],
778     [AC_CHECK_HEADERS([bzlib.h],
779      [AC_DEFINE([FREECIV_HAVE_LIBBZ2], [1], [libbzip2 is available])
780   UTILITY_LIBS="${UTILITY_LIBS} -lbz2"
781   libbz2_available=true])])
782   if test "x$libbz2_available" != "xtrue" ; then
783     if test "x$WITH_BZ2" = "xyes" ; then
784       AC_MSG_ERROR([Could not find libbz2 devel files])
785     fi
786     feature_bz2=missing
787   fi
790 dnl Check for xz compression
791 AC_ARG_WITH([liblzma],
792   AS_HELP_STRING([--with-liblzma], [support xz compressed files [if_possible]]),
793 [WITH_XZ="${withval}"],
794 [WITH_XZ="test"])
796 if test "x$WITH_XZ" != xno ; then
797   AC_CHECK_LIB([lzma], [lzma_code],
798     [AC_CHECK_HEADERS([lzma.h],
799      [AC_DEFINE([FREECIV_HAVE_LIBLZMA], [1], [liblzma is available])
800   UTILITY_LIBS="${UTILITY_LIBS} -llzma"
801   libxz_available=true])])
802   if test "x$libxz_available" != "xtrue" ; then
803     if test "x$WITH_XZ" = "xyes" ; then
804       AC_MSG_ERROR([Could not find liblzma devel files])
805     fi
806     feature_xz=missing
807   fi
810 UTILITY_LIBS="${UTILITY_LIBS} ${LTLIBINTL}"
812 AC_SUBST([UTILITY_CFLAGS])
813 AC_SUBST([UTILITY_LIBS])
814 AC_SUBST([COMMON_LIBS])
816 AC_ARG_ENABLE([crosser],
817   AS_HELP_STRING([--enable-crosser], [build version to be used with crosser environment]),
818 [case "${enableval}" in
819   yes) crosser=yes
820        AC_DEFINE([CROSSER], [1], [this is crosser based build]) ;;
821   no)  crosser=no ;;
822   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-crosser]) ;;
823 esac], [crosser=no])
824 if test x$crosser = xyes && test x$MINGW != xyes ; then
825   AC_MSG_ERROR([--enable-crosser is Windows build specific option])
828 dnl Check thread implementation
829 AC_MSG_CHECKING([for threads implementation])
830 thread_impl=none
832 CFLAGS_SAVE="${CFLAGS}"
833 LIBS_SAVE="${LIBS}"
835 if test x$crosser != xyes ; then
836   FC_C_FLAGS([-pthread], [], [CFLAGS])
837   FC_LD_FLAGS([-pthread], [], [LIBS])
838   AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
839     [[return pthread_create(NULL, NULL, NULL, NULL);]])],
840     [AC_DEFINE([FREECIV_HAVE_PTHREAD], [1], [Use pthreads as thread implementation])
841     thread_impl=pthreads
842     AC_MSG_RESULT([pthreads])
843     AC_DEFINE([FREECIV_HAVE_THREAD_COND], [1], [Has thread condition variable implementation])])
844     thread_cond=true
847 if test "x$thread_impl" = "xnone" ; then
848   CFLAGS="$CFLAGS_SAVE"
849   LDFLAGS="$LDFLAGS_SAVE"
851   AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <windows.h>]],
852     [[CreateThread(NULL, 0, NULL, NULL, 0, NULL);]])],
853     [AC_DEFINE([FREECIV_HAVE_WINTHREADS], [1], [Use Windows threads as thread implementation])
854     thread_impl=windows
855     AC_MSG_RESULT([windows])])
858 if test "x$thread_impl" = "xnone" ; then
859   AC_MSG_ERROR([No usable thread implementation available])
862 if test "x$thread_cond" != "xtrue" ; then
863   feature_thr_cond=missing
866 dnl Check and choose clients
867 if test "x$client" != "xno"; then
869   dnl Check for sound support, sets SOUND_CFLAGS, SOUND_LIBS, AUDIO_SDL
870   dnl Client gui checks need to know which mixer version this has selected
871   FC_CHECK_SOUND()
873   dnl if specified --with-xaw or --with-xaw3d, assume --enable-client=xaw
874   if test -n "$WITH_XAW" || test -n "$WITH_XAW3D"; then
875     if test "x$client" = "xauto" ; then
876       gui_xaw=yes
877       client=yes
878     elif test "x$client" = "xall" ; then
879       gui_xaw=yes
880     fi
881   fi
883   dnl if need to guess client, announce checking
884   if test "x$client" = "xauto"; then
885     AS_MESSAGE([checking for which client to compile:...])
886   elif test "x$client" = "xall" ; then
887     AS_MESSAGE([checking for which clients to compile:...])
888   fi
890   dnl Gtk-3.0-specific overrides
891   FC_GTK3_CLIENT
893   dnl Gtk-2.0-specific overrides
894   FC_GTK2_CLIENT
896   dnl QT-specific overrides
897   FC_QT_CLIENT
899   dnl SDL-specific overrides
900   FC_SDL_CLIENT
902   dnl SDL2-specific overrides
903   FC_SDL2_CLIENT
905   dnl Xaw-specific overrides
906   FC_XAW_CLIENT
908   dnl Stub-specific overrides
909   if test "x$gui_stub" = "xyes" || test "x$client" = "xall" ; then
910     gui_stub=yes
911     if test "x$client" = "xauto" ; then
912       client=yes
913     fi
914     gui_stub_libs="-lm"
915   fi
917   dnl If client still "auto", error out since we couldn't select any of them
918   if test "x$client" = "xauto" ; then
919     AC_MSG_ERROR([can not build any of the supported clients])
920   fi
923 if test "x$client" = "xall" ; then
924   if test "x$gui_gtk2" = "xyes" ||
925      test "x$gui_gtk3" = "xyes" ||
926      test "x$gui_sdl" = "xyes" ||
927      test "x$gui_sdl2" = "xyes" ||
928      test "x$gui_xaw" = "xyes" ||
929      test "x$gui_qt" = "xyes" ||
930      test "x$gui_stub" = "xyes" ; then
931     client=yes
932   else
933     client=no
934   fi
937 FC_LD_FLAGS(["-Wl,-rpath=${lib_prefix}"], [], [LDFLAGS])
939 AM_CONDITIONAL([CLIENT], [test "x$client" = "xyes"])
941 AC_ARG_ENABLE([freeciv-manual],
942   AS_HELP_STRING([--enable-freeciv-manual=no/yes/wiki/html], [build freeciv-manual [wiki]]),
943 [case "${enableval}" in
944   yes|wiki) fcmanual=wiki ;;
945   no)       fcmanual=no ;;
946   html)     fcmanual=html ;;
947   *) AC_MSG_ERROR([bad value ${enableval} for --enable-freeciv-manual]) ;;
948 esac], [fcmanual=wiki])
950 AM_CONDITIONAL([FCMANUAL], [test "x$fcmanual" != "xno"])
952 if test x$fcmanual = xhtml ; then
953   AC_DEFINE([MANUAL_USE_HTML], [1], [Build freeciv-manual with html formatting])
956 dnl freeciv-modpack checks
957 AC_ARG_ENABLE([fcmp],
958   AS_HELP_STRING([--enable-fcmp=no/yes/gtk2/gtk3/qt/cli/all/auto], [build freeciv-modpack-program [auto]]),
959 [fc_mp=${enableval}],
960 [fc_mp=auto])
962 fcmp_cli=no
963 fcmp_gtk2=no
964 fcmp_gtk3=no
965 fcmp_qt=no
966 fcmp_list=
968 if test "x$fc_mp" = "xcli" ; then
969   dnl Only cli requested -> no gui needed
970   modinst=cli
973 for mp in $(echo $fc_mp | $SED 's/,/ /g') ; do
974   if test "x$mp" = "xno" ; then
975     modinst=no
976   elif test "x$mp" = "xauto" || test "x$mp" = "xyes" ; then
977     modinst=auto
978   elif test "x$mp" = "xall" ; then
979     modinst=all
980   else if test "x$mp" = "xgtk2"   ||
981           test "x$mp" = "xgtk2.0" ||
982           test "x$mp" = "xgtk20"  ||
983           test "x$mp" = "xgtk-2.0" ; then
984       req_fcmp_gtk2=yes
985     elif test "x$mp" = "xgtk3"   ||
986          test "x$mp" = "xgtk3.0" ||
987          test "x$mp" = "xgtk30"  ||
988          test "x$mp" = "xgtk-3.0" ; then
989       req_fcmp_gtk3=yes
990     elif test "x$mp" = "xqt" ; then
991       req_fcmp_qt=yes
992     elif test "x$mp" = "xcli" ; then
993       req_fcmp_cli=yes
994     elif test "x$mp" != "xyes" ; then
995       AC_MSG_ERROR([bad value ${mp} for --enable-fcmp])
996     fi
997   fi
998 done
1000 if test "x$req_fcmp_gtk3" = "xyes" ||
1001    test "x$modinst" = "xall" || test "x$modinst" = "xauto" ; then
1002   PKG_CHECK_MODULES([GTK3MP], [gtk+-3.0 >= 3.8.0],
1004   GTK3MP_CFLAGS="$GTK3MP_CFLAGS -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_8 -DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_8"
1005   GTK3MP_CFLAGS="$GTK3MP_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_36 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_36"
1006   PKG_CHECK_MODULES([GTHREAD_GTK3], [gthread-2.0],
1008   fcmp_gtk3=yes
1009   fcmp_list="$fcmp_list gtk3"
1010   mp_gtk3_cflags="$GTK3MP_CFLAGS $GHTREAD_GTK3_CFLAGS"
1011   mp_gtk3_libs="$GTK3MP_LIBS $GTHREAD_GTK3_LIBS"
1012   if test "x$MINGW" = "xyes"; then
1013     dnl Required to compile gtk3 on Windows platform
1014     mp_gtk3_cflags="$mp_gtk3_cflags -mms-bitfields"
1015     mp_gtk3_ldflags="$mp_gtk3_ldflags -mwindows"
1016   fi
1018   if test "x$modinst" = "xauto" ; then
1019     modinst=found
1020   fi
1021 ], [])], [])
1024 if test "x$req_fcmp_gtk3" = "xyes" && test "x$fcmp_gtk3" != "xyes" ; then
1025   AC_MSG_ERROR([Cannot build gtk3-version of freeciv-modpack as requested])
1028 if test "x$req_fcmp_gtk2" = "xyes" ||
1029    test "x$modinst" = "xauto" || test "x$modinst" = "xall" ; then
1030   AM_PATH_GTK_2_0([2.12.0],
1032   PKG_CHECK_MODULES([GTHREAD_GTK2], [gthread-2.0],
1034   fcmp_gtk2=yes
1035   fcmp_list="$fcmp_list gtk2"
1036   mp_gtk2_cflags="$GTK2_CFLAGS $GTHREAD_GTK2_CFLAGS"
1037   mp_gtk2_libs="$GTK2_LIBS $GTHREAD_GTK2_LIBS"
1038   if test "x$MINGW" = "xyes"; then
1039      dnl Required to compile gtk2 on Windows platform
1040      mp_gtk2_cflags="$mp_gtk2_cflags -mms-bitfields"
1041      mp_gtk2_ldflags="$mp_gtk2_ldflags -mwindows"
1042   fi
1044   if test "x$modinst" = "xauto" ; then
1045     modinst=found
1046   fi
1047 ], [])], [])
1050 if test "x$req_fcmp_gtk2" = "xyes" && test "x$fcmp_gtk2" != "xyes" ; then
1051   AC_MSG_ERROR([Cannot build gtk2-version of freeciv-modpack as requested])
1054 if test "x$req_fcmp_qt" = "xyes" ||
1055    test "x$modinst" = "xauto" || test "x$modinst" = "xall" ; then
1057    if test "x$cxx_works" = "xyes" ; then
1058      FC_QT5
1060      if test "x$fc_qt5_usable" = "xtrue" ; then
1061        fcmp_qt=yes
1062        fcmp_list="$fcmp_list qt"
1064        mp_qt_cppflags=$FC_QT5_CPPFLAGS
1065        mp_qt_cxxflags=$FC_QT5_CXXFLAGS
1066        mp_qt_libs=$FC_QT5_LIBS
1068        if test "x$modinst" = "xauto" ; then
1069          modinst=found
1070        fi
1071      fi
1072    fi
1076 if test "x$req_fcmp_qt" = "xyes" && test "x$fcmp_qt" != "xyes" ; then
1077   AC_MSG_ERROR([Cannot build Qt-version of freeciv-modpack as requested])
1080 dnl Cli does not satisfy --enable-fcmp=auto as it's not an gui.
1081 if test "x$req_fcmp_cli" = "xyes" || test "x$modinst" = "xall" ; then
1082   fcmp_cli=yes
1083   fcmp_list="$fcmp_list cli"
1086 if test "x$modinst" != "xfound" &&
1087    test "x$modinst" != "xno" &&
1088    test "x$modinst" != "xcli" &&
1089    test "x$fcmp_gtk3" != "xyes" &&
1090    test "x$fcmp_gtk2" != "xyes" &&
1091    test "x$fcmp_qt" != "xyes" ;then
1092   AC_MSG_ERROR([Cannot build modpack installer with any gui])
1093 fi 
1095 if test "x$modinst" != "xno" && test "x$MINGW" != "xyes" ; then
1096   dnl Hack to get a run-time icon -- not needed on Windows
1097   mp_gtk2_cflags="$mp_gtk2_cflags -DMPICON_PATH=\"\\\"$datadir/freeciv/misc/mpicon.png\\\"\""
1098   mp_gtk3_cflags="$mp_gtk3_cflags -DMPICON_PATH=\"\\\"$datadir/freeciv/misc/mpicon.png\\\"\""
1101 if test "x$fcmp_list" = "x" ; then
1102   fcmp_list="none"
1105 AM_CONDITIONAL([MODINST], [test "x$modinst" != "xno"])
1106 AM_CONDITIONAL([MODINST_GTK3], [test "x$fcmp_gtk3" = "xyes"])
1107 AM_CONDITIONAL([MODINST_GTK2], [test "x$fcmp_gtk2" = "xyes"])
1108 AM_CONDITIONAL([MODINST_QT], [test "x$fcmp_qt" = "xyes"])
1109 AM_CONDITIONAL([MODINST_CLI], [test "x$fcmp_cli" = "xyes"])
1111 AC_ARG_ENABLE([ruledit],
1112   AS_HELP_STRING([--enable-ruledit], [build freeciv-ruledit (WIP)]),
1113 [case "${enableval}" in
1114   yes)  ruledit=yes ;;
1115   no)   ruledit=no ;;
1116   test) ruledit=test ;;
1117   experimental)
1118         AC_DEFINE([RULEDIT_EXPERIMENTAL], [1], [build experimental features to freeciv-ruledit])
1119         ruledit=yes ;;
1120   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-ruledit]) ;;
1121 esac], [ruledit=test])
1122 if test "x$ruledit" = "xyes" || test "x$ruledit" = "xtest" ; then
1123   if test "x$cxx_works" = "xyes" ; then
1124     FC_QT5
1126     if test "x$fc_qt5_usable" = "xtrue" ; then
1127       ruledit_cppflags=$FC_QT5_CPPFLAGS
1128       ruledit_cxxflags=$FC_QT5_CXXFLAGS
1129       ruledit_libs=$FC_QT5_LIBS
1130       ruledit=yes
1131     elif test "x$ruledit" = "xyes" ; then
1132       AC_MSG_ERROR([Qt5 not found for building freeciv-ruledit])
1133     fi
1134   elif test "x$ruledit" = "xyes" ; then
1135     AC_MSG_ERROR([No working C++ compiler found for building freeciv-ruledit])
1136   fi
1138 if test "x$ruledit" = "xtest" ; then
1139   dnl Still not set to 'yes' so failed tests
1140   ruledit=no
1141   feature_ruledit=missing
1143 AM_CONDITIONAL([RULEDIT], [test "x$ruledit" = "xyes"])
1145 AC_SUBST([gui_gtk2_cflags])
1146 AC_SUBST([gui_gtk2_libs])
1147 AC_SUBST([gui_gtk2_ldflags])
1148 AC_SUBST([gui_gtk3_cflags])
1149 AC_SUBST([gui_gtk3_libs])
1150 AC_SUBST([gui_gtk3_ldflags])
1151 AC_SUBST([gui_sdl_cflags])
1152 AC_SUBST([gui_sdl_libs])
1153 AC_SUBST([gui_sdl_ldflags])
1154 AC_SUBST([gui_sdl2_cflags])
1155 AC_SUBST([gui_sdl2_libs])
1156 AC_SUBST([gui_sdl2_ldflags])
1157 AC_SUBST([gui_xaw_cflags])
1158 AC_SUBST([gui_xaw_libs])
1159 AC_SUBST([gui_xaw_ldflags])
1160 AC_SUBST([gui_qt_cppflags])
1161 AC_SUBST([gui_qt_cflags])
1162 AC_SUBST([gui_qt_cxxflags])
1163 AC_SUBST([gui_qt_libs])
1164 AC_SUBST([gui_qt_ldflags])
1165 AC_SUBST([gui_stub_cflags])
1166 AC_SUBST([gui_stub_libs])
1167 AC_SUBST([gui_stub_ldflags])
1168 AC_SUBST([mp_cli_cflags])
1169 AC_SUBST([mp_cli_libs])
1170 AC_SUBST([mp_cli_ldflags])
1171 AC_SUBST([mp_gtk2_cflags])
1172 AC_SUBST([mp_gtk2_libs])
1173 AC_SUBST([mp_gtk2_ldflags])
1174 AC_SUBST([mp_gtk3_cflags])
1175 AC_SUBST([mp_gtk3_libs])
1176 AC_SUBST([mp_gtk3_ldflags])
1177 AC_SUBST([mp_qt_cppflags])
1178 AC_SUBST([mp_qt_cxxflags])
1179 AC_SUBST([mp_qt_libs])
1180 AC_SUBST([ruledit_cppflags])
1181 AC_SUBST([ruledit_cxxflags])
1182 AC_SUBST([ruledit_libs])
1183 AC_SUBST([SOUND_CFLAGS])
1184 AC_SUBST([SOUND_LIBS])
1185 AC_SUBST([VERSION_WITHOUT_LABEL])
1186 AC_SUBST([VERSION_LABEL])
1187 AC_SUBST([HOST_PATH_SEPARATOR])
1188 AC_SUBST([HOST_DIR_SEPARATOR])
1189 AM_CONDITIONAL(AUDIO_SDL, test "x$SDL_mixer" != "xno")
1190 AM_CONDITIONAL(CLIENT_GUI_SDL, test "x$gui_sdl" = "xyes")
1191 AM_CONDITIONAL(CLIENT_GUI_SDL2, test "x$gui_sdl2" = "xyes")
1192 AM_CONDITIONAL(CLIENT_GUI_GTK_2_0, test "x$gui_gtk2" = "xyes")
1193 AM_CONDITIONAL(CLIENT_GUI_GTK_3_0, test "x$gui_gtk3" = "xyes")
1194 AM_CONDITIONAL(CLIENT_GUI_XAW, test "x$gui_xaw" = "xyes")
1195 AM_CONDITIONAL(CLIENT_GUI_QT, test "x$gui_qt" = "xyes")
1196 AM_CONDITIONAL(CLIENT_GUI_STUB, test "x$gui_stub" = "xyes")
1197 AM_CONDITIONAL(MINGW, test x"$MINGW" = "xyes")
1199 dnl Additional client libraries:
1200 if test "x$client" = "xyes"; then
1201     CLIENT_LIBS=" -lm "
1202     AC_SUBST(CLIENT_LIBS)
1205 dnl Checks for additional server libraries:
1206 if test "x$server" = "xyes"; then
1207     SERVER_LIBS="-lm ${SERVER_LIBS}"
1209     dnl Some systems (e.g., BeOS) need this lib
1210     AC_CHECK_LIB(bind, gethostbyaddr, SERVER_LIBS="-lbind $SERVER_LIBS")
1212     dnl Readline library and header files.
1213     FC_HAS_READLINE()
1214     AC_SUBST([SERVER_LIBS])
1215     AC_SUBST([SRV_LIB_LIBS])
1218 AC_CHECK_LIB(nls,main)
1220 dnl Checks for header files.
1221 AC_HEADER_STDC
1222 AC_HEADER_SYS_WAIT
1223 AC_CHECK_HEADERS([fcntl.h sys/utsname.h \
1224                   sys/file.h signal.h strings.h execinfo.h \
1225                   libgen.h])
1226 AC_CHECK_HEADERS([sys/time.h], [AC_DEFINE([FREECIV_HAVE_SYS_TIME_H], [1], [sys/time.h available])])
1227 AC_CHECK_HEADERS([unistd.h], [AC_DEFINE([FREECIV_HAVE_UNISTD_H], [1], [unistd.h available])])
1228 AC_CHECK_HEADERS([locale.h], [AC_DEFINE([FREECIV_HAVE_LOCALE_H], [1], [locale.h available])])
1229 AC_CHECK_HEADERS([libintl.h], [AC_DEFINE([FREECIV_HAVE_LIBINTL_H], [1], [libint.h available])])
1230 AC_HEADER_STDBOOL
1231 if test $ac_cv_header_stdbool_h = yes; then
1232   AC_DEFINE([FREECIV_HAVE_STDBOOL_H], [1], [Have standard compliant stdbool.h])
1235 AC_CHECK_HEADERS([pwd.h])
1237 dnl Avoid including the unix emulation layer if we build mingw executables
1238 dnl There would be type conflicts between winsock and bsd/unix includes
1239 if test "x$MINGW" != "xyes"; then
1240   AC_CHECK_HEADERS([arpa/inet.h netdb.h sys/ioctl.h \
1241                     sys/signal.h sys/termio.h \
1242                     sys/uio.h termios.h])
1243   AC_CHECK_HEADERS([sys/select.h], [AC_DEFINE([FREECIV_HAVE_SYS_SELECT_H], [1], [sys/select.h available])])
1244   AC_CHECK_HEADERS([netinet/in.h], [AC_DEFINE([FREECIV_HAVE_NETINET_IN_H], [1], [netinet/in.h available])])
1246 if test "x$gui_xaw" = "xyes" ; then
1247   dnl Want to get appropriate -I flags:
1248   fc_save_CPPFLAGS="$CPPFLAGS"
1249   CPPFLAGS="$CPPFLAGS $gui_xaw_cflags"
1250   AC_CHECK_HEADER(X11/xpm.h, ,
1251     AC_MSG_ERROR(need X11/xpm.h header; perhaps try/adjust --with-xpm-include))
1252   CPPFLAGS="$fc_save_CPPFLAGS"
1255 dnl Checks for typedefs, structures, and compiler characteristics.
1256 AC_C_CONST
1257 AC_HEADER_TIME
1258 AC_STRUCT_TM
1259 AC_CHECK_TYPES([socklen_t], [AC_DEFINE([FREECIV_HAVE_SOCKLEN_T], [1], [Have socklen_t type defined])],
1261 [#ifdef FREECIV_HAVE_SYS_TYPES_H
1262 #include <sys/types.h>
1263 #endif
1264 #ifdef FREECIV_HAVE_SYS_SOCKET_H
1265 #include <sys/socket.h>
1266 #endif
1267 #ifdef FREECIV_HAVE_WS2TCPIP_H
1268 #include <ws2tcpip.h>
1269 #endif
1271 AC_TYPE_INTPTR_T
1272 dnl Headers that might contain the intptr_t definition found earlier
1273 AC_CHECK_HEADERS([inttypes.h],
1274   [AC_DEFINE([FREECIV_HAVE_INTTYPES_H], [1], [inttypes.h available])])
1275 AC_CHECK_HEADERS([stdint.h],
1276   [AC_DEFINE([FREECIV_HAVE_STDINT_H], [1], [stdint.h available])])
1278 dnl Checks for library functions.
1279 AC_FUNC_FORK
1280 AC_FUNC_STRCOLL
1281 AC_FUNC_VPRINTF
1282 AC_FUNC_FSEEKO
1284 dnl Windows vsnprintf doesn't support argument reordering (see PR#12932)
1285 if test "x$MINGW" != "xyes"; then
1286 dnl The use of both FC_FUNC_VSNPRINTF and AC_CHECK_FUNCS(vsnprintf) is
1287 dnl deliberate.
1288 FC_FUNC_VSNPRINTF
1289 AC_CHECK_FUNCS([vsnprintf])
1292 AC_CHECK_FUNCS([bind connect fileno flock ftime gethostbyname gethostname \
1293                 getpwuid inet_aton select snooze strcasecmp strcasestr \
1294                 strerror strlcat strlcpy strncasecmp strstr uname usleep \
1295                 getline _strcoll stricoll _stricoll strcasecoll \
1296                 backtrace])
1298 dnl Possible "-Wmissing-declarations" and "-Werror" will prune out
1299 dnl cases where we should not use _mkdir() even if it's possible to link against it
1300 fc_save_CPPFLAGS="$CPPFLAGS"
1301 CPPFLAGS="$CPPFLAGS -Werror $EXTRA_DEBUG_CFLAGS"
1302 AC_CHECK_FUNCS([_mkdir])
1303 CPPFLAGS="$fc_save_CPPFLAGS"
1305 AC_MSG_CHECKING(for working gettimeofday)
1306   FC_CHECK_GETTIMEOFDAY_RUNTIME(,AC_DEFINE([HAVE_GETTIMEOFDAY], [1],
1307         [Define if the gettimeofday function works and is sane.]),)
1309 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <netinet/in.h>]],
1310 [[struct ip_mreqn req; req.imr_ifindex = 0;]])],
1311 [AC_DEFINE([HAVE_IP_MREQN], [1], [struct ip_mreqn available])])
1313 dnl Check for extra socket libraries.
1314 dnl If the AC_CHECK_FUNCS check finds the function, we don't look any
1315 dnl further.  This is rumoured to prevent choosing the wrong libs on IRIX.
1316 if test $ac_cv_func_gethostbyname = no; then
1317   AC_CHECK_LIB(nsl, gethostbyname, LIBS="-lnsl $LIBS")
1319 if test $ac_cv_func_connect = no; then
1320   AC_CHECK_LIB(socket, connect, LIBS="-lsocket $LIBS")
1322 if test $ac_cv_func_bind = no; then
1323   AC_CHECK_LIB(bind, gethostbyaddr, LIBS="-lbind $LIBS")
1326 dnl Windows fdopen does not work with sockets.
1327 if test "x$MINGW" != "xyes"; then
1328   AC_CHECK_FUNCS(fdopen)
1331 dnl We would AC_CHECK_FUNCS for socket as well, except it is complicated
1332 dnl by the fact that the -lsocket is in X_EXTRA_LIBS and/or SERVER_LIBS,
1333 dnl and not in LIBS.
1335 dnl Now check if non blocking sockets are possible
1336 dnl (if fcntl or ioctl exists)
1338 AC_CHECK_FUNC([fcntl],
1339               [AC_DEFINE([HAVE_FCNTL], [1], [fcntl support])
1340                AC_DEFINE([NONBLOCKING_SOCKETS], [1], [nonblocking sockets support])],
1341                [AC_CHECK_FUNC([ioctl], 
1342                              [AC_DEFINE([HAVE_IOCTL], [1], [ioctl support])
1343                               AC_DEFINE([NONBLOCKING_SOCKETS], [1], [nonblocking sockets support])])])
1345 dnl Checks if SIGPIPE is usable
1346 AC_MSG_CHECKING([for SIGPIPE])
1347 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <signal.h>]], [[signal (SIGPIPE, SIG_IGN)]])],[AC_MSG_RESULT([yes])
1348                 AC_DEFINE([HAVE_SIGPIPE], [1], [sigpipe support])],[AC_MSG_RESULT([no])])
1350 dnl export where the datadir is going to be installed
1351 FC_EXPAND_DIR(FREECIV_DATADIR, "$datadir/freeciv")
1353 if test x"$MINGW" = xyes; then
1354   DEFAULT_SAVE_PATH=".;~\\\\\\\\.freeciv\\\\\\\\saves"
1355   if test x$crosser = xyes ; then
1356     FC_CONF_PATH="../etc/freeciv"
1357     DEFAULT_DATA_PATH=".;data;~/.freeciv/$DATASUBDIR;$datadir/freeciv;../share/freeciv"
1358     DEFAULT_SCENARIO_PATH=".;data/scenarios;~/.freeciv/$DATASUBDIR/scenarios;~/.freeciv/scenarios;$datadir/freeciv/scenarios;../share/freeciv/scenarios"
1359   else
1360     FC_CONF_PATH="etc\\\\\\\\freeciv"
1361     DEFAULT_DATA_PATH=".;data;~\\\\\\\\.freeciv\\\\\\\\$DATASUBDIR;$datadir\\\\\\\\freeciv"
1362     DEFAULT_SCENARIO_PATH=".;data\\\\\\\\scenarios;~\\\\\\\\.freeciv\\\\\\\\$DATASUBDIR\\\\\\\\scenarios;~\\\\\\\\.freeciv\\\\\\\\scenarios;$datadir\\\\\\\\freeciv\\\\\\\\scenarios"
1363   fi
1364 else
1365   FC_CONF_PATH="$sysconfdir/freeciv"
1366   DEFAULT_DATA_PATH=".:data:~/.freeciv/$DATASUBDIR:$datadir/freeciv"
1367   DEFAULT_SAVE_PATH=".:~/.freeciv/saves"
1368   DEFAULT_SCENARIO_PATH=".:data/scenarios:~/.freeciv/$DATASUBDIR/scenarios:~/.freeciv/scenarios:$datadir/freeciv/scenarios"
1370 CPPFLAGS="$CPPFLAGS -DFC_CONF_PATH=\"\\\"$FC_CONF_PATH\\\"\""
1371 CPPFLAGS="$CPPFLAGS -DDEFAULT_DATA_PATH=\"\\\"$DEFAULT_DATA_PATH\\\"\""
1372 CPPFLAGS="$CPPFLAGS -DDEFAULT_SAVE_PATH=\"\\\"$DEFAULT_SAVE_PATH\\\"\""
1373 CPPFLAGS="$CPPFLAGS -DDEFAULT_SCENARIO_PATH=\"\\\"$DEFAULT_SCENARIO_PATH\\\"\""
1375 dnl This has to be last library
1376 if test -n "$WITH_EFENCE"; then
1377   AC_CHECK_LIB(efence, malloc, [ 
1378   if test "x$LIBS" = "x"; then
1379     LIBS = -lefence
1380   else
1381     LIBS="$LIBS -lefence"
1382   fi])
1385 AC_ARG_ENABLE([sys-lua],
1386   AS_HELP_STRING([--enable-sys-lua], [use lua from system instead of one from freeciv tree [test]]),
1387 [case "${enableval}" in
1388   yes)
1389     sys_lua=true ;;
1390   no)
1391     sys_lua=false ;;
1392   test)
1393     sys_lua=test ;;
1394   *)   AC_MSG_ERROR([bad value ${enableval} for --enable-sys-lua]) ;;
1395 esac], [sys_lua=test])
1397 dnl There's wide divergence on what the pkg-config file for Lua is called
1398 dnl See http://lua-users.org/lists/lua-l/2008-09/msg00184.html
1399 if test "x$sys_lua" = "xtrue" || test "x$sys_lua" = "xtest" ; then
1400   PKG_CHECK_MODULES([LUA], [lua5.3], [sys_lua=true],
1401     [PKG_CHECK_MODULES([LUA], [lua-5.3], [sys_lua=true],
1402       [PKG_CHECK_MODULES([LUA], [lua >= 5.3 lua < 5.4], [sys_lua=true],
1403 [if test "x$sys_lua" = "xtrue" ; then
1404   AC_MSG_ERROR([Use of included lua disabled, and no lua found from system])
1406 feature_syslua=missing
1407 sys_lua=false])])])
1410 if test "x$sys_lua" != "xtrue" ; then
1411   dnl Checks needed for included lua.
1412   gl_FUNC_MKSTEMP
1413   if test "x$gl_cv_func_working_mkstemp" = xyes ; then
1414     dnl if only "guessing yes", do not try to use mkstemp, but fallback
1415     AC_DEFINE([HAVE_MKSTEMP], [1], [Have working mkstemp])
1416   fi
1417   AC_CHECK_FUNCS([popen pclose _longjmp _setjmp gmtime_r localtime_r])
1419   LUA_CFLAGS="-I\$(top_srcdir)/dependencies/lua-5.3/src"
1420   LUA_LIBS="\$(top_builddir)/dependencies/lua-5.3/src/liblua.la"
1423 AC_SUBST([LUA_CFLAGS])
1424 AC_SUBST([LUA_LIBS])
1425 AM_CONDITIONAL([SYS_LUA], [test "x$sys_lua" = "xtrue"])
1427 if test x$enable_fcdb = xyes ; then
1428   LUASQL_CFLAGS="-I\$(top_srcdir)/dependencies/luasql/src"
1429   LUASQL_LIBS="\$(top_builddir)/dependencies/luasql/src/libluasql_base.la"
1430   if test x$fcdb_mysql = xyes ; then
1431     LUASQL_LIBS="$LUASQL_LIBS \$(top_builddir)/dependencies/luasql/src/libluasql_mysql.la"
1432   fi
1433   if test x$fcdb_postgres = xyes ; then
1434     LUASQL_LIBS="$LUASQL_LIBS \$(top_builddir)/dependencies/luasql/src/libluasql_postgres.la"
1435   fi
1436   if test x$fcdb_sqlite3 = xyes ; then
1437     LUASQL_LIBS="$LUASQL_LIBS \$(top_builddir)/dependencies/luasql/src/libluasql_sqlite3.la"
1438   fi
1439   LUASQL_AS_DEPENDENCY="$LUASQL_LIBS"
1440   LUASQL_LIBS="$LUASQL_LIBS $FCDB_MYSQL_LIBS $FCDB_POSTGRES_LIBS $FCDB_SQLITE3_LIBS"
1442   AC_SUBST([LUASQL_CFLAGS])
1443   AC_SUBST([LUASQL_LIBS])
1444   AC_SUBST([LUASQL_AS_DEPENDENCY])
1447 AC_ARG_ENABLE([sys-tolua-cmd],
1448   AS_HELP_STRING([--enable-sys-tolua-cmd], [use tolua command from build system instead of one from freeciv tree [true_when_cross-compiling]]),
1449 [case "${enableval}" in
1450   yes)
1451     sys_tolua_cmd=true ;;
1452   no)
1453     if test "x$cross_compiling" = "xyes" ; then
1454       AC_MSG_ERROR([Must use external build system tolua command when cross-compiling])
1455     fi
1456     sys_tolua_cmd=false ;;
1457   *)
1458     sys_tolua_cmd=${enableval} ;;
1459 esac], [
1460 if test "x$cross_compiling" = "xyes" ; then
1461   sys_tolua_cmd=true
1462 else
1463   sys_tolua_cmd=test
1464 fi])
1466 if test "x$sys_tolua_cmd" = "xtrue" || test "x$sys_tolua_cmd" = "xtest" ; then
1467   AC_PATH_PROG([TOLUA], [tolua], [notfound])
1468   if test "x$TOLUA" = "xnotfound" ; then
1469     if test "x$sys_tolua_cmd" = "xtest" ; then
1470       TOLUA="\$(top_builddir)/dependencies/tolua-5.2/src/bin/tolua$EXEEXT"
1471       feature_systolua_cmd=missing
1472     else
1473       AC_MSG_ERROR([tolua command not found from the system])
1474     fi
1475   fi
1476 elif test "x$sys_tolua_cmd" != "xfalse" ; then
1477   TOLUA=$sys_tolua_cmd
1478 else
1479   TOLUA="\$(top_builddir)/dependencies/tolua-5.2/src/bin/tolua$EXEEXT"
1482 AC_SUBST([TOLUA])
1484 TOLUA_CFLAGS="-I\$(top_srcdir)/dependencies/tolua-5.2/include"
1485 TOLUA_LIBS="\$(top_builddir)/dependencies/tolua-5.2/src/lib/libtolua.la"
1486 AC_SUBST([TOLUA_CFLAGS])
1487 AC_SUBST([TOLUA_LIBS])
1489 dnl The BeOS sys/uio.h is broken.  This kludges it out of existence.
1490 dnl (This still causes lots of spurious changes to fc_config.h on BeOS.)
1491 AC_CONFIG_COMMANDS([fc_default-5],[[if test x`uname -s` = xBeOS ; then
1492      if grep '#define HAVE_SYS_UIO_H 1' fc_config.h >/dev/null 2>&1 ; then
1493        echo kluging fc_config.h
1494        mv -f fc_config.h fc_config.h.tmp
1495        sed -e 's/#define HAVE_SYS_UIO_H 1/#undef HAVE_SYS_UIO_H/g' fc_config.h.tmp > fc_config.h
1496        rm fc_config.h.tmp
1497      fi
1498    fi]],[[]])
1500 CFLAGS="$EXTRA_DEBUG_CFLAGS $CFLAGS"
1501 CXXFLAGS="$EXTRA_DEBUG_CXXFLAGS $CXXFLAGS"
1502 LDFLAGS="$EXTRA_DEBUG_LDFLAGS $LDFLAGS"
1504 dnl Rebuild 'configure' whenever fc_version changes, if maintainer mode enabled.
1505 AC_SUBST([CONFIGURE_DEPENDENCIES], ["$CONFIGURE_DEPENDENCIES \$(top_srcdir)/fc_version"])
1507 dnl Make sure that fc_config.h changes when ever CPPFLAGS, CFLAGS or CXXFLAGS
1508 dnl change so everything gets rebuilt. LDFLAGS is not handled here
1509 dnl since change in it should not cause recompilation, only relinking.
1510 dnl Note: Variables are named FC_STORE_* instead of FC_*_STORE in order to
1511 dnl make them appear next to each other in fc_config.h.
1512 FC_STORE_CPPFLAGS="$(echo $CPPFLAGS | $SED 's/\\/\\\\/g' | $SED 's/\"/\\\"/g')"
1513 AC_DEFINE_UNQUOTED([FC_STORE_CPPFLAGS], ["$FC_STORE_CPPFLAGS"],
1514                    [These are the CPPFLAGS used in compilation])
1515 FC_STORE_CFLAGS="$(echo $CFLAGS | $SED 's/\\/\\\\/g' | $SED 's/\"/\\\"/g')"
1516 AC_DEFINE_UNQUOTED([FC_STORE_CFLAGS], ["$FC_STORE_CFLAGS"],
1517                    [These are the CFLAGS used in compilation])
1518 FC_STORE_CXXFLAGS="$(echo $CXXFLAGS | $SED 's/\\/\\\\/g' | $SED 's/\"/\\\"/g')"
1519 AC_DEFINE_UNQUOTED([FC_STORE_CXXFLAGS], ["$FC_STORE_CXXFLAGS"],
1520                    [These are the CXXFLAGS used in compilation])
1522 dnl If old default of AR_FLAGS is otherwise being used (because of older automake),
1523 dnl replace it with one without 'u'
1524 if test "x$AR_FLAGS" = "xcru" ; then
1525   AR_FLAGS="cr"
1528 AC_CONFIG_FILES([Makefile
1529           data/Makefile
1530           data/hex2t/Makefile
1531           data/hexemplio/Makefile
1532           data/amplio2/Makefile
1533           data/buildings/Makefile
1534           data/flags/Makefile
1535           data/misc/Makefile
1536           data/cimpletoon/Makefile
1537           data/trident/Makefile
1538           data/isophex/Makefile
1539           data/isotrident/Makefile
1540           data/stdsounds/Makefile
1541           data/stdmusic/Makefile
1542           data/override/Makefile
1543           data/default/Makefile
1544           data/classic/Makefile
1545           data/multiplayer/Makefile
1546           data/experimental/Makefile
1547           data/civ2civ3/Makefile
1548           data/civ1/Makefile
1549           data/civ2/Makefile
1550           data/scenarios/Makefile
1551           data/nation/Makefile
1552           data/themes/Makefile
1553           data/themes/gui-gtk-2.0/Makefile
1554           data/themes/gui-gtk-2.0/Freeciv/Makefile
1555           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Makefile
1556           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Arrows/Makefile
1557           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Buttons/Makefile
1558           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Check-Radio/Makefile
1559           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Combo/Makefile
1560           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Frame-Gap/Makefile
1561           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Handles/Makefile
1562           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Lines/Makefile
1563           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/ListHeaders/Makefile
1564           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Menu-Menubar/Makefile
1565           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Others/Makefile
1566           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Panel/Makefile
1567           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/ProgressBar/Makefile
1568           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Range/Makefile
1569           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Scrollbars/Makefile
1570           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Shadows/Makefile
1571           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Spin/Makefile
1572           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Tabs/Makefile
1573           data/themes/gui-gtk-2.0/Freeciv/gtk-2.0/Toolbar/Makefile
1574           data/themes/gui-gtk-3.0/Makefile
1575           data/themes/gui-gtk-3.0/Freeciv/Makefile
1576           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Makefile
1577           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Arrows/Makefile
1578           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Buttons/Makefile
1579           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Check-Radio/Makefile
1580           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Combo/Makefile
1581           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Frame-Gap/Makefile
1582           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Handles/Makefile
1583           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Lines/Makefile
1584           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/ListHeaders/Makefile
1585           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Menu-Menubar/Makefile
1586           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Others/Makefile
1587           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Panel/Makefile
1588           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/ProgressBar/Makefile
1589           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Range/Makefile
1590           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Scrollbars/Makefile
1591           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Shadows/Makefile
1592           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Spin/Makefile
1593           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Tabs/Makefile
1594           data/themes/gui-gtk-3.0/Freeciv/gtk-3.0/Toolbar/Makefile
1595           data/themes/gui-qt/Makefile
1596           data/themes/gui-qt/icons/Makefile
1597           data/themes/gui-sdl/Makefile
1598           data/themes/gui-sdl/human/Makefile
1599           data/themes/gui-sdl2/Makefile
1600           data/themes/gui-sdl2/human/Makefile
1601           data/wonders/Makefile
1602           data/icons/Makefile
1603           utility/Makefile
1604           dependencies/Makefile
1605           dependencies/lua-5.3/Makefile
1606           dependencies/lua-5.3/src/Makefile
1607           dependencies/tolua-5.2/Makefile
1608           dependencies/tolua-5.2/src/Makefile
1609           dependencies/tolua-5.2/src/lib/Makefile
1610           dependencies/tolua-5.2/src/bin/Makefile
1611           dependencies/luasql/Makefile
1612           dependencies/luasql/src/Makefile
1613           dependencies/cvercmp/Makefile  
1614           common/Makefile
1615           common/aicore/Makefile
1616           common/scriptcore/Makefile
1617           ai/Makefile
1618           ai/default/Makefile
1619           ai/classic/Makefile
1620           ai/stub/Makefile
1621           ai/threaded/Makefile
1622           tests/Makefile
1623           win32/Makefile
1624           client/Makefile
1625           client/agents/Makefile
1626           client/include/Makefile
1627           client/gui-sdl/Makefile
1628           client/gui-sdl2/Makefile
1629           client/gui-gtk-2.0/Makefile
1630           client/gui-gtk-3.0/Makefile
1631           client/gui-xaw/Makefile
1632           client/gui-qt/Makefile
1633           client/gui-stub/Makefile
1634           client/luascript/Makefile
1635           server/Makefile
1636           server/advisors/Makefile
1637           server/generator/Makefile
1638           server/scripting/Makefile
1639           tools/Makefile
1640           tools/ruledit/Makefile
1641           gen_headers/Makefile
1642           translations/Makefile
1643           translations/freeciv/Makefile.in
1644           translations/nations/Makefile.in
1645           translations/ruledit/Makefile.in
1646           doc/Makefile
1647           doc/man/Makefile
1648           doc/man/freeciv-client.6
1649           doc/man/freeciv-server.6
1650           doc/man/freeciv-manual.6
1651           doc/man/freeciv-modpack.6
1652           doc/man/freeciv-ruledit.6
1653           doc/ca/Makefile
1654           doc/de/Makefile
1655           doc/fr/Makefile
1656           doc/it/Makefile
1657           doc/ja/Makefile
1658           doc/nl/Makefile
1659           doc/sv/Makefile
1660           bootstrap/Makefile
1661           data/Freeciv
1662           lua/Makefile
1663           client/freeciv.desktop:bootstrap/freeciv.desktop.in
1664           client/freeciv-gtk2.desktop:bootstrap/freeciv-gtk2.desktop.in
1665           client/freeciv-sdl.desktop:bootstrap/freeciv-sdl.desktop.in
1666           client/freeciv-sdl2.desktop:bootstrap/freeciv-sdl2.desktop.in
1667           client/freeciv-qt.desktop:bootstrap/freeciv-qt.desktop.in
1668           server/freeciv-server.desktop:bootstrap/freeciv-server.desktop.in
1669           tools/freeciv-mp-gtk3.desktop:bootstrap/freeciv-mp-gtk3.desktop.in
1670           tools/freeciv-mp-gtk2.desktop:bootstrap/freeciv-mp-gtk2.desktop.in
1671           tools/freeciv-mp-qt.desktop:bootstrap/freeciv-mp-qt.desktop.in
1672           tools/ruledit/freeciv-ruledit.desktop:bootstrap/freeciv-ruledit.desktop.in
1673           client/freeciv-gtk2.appdata.xml:bootstrap/freeciv-gtk2.appdata.xml.in
1674           client/freeciv-gtk3.appdata.xml:bootstrap/freeciv-gtk3.appdata.xml.in
1675           client/freeciv-sdl.appdata.xml:bootstrap/freeciv-sdl.appdata.xml.in
1676           client/freeciv-sdl2.appdata.xml:bootstrap/freeciv-sdl2.appdata.xml.in
1677           client/freeciv-qt.appdata.xml:bootstrap/freeciv-qt.appdata.xml.in
1678           server/freeciv-server.appdata.xml:bootstrap/freeciv-server.appdata.xml.in
1679           tools/freeciv-mp-gtk2.appdata.xml:bootstrap/freeciv-mp-gtk2.appdata.xml.in
1680           tools/freeciv-mp-gtk3.appdata.xml:bootstrap/freeciv-mp-gtk3.appdata.xml.in
1681           tools/freeciv-mp-qt.appdata.xml:bootstrap/freeciv-mp-qt.appdata.xml.in
1682           tools/ruledit/freeciv-ruledit.appdata.xml:bootstrap/freeciv-ruledit.appdata.xml.in])
1683 AC_CONFIG_FILES([fcgui:bootstrap/fcgui.in], [chmod +x fcgui])
1684 AC_CONFIG_FILES([fcser:bootstrap/fcser.in], [chmod +x fcser])
1685 if test "x$ruledit" = "xyes" ; then
1686   AC_CONFIG_FILES([fcruledit:bootstrap/fcruledit.in], [chmod +x fcruledit])
1689 AC_OUTPUT
1691 AC_MSG_NOTICE([
1692 ****************** Configuration Summary ******************
1694   == General build options ==
1695   Shared libraries:      $enable_shared
1696   Debugging support:     $enable_debug
1697   Profiling support:     $enable_gprof
1698   IPv6 support:          $enable_ipv6
1699   Map image toolkits:    $enable_mapimg
1700     ppm:                   built-in
1701     MagickWand:            $mapimg_magickwand
1703   == Client ==
1704   Build freeciv client:  $client
1706   Maintained client frontends:
1707     Gtk-3.0: $gui_gtk3
1708     Gtk-2.0: $gui_gtk2
1709     SDL:     $gui_sdl
1710     QT:      $gui_qt
1711     Stub:    $gui_stub
1713   In-development client frontends:
1714   (these are not yet ready for general use)
1715     SDL2:    $gui_sdl2
1717   Not maintained client frontends:
1718     Xaw:     $gui_xaw
1720   == Server ==
1721   Build freeciv server:  $server
1722     AI modules support:    $enable_aimodules
1723     Database support:      $enable_fcdb
1724       mysql:                 $fcdb_mysql
1725       postgres:              $fcdb_postgres
1726       sqlite3:               $fcdb_sqlite3
1728   == Tools ==
1729   Modpack installers:   $fcmp_list
1730   Ruleset editor:        $ruledit
1731   Manual generator:      $fcmanual
1734 FC_MISSING_FEATURES