OSDN Git Service

Merge branch 'master' of https://github.com/hengband/hengband
[hengbandforosx/hengbandosx.git] / configure.ac
index cd180dc..f2f60b1 100644 (file)
@@ -1,8 +1,8 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT(hengband, 2.2.1.7)
+AC_INIT(hengband, 3.0.0.0)
 
 AC_CONFIG_HEADERS(src/autoconf.h)
-AC_CONFIG_SRCDIR(src/main.c)
+AC_CONFIG_SRCDIR(src/main.cpp)
 AM_INIT_AUTOMAKE
 
 AC_ARG_WITH(setgid,
@@ -15,14 +15,12 @@ esac])
 AC_SUBST(GAMEGROUP)
 AM_CONDITIONAL(SET_GID, test "$GAMEGROUP" != "")
 
-AC_LANG_C
-
 dnl generate the installation path for the ./lib/ folder
 if test "$GAMEGROUP" != ""; then
   MY_EXPAND_DIR(game_libpath, "$datadir/games/$PACKAGE/lib/")
 else
   MY_EXPAND_DIR(game_libpath, "./lib/")
-  bindir="`pwd`"
+  bindir=".."
 fi
 
 dnl overwrite the path with an user-specified value
@@ -44,7 +42,14 @@ DEFAULT_VAR_PATH="$game_varpath"
 AC_SUBST(DEFAULT_VAR_PATH)
 
 dnl Checks for programs.
-AC_PROG_CC
+AC_LANG(C++)
+AC_PROG_CXX
+m4_ifdef([AX_CXX_COMPILE_STDCXX_17], [
+  AX_CXX_COMPILE_STDCXX_17
+], [
+  AC_MSG_ERROR([AX_CXX_COMPILE_STDCXX_17 macro is not defined. You need to install autoconf-archive.])
+])
+PKG_PROG_PKG_CONFIG
 
 AC_ARG_ENABLE(japanese,
 [  --disable-japanese      build english version], use_japanese=no, [AC_DEFINE(JP, 1, [Enable Japanese]) AC_DEFINE(EUC, 1, [Use Extended Unix Code])])
@@ -53,54 +58,44 @@ AC_ARG_ENABLE(xim,
 [  --disable-xim           disable xim support], use_xim=no, use_xim=yes)
 AC_ARG_ENABLE(fontset,
 [  --disable-fontset       disable fontset support], use_fontset=no, use_fontset=yes)
+AC_ARG_ENABLE([xft],
+       AS_HELP_STRING([--enable-xft], [Enable xft support]))
 AC_ARG_ENABLE(worldscore,
-[  --disable-worldscore    disable worldscore support], ,AC_DEFINE(WORLD_SCORE, 1, [Allow the game to send scores to the score server]))
+[  --disable-worldscore    disable worldscore support], worldscore=no)
 AC_ARG_ENABLE(chuukei,
 [  --enable-chuukei        enable internet chuukei support], AC_DEFINE(CHUUKEI, 1, [Chuukei mode]))
