1# Source of configuration for Tokyo Tyrant 2 3 4 5#================================================================ 6# Generic Settings 7#================================================================ 8 9# Package name 10AC_INIT(tokyotyrant, 1.1.41) 11 12# Package information 13MYLIBVER=3 14MYLIBREV=24 15MYPROTVER="0.91" 16 17# Targets 18MYHEADERFILES="ttutil.h tculog.h tcrdb.h" 19MYLIBRARYFILES="libtokyotyrant.a" 20MYLIBOBJFILES="ttutil.o tculog.o tcrdb.o myconf.o" 21MYCOMMANDFILES="ttserver ttulmgr ttultest tcrtest tcrmttest tcrmgr" 22MYINITFILES="ttservctl" 23MYMAN1FILES="ttserver.1 ttulmgr.1 ttultest.1 tcrtest.1 tcrmttest.1 tcrmgr.1" 24MYMAN3FILES="ttutil.3 tculog.3 tcrdb.3" 25MYMAN8FILES="ttservctl.8" 26MYSCREXTFILES="ext" 27MYDOCUMENTFILES="COPYING ChangeLog THANKS doc tokyotyrant.idl" 28MYPCFILES="tokyotyrant.pc" 29 30# Building flags 31MYCFLAGS="-std=c99 -Wall -fPIC -fsigned-char -O2" 32MYCPPFLAGS="-I. -I\$(INCLUDEDIR) -I$HOME/include -I/usr/local/include" 33MYCPPFLAGS="$MYCPPFLAGS -DNDEBUG -D_GNU_SOURCE=1 -D_REENTRANT -D__EXTENSIONS__" 34MYLDFLAGS="-L. -L\$(LIBDIR) -L$HOME/lib -L/usr/local/lib" 35MYCMDLDFLAGS="" 36MYRUNPATH="\$(LIBDIR)" 37MYLDLIBPATHENV="LD_LIBRARY_PATH" 38MYPOSTCMD="true" 39 40# Building paths 41PATH="$PATH:$HOME/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" 42PATH="$PATH:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/xpg4/bin:/usr/xpg6/bin:/usr/ucb" 43CPATH="$HOME/include:/usr/local/include:$CPATH" 44LIBRARY_PATH="$HOME/lib:/usr/local/lib:$LIBRARY_PATH" 45LD_LIBRARY_PATH="$HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH" 46PKG_CONFIG_PATH="$HOME/lib/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" 47export PATH CPATH LIBRARY_PATH LD_LIBRARY_PATH PKG_CONFIG_PATH 48if type pkg-config > /dev/null 2>&1 49then 50 PATH="$PATH:`pkg-config --variable=bindir tokyocabinet`" 51 CPATH="$CPATH:`pkg-config --variable=includedir tokyocabinet`" 52 LIBRARY_PATH="$LIBRARY_PATH:`pkg-config --variable=libdir tokyocabinet`" 53 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:`pkg-config --variable=libdir tokyocabinet`" 54fi 55 56 57 58#================================================================ 59# Options 60#================================================================ 61 62 63# Internal variables 64enables="" 65 66# Debug mode 67AC_ARG_ENABLE(debug, 68 AC_HELP_STRING([--enable-debug], [build for debugging])) 69if test "$enable_debug" = "yes" 70then 71 MYCFLAGS="-std=c99 -Wall -fPIC -pedantic -fsigned-char -g -O0" 72 MYCPPFLAGS="$MYCPPFLAGS -UNDEBUG" 73 MYCMDLDFLAGS="$MYCMDLDFLAGS -static" 74 enables="$enables (debug)" 75fi 76 77# Developping mode 78AC_ARG_ENABLE(devel, 79 AC_HELP_STRING([--enable-devel], [build for development])) 80if test "$enable_devel" = "yes" 81then 82 MYCFLAGS="-std=c99 -Wall -fPIC -pedantic -fsigned-char -g -O2 -pipe" 83 MYCPPFLAGS="$MYCPPFLAGS -UNDEBUG" 84 enables="$enables (devel)" 85fi 86 87# Profiling mode 88AC_ARG_ENABLE(profile, 89 AC_HELP_STRING([--enable-profile], [build for profiling])) 90if test "$enable_profile" = "yes" 91then 92 MYCFLAGS="-std=c99 -Wall -fPIC -pedantic -fsigned-char -g -pg -O2 -pipe" 93 enables="$enables (profile)" 94fi 95 96# Static mode 97AC_ARG_ENABLE(static, 98 AC_HELP_STRING([--enable-static], [build by static linking])) 99if test "$enable_static" = "yes" 100then 101 MYCMDLDFLAGS="$MYCMDLDFLAGS -static" 102 enables="$enables (static)" 103fi 104 105# Disable shared object 106AC_ARG_ENABLE(shared, 107 AC_HELP_STRING([--disable-shared], [avoid to build shared libraries])) 108if test "$enable_shared" = "no" 109then 110 enables="$enables (no-shared)" 111fi 112 113# Enable Lua extension 114AC_ARG_ENABLE(lua, 115 AC_HELP_STRING([--enable-lua], [build with Lua extension])) 116if test "$enable_lua" = "yes" 117then 118 enables="$enables (lua)" 119 luaver=`lua -e 'v = string.gsub(_VERSION, ".* ", ""); print(v)'` 120 MYCPPFLAGS="$MYCPPFLAGS -I/usr/include/lua$luaver -I/usr/local/include/lua$luaver" 121 MYCPPFLAGS="$MYCPPFLAGS -I/usr/include/lua -I/usr/local/include/lua -D_MYLUA" 122 MYLDFLAGS="$MYLDFLAGS -L/usr/include/lua$luaver -L/usr/local/include/lua$luaver" 123 MYLDFLAGS="$MYLDFLAGS -L/usr/include/lua -L/usr/local/include/lua" 124 CPATH="$CPATH:/usr/include/lua$luaver:/usr/local/include/lua$luaver" 125 CPATH="$CPATH:/usr/include/lua:/usr/local/include/lua" 126 LIBRARY_PATH="$LIBRARY_PATH:/usr/lib/lua$luaver:/usr/local/lib/lua$luaver" 127 LIBRARY_PATH="$LIBRARY_PATH:/usr/lib/lua:/usr/local/lib/lua" 128 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/include/lua$luaver:/usr/local/include/lua$luaver" 129 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/include/lua:/usr/local/include/lua" 130fi 131 132# Specify the installation path of Tokyo Cabinet 133AC_ARG_WITH(tc, 134 AC_HELP_STRING([--with-tc=DIR], [search DIR/include and DIR/lib for Tokyo Cabinet])) 135if test -n "$with_tc" 136then 137 MYCPPFLAGS="$MYCPPFLAGS -I$with_tc/include" 138 MYLDFLAGS="$MYLDFLAGS -L$with_tc/lib" 139 MYRUNPATH="$MYRUNPATH:$with_tc/lib" 140 CPATH="$CPATH:$with_tc/include" 141 LIBRARY_PATH="$LIBRARY_PATH:$with_tc/lib" 142 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$with_tc/lib" 143fi 144 145# Specify the installation path of ZLIB 146AC_ARG_WITH(zlib, 147 AC_HELP_STRING([--with-zlib=DIR], [search DIR/include and DIR/lib for ZLIB])) 148if test -n "$with_zlib" 149then 150 MYCPPFLAGS="$MYCPPFLAGS -I$with_zlib/include" 151 MYLDFLAGS="$MYLDFLAGS -L$with_zlib/lib" 152 MYRUNPATH="$MYRUNPATH:$with_zlib/lib" 153 CPATH="$CPATH:$with_zlib/include" 154 LIBRARY_PATH="$LIBRARY_PATH:$with_zlib/lib" 155 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$with_zlib/lib" 156fi 157 158# Specify the installation path of BZIP2 159AC_ARG_WITH(bzip, 160 AC_HELP_STRING([--with-bzip=DIR], [search DIR/include and DIR/lib for BZIP2])) 161if test -n "$with_bzip" 162then 163 MYCPPFLAGS="$MYCPPFLAGS -I$with_bzip/include" 164 MYLDFLAGS="$MYLDFLAGS -L$with_bzip/lib" 165 MYRUNPATH="$MYRUNPATH:$with_bzip/lib" 166 CPATH="$CPATH:$with_bzip/include" 167 LIBRARY_PATH="$LIBRARY_PATH:$with_bzip/lib" 168 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$with_bzip/lib" 169fi 170 171# Specify the installation path of Lua 172AC_ARG_WITH(lua, 173 AC_HELP_STRING([--with-lua=DIR], [search DIR/include and DIR/lib for Lua])) 174if test -n "$with_lua" 175then 176 MYCPPFLAGS="$MYCPPFLAGS -I$with_lua/include" 177 MYLDFLAGS="$MYLDFLAGS -L$with_lua/lib" 178 MYRUNPATH="$MYRUNPATH:$with_lua/lib" 179 CPATH="$CPATH:$with_lua/include" 180 LIBRARY_PATH="$LIBRARY_PATH:$with_lua/lib" 181 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$with_lua/lib" 182fi 183 184# Messages 185printf '#================================================================\n' 186printf '# Configuring Tokyo Tyrant version %s%s.\n' "$PACKAGE_VERSION" "$enables" 187printf '#================================================================\n' 188 189 190 191#================================================================ 192# Checking Commands and Libraries 193#================================================================ 194 195# C compiler 196AC_PROG_CC 197 198# Reset variables 199if test "$GCC" != "yes" 200then 201 AC_MSG_WARN([another compiler except for GCC was detected]) 202 MYCFLAGS="" 203fi 204test -n "$CFLAGS" && MYCFLAGS="$CFLAGS $MYCFLAGS" 205test -n "$CPPFLAGS" && MYCPPFLAGS="$CPPFLAGS $MYCPPFLAGS" 206test -n "$LDFLAGS" && MYLDFLAGS="$LDFLAGS $MYLDFLAGS" 207 208# Byte order 209AC_C_BIGENDIAN(MYCPPFLAGS="$MYCPPFLAGS -D_MYBIGEND") 210 211# Underlying libraries 212AC_CHECK_LIB(c, main) 213AC_CHECK_LIB(m, main) 214AC_CHECK_LIB(pthread, main) 215AC_CHECK_LIB(rt, main) 216AC_CHECK_LIB(dl, main) 217AC_CHECK_LIB(nsl, main) 218AC_CHECK_LIB(socket, main) 219AC_CHECK_LIB(resolv, main) 220AC_CHECK_LIB(z, main) 221AC_CHECK_LIB(bz2, main) 222AC_CHECK_LIB(tokyocabinet, main) 223if test "$enable_lua" = "yes" 224then 225 AC_CHECK_LIB(lua, main) 226 AC_CHECK_LIB(lua$luaver, main) 227fi 228AC_CHECK_LIB(tokyotyrant, main, AC_MSG_WARN([old version of Tokyo Tyrant was detected])) 229 230# Necessary headers 231AC_CHECK_HEADER(stdlib.h, true, AC_MSG_ERROR([stdlib.h is required])) 232AC_CHECK_HEADER(stdint.h, true, AC_MSG_ERROR([stdint.h is required])) 233AC_CHECK_HEADER(unistd.h, true, AC_MSG_ERROR([unistd.h is required])) 234AC_CHECK_HEADER(pthread.h, true, AC_MSG_ERROR([pthread.h is required])) 235AC_CHECK_HEADER(tcutil.h, true, AC_MSG_ERROR([tcutil.h is required])) 236if test "$enable_lua" = "yes" 237then 238 AC_CHECK_HEADER(lua.h, true, AC_MSG_ERROR([lua.h is required])) 239fi 240 241# Shared libraries 242if test "$enable_shared" != "no" && test "$enable_profile" != "yes" 243then 244 if uname | grep Darwin >/dev/null 245 then 246 MYLIBRARYFILES="$MYLIBRARYFILES libtokyotyrant.$MYLIBVER.$MYLIBREV.0.dylib" 247 MYLIBRARYFILES="$MYLIBRARYFILES libtokyotyrant.$MYLIBVER.dylib" 248 MYLIBRARYFILES="$MYLIBRARYFILES libtokyotyrant.dylib" 249 MYLIBRARYFILES="$MYLIBRARYFILES ttskelmock.bundle ttskeldir.bundle ttskelproxy.bundle" 250 MYLIBRARYFILES="$MYLIBRARYFILES ttskelnull.bundle" 251 MYLDLIBPATHENV="DYLD_LIBRARY_PATH" 252 else 253 MYLIBRARYFILES="$MYLIBRARYFILES libtokyotyrant.so.$MYLIBVER.$MYLIBREV.0" 254 MYLIBRARYFILES="$MYLIBRARYFILES libtokyotyrant.so.$MYLIBVER" 255 MYLIBRARYFILES="$MYLIBRARYFILES libtokyotyrant.so" 256 MYLIBRARYFILES="$MYLIBRARYFILES ttskelmock.so ttskeldir.so ttskelproxy.so" 257 MYLIBRARYFILES="$MYLIBRARYFILES ttskelnull.so" 258 fi 259fi 260 261 262 263#================================================================ 264# Generic Settings 265#================================================================ 266 267# Export variables 268AC_SUBST(MYLIBVER) 269AC_SUBST(MYLIBREV) 270AC_SUBST(MYPROTVER) 271AC_SUBST(MYHEADERFILES) 272AC_SUBST(MYLIBRARYFILES) 273AC_SUBST(MYLIBOBJFILES) 274AC_SUBST(MYCOMMANDFILES) 275AC_SUBST(MYINITFILES) 276AC_SUBST(MYMAN1FILES) 277AC_SUBST(MYMAN3FILES) 278AC_SUBST(MYMAN8FILES) 279AC_SUBST(MYSCREXTFILES) 280AC_SUBST(MYDOCUMENTFILES) 281AC_SUBST(MYPCFILES) 282AC_SUBST(MYCFLAGS) 283AC_SUBST(MYCPPFLAGS) 284AC_SUBST(MYLDFLAGS) 285AC_SUBST(MYCMDLDFLAGS) 286AC_SUBST(MYRUNPATH) 287AC_SUBST(MYLDLIBPATHENV) 288AC_SUBST(MYPOSTCMD) 289 290# Targets 291AC_OUTPUT(Makefile tokyotyrant.pc) 292 293# Messages 294printf '#================================================================\n' 295printf '# Ready to make.\n' 296printf '#================================================================\n' 297 298 299 300# END OF FILE 301