1# -*- Autoconf -*- 2# Process this file with autoconf to produce a configure script. 3 4AC_PREREQ(2.60) 5AC_INIT([MFS], [2.0.91], [bugs@moosefs.com], [moosefs]) 6release=1 7 8dnl AC_CONFIG_SRCDIR([MFSCommunication.h]) 9AC_CONFIG_HEADER([config.h]) 10AC_CANONICAL_TARGET 11AM_INIT_AUTOMAKE([1.14 foreign subdir-objects]) 12AM_SILENT_RULES([yes]) 13AC_CONFIG_MACRO_DIRS([m4]) 14 15versmaj=$(echo $PACKAGE_VERSION | cut -d. -f1) 16versmid=$(echo $PACKAGE_VERSION | cut -d. -f2) 17versmin=$(echo $PACKAGE_VERSION | cut -d. -f3) 18AC_DEFINE_UNQUOTED([VERSMAJ], [$versmaj], [Major MFS version]) 19AC_DEFINE_UNQUOTED([VERSMID], [$versmid], [Middle MFS version]) 20AC_DEFINE_UNQUOTED([VERSMIN], [($versmin)*2], [Minor MFS version]) 21AC_DEFINE_UNQUOTED([VERSHEX], [(($versmaj)*0x10000+($versmid)*0x100+($versmin)*2)], [Full MFS version as a hex number]) 22#AC_DEFINE_UNQUOTED([VERSMIN], [$versmin], [Minor MFS version]) 23#AC_DEFINE_UNQUOTED([VERSHEX], [(($versmaj)*0x10000+($versmid)*0x100+($versmin))], [Full MFS version as a hex number]) 24AC_DEFINE_UNQUOTED([RELEASE], [$release], [Release number]) 25AC_DEFINE_UNQUOTED([VERSION2INT(maj,med,min)], [((maj)*0x10000+(med)*0x100+(((maj)>1)?((min)*2):(min)))], [Version converter from human readable format to binary format used in MFS packets]) 26AC_DEFINE_UNQUOTED([VERSSTR], ["${PACKAGE_VERSION}-${release}"], [MFS version - string]) 27 28# Checks for programs. 29AC_PROG_CC(mycc gcc llvm-gcc clang) 30dnl AC_PROG_CXX(clang++ llvm-g++ g++) 31AC_PROG_LN_S 32AC_PROG_LIBTOOL 33 34AC_ARG_ENABLE([addresssanitizer], [AS_HELP_STRING([--enable-addresssanitizer], [Build with address sanitizer on (debug only)])], [ enable_addresssanitizer=yes ]) 35AC_ARG_ENABLE([gperftools], [AS_HELP_STRING([--enable-gperftools], [Build with google perftools on (debug only)])], [ enable_gperftools=yes ]) 36AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], [Build version without optimizations])], [ enable_debug=yes ]) 37 38if test "X$MFS_FORCE_DEBUG" = "XYES"; then 39 enable_debug=yes 40fi 41 42if test "$GCC" = "yes"; then 43 if test "$enable_addresssanitizer" = "yes" -o "$enable_gperftools" = "yes" -o "$enable_debug" = "yes" ; then 44 CFLAGS="-O0 -fno-omit-frame-pointer -g -DMFSDEBUG -std=c99 -Wall -Wextra -Wshadow -pedantic -fwrapv" 45 else 46 CFLAGS="-O2 $CFLAGS -g -std=c99 -Wall -Wextra -Wshadow -pedantic -fwrapv" 47 fi 48 if test "$enable_addresssanitizer" = "yes"; then 49 CFLAGS="$CFLAGS -fsanitize=address" 50 fi 51 if test "$enable_gperftools" = "yes"; then 52 CPPFLAGS="$CPPFLAGS -DGPERFTOOLS" 53 LDFLAGS="$LDFLAGS -L/opt/local/lib -lprofiler" 54 fi 55fi 56 57case $target_os in 58 *linux*) 59 fuse=maybe 60 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -DDEFAULT_SUGID_CLEAR_MODE_EXT" 61 ;; 62 *solaris*) 63 # OpenSolaris has fuse available and is still identified as "solaris" 64 fuse=maybe 65 CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS -DDEFAULT_SUGID_CLEAR_MODE_OSX" 66 ;; 67 *darwin*) 68 fuse=maybe 69 # MacFUSE installs to different prefix than pkgconfig 70 if test -f /usr/local/lib/pkgconfig/fuse.pc ; then 71 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 72 export PKG_CONFIG_PATH 73 fi 74 CPPFLAGS="$CPPFLAGS -DDEFAULT_SUGID_CLEAR_MODE_OSX" 75 ;; 76 *bsd*) 77 fuse=maybe 78 CPPFLAGS="$CPPFLAGS -DDEFAULT_SUGID_CLEAR_MODE_BSD" 79 ;; 80 *) 81 fuse=no 82 ;; 83esac 84 85AX_PTHREAD(, [AC_MSG_ERROR([Posix threads not found])]) 86dnl AC_CHECK_LIB([pthread], [pthread_create]) 87 88# Checks for libraries. 89 90# Solaris: 91AC_SEARCH_LIBS([socket], [socket]) 92AC_SEARCH_LIBS([getaddrinfo], [nsl]) 93# FreeBSD: 94AC_SEARCH_LIBS([kvm_open], [kvm]) 95# All: 96AC_SEARCH_LIBS([round], [m]) 97# Linux: 98AC_SEARCH_LIBS([clock_gettime], [rt]) 99 100# Checks for header files. 101AC_HEADER_DIRENT 102AC_HEADER_STDC 103AC_HEADER_SYS_WAIT 104AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h limits.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/socket.h sys/statvfs.h sys/time.h syslog.h unistd.h],, [AC_MSG_ERROR([One of required headers was not found])]) 105 106# Checks for typedefs, structures, and compiler characteristics. 107AC_C_CONST 108AC_C_BIGENDIAN 109AC_C_INLINE 110AC_C_VOLATILE 111AC_C_FLEXIBLE_ARRAY_MEMBER 112AC_HEADER_STDBOOL 113AC_TYPE_INT8_T 114AC_TYPE_UINT8_T 115AC_TYPE_INT16_T 116AC_TYPE_UINT16_T 117AC_TYPE_INT32_T 118AC_TYPE_UINT32_T 119AC_TYPE_INT64_T 120AC_TYPE_UINT64_T 121AC_TYPE_UID_T 122AC_TYPE_MODE_T 123AC_TYPE_OFF_T 124AC_TYPE_PID_T 125AC_TYPE_SIZE_T 126AC_STRUCT_ST_BLOCKS 127AC_CHECK_MEMBERS([struct stat.st_rdev]) 128AC_CHECK_MEMBERS([struct stat.st_birthtime]) 129AC_CHECK_MEMBERS([struct stat.st_blksize]) 130AC_CHECK_MEMBERS([struct stat.st_flags]) 131AC_CHECK_MEMBER([struct sockaddr_in.sin_len], [ AC_DEFINE(HAVE_SOCKADDR_SIN_LEN, 1, [Do we have sockaddr.sin_len?]) ], [], [ 132#include <sys/types.h> 133#include <sys/socket.h> 134#include <netinet/in.h> 135]) 136 137AC_HEADER_TIME 138AC_STRUCT_TM 139AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,, [ 140#ifdef TM_IN_SYS_TIME 141# include <sys/time.h> 142#else 143# include <time.h> 144#endif 145]) 146 147AC_SYS_LARGEFILE 148 149# Checks for library functions. 150AC_FUNC_STRERROR_R 151AC_FUNC_CLOSEDIR_VOID 152AC_FUNC_FORK 153AC_FUNC_LSTAT 154AC_FUNC_MALLOC 155AC_FUNC_MEMCMP 156AC_FUNC_REALLOC 157dnl AC_FUNC_SELECT_ARGTYPES 158AC_FUNC_STAT 159# required functions 160AC_CHECK_FUNCS([atexit bzero ftruncate getaddrinfo getpass gettimeofday memmove memset mkdir realpath poll socket strchr strdup strtol strtoul ftello fseeko],, [AC_MSG_ERROR([One of required functions was not found])]) 161 162# optional temporary file function 163AC_CHECK_FUNCS([mkstemp mktemp]) 164 165# optional error conversion functions 166AC_CHECK_FUNCS([strerror perror]) 167 168# optional system functions 169AC_CHECK_FUNCS([dup2 mlockall getcwd]) 170 171# check for mmap support 172AC_CHECK_HEADERS([sys/mman.h], [AC_CHECK_FUNCS([mmap])]) 173dnl AC_CHECK_HEADERS([sys/mman.h]) 174 175# optional I/O functions 176AC_CHECK_FUNCS([pread pwrite readv writev]) 177 178# optional resource usage function and headers 179AC_CHECK_FUNCS([getrusage setitimer]) 180AC_CHECK_HEADERS([sys/rusage.h sys/resource.h]) 181AC_CHECK_MEMBERS([struct rusage.ru_maxrss],,, [ 182#include <sys/time.h> 183#ifdef HAVE_GETRUSAGE 184# ifdef HAVE_SYS_RESOURCE_H 185# include <sys/resource.h> 186# endif 187# ifdef HAVE_SYS_RUSAGE_H 188# include <sys/rusage.h> 189# endif 190#endif 191]) 192 193# optional clock related headers and functions 194AC_CHECK_HEADERS([mach/mach.h mach/mach_time.h], [AC_CHECK_FUNCS([mach_absolute_time mach_timebase_info])]) 195AC_CHECK_FUNCS([clock_gettime]) 196 197# optional getgroups headers 198AC_CHECK_HEADERS([sys/sysctl.h]) 199 200# glibc tuning 201AC_CHECK_HEADERS([malloc.h]) 202AC_CHECK_FUNCS([mallopt]) 203 204# core dumps 205AC_CHECK_HEADERS([sys/prctl.h], [AC_CHECK_FUNCS([prctl])]) 206 207dnl optional thread functions 208dnl AC_CHECK_FUNCS([pthread_spin_lock]) 209 210dnl optional interfaces (Linux, FreeBSD) 211dnl AC_CHECK_FUNCS([fopencookie funopen]) 212 213AC_LANG([C]) 214 215AC_MSG_CHECKING([for __builtin_bswap16]) 216AC_RUN_IFELSE( 217 [AC_LANG_PROGRAM([#include <inttypes.h>],[uint16_t x = __builtin_bswap16(0x1234)])], 218 [ 219 AC_MSG_RESULT(yes) 220 AC_DEFINE_UNQUOTED([BSWAP16(x)], [__builtin_bswap16(x)], [bswap16]) 221 ],[ 222 AC_MSG_RESULT(no) 223 AC_DEFINE_UNQUOTED([BSWAP16(x)], [((((x)<<8)&0xFF00) | (((x)>>8)&0xFF))], [bswap16]) 224 ]) 225 226AC_MSG_CHECKING([for __builtin_bswap32]) 227AC_RUN_IFELSE( 228 [AC_LANG_PROGRAM([#include <inttypes.h>],[uint32_t x = __builtin_bswap32(0x12345678)])], 229 [ 230 AC_MSG_RESULT(yes) 231 AC_DEFINE_UNQUOTED([BSWAP32(x)], [__builtin_bswap32(x)], [bswap32]) 232 ],[ 233 AC_MSG_RESULT(no) 234 AC_DEFINE_UNQUOTED([BSWAP32(x)], [((((x)<<24)&0xFF000000) | (((x)<<8)&0xFF0000) | (((x)>>8)&0xFF00) | (((x)>>24)&0xFF))], [bswap32]) 235 ]) 236 237AC_MSG_CHECKING([for __builtin_bswap64]) 238AC_RUN_IFELSE( 239 [AC_LANG_PROGRAM([#include <inttypes.h>],[uint64_t x = __builtin_bswap64(0x123456789ABCDEF0)])], 240 [ 241 AC_MSG_RESULT(yes) 242 AC_DEFINE_UNQUOTED([BSWAP64(x)], [__builtin_bswap64(x)], [bswap64]) 243 ],[ 244 AC_MSG_RESULT(no) 245 AC_DEFINE_UNQUOTED([BSWAP64(x)], [((((x)<<56)&0xFF00000000000000) | (((x)<<40)&0xFF000000000000) | (((x)<<24)&0xFF0000000000) | (((x)<<8)&0xFF00000000) | (((x)>>8)&0xFF000000) | (((x)>>24)&0xFF0000) | (((x)>>40)&0xFF00) | (((x)>>56)&0xFF))], [bswap64]) 246 ]) 247 248 249# Check for Mac OS X's broken poll 250if test "$ac_cv_func_poll" = "yes"; then 251AC_MSG_CHECKING([if poll works on devices]) 252AC_RUN_IFELSE( 253 [AC_LANG_PROGRAM([[ 254#include <stdlib.h> 255#include <fcntl.h> 256#include <poll.h> 257]],[[ 258int main(void) { 259 struct pollfd fds[1]; 260 int fd; 261 fd = open("/dev/null", 1); 262 fds[0].fd = fd; 263 fds[0].events = POLLIN; 264 fds[0].revents = 0; 265 if (poll(fds, 1, 0) < 0 || (fds[0].revents & POLLNVAL) != 0) { 266 exit(1); /* Does not work for devices -- fail */ 267 } 268 exit(0); 269 } 270]])],[ac_have_working_poll=yes],[ac_have_working_poll=no]) 271if test "$ac_have_working_poll" = "no" ; then 272 AC_DEFINE_UNQUOTED(BROKEN_POLL, 1,[poll does not work properly on devices]) 273fi 274AC_MSG_RESULT($ac_have_working_poll) 275fi dnl poll() was found 276 277 278AC_MSG_CHECKING([for __sync_OP_and_fetch]) 279AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]], 280 [[unsigned long long int foo, bar; bar = __sync_add_and_fetch(&foo, 1); bar = __sync_sub_and_fetch(&foo, 1); bar = __sync_or_and_fetch(&foo, 1); bar = __sync_and_and_fetch(&foo, 1); bar = __sync_xor_and_fetch(&foo, 1); ]])], 281 [ac_have___sync_op_and_fetch=yes], [ac_have___sync_op_and_fetch=no]) 282if test "$ac_have___sync_op_and_fetch" = "yes" ; then 283 AC_DEFINE_UNQUOTED(HAVE___SYNC_OP_AND_FETCH, 1, [have __sync_OP_and_fetch intrinsics]) 284fi 285AC_MSG_RESULT($ac_have___sync_op_and_fetch) 286 287 288AC_MSG_CHECKING([for __sync_fetch_and_OP]) 289AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]], 290 [[unsigned long long int foo, bar; bar = __sync_fetch_and_add(&foo, 1); bar = __sync_fetch_and_sub(&foo, 1); bar = __sync_fetch_and_or(&foo, 1); bar = __sync_fetch_and_and(&foo, 1); bar = __sync_fetch_and_xor(&foo, 1); ]])], 291 [ac_have___sync_fetch_and_op=yes], [ac_have___sync_fetch_and_op=no]) 292if test "$ac_have___sync_fetch_and_op" = "yes" ; then 293 AC_DEFINE_UNQUOTED(HAVE___SYNC_FETCH_AND_OP, 1, [have __sync_fetch_and_OP intrinsics]) 294fi 295AC_MSG_RESULT($ac_have___sync_fetch_and_op) 296 297 298AC_CHECK_PROGS([KILL], [kill]) 299PKG_PROG_PKG_CONFIG 300PKG_CHECK_MODULES([SYSTEMD], [systemd], [ 301 systemdunitdir="`$PKG_CONFIG --variable=systemdsystemunitdir systemd`" 302], [ 303 systemdunitdir=no 304]) 305AC_SUBST([systemdunitdir]) 306 307dnl this is work in progress 308dnl AC_ARG_ENABLE([lightmfs], [AS_HELP_STRING([--enable-lightmfs], [Build special version])]) 309 310AC_ARG_ENABLE([generalmans], 311 [AS_HELP_STRING([--disable-general-mans], [Do not install general mans])]) 312AC_ARG_ENABLE([mfsmaster], 313 [AS_HELP_STRING([--disable-mfsmaster], [Do not build mfsmaster])]) 314AC_ARG_ENABLE([mfsmetalogger], 315 [AS_HELP_STRING([--disable-mfsmetalogger], [Do not build mfsmetalogger])]) 316AC_ARG_ENABLE([mfssupervisor], 317 [AS_HELP_STRING([--disable-mfssupervisor], [Do not build mfssupervisor])]) 318AC_ARG_ENABLE([mfschunkserver], 319 [AS_HELP_STRING([--disable-mfschunkserver], [Do not build mfschunkserver])]) 320AC_ARG_ENABLE([mfsmount], 321 [AS_HELP_STRING([--disable-mfsmount], [Do not build mfsmount])]) 322AC_ARG_ENABLE([mfscgi], 323 [AS_HELP_STRING([--disable-mfscgi], [Do not install CGI scripts])]) 324AC_ARG_ENABLE([mfscli], 325 [AS_HELP_STRING([--disable-mfscli], [Do not install CLI script])]) 326AC_ARG_ENABLE([mfscgiserv], 327 [AS_HELP_STRING([--disable-mfscgiserv], [Do not install CGI server])]) 328AC_ARG_ENABLE([mfsnetdump], 329 [AS_HELP_STRING([--disable-mfsnetdump], [Do not build mfsnetdump])]) 330AC_ARG_WITH([mfscgi-dir], 331 [AS_HELP_STRING([--with-mfscgi-dir=CGIDIR], [Choose CGI directory (default=DATADIR/mfscgi)])], 332 [CGIDIR=$withval], 333 [CGIDIR=$datadir/mfscgi]) 334AC_ARG_WITH([mfscgiserv-dir], 335 [AS_HELP_STRING([--with-mfscgiserv-dir=CGISERVDIR], [Choose CGI directory (default=SBINDIR)])], 336 [CGISERVDIR=$withval], 337 [CGISERVDIR=$sbindir]) 338AC_ARG_WITH([zlib], 339 [AS_HELP_STRING([--without-zlib], [Do not use zlib for PNG compression])], 340 [use_zlib=$withval], 341 [use_zlib=yes]) 342AC_ARG_WITH([systemdsystemunitdir], 343 [AS_HELP_STRING([--with-systemdsystemunitdir=PATH], [Path to install systemd units (no=omit)])], 344 [systemdunitdir=$withval]) 345 346AM_CONDITIONAL([WITH_SYSTEMD], [test "$systemdunitdir" != "no"]) 347 348if test "$enable_mfscgi" != "no" -o "$enable_mfscli" != "no" -o "$enable_mfscgiserv" != "no"; then 349 AM_PATH_PYTHON([2.5],,[:]) 350 if test "$PYTHON" = ":"; then 351 enable_mfscgi=no 352 enable_mfscli=no 353 enable_mfssgiserv=no 354 PYTHON="/usr/bin/env python" 355 fi 356fi 357dnl if test "$enable_mfscgi" = "no"; then 358dnl enable_mfscgiserv=no 359dnl fi 360AM_CONDITIONAL([WITH_PYTHON], [test "$enable_mfscgi" != "no" -o "$enable_mfscli" != "no" -o "$enable_mfscgiserv" != "no"]) 361AM_CONDITIONAL([BUILD_SCRIPTS], [test "$enable_mfscgi" != "no" -o "$enable_mfscli" != "no" -o "$enable_mfscgiserv" != "no"]) 362AM_CONDITIONAL([INSTALL_CGI], [test "$enable_mfscgi" != "no"]) 363AM_CONDITIONAL([INSTALL_CLI], [test "$enable_mfscli" != "no"]) 364AM_CONDITIONAL([INSTALL_CGISERV], [test "$enable_mfscgiserv" != "no"]) 365AC_SUBST([CGIDIR]) 366AC_SUBST([CGISERVDIR]) 367AC_SUBST([PYTHON]) 368 369AM_CONDITIONAL([BUILD_MASTER], [test "$enable_mfsmaster" != "no"]) 370AM_CONDITIONAL([BUILD_METALOGGER], [test "$enable_mfsmetalogger" != "no"]) 371AM_CONDITIONAL([BUILD_SUPERVISOR], [test "$enable_mfssupervisor" != "no"]) 372AM_CONDITIONAL([BUILD_CHUNKSERVER], [test "$enable_mfschunkserver" != "no"]) 373 374 375pcap=no 376AC_SEARCH_LIBS([pcap_lib_version],[pcap],[ AC_CHECK_HEADERS([pcap.h],[pcap=yes]) ]) 377 378if test "$pcap" != "yes" -a "enable_mfsnetdump" != "no"; then 379 echo "****** mfsnetdump disabled ******" 380 echo "* mfsnetdump needs pcap library *" 381 echo "*********************************" 382 enable_mfsnetdump=no 383fi 384 385AM_CONDITIONAL([BUILD_NETDUMP], [test "$enable_mfsnetdump" != "no"]) 386 387if test "$fuse" != "no" -a "enable_mfsmount" != "no"; then 388 if test -n "$PKG_CONFIG"; then 389 PKG_CHECK_MODULES([FUSE], [fuse >= 2.6], , [fuse=no]) 390 else 391 echo "no pkg-config - can't check FUSE version" 392 fuse=no 393 fi 394fi 395if test "$fuse" = "no"; then 396 if test "$enable_mfsmount" = "yes"; then 397 if test -n "$PKG_CONFIG"; then 398 AC_MSG_ERROR([mfsmount build was forced, but fuse library is too old or not installed]) 399 else 400 AC_MSG_ERROR([mfsmount build was forced, but pkg-config not installed]) 401 fi 402 else 403 if test "$enable_mfsmount" != "no"; then 404 if test -n "$PKG_CONFIG"; then 405 echo "******************************** mfsmount disabled ********************************" 406 echo "* fuse library is too old or not installed - mfsmount needs version 2.6 or higher *" 407 echo "***********************************************************************************" 408 else 409 echo "**** mfsmount disabled *****" 410 echo "* pkg-config not installed *" 411 echo "****************************" 412 fi 413 fi 414 fi 415fi 416if test "$fuse" != "no" ; then 417 case $target_os in 418 freebsd6*) 419 echo "*************************************************************************" 420 echo "* Dynamic linker in FreeBSD 6.x doesn't support symbol versioning. *" 421 echo "* It causes calling wrong functions from libfuse and crashing mfsmount. *" 422 echo "* Due to above switching libfuse from dynamic linking to static. *" 423 echo "*************************************************************************" 424 FUSE_LIBS="-pthread /usr/local/lib/libfuse.a /usr/local/lib/libiconv.a" 425 AC_SUBST(FUSE_LIBS) 426 ;; 427 esac 428fi 429 430AC_CHECK_LIB(fuse, fuse_version, [AC_DEFINE([HAVE_FUSE_VERSION],[1],[libfuse has function fuse_version])]) 431 432AM_CONDITIONAL([BUILD_MOUNT], [test "$fuse" != "no" -a "$enable_mfsmount" != "no"]) 433 434AM_CONDITIONAL([CREATE_ETC_MFS], [test "$enable_mfsmaster" != "no" -o "$enable_mfsmetalogger" != "no" -o "$enable_mfschunkserver" != "no" -o "$enable_mfsmount" != "no"]) 435AM_CONDITIONAL([CREATE_DATA_DIR], [test "$enable_mfsmaster" != "no" -o "$enable_mfsmetalogger" != "no" -o "$enable_mfschunkserver" != "no" -o "$enable_mfscgiserv" != "no"]) 436 437if test "$use_zlib" = "yes"; then 438 439 zlib=no 440 AC_CHECK_LIB(z, zlibVersion, [ AC_CHECK_HEADERS(zlib.h,[zlib=yes]) ]) 441 442 if test "$zlib" = "no"; then 443 ZLIB_LIBS= 444 if test "$enable_mfsmaster" != "no" -o "$enable_mfschunkserver" != "no"; then 445 AC_MSG_ERROR([zlib development library not found]) 446 fi 447 else 448 ZLIB_LIBS=-lz 449 fi 450 AC_SUBST([ZLIB_LIBS]) 451fi 452 453test "$prefix" = "NONE" && prefix=$ac_default_prefix 454test "$exec_prefix" = "NONE" && exec_prefix=$prefix 455eval DATA_PATH=${localstatedir}/mfs 456eval ETC_PATH=${sysconfdir} 457eval BIN_PATH=${bindir} 458eval SBIN_PATH=${sbindir} 459# use system /var/run when using system-wide installation prefix 460if test "${prefix#/usr}" != "${prefix}" -o "${prefix#/opt}" != "${prefix}"; then 461 RUN_PATH=/var/run/mfs 462else 463 RUN_PATH=${prefix}/var/run/mfs 464fi 465AC_SUBST([DATA_PATH]) 466AC_SUBST([ETC_PATH]) 467AC_SUBST([BIN_PATH]) 468AC_SUBST([SBIN_PATH]) 469AC_SUBST([RUN_PATH]) 470AC_DEFINE_UNQUOTED([PREFIX], ["${prefix}"], [Installation prefix]) 471AC_DEFINE_UNQUOTED([ETC_PATH], ["$ETC_PATH"], [Configuration directory]) 472AC_DEFINE_UNQUOTED([DATA_PATH], ["$DATA_PATH"], [Data directory]) 473AC_DEFINE_UNQUOTED([RUN_PATH], ["$RUN_PATH"], [PID file directory]) 474 475DEFAULT_USER=nobody 476DEFAULT_GROUP= 477AC_ARG_WITH([default-user], 478 [AS_HELP_STRING([--with-default-user=USER], [Choose default user to run daemons as])], 479 [DEFAULT_USER=$withval]) 480AC_ARG_WITH([default-group], 481 [AS_HELP_STRING([--with-default-group=GROUP], [Choose default group to run daemons as])], 482 [DEFAULT_GROUP=$withval]) 483AC_DEFINE_UNQUOTED([DEFAULT_USER], ["$DEFAULT_USER"], [Default working user]) 484AC_DEFINE_UNQUOTED([DEFAULT_GROUP], ["$DEFAULT_GROUP"], [Default working group]) 485AC_SUBST([DEFAULT_USER]) 486AC_SUBST([DEFAULT_GROUP]) 487 488DEFAULT_PORTBASE=9400 489DEFAULT_MASTERNAME=mfsmaster 490AC_ARG_WITH([default-portbase], 491 [AS_HELP_STRING([--with-default-portbase=NUMBER], [Default communiaction port base (default=9400, which means ports 9419,9420,etc.)])], 492 [DEFAULT_PORTBASE=$withval]) 493AC_ARG_WITH([default-mastername], 494 [AS_HELP_STRING([--with-default-mastername=MASTER_DNS_NAME], [Defines default DNS name pointing to all masters (default=mfsmaster)])], 495 [DEFAULT_MASTERNAME=$withval]) 496DEFAULT_MASTER_CONTROL_PORT=$((DEFAULT_PORTBASE+19)) 497DEFAULT_MASTER_CS_PORT=$((DEFAULT_PORTBASE+20)) 498DEFAULT_MASTER_CLIENT_PORT=$((DEFAULT_PORTBASE+21)) 499DEFAULT_CS_DATA_PORT=$((DEFAULT_PORTBASE+22)) 500DEFAULT_CGISERV_HTTP_PORT=$((DEFAULT_PORTBASE+25)) 501AC_DEFINE_UNQUOTED([DEFAULT_PORTBASE], [$DEFAULT_PORTBASE], [Default port base]) 502AC_DEFINE_UNQUOTED([DEFAULT_MASTER_CONTROL_PORT], ["$DEFAULT_MASTER_CONTROL_PORT"], [Default master command port]) 503AC_DEFINE_UNQUOTED([DEFAULT_MASTER_CS_PORT], ["$DEFAULT_MASTER_CS_PORT"], [Default master chunkserver port]) 504AC_DEFINE_UNQUOTED([DEFAULT_MASTER_CLIENT_PORT], ["$DEFAULT_MASTER_CLIENT_PORT"], [Default master client port]) 505AC_DEFINE_UNQUOTED([DEFAULT_CS_DATA_PORT], ["$DEFAULT_CS_DATA_PORT"], [Default chunkserver data port]) 506AC_DEFINE_UNQUOTED([DEFAULT_CGISERV_HTTP_PORT], ["$DEFAULT_CGISERV_HTTP_PORT"], [Default cgiserver http port]) 507AC_DEFINE_UNQUOTED([DEFAULT_MASTERNAME], ["$DEFAULT_MASTERNAME"], [Default master name]) 508AC_SUBST([DEFAULT_PORTBASE]) 509AC_SUBST([DEFAULT_MASTER_CONTROL_PORT]) 510AC_SUBST([DEFAULT_MASTER_CS_PORT]) 511AC_SUBST([DEFAULT_MASTER_CLIENT_PORT]) 512AC_SUBST([DEFAULT_CS_DATA_PORT]) 513AC_SUBST([DEFAULT_CGISERV_HTTP_PORT]) 514AC_SUBST([DEFAULT_MASTERNAME]) 515 516if test "$enable_lightmfs" = "yes"; then 517 PROTO_BASE=65536 518 LIGHT_MFS=1 519else 520 PROTO_BASE=0 521 LIGHT_MFS=0 522fi 523AC_SUBST([PROTO_BASE]) 524AC_SUBST([LIGHT_MFS]) 525AC_DEFINE_UNQUOTED([PROTO_BASE], [$PROTO_BASE], [Base value for protocol commands]) 526AC_DEFINE_UNQUOTED([LIGHT_MFS], [$LIGHT_MFS], [Build light version]) 527 528AC_SUBST([release]) 529 530AC_CONFIG_FILES([Makefile 531 mfsmanpages/Makefile 532 mfschunkserver/Makefile 533 mfsscripts/Makefile 534 mfsdata/Makefile 535 mfsmaster/Makefile 536 mfsmetadump/Makefile 537 mfsmetalogger/Makefile 538 mfssupervisor/Makefile 539 mfsmount/Makefile 540 mfsnetdump/Makefile 541 mfstests/Makefile 542 systemd/Makefile 543 mfsscripts/mfscli.py 544 mfsscripts/chart.cgi 545 mfsscripts/index.html 546 mfsscripts/mfscgiserv.py 547 mfsdata/mfschunkserver.cfg 548 mfsdata/mfsmaster.cfg 549 mfsdata/mfsmetalogger.cfg 550 mfsdata/mfsmount.cfg 551 systemd/moosefs-cgiserv.service 552 systemd/moosefs-chunkserver.service 553 systemd/moosefs-master.service 554 systemd/moosefs-metalogger.service 555]) 556AC_OUTPUT 557