-AC_ARG_ENABLE([cocoa],
-[  --enable-cocoa          enable a Cocoa user interface (OS X only)],
-AC_DEFINE([MACH_O_COCOA], [1], [Use a Cocoa interface (OS X only)]), [])
-AM_CONDITIONAL([COCOA], [test x$enable_cocoa = xyes])
-dnl Since AC_PROG_OBJC has the side effect of setting this conditional,
-dnl guarantee that is is always set, regardless of what happens in the if
-dnl statement.
-AM_CONDITIONAL([am__fastdepOBJC], false)
-if test x"$enable_cocoa" = xyes ; then
-  dnl Use AC_LANG_PUSH and AC_LANG_POP to try to get back to the state that
-  dnl AC_LANG_C set in case there are side effects.
-  AC_LANG_PUSH([Objective C])
-  AC_PROG_OBJC
-  AC_LANG_POP([Objective C])
-  AC_DEFINE(SAFE_DIRECTORY, 1, [Mark var directory with version string])
-  AC_DEFINE(VERSION_STRING, "2.2.1", [Version string to use for var directory])
-fi
+AC_ARG_ENABLE([pch],
+[  --disable-pch           disable use of precompiled headers],
+enable_pch=no, enable_pch=yes)
+AM_CONDITIONAL([PCH], [test x$enable_pch = xyes])
 
 dnl Checks for libraries.
 dnl Replace `main' with a function in -lncurses:
-if test x"$enable_cocoa" != xyes ; then
-  AC_CHECK_LIB(ncursesw, initscr, [AC_DEFINE(USE_GCU, 1, [Allow -mGCU environment]) AC_DEFINE(USE_NCURSES, 1, [Use ncurses]) LIBS="$LIBS -lncursesw"])
-  if test "$ac_cv_lib_ncursesw_initscr" != yes; then
-    AC_CHECK_LIB(ncurses, initscr, [AC_DEFINE(USE_GCU, 1, [Allow -mGCU environment]) AC_DEFINE(USE_NCURSES, 1, [Use ncurses]) LIBS="$LIBS -lncurses"])
-    if test "$ac_cv_lib_ncurses_initscr" != yes; then
-      AC_CHECK_LIB(curses, initscr, [AC_DEFINE(USE_GCU, 1, [Allow -mGCU environment]) LIBS="$LIBS -lcurses"])
-      if test "$ac_cv_lib_curses_initscr" != yes; then
-        AC_CHECK_LIB(termcap, tgetent, [AC_DEFINE(USE_CAP, 1, [Allow -mCAP environment]) LIBS="$LIBS -ltermcap"])
-      fi
+AC_CHECK_LIB(ncursesw, initscr, [AC_DEFINE(USE_GCU, 1, [Allow -mGCU environment]) AC_DEFINE(USE_NCURSES, 1, [Use ncurses]) LIBS="$LIBS -lncursesw"])
+if test "$ac_cv_lib_ncursesw_initscr" != yes; then
+  AC_CHECK_LIB(ncurses, initscr, [AC_DEFINE(USE_GCU, 1, [Allow -mGCU environment]) AC_DEFINE(USE_NCURSES, 1, [Use ncurses]) LIBS="$LIBS -lncurses"])
+  if test "$ac_cv_lib_ncurses_initscr" != yes; then
+    AC_CHECK_LIB(curses, initscr, [AC_DEFINE(USE_GCU, 1, [Allow -mGCU environment]) LIBS="$LIBS -lcurses"])
+    if test "$ac_cv_lib_curses_initscr" != yes; then
+      AC_CHECK_LIB(termcap, tgetent, [AC_DEFINE(USE_CAP, 1, [Allow -mCAP environment]) LIBS="$LIBS -ltermcap"])
     fi
   fi
 fi
 
 AC_CHECK_LIB(iconv, iconv_open)
 
-AC_CHECK_FILE(/dev/urandom, AC_DEFINE(RNG_DEVICE, "/dev/urandom", [Random Number Generation device file]))
+dnl The world score server is currently only available in Japanese.
+if test "$use_japanese" = no; then
+  worldscore=no
+fi
+if test "$worldscore" != no; then
+  PKG_CHECK_MODULES(libcurl, [libcurl])
+  AC_DEFINE(WORLD_SCORE, 1, [Allow the game to send scores to the score server])
+fi
 
 dnl Checks for header files.
-dnl AC_PATH_XTRA has side effects on CPP which are beneficial on Mac OS X.
-dnl Removing it or conditionally executing it will likely lead to warnings
-dnl on that platform about the preprocessor disagreeing with the compiler on
-dnl the tests in AC_CHECK_HEADERS.
 AC_PATH_XTRA
-if test "$have_x" = yes && test x"$enable_cocoa" != xyes ; then
+if test "$have_x" = yes; then
   LIBS="$LIBS -lX11"
   AC_DEFINE(USE_X11, 1, [Allow -mX11 environment])
   CFLAGS="$X_CFLAGS $CFLAGS"
@@ -126,6 +121,11 @@ if test "$have_x" = yes && test x"$enable_cocoa" != xyes ; then
     AC_CHECK_LIB(X11, _Xsetlocale, AC_DEFINE(X_LOCALE, 1, [Use XLocale]))
     AC_CHECK_LIB(xpg4, setlocale, LIBS="$LIBS -lxpg4")
   fi
+
+  AS_IF([test "x$enable_xft" = "xyes"], [
+    PKG_CHECK_MODULES(XFT, [xft],
+      [AC_DEFINE([USE_XFT], [1], [Use XFT])])
+  ])
 fi
 
 if test "$use_japanese" != no; then
@@ -135,22 +135,20 @@ if test "$use_japanese" != no; then
   fi
 fi
 
-AC_HEADER_STDC
-AC_CHECK_HEADERS(fcntl.h strings.h sys/file.h sys/ioctl.h sys/time.h termio.h unistd.h stdint.h)
+AC_CHECK_HEADERS(fcntl.h sys/file.h sys/ioctl.h sys/time.h termio.h unistd.h stdint.h)
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 AC_TYPE_PID_T
 AC_TYPE_SIZE_T
-AC_HEADER_TIME
 AC_STRUCT_TM
 
 dnl Checks for library functions.
 AC_PROG_GCC_TRADITIONAL
 AC_FUNC_MEMCMP
-AC_TYPE_SIGNAL
 AC_FUNC_STRFTIME
 AC_FUNC_VPRINTF
 AC_CHECK_FUNCS(gethostname mkdir select socket strtol vsnprintf mkstemp usleep)
 
-AC_OUTPUT(Makefile src/Makefile lib/Makefile lib/apex/Makefile lib/bone/Makefile lib/data/Makefile lib/edit/Makefile lib/file/Makefile lib/help/Makefile lib/info/Makefile lib/pref/Makefile lib/save/Makefile lib/script/Makefile lib/user/Makefile lib/xtra/Makefile lib/xtra/font/Makefile lib/xtra/graf/Makefile lib/xtra/music/Makefile lib/xtra/sound/Makefile)
+AC_CONFIG_FILES(Makefile src/Makefile lib/Makefile lib/apex/Makefile lib/bone/Makefile lib/data/Makefile lib/edit/Makefile lib/file/Makefile lib/help/Makefile lib/info/Makefile lib/pref/Makefile lib/save/Makefile lib/script/Makefile lib/user/Makefile lib/xtra/Makefile lib/xtra/graf/Makefile lib/xtra/music/Makefile lib/xtra/sound/Makefile)
+AC_OUTPUT()