1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT(hengband, 3.0.0.0)
4 AC_CONFIG_MACRO_DIRS([m4])
5 AC_CONFIG_HEADERS(src/autoconf.h)
6 AC_CONFIG_SRCDIR(src/main.cpp)
10 [ --with-setgid=NAME install hengband as group NAME],
13 yes) AC_MSG_ERROR(missing argument for --with-setgid);;
14 *) GAMEGROUP="$withval";;
17 AM_CONDITIONAL(SET_GID, test "$GAMEGROUP" != "")
19 dnl generate the installation path for the ./lib/ folder
20 if test "$GAMEGROUP" != ""; then
21 MY_EXPAND_DIR(game_libpath, "$datarootdir/games/$PACKAGE/lib/")
23 MY_EXPAND_DIR(game_libpath, "./lib/")
27 dnl overwrite the path with an user-specified value
29 [ --with-libpath=path specify the path to the Hengband lib folder],
30 [game_libpath="$withval"])
33 [ --with-varpath=path specify the path to the Hengband var folder],
34 [game_varpath="$withval"],
35 [game_varpath="$game_libpath"])
37 AC_DEFINE_UNQUOTED(DEFAULT_LIB_PATH, "$game_libpath", [Path to the Hengband lib folder])
38 DEFAULT_LIB_PATH="$game_libpath"
39 AC_SUBST(DEFAULT_LIB_PATH)
41 AC_DEFINE_UNQUOTED(DEFAULT_VAR_PATH, "$game_varpath", [Path to the Hengband var folder])
42 DEFAULT_VAR_PATH="$game_varpath"
43 AC_SUBST(DEFAULT_VAR_PATH)
45 dnl Checks for programs.
48 AX_CXX_COMPILE_STDCXX(17, [ext], [mandatory])
51 AC_ARG_ENABLE(japanese,
52 [ --disable-japanese build english version], use_japanese=no, [AC_DEFINE(JP, 1, [Enable Japanese]) AC_DEFINE(EUC, 1, [Use Extended Unix Code])])
55 [ --disable-xim disable xim support], use_xim=no, use_xim=yes)
56 AC_ARG_ENABLE(fontset,
57 [ --disable-fontset disable fontset support], use_fontset=no, use_fontset=yes)
59 AS_HELP_STRING([--enable-xft], [Enable xft support]))
60 AC_ARG_ENABLE(worldscore,
61 [ --disable-worldscore disable worldscore support], worldscore=no)
62 AC_ARG_ENABLE(chuukei,
63 [ --enable-chuukei enable internet chuukei support], AC_DEFINE(CHUUKEI, 1, [Chuukei mode]))
64 AC_ARG_ENABLE([cocoa],
65 [ --enable-cocoa enable a Cocoa user interface (OS X only)],
66 AC_DEFINE([MACH_O_COCOA], [1], [Use a Cocoa interface (OS X only)]), [])
67 AM_CONDITIONAL([COCOA], [test x$enable_cocoa = xyes])
68 dnl Since AC_PROG_OBJCXX has the side effect of setting this conditional,
69 dnl guarantee that is is always set, regardless of what happens in the if
71 AM_CONDITIONAL([am__fastdepOBJCXX], false)
72 if test x"$enable_cocoa" = xyes ; then
73 dnl Use AC_LANG_PUSH and AC_LANG_POP to try to get back to the state that
74 dnl AC_LANG_C set in case there are side effects.
75 AC_LANG_PUSH([Objective C++])
77 AC_LANG_POP([Objective C++])
78 AC_DEFINE(SAFE_DIRECTORY, 1, [Mark var directory with version string])
79 AC_DEFINE(VERSION_STRING, "3.0.0", [Version string to use for var directory])
82 [ --disable-pch disable use of precompiled headers],
83 enable_pch=no, enable_pch=yes)
84 AM_CONDITIONAL([PCH], [test x$enable_pch = xyes])
86 dnl Checks for libraries.
87 dnl Replace `main' with a function in -lncurses:
88 if test x"$enable_cocoa" != xyes ; then
89 AC_CHECK_LIB(ncursesw, initscr, [AC_DEFINE(USE_GCU, 1, [Allow -mGCU environment]) AC_DEFINE(USE_NCURSES, 1, [Use ncurses]) LIBS="$LIBS -lncursesw"])
90 if test "$ac_cv_lib_ncursesw_initscr" != yes; then
91 AC_CHECK_LIB(ncurses, initscr, [AC_DEFINE(USE_GCU, 1, [Allow -mGCU environment]) AC_DEFINE(USE_NCURSES, 1, [Use ncurses]) LIBS="$LIBS -lncurses"])
92 if test "$ac_cv_lib_ncurses_initscr" != yes; then
93 AC_CHECK_LIB(curses, initscr, [AC_DEFINE(USE_GCU, 1, [Allow -mGCU environment]) LIBS="$LIBS -lcurses"])
94 if test "$ac_cv_lib_curses_initscr" != yes; then
95 AC_CHECK_LIB(termcap, tgetent, [AC_DEFINE(USE_CAP, 1, [Allow -mCAP environment]) LIBS="$LIBS -ltermcap"])
101 AC_CHECK_LIB(iconv, iconv_open)
103 dnl The world score server is currently only available in Japanese.
104 if test "$use_japanese" = no; then
107 if test "$worldscore" != no; then
108 PKG_CHECK_MODULES([libcurl], [libcurl], [true], [
109 AC_SEARCH_LIBS([curl_global_init], [curl curl-gnutls curl-nss], [true], [AC_MSG_ERROR([libcurl is necessary for posting scores])])])
110 AC_DEFINE(WORLD_SCORE, 1, [Allow the game to send scores to the score server])
113 dnl Checks for header files.
114 dnl AC_PATH_XTRA has side effects on CPP which are beneficial on Mac OS X.
115 dnl Removing it or conditionally executing it will likely lead to warnings
116 dnl on that platform about the preprocessor disagreeing with the compiler on
117 dnl the tests in AC_CHECK_HEADERS.
119 AS_IF([test "$have_x" = yes && test x"$enable_cocoa" != xyes], [
121 AC_DEFINE(USE_X11, 1, [Allow -mX11 environment])
122 CFLAGS="$X_CFLAGS $CFLAGS"
123 LDFLAGS="$X_LIBS $LDFLAGS"
125 if test "$use_fontset" = yes; then
126 AC_DEFINE(USE_FONTSET, 1, [Use FontSet])
128 if test "$use_japanese" != no; then
129 AC_DEFINE(USE_JP_FONTSTRUCT, 1, [Use Kanji without FontSet])
133 if test "$use_xim" = yes; then
134 AC_DEFINE(USE_XIM, 1, [Use X Imput Method])
137 if test "$use_fontset" = yes || test "$use_xim" = yes; then
138 AC_DEFINE(USE_LOCALE, 1, [Support Locale])
139 if test "$use_japanese" != no; then
140 AC_DEFINE(DEFAULT_LOCALE, "ja_JP.eucJP", Default Japanese Locale)
142 AC_CHECK_LIB(X11, _Xsetlocale, AC_DEFINE(X_LOCALE, 1, [Use XLocale]))
143 AC_CHECK_LIB(xpg4, setlocale, LIBS="$LIBS -lxpg4")
146 AS_IF([test "x$enable_xft" = "xyes"], [
147 PKG_CHECK_MODULES(XFT, [xft],
148 [AC_DEFINE([USE_XFT], [1], [Use XFT])])
152 if test "$use_japanese" != no; then
153 AC_CHECK_PROG(NKF, nkf, yes)
154 if test x"$NKF" != x"yes"; then
155 AC_MSG_ERROR([nkf is not found. Please install nkf.])
159 AC_CHECK_HEADERS(fcntl.h sys/file.h sys/ioctl.h sys/time.h termio.h unistd.h stdint.h)
161 dnl Checks for typedefs, structures, and compiler characteristics.
167 dnl Checks for library functions.
168 AC_PROG_GCC_TRADITIONAL
172 AC_CHECK_FUNCS(gethostname mkdir select socket strtol vsnprintf mkstemp usleep)
174 AC_CONFIG_FILES(Makefile src/Makefile lib/Makefile lib/apex/Makefile lib/bone/Makefile lib/data/Makefile lib/edit/Makefile lib/edit/quests/Makefile lib/edit/towns/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)