OSDN Git Service

Merge branch 'develop' into macos-develop
[hengbandforosx/hengbandosx.git] / configure.ac
1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT(hengband, 3.0.0.0)
3
4 AC_CONFIG_MACRO_DIRS([m4])
5 AC_CONFIG_HEADERS(src/autoconf.h)
6 AC_CONFIG_SRCDIR(src/main.cpp)
7 AM_INIT_AUTOMAKE
8
9 AC_ARG_WITH(setgid,
10 [  --with-setgid=NAME      install hengband as group NAME],
11 [case "${withval}" in
12   no) GAMEGROUP="";;
13   yes) AC_MSG_ERROR(missing argument for --with-setgid);;
14   *) GAMEGROUP="$withval";;
15 esac])
16 AC_SUBST(GAMEGROUP)
17 AM_CONDITIONAL(SET_GID, test "$GAMEGROUP" != "")
18
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/")
22 else
23   MY_EXPAND_DIR(game_libpath, "./lib/")
24   bindir="`pwd`"
25 fi
26
27 dnl overwrite the path with an user-specified value
28 AC_ARG_WITH(libpath,
29 [  --with-libpath=path     specify the path to the Hengband lib folder],
30 [game_libpath="$withval"])
31
32 AC_ARG_WITH(varpath,
33 [  --with-varpath=path     specify the path to the Hengband var folder],
34 [game_varpath="$withval"],
35 [game_varpath="$game_libpath"])
36
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)
40
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)
44
45 dnl Checks for programs.
46 AC_LANG(C++)
47 AC_PROG_CXX
48 AX_CXX_COMPILE_STDCXX(17, [ext], [mandatory])
49 PKG_PROG_PKG_CONFIG
50
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])])
53
54 AC_ARG_ENABLE(xim,
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)
58 AC_ARG_ENABLE([xft],
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
70 dnl statement.
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++])
76   AC_PROG_OBJCXX
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])
80 fi
81 AC_ARG_ENABLE([pch],
82 [  --disable-pch           disable use of precompiled headers],
83 enable_pch=no, enable_pch=yes)
84 AM_CONDITIONAL([PCH], [test x$enable_pch = xyes])
85
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"])
96       fi
97     fi
98   fi
99 fi
100
101 AC_CHECK_LIB(iconv, iconv_open)
102
103 dnl The world score server is currently only available in Japanese.
104 if test "$use_japanese" = no; then
105   worldscore=no
106 fi
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])
111 fi
112
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.
118 AC_PATH_XTRA
119 AS_IF([test "$have_x" = yes && test x"$enable_cocoa" != xyes], [
120   LIBS="$LIBS -lX11"
121   AC_DEFINE(USE_X11, 1, [Allow -mX11 environment])
122   CFLAGS="$X_CFLAGS $CFLAGS"
123   LDFLAGS="$X_LIBS $LDFLAGS"
124
125   if test "$use_fontset" = yes; then
126     AC_DEFINE(USE_FONTSET, 1, [Use FontSet])
127   else
128     if test "$use_japanese" != no; then
129       AC_DEFINE(USE_JP_FONTSTRUCT, 1, [Use Kanji without FontSet])
130     fi
131   fi
132
133   if test "$use_xim" = yes; then
134     AC_DEFINE(USE_XIM, 1, [Use X Imput Method])
135   fi
136
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)
141     fi
142     AC_CHECK_LIB(X11, _Xsetlocale, AC_DEFINE(X_LOCALE, 1, [Use XLocale]))
143     AC_CHECK_LIB(xpg4, setlocale, LIBS="$LIBS -lxpg4")
144   fi
145
146   AS_IF([test "x$enable_xft" = "xyes"], [
147     PKG_CHECK_MODULES(XFT, [xft],
148       [AC_DEFINE([USE_XFT], [1], [Use XFT])])
149   ])
150 ])
151
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.])
156   fi
157 fi
158
159 AC_CHECK_HEADERS(fcntl.h sys/file.h sys/ioctl.h sys/time.h termio.h unistd.h stdint.h)
160
161 dnl Checks for typedefs, structures, and compiler characteristics.
162 AC_C_CONST
163 AC_TYPE_PID_T
164 AC_TYPE_SIZE_T
165 AC_STRUCT_TM
166
167 dnl Checks for library functions.
168 AC_PROG_GCC_TRADITIONAL
169 AC_FUNC_MEMCMP
170 AC_FUNC_STRFTIME
171 AC_FUNC_VPRINTF
172 AC_CHECK_FUNCS(gethostname mkdir select socket strtol vsnprintf mkstemp usleep)
173
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)
175 AC_OUTPUT()