mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 15:23:02 +01:00
6f286cbc52
Start to document and add changes for supporting the latest version of Sfio, so this will support gcc 4.x
1221 lines
40 KiB
Plaintext
1221 lines
40 KiB
Plaintext
dnl ############################# INITIALISATION ###############################
|
|
|
|
AC_PREREQ(2.56)
|
|
AC_INIT(src)
|
|
AC_CONFIG_AUX_DIR(builds/make.new/config)
|
|
AC_CACHE_VAL(ac_cv_prog_make_set, [AC_PROG_MAKE_SET])
|
|
AC_PREFIX_DEFAULT(/usr/local/firebird)
|
|
|
|
AC_CONFIG_HEADER(src/include/gen/autoconfig.h:builds/make.new/config/config.h.in)
|
|
|
|
dnl XE_APPEND(value, varname)
|
|
define([XE_APPEND],[[$2]="$[$2] [$1]"])
|
|
|
|
dnl XE_PREPEND(value, varname)
|
|
define([XE_PREPEND],[[$2]="[$1] $[$2]"])
|
|
|
|
sinclude(acx_pthread.m4)
|
|
|
|
dnl ############################# ADD TESTS BELOW ##############################
|
|
|
|
AC_CANONICAL_SYSTEM
|
|
CPU_TYPE=$target_cpu
|
|
AC_SUBST(CPU_TYPE)
|
|
|
|
|
|
dnl EKU: set appropiate defaults for each platform
|
|
dnl LOCK_MANAGER_FLG : build lock manager (CS only)
|
|
dnl EDITLINE_FLG : support fancy command line editing in isql
|
|
dnl SHRLIB_EXT : suffix of shared library files
|
|
|
|
RAW_DEVICES_FLG=Y
|
|
INSTALL_PREFIX=""
|
|
|
|
dnl Use /usr/lib for library links on most platforms except some 64-bit ones
|
|
libdir=/usr/lib
|
|
ICU_PLATFORM=LinuxRedHat
|
|
|
|
dnl Should Classic Server run services as thread or as process?
|
|
dnl Default - run as processes (empty value).
|
|
service_thread_CS=""
|
|
|
|
|
|
case "$target" in
|
|
i686-*-darwin*)
|
|
MAKEFILE_PREFIX=darwin_i386
|
|
MAKEFILE_POSTFIX=darwin
|
|
PLATFORM=DARWIN
|
|
INSTALL_PREFIX=darwin
|
|
AC_DEFINE(DARWIN, 1, [Define this if OS is DARWIN])
|
|
XE_APPEND(-framework CoreFoundation,LIBS)
|
|
LOCK_MANAGER_FLG=Y
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=dylib
|
|
ICU_PLATFORM=MacOSX
|
|
;;
|
|
|
|
powerpc-*-darwin*)
|
|
MAKEFILE_PREFIX=darwin_powerpc
|
|
MAKEFILE_POSTFIX=darwin
|
|
PLATFORM=DARWIN
|
|
INSTALL_PREFIX=darwin
|
|
AC_DEFINE(DARWIN, 1, [Define this if OS is DARWIN])
|
|
XE_APPEND(-framework CoreFoundation,LIBS)
|
|
LOCK_MANAGER_FLG=Y
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=dylib
|
|
ICU_PLATFORM=MacOSX
|
|
;;
|
|
|
|
amd64-*-freebsd*)
|
|
MAKEFILE_PREFIX=freebsd
|
|
PLATFORM=FREEBSD
|
|
AC_DEFINE(FREEBSD, 1, [Define this if OS is FreeBSD])
|
|
AC_DEFINE(AMD64, 1, [Define this if CPU is amd64])
|
|
LOCK_MANAGER_FLG=Y
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
;;
|
|
|
|
*-gentoo-freebsd*)
|
|
MAKEFILE_PREFIX=freebsd
|
|
PLATFORM=GENTOOFREEBSD
|
|
AC_DEFINE(FREEBSD, 1, [Define this if OS is FreeBSD])
|
|
LOCK_MANAGER_FLG=Y
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
;;
|
|
|
|
*-*-freebsd*)
|
|
MAKEFILE_PREFIX=freebsd
|
|
PLATFORM=FREEBSD
|
|
AC_DEFINE(FREEBSD, 1, [Define this if OS is FreeBSD])
|
|
LOCK_MANAGER_FLG=Y
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
;;
|
|
|
|
x86_64*-*-linux*)
|
|
MAKEFILE_PREFIX=linux_amd64
|
|
INSTALL_PREFIX=linux
|
|
PLATFORM=LINUX
|
|
AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
|
|
LOCK_MANAGER_FLG=Y
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
libdir=/usr/lib64
|
|
CPU_TYPE=amd64
|
|
;;
|
|
|
|
sparc*-*-linux*)
|
|
MAKEFILE_PREFIX=linux_sparc32
|
|
INSTALL_PREFIX=linux
|
|
PLATFORM=LINUX
|
|
AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
|
|
LOCK_MANAGER_FLG=Y
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
;;
|
|
|
|
i*86*-*-linux*)
|
|
MAKEFILE_PREFIX=linux
|
|
PLATFORM=LINUX
|
|
AC_DEFINE(LINUX)
|
|
LOCK_MANAGER_FLG=Y
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
;;
|
|
|
|
powerpc*-*-linux*)
|
|
MAKEFILE_PREFIX=linux_ppc
|
|
INSTALL_PREFIX=linux
|
|
PLATFORM=LINUX
|
|
AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
|
|
LOCK_MANAGER_FLG=Y
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
;;
|
|
|
|
*-*-linux*)
|
|
MAKEFILE_PREFIX=linux_generic
|
|
INSTALL_PREFIX=linux
|
|
PLATFORM=LINUX
|
|
AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
|
|
LOCK_MANAGER_FLG=Y
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
;;
|
|
|
|
*-*-netbsd*)
|
|
MAKEFILE_PREFIX=netbsd
|
|
PLATFORM=NETBSD
|
|
AC_DEFINE(NETBSD, 1, [Define this if OS is NetBSD])
|
|
LOCK_MANAGER_FLG=Y
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
;;
|
|
|
|
*-*-hpux*)
|
|
MAKEFILE_PREFIX=hpux
|
|
PLATFORM=HPUX
|
|
AC_DEFINE(HPUX, 1, [Define this if OS is HP-UX])
|
|
LOCK_MANAGER_FLG=Y
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=sl
|
|
libdir=/usr/lib/pa20_64
|
|
;;
|
|
|
|
i386-pc-solaris*)
|
|
MAKEFILE_PREFIX=solx86gcc
|
|
INSTALL_PREFIX=solaris
|
|
PLATFORM=solx86
|
|
AC_DEFINE(solx86, 1, [Define this if OS is Solarix x86])
|
|
LOCK_MANAGER_FLG=N
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
PTHREAD_CFLAGS=-threads
|
|
PTHREAD_LIBS=-lthread
|
|
ICU_PLATFORM=SOLARISX86GCC
|
|
service_thread_CS=true
|
|
;;
|
|
|
|
x86_64-pc-solaris*)
|
|
MAKEFILE_PREFIX=solx86gcc_64
|
|
INSTALL_PREFIX=solaris
|
|
PLATFORM=solx86
|
|
AC_DEFINE(solx86, 1, [Define this if OS is Solarix x86])
|
|
AC_DEFINE(AMD64, 1, [Define this if CPU is amd64])
|
|
LOCK_MANAGER_FLG=N
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
PTHREAD_CFLAGS=-threads
|
|
PTHREAD_LIBS=-lthread
|
|
ICU_PLATFORM=SOLARISX86GCC
|
|
service_thread_CS=true
|
|
libdir=/usr/lib/amd64
|
|
CPU_TYPE=amd64
|
|
;;
|
|
|
|
sparc-sun-solaris*)
|
|
MAKEFILE_PREFIX=solaris
|
|
INSTALL_PREFIX=solaris
|
|
PLATFORM=SOLARIS
|
|
AC_DEFINE(SOLARIS, 1, [Define this if OS is Solaris Sparc])
|
|
LOCK_MANAGER_FLG=N
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
PTHREAD_CFLAGS=-threads
|
|
PTHREAD_LIBS=-lthread
|
|
ICU_PLATFORM=SOLARISGCC
|
|
service_thread_CS=true
|
|
;;
|
|
|
|
i*-sni-sysv4)
|
|
MAKEFILE_PREFIX=sinixz
|
|
PLATFORM="SINIX-Z"
|
|
AC_DEFINE(SINIXZ, 1, [Define this if OS is SINIX-Z])
|
|
LOCK_MANAGER_FLG=N
|
|
EDITLINE_FLG=Y
|
|
SHRLIB_EXT=so
|
|
;;
|
|
|
|
*-*-mingw*)
|
|
MAKEFILE_PREFIX=mingw
|
|
PLATFORM=win32
|
|
AC_DEFINE(WIN_NT, 1, [Define this if OS is Windows NT])
|
|
AC_DEFINE(HAVE_MULTI_THREAD, 1, [Define this if multi-threading should be supported])
|
|
LOCK_MANAGER_FLG=N
|
|
EDITLINE_FLG=N
|
|
RAW_DEVICES_FLG=N
|
|
SHRLIB_EXT=dll
|
|
ICU_PLATFORM=MinGW
|
|
service_thread_CS=true
|
|
;;
|
|
|
|
*)
|
|
AC_MSG_ERROR(unsupported platform ${target})
|
|
;;
|
|
esac
|
|
|
|
if test "$INSTALL_PREFIX" = ""; then
|
|
INSTALL_PREFIX=$MAKEFILE_PREFIX
|
|
fi
|
|
|
|
AC_SUBST(MAKEFILE_PREFIX)
|
|
AC_SUBST(PLATFORM)
|
|
AC_SUBST(SHRLIB_EXT)
|
|
AC_SUBST(ICU_PLATFORM)
|
|
AC_SUBST(service_thread_CS)
|
|
AC_DEFINE(CASE_SENSITIVITY, false, [Define this if paths are case sensitive])
|
|
|
|
|
|
dnl Some controllable options
|
|
FIREBIRD_ARCH_TYPE=classic
|
|
AC_ARG_ENABLE(superserver,
|
|
[ --enable-superserver build SuperServer architecture (default=no)],
|
|
[case "$enableval" in
|
|
yes) FIREBIRD_ARCH_TYPE=super;;
|
|
no) FIREBIRD_ARCH_TYPE=classic;;
|
|
*) AC_MSG_ERROR(bad value '${enableval}' for --enable-superserver);;
|
|
esac])
|
|
AC_SUBST(FIREBIRD_ARCH_TYPE)
|
|
|
|
case $FIREBIRD_ARCH_TYPE in
|
|
super) AC_SUBST(ARCH_TYPE_SUFFIX,SS);;
|
|
classic) AC_SUBST(ARCH_TYPE_SUFFIX,CS);;
|
|
esac
|
|
|
|
PROD_BUILD_FLG=Y
|
|
AC_ARG_ENABLE(debug,
|
|
[ --enable-debug build debug version (default=no)],
|
|
[case "$enableval" in
|
|
yes) PROD_BUILD_FLG=N;;
|
|
no) PROD_BUILD_FLG=Y;;
|
|
*) AC_MSG_ERROR(bad value '${enableval}' for --enable-debug);;
|
|
esac])
|
|
AC_SUBST(PROD_BUILD_FLG)
|
|
|
|
dnl Find out how to use threads on this platform
|
|
ACX_PTHREAD([
|
|
AC_DEFINE(HAVE_MULTI_THREAD, 1,
|
|
[Define this if multi-threading should be supported])])
|
|
|
|
AC_SUBST(PTHREAD_LIBS)
|
|
AC_SUBST(PTHREAD_CFLAGS)
|
|
|
|
AC_ARG_ENABLE(raw-devices,
|
|
[ --enable-raw-devices enable databases on raw devices (default on POSIX)],
|
|
[case "$enableval" in
|
|
yes) RAW_DEVICES_FLG=Y;;
|
|
no) RAW_DEVICES_FLG=N;;
|
|
*) AC_MSG_ERROR(bad value '${enableval}' for --enable-raw-devices);;
|
|
esac])
|
|
if test "$RAW_DEVICES_FLG" = "Y"; then
|
|
AC_DEFINE(SUPPORT_RAW_DEVICES, 1,
|
|
[Define this if databases on raw devices should be supported])
|
|
fi
|
|
|
|
MANAGER_PROCESS_TARGET=
|
|
if test "$FIREBIRD_ARCH_TYPE" = "classic"; then
|
|
dnl The lock manager process is only need on systems, that do not support
|
|
dnl sending signals to process groups (man 2 kill).
|
|
AC_ARG_WITH(lock-manager,
|
|
[ --with-lock-manager build lock manager],
|
|
[case "$withval" in
|
|
yes) LOCK_MANAGER_FLG=Y;;
|
|
no) LOCK_MANAGER_FLG=N;;
|
|
*) AC_MSG_ERROR(bad value '${withval}' for --with-lock-manager);;
|
|
esac])
|
|
|
|
if test "$LOCK_MANAGER_FLG" = "Y"; then
|
|
dnl EKU: we should determine the necessity by target system
|
|
dnl at least SOLARIS-MT, DARWIN and SINIX-Z do not require a lock
|
|
dnl manager process
|
|
dnl EKU: is this really true???
|
|
AC_DEFINE(MANAGER_PROCESS, 1,
|
|
[Define this if the lock manager process is needed])
|
|
MANAGER_PROCESS_TARGET=lock_mgr
|
|
fi
|
|
fi
|
|
AC_SUBST(MANAGER_PROCESS_TARGET)
|
|
|
|
AC_ARG_WITH(editline,
|
|
[ --with-editline support fancy command line editing],
|
|
[case "$withval" in
|
|
yes) EDITLINE_FLG=Y;;
|
|
no) EDITLINE_FLG=N;;
|
|
*) AC_MSG_ERROR(bad value '${withval}' for --with-editline);;
|
|
esac])
|
|
AC_SUBST(EDITLINE_FLG)
|
|
|
|
FB_SERVICE_NAME=gds_db
|
|
FB_SERVICE_PORT=3050
|
|
FB_IPC_NAME=FirebirdIPI
|
|
AC_ARG_WITH(service-name,
|
|
[ --with-service-name specify inet service name (default=gds_db)],
|
|
[FB_SERVICE_NAME=${withval}])
|
|
AC_ARG_WITH(service-port,
|
|
[ --with-service-port specify inet service port (default=3050)],
|
|
[FB_SERVICE_PORT=${withval}])
|
|
AC_ARG_WITH(ipc-name,
|
|
[ --with-ipc-name specify local IPC name (default=FirebirdIPI)],
|
|
[FB_IPC_NAME=${withval}])
|
|
AC_DEFINE_UNQUOTED(FB_SERVICE_NAME,"$FB_SERVICE_NAME", [Inet service name])
|
|
AC_DEFINE_UNQUOTED(FB_SERVICE_PORT,$FB_SERVICE_PORT, [Inet service port])
|
|
AC_DEFINE_UNQUOTED(FB_IPC_NAME,"$FB_IPC_NAME", [Local IPC name])
|
|
AC_SUBST(FB_SERVICE_NAME)
|
|
AC_SUBST(FB_SERVICE_PORT)
|
|
AC_SUBST(FB_IPC_NAME)
|
|
|
|
dnl gpre built-in language support (C/C++ are mandatory)
|
|
GPRE_LANGUAGE_MODULES=""
|
|
AC_ARG_WITH(gpre-ada,
|
|
[ --with-gpre-ada support ADA in gpre (default=no)],
|
|
[case "$withval" in
|
|
yes) XE_APPEND(ada.cpp,GPRE_LANGUAGE_MODULES)
|
|
AC_DEFINE(GPRE_ADA, 1, [Define this if GPRE should support ADA]);;
|
|
no) ;;
|
|
*) AC_MSG_ERROR(bad value '${withval}' for --with-gpre-ada);;
|
|
esac])
|
|
AC_ARG_WITH(gpre-cobol,
|
|
[ --with-gpre-cobol support COBOL in gpre (default=no)],
|
|
[case "$withval" in
|
|
yes) XE_APPEND(cob.cpp,GPRE_LANGUAGE_MODULES)
|
|
AC_DEFINE(GPRE_COBOL, 1, [Define this if GPRE should support COBOL]);;
|
|
no) ;;
|
|
*) AC_MSG_ERROR(bad value '${withval}' for --with-gpre-cobol);;
|
|
esac])
|
|
AC_ARG_WITH(gpre-fortran,
|
|
[ --with-gpre-fortran support FORTRAN in gpre (default=no)],
|
|
[case "$withval" in
|
|
yes) XE_APPEND(ftn.cpp,GPRE_LANGUAGE_MODULES)
|
|
AC_DEFINE(GPRE_FORTRAN, 1, [Define this if GPRE should support FORTRAN]);;
|
|
no) ;;
|
|
*) AC_MSG_ERROR(bad value '${withval}' for --with-gpre-fortran);;
|
|
esac])
|
|
AC_ARG_WITH(gpre-pascal,
|
|
[ --with-gpre-pascal support PASCAL in gpre (default=no)],
|
|
[case "$withval" in
|
|
yes) XE_APPEND(pas.cpp,GPRE_LANGUAGE_MODULES)
|
|
AC_DEFINE(GPRE_PASCAL, 1, [Define this if GPRE should support PASCAL]);;
|
|
no) ;;
|
|
*) AC_MSG_ERROR(bad value '${withval}' for --with-gpre-pascal);;
|
|
esac])
|
|
AC_SUBST(GPRE_LANGUAGE_MODULES)
|
|
|
|
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_AWK
|
|
AC_PROG_CC dnl EKU: C++ programs should not use CC, but at the moment all
|
|
dnl makefiles use $(CC) to link objects. This has to be changed!
|
|
AC_PROG_GCC_TRADITIONAL
|
|
AC_PROG_CXX
|
|
AC_PROG_CPP
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
dnl EKU: AC_PROG_RANLIB has been superseded by AC_PROG_LIBTOOL
|
|
AC_LIBTOOL_DLOPEN
|
|
AC_LIBTOOL_WIN32_DLL
|
|
AC_PROG_MAKE_SET
|
|
AC_PROG_LIBTOOL
|
|
AC_PROG_YACC
|
|
|
|
|
|
dnl Check for system header files
|
|
AC_HEADER_DIRENT
|
|
AC_HEADER_STDC
|
|
AC_HEADER_SYS_WAIT
|
|
AC_CHECK_HEADERS(assert.h)
|
|
AC_CHECK_HEADERS(ctype.h)
|
|
AC_CHECK_HEADERS(errno.h)
|
|
AC_CHECK_HEADERS(fcntl.h)
|
|
AC_CHECK_HEADERS(grp.h)
|
|
AC_CHECK_HEADERS(pwd.h)
|
|
AC_CHECK_HEADERS(libio.h)
|
|
AC_CHECK_HEADERS(locale.h)
|
|
AC_CHECK_HEADERS(math.h)
|
|
case "$PLATFORM" in
|
|
SOLARIS|solx86)
|
|
AC_CHECK_HEADERS(thread.h)
|
|
;;
|
|
*)
|
|
AC_CHECK_HEADERS(pthread.h)
|
|
;;
|
|
esac
|
|
AC_CHECK_HEADERS(sys/types.h)
|
|
AC_CHECK_HEADERS(sys/stat.h)
|
|
AC_CHECK_HEADERS(sys/uio.h)
|
|
AC_HEADER_SYS_WAIT
|
|
AC_HEADER_TIME
|
|
AC_CHECK_HEADERS(sys/timeb.h)
|
|
AC_CHECK_HEADERS(sys/param.h)
|
|
AC_CHECK_HEADERS(sys/ioctl.h)
|
|
AC_CHECK_HEADERS(sys/mount.h)
|
|
AC_CHECK_HEADERS(setjmp.h)
|
|
AC_CHECK_HEADERS(stdarg.h)
|
|
AC_CHECK_HEADERS(stdlib.h)
|
|
AC_CHECK_HEADERS(string.h)
|
|
AC_CHECK_HEADERS(signal.h sys/signal.h sys/siginfo.h)
|
|
if test "$EDITLINE_FLG" = "Y"; then
|
|
AC_CHECK_HEADERS(termio.h termios.h)
|
|
AC_HEADER_DIRENT
|
|
AC_DEFINE(HAVE_EDITLINE_H, 1, [Define this if internal editline.h is in use])
|
|
fi
|
|
AC_CHECK_HEADERS(unistd.h)
|
|
if test "$ac_cv_header_unistd_h" = "yes"; then
|
|
dnl For details see
|
|
dnl http://www.opengroup.org/onlinepubs/007904975/basedefs/unistd.h.html
|
|
dnl http://people.redhat.com/drepper/posix-option-groups.html
|
|
AC_MSG_CHECKING(if POSIX threads are available)
|
|
AC_TRY_RUN([#include <unistd.h>
|
|
main () {
|
|
#if defined(_POSIX_THREADS) && _POSIX_THREADS >= 200112L
|
|
exit(0);
|
|
#else
|
|
exit(1);
|
|
#endif
|
|
}],
|
|
[AC_DEFINE(HAVE_POSIX_THREADS, 1,
|
|
[Define this if POSIX threads are available])
|
|
AC_MSG_RESULT(yes)],
|
|
[AC_MSG_RESULT(no)])
|
|
fi
|
|
AC_CHECK_HEADERS(varargs.h)
|
|
AC_CHECK_HEADERS(crypt.h)
|
|
AC_CHECK_HEADERS(netinet/in.h rpc/rpc.h netconfig.h)
|
|
AC_CHECK_HEADERS(rpc/xdr.h,,,[#include <rpc/rpc.h>])
|
|
AC_CHECK_HEADERS(aio.h)
|
|
AC_CHECK_HEADERS(mntent.h mnttab.h sys/mntent.h sys/mnttab.h)
|
|
AC_CHECK_HEADERS(sys/ipc.h sys/file.h)
|
|
AC_CHECK_HEADERS(socket.h sys/socket.h sys/sockio.h winsock2.h)
|
|
AC_CHECK_HEADERS(sys/sem.h)
|
|
AC_CHECK_HEADERS(semaphore.h)
|
|
|
|
dnl Check for libraries
|
|
AC_CHECK_LIB(dl, main)
|
|
dnl AC_CHECK_LIB(c, main)
|
|
AC_CHECK_LIB(m, main)
|
|
if test "$EDITLINE_FLG" = "Y"; then
|
|
AC_CHECK_LIB(curses, tgetent, TERMLIB=curses, \
|
|
AC_CHECK_LIB(ncurses, tgetent, TERMLIB=ncurses, \
|
|
AC_CHECK_LIB(termcap, tgetent, TERMLIB=termcap, \
|
|
AC_CHECK_LIB(tinfo, tgetent, TERMLIB=tinfo, \
|
|
AC_MSG_ERROR(termcap support not found)))))
|
|
AC_SUBST(EDITLINE_A, -leditline)
|
|
AC_SUBST(TERMLIB)
|
|
XE_APPEND(-l$TERMLIB, LIBS)
|
|
fi
|
|
|
|
dnl check for va_copy() in stdarg.h
|
|
dnl _ISOC99_SOURCE is defined to emulate C++ compilation in plain-C conftest.c
|
|
AC_TRY_COMPILE([#define _ISOC99_SOURCE 1
|
|
#include <stdarg.h>
|
|
void vafun(const char* fmt, ...)
|
|
{
|
|
va_list par, par2;
|
|
va_start(par, fmt);
|
|
va_copy(par2, par);
|
|
va_end(par2);
|
|
va_end(par);
|
|
}
|
|
],
|
|
[exit(0);],
|
|
[AC_DEFINE(HAVE_VA_COPY, 1,
|
|
[Define this if va_copy() is defined in stdarg.h])])
|
|
|
|
dnl Check for functions
|
|
AC_CHECK_FUNCS(gettimeofday)
|
|
if test "$ac_cv_func_gettimeofday" = "yes"; then
|
|
dnl EKU: SINIX-Z has no prototype for gettimeofday() so the following test
|
|
dnl will always succeed, which is wrong.
|
|
case "$PLATFORM" in
|
|
SINIX-Z)
|
|
;;
|
|
*)
|
|
AC_MSG_CHECKING(if gettimeofday accepts second (timezone) argument)
|
|
AC_TRY_COMPILE([#include <sys/time.h>],
|
|
[struct timeval tp; gettimeofday(&tp, (struct timezone *)0);],
|
|
[AC_DEFINE(GETTIMEOFDAY_RETURNS_TIMEZONE, 1,
|
|
[Define this if gettimeofday accepts second (timezone) argument])
|
|
AC_MSG_RESULT(yes)],
|
|
[AC_MSG_RESULT(no)])
|
|
;;
|
|
esac
|
|
AH_BOTTOM([#ifdef GETTIMEOFDAY_RETURNS_TIMEZONE
|
|
#define GETTIMEOFDAY(x) gettimeofday((x), (struct timezone *)0)
|
|
#else
|
|
#define GETTIMEOFDAY(x) gettimeofday((x))
|
|
#endif])
|
|
fi
|
|
AC_CHECK_FUNCS(time times)
|
|
AC_SEARCH_LIBS(gethostname,nsl)
|
|
AC_SEARCH_LIBS(connect,socket)
|
|
AC_CHECK_FUNCS(strcasecmp stricmp)
|
|
AC_CHECK_FUNCS(strncasecmp strnicmp)
|
|
if test "$ac_cv_func_strcasecmp" = "no" -a "$ac_cv_func_stricmp" = "no"; then
|
|
dnl EKU: On SINIX-Z strcasecmp is in libresolv.
|
|
AC_CHECK_LIB(resolv, strcasecmp,
|
|
[XE_APPEND(-lresolv,LIBS)
|
|
unset ac_cv_func_strcasecmp
|
|
AC_CHECK_FUNCS(strcasecmp)],, $LIBS)
|
|
fi
|
|
AC_SEARCH_LIBS(dirname, gen)
|
|
AC_CHECK_FUNCS(dirname)
|
|
AC_CHECK_FUNCS(sigaction setitimer)
|
|
AC_CHECK_FUNCS(snprintf vsnprintf)
|
|
AC_CHECK_FUNCS(swab _swab)
|
|
AC_FUNC_MMAP
|
|
AC_FUNC_FORK
|
|
AC_FUNC_SETPGRP
|
|
AC_CHECK_FUNCS(setpgid)
|
|
AC_FUNC_GETPGRP
|
|
AC_CHECK_FUNCS(flock)
|
|
AC_CHECK_FUNCS(initgroups)
|
|
AC_CHECK_FUNCS(getpagesize)
|
|
AC_CHECK_FUNCS(pread pwrite)
|
|
AC_CHECK_FUNCS(getcwd getwd)
|
|
AC_CHECK_FUNCS(setmntent getmntent)
|
|
if test "$ac_cv_func_getmntent" = "yes"; then
|
|
AC_MSG_CHECKING(if getmntent needs second argument)
|
|
AC_TRY_COMPILE([#include <stdio.h>
|
|
#include <sys/mnttab.h>],
|
|
[FILE *f; struct mntent *m; getmntent(f, m);],
|
|
[AC_DEFINE(GETMNTENT_TAKES_TWO_ARGUMENTS, 1,
|
|
[Define this if getmntent needs second argument])
|
|
AC_MSG_RESULT(yes)],
|
|
[AC_MSG_RESULT(no)])
|
|
fi
|
|
AC_CHECK_FUNCS(setrlimit getrlimit)
|
|
AC_CHECK_FUNCS(tcgetattr strdup)
|
|
AC_CHECK_FUNCS(mkstemp)
|
|
AC_CHECK_FUNCS(pthread_keycreate pthread_key_create)
|
|
AC_CHECK_FUNCS(llrint)
|
|
AC_CHECK_FUNCS(localtime_r)
|
|
AC_CHECK_FUNCS(gmtime_r)
|
|
AC_CHECK_FUNCS(fchmod)
|
|
|
|
if test "$ac_cv_header_semaphore_h" = "yes"; then
|
|
savedFlags="$CFLAGS"
|
|
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
AC_CHECK_FUNCS(sem_timedwait)
|
|
AC_CHECK_FUNCS(sem_init)
|
|
if test "$ac_cv_func_sem_init" = "yes"; then
|
|
AC_MSG_CHECKING(for working sem_int())
|
|
AC_TRY_RUN([#include <semaphore.h>
|
|
main () {
|
|
sem_t s;
|
|
exit(sem_init(&s,0,0));
|
|
}
|
|
],
|
|
[AC_DEFINE(WORKING_SEM_INIT,1,[Define this if sem_init() works on the platform])
|
|
AC_MSG_RESULT(yes)],
|
|
[AC_MSG_RESULT(no)])
|
|
fi
|
|
CFLAGS="$savedFlags"
|
|
fi
|
|
AC_CHECK_FUNCS(semtimedop)
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_BIGENDIAN
|
|
AC_C_VOLATILE
|
|
AC_TYPE_SIGNAL
|
|
AC_TYPE_OFF_T
|
|
AC_TYPE_SIZE_T
|
|
AC_TYPE_UID_T
|
|
AC_SYS_LARGEFILE
|
|
if test "$ac_cv_sys_file_offset_bits" = "no"; then
|
|
AC_MSG_CHECKING(for native large file support)
|
|
AC_TRY_RUN([#include <unistd.h>
|
|
main () {
|
|
exit(!(sizeof(off_t) == 8));
|
|
}],
|
|
[ac_cv_sys_file_offset_bits=64; AC_DEFINE(_FILE_OFFSET_BITS,64)
|
|
AC_MSG_RESULT(yes)],
|
|
[AC_MSG_RESULT(no)])
|
|
fi
|
|
|
|
AC_CHECK_SIZEOF(void *)
|
|
AC_CHECK_SIZEOF(long)
|
|
AC_CHECK_TYPES([socklen_t],,,[#include <sys/socket.h>])
|
|
AH_BOTTOM([#ifndef HAVE_SOCKLEN_T
|
|
typedef int socklen_t;
|
|
#endif])
|
|
AC_CHECK_TYPES([semun])
|
|
if test "$ac_cv_type_semun" = "no"; then
|
|
AC_MSG_CHECKING(if sem.h defines semun)
|
|
AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <sys/ipc.h>
|
|
#include <sys/sem.h>],
|
|
[union semun s;],
|
|
[ac_cv_type_semun=yes; AC_DEFINE(HAVE_SEMUN) AC_MSG_RESULT(yes)],
|
|
[AC_MSG_RESULT(no)])
|
|
fi
|
|
|
|
AC_CHECK_TYPES([struct XDR::xdr_ops],,,[#include <rpc/rpc.h>
|
|
#include <rpc/xdr.h>])
|
|
AC_CHECK_TYPES([struct xdr_ops],,,[#include <rpc/rpc.h>
|
|
#include <rpc/xdr.h>])
|
|
|
|
|
|
dnl EKU: try to determine the alignment of long and double
|
|
dnl replaces ALIGNMENT and DOUBLE_ALIGN in src/jrd/common.h
|
|
AC_MSG_CHECKING(alignment of long)
|
|
AC_TRY_RUN([main () {
|
|
struct s {
|
|
char a;
|
|
long long b;
|
|
};
|
|
exit((int)&((struct s*)0)->b);
|
|
}], ac_cv_c_alignment=$ac_status, ac_cv_c_alignment=$ac_status)
|
|
AC_MSG_RESULT($ac_cv_c_alignment)
|
|
AC_DEFINE_UNQUOTED(ALIGNMENT, $ac_cv_c_alignment, [Alignment of long])
|
|
|
|
AC_MSG_CHECKING(alignment of double)
|
|
AC_TRY_RUN([main () {
|
|
struct s {
|
|
char a;
|
|
double b;
|
|
};
|
|
exit((int)&((struct s*)0)->b);
|
|
}], ac_cv_c_double_align=$ac_status, ac_cv_c_double_align=$ac_status)
|
|
AC_MSG_RESULT($ac_cv_c_double_align)
|
|
AC_DEFINE_UNQUOTED(DOUBLE_ALIGN, $ac_cv_c_double_align, [Alignment of double])
|
|
|
|
dnl EKU: don't know how to convert this into an autoconf test:
|
|
dnl #define FB_ALIGN(n,b) ...
|
|
dnl
|
|
dnl VMS (n) -> no
|
|
dnl sun_68k ((n+1) & ~1) -> even
|
|
dnl XENIX ((n+1) & ~1) -> even
|
|
dnl netware_386 ((n+1) & ~1) -> even
|
|
dnl all others ((n + b - 1) & ~(b - 1)) -> multiple of b
|
|
dnl
|
|
dnl volunters are welcome!
|
|
|
|
|
|
|
|
dnl EKU: Add any platform specific tests below
|
|
case "$PLATFORM" in
|
|
LINUX)
|
|
dnl MOD: Check for /proc/self/exe mainly used on linux systems
|
|
dnl this is used to determine path to executable file.
|
|
AC_CHECK_FILES(/proc/self/exe)
|
|
|
|
dnl EKU: some Linux distributions do not provide POSIX threads
|
|
dnl compatibility. Define HAVE_POSIX_THREADS anyway to get
|
|
dnl thread support compiled into FIREBIRD.
|
|
AC_DEFINE(HAVE_POSIX_THREADS)
|
|
;;
|
|
HPUX)
|
|
AC_DEFINE(HAVE_POSIX_THREADS)
|
|
;;
|
|
FREEBSD|GENTOOFREEBSD)
|
|
dnl the AC_CHECK_TYPES for socklen_t doesn't include sys/socket.h
|
|
dnl so test for socklen_t with sys/socket.h included
|
|
AC_MSG_CHECKING(if sys/socket.h defines socklen_t)
|
|
AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <sys/socket.h>],
|
|
[socklen_t s;],
|
|
[AC_DEFINE(HAVE_SOCKLEN_T) AC_MSG_RESULT(yes)],
|
|
[AC_MSG_RESULT(no)])
|
|
dnl define HAVE_POSIX_THREADS for FreeBSD 4.x support
|
|
AC_DEFINE(HAVE_POSIX_THREADS)
|
|
;;
|
|
|
|
SOLARIS|solx86)
|
|
dnl kkuznetsov: Solaris always check for -lnsl and use Sun thread (!not posix)
|
|
AC_CHECK_LIB(nsl, gethostname, XE_APPEND(-lnsl,LIBS))
|
|
AC_CHECK_LIB(thread, thr_create, XE_PREPEND(-lthread,LIBS))
|
|
|
|
if test "$EDITLINE_FLG" = "Y"; then
|
|
AC_CHECK_LIB(termcap, main, XE_APPEND(-ltermcap,EDITLINE_A))
|
|
fi
|
|
AC_CHECK_LIB(rt, main)
|
|
|
|
AC_CHECK_TYPES([caddr_t])
|
|
|
|
AC_ARG_WITH(sfio,
|
|
AC_HELP_STRING([--with-sfio=PATH],
|
|
[use sfio (replacement stdio on Solaris) (default=no)]),
|
|
[ac_cv_use_sfio=$withval],[ac_cv_use_sfio=no])
|
|
|
|
if test "$ac_cv_use_sfio" = "no"; then
|
|
SFIO_DIR=""
|
|
SFIO_FLAGS=""
|
|
SFIO_LDFLAGS=""
|
|
else
|
|
AC_CHECK_LIB(sfio, main)
|
|
dnl Kkuznetsov: using sfio-mt looks like double protecting of FILE*
|
|
dnl and I avoid to use vthread based on posix threading
|
|
#AC_CHECK_LIB(sfio-mt, main,,
|
|
#AC_MSG_ERROR([sfio library not found]),-lvthread)
|
|
#XE_PREPEND(-lvthread,LIBS)
|
|
|
|
SFIO_DIR="$ac_cv_use_sfio"
|
|
SFIO_FLAGS="-DSFIO -I$ac_cv_use_sfio/include"
|
|
SFIO_LDFLAGS="-L$ac_cv_use_sfio/lib"
|
|
fi
|
|
;;
|
|
|
|
win32)
|
|
FB_PIPE_NAME=interbas
|
|
AC_ARG_WITH(pipe-name,
|
|
[ --with-pipe-name specify wnet pipe name (default=interbas)],
|
|
[FB_PIPE_NAME=${withval}])
|
|
AH_VERBATIM(FB_PIPE_NAME,
|
|
[/* Wnet pipe name */
|
|
#define FB_PIPE_NAME "interbas"])
|
|
AC_DEFINE_UNQUOTED(FB_PIPE_NAME,"$FB_PIPE_NAME")
|
|
AC_SUBST(FB_PIPE_NAME)
|
|
XE_PREPEND( -mno-cygwin -mthreads -lmpr -lversion -lws2_32 -lole32,LIBS)
|
|
;;
|
|
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
dnl Detect support for ISO syntax for thread-locals
|
|
AC_CACHE_CHECK([for __thread], firebird_cv_gcc___thread,
|
|
[cat > conftest.c <<\EOF
|
|
__thread int a = 42;
|
|
main() {
|
|
a = a + 1;
|
|
return 0;
|
|
}
|
|
EOF
|
|
if AC_TRY_COMMAND([gcc -fPIC -o conftest conftest.c >&AS_MESSAGE_LOG_FD && ./conftest]); then
|
|
firebird_cv_gcc___thread=yes
|
|
else
|
|
firebird_cv_gcc___thread=no
|
|
fi
|
|
rm -f conftest*])
|
|
|
|
if test "$firebird_cv_gcc___thread" = yes; then
|
|
AC_DEFINE(HAVE___THREAD, 1, [Define it if compiler supports ISO syntax for thread-local storage])
|
|
fi
|
|
|
|
dnl ##################### DO NOT ADD ANY TESTS BELOW ###########################
|
|
|
|
AC_SUBST(SFIO_DIR)
|
|
AC_SUBST(SFIO_FLAGS)
|
|
AC_SUBST(SFIO_LDFLAGS)
|
|
|
|
dnl The following file defines the version number strings. Specially for install/uninstall routines
|
|
. ./src/misc/writeBuildNum.sh
|
|
|
|
AC_SUBST(FIREBIRD_VERSION)
|
|
AC_SUBST(FIREBIRD_PACKAGE_VERSION)
|
|
AC_SUBST(FB_BUILD_NUM, $BuildNum)
|
|
|
|
BUILD_ROOT_DIR=`pwd`
|
|
SRC_ROOT=$BUILD_ROOT_DIR/src
|
|
GEN_ROOT=$BUILD_ROOT_DIR/gen
|
|
NEW_FIREBIRD_DIR=$GEN_ROOT/firebird
|
|
|
|
AC_SUBST(BUILD_ROOT_DIR)
|
|
AC_SUBST(NEW_FIREBIRD_DIR)
|
|
|
|
AC_DEFINE_UNQUOTED(FB_PREFIX, $(if test "x$prefix" = "xNONE" ; then echo \"$ac_default_prefix\"; else echo \"$prefix\"; fi), [Installation path prefix])
|
|
|
|
AC_CONFIG_COMMANDS(,,[
|
|
dnl # rebuild version header if needed
|
|
./src/misc/writeBuildNum.sh rebuildHeader
|
|
dnl ### GEN ### directories for preprocessed cpp, databases and output
|
|
mkdir -p gen/alice
|
|
mkdir -p gen/burp
|
|
mkdir -p gen/dsql
|
|
mkdir -p gen/dudley
|
|
mkdir -p gen/gpre
|
|
mkdir -p gen/iscguard
|
|
mkdir -p gen/isql
|
|
mkdir -p gen/jrd
|
|
mkdir -p gen/msgs
|
|
mkdir -p gen/qli
|
|
mkdir -p gen/utilities
|
|
mkdir -p gen/examples
|
|
|
|
dnl # some .o and .d in this directory (to be removed)
|
|
mkdir -p gen/remote/os/win32
|
|
mkdir -p gen/remote/os/sun
|
|
|
|
dnl # databases and output
|
|
mkdir -p gen/refDatabases
|
|
mkdir -p gen/firebird/include
|
|
mkdir -p gen/firebird/intl
|
|
mkdir -p gen/firebird/UDF
|
|
mkdir -p gen/firebird/bin
|
|
mkdir -p gen/firebird/examples/api
|
|
mkdir -p gen/firebird/examples/dyn
|
|
dnl # mkdir -p gen/firebird/examples/build_unix
|
|
dnl # mkdir -p gen/firebird/examples/build_win32
|
|
mkdir -p gen/firebird/examples/empbuild
|
|
mkdir -p gen/firebird/examples/include
|
|
mkdir -p gen/firebird/examples/stat
|
|
mkdir -p gen/firebird/examples/udf
|
|
mkdir -p gen/firebird/lib
|
|
mkdir -p gen/firebird/misc
|
|
mkdir -p gen/firebird/help
|
|
|
|
dnl #### TEMP ######### directories for .o and .d
|
|
dnl # by module name
|
|
|
|
mkdir -p temp/boot/alice
|
|
mkdir -p temp/boot/burp
|
|
mkdir -p temp/boot/common/classes
|
|
mkdir -p temp/boot/common/config
|
|
mkdir -p temp/boot/config
|
|
mkdir -p temp/boot/dsql
|
|
mkdir -p temp/boot/dudley
|
|
mkdir -p temp/boot/extlib
|
|
mkdir -p temp/boot/extlib/fbudf
|
|
mkdir -p temp/boot/gpre
|
|
mkdir -p temp/boot/intl
|
|
mkdir -p temp/boot/ipserver
|
|
mkdir -p temp/boot/iscguard
|
|
mkdir -p temp/boot/isql
|
|
mkdir -p temp/boot/jrd
|
|
mkdir -p temp/boot/jrd/os/posix
|
|
mkdir -p temp/boot/jrd/os/win32
|
|
mkdir -p temp/boot/jrd/os/darwin
|
|
mkdir -p temp/boot/lock
|
|
mkdir -p temp/boot/misc
|
|
mkdir -p temp/boot/msgs
|
|
mkdir -p temp/boot/qli
|
|
mkdir -p temp/boot/remote
|
|
mkdir -p temp/boot/remote/os/win32
|
|
mkdir -p temp/boot/remote/os/sun
|
|
mkdir -p temp/boot/remote/os/darwin
|
|
mkdir -p temp/boot/utilities/common
|
|
mkdir -p temp/boot/utilities/gsec
|
|
mkdir -p temp/boot/utilities/gstat
|
|
mkdir -p temp/boot/utilities/guard
|
|
mkdir -p temp/boot/utilities/ibmgr
|
|
mkdir -p temp/boot/utilities/install
|
|
mkdir -p temp/boot/utilities/rebuild
|
|
mkdir -p temp/boot/vulcan
|
|
|
|
mkdir -p temp/std/alice
|
|
mkdir -p temp/std/burp
|
|
mkdir -p temp/std/common/classes
|
|
mkdir -p temp/std/common/config
|
|
mkdir -p temp/std/config
|
|
mkdir -p temp/std/dsql
|
|
mkdir -p temp/std/dudley
|
|
mkdir -p temp/std/extlib
|
|
mkdir -p temp/std/extlib/fbudf
|
|
mkdir -p temp/std/gpre
|
|
mkdir -p temp/std/intl
|
|
mkdir -p temp/std/ipserver
|
|
mkdir -p temp/std/iscguard
|
|
mkdir -p temp/std/isql
|
|
mkdir -p temp/std/jrd
|
|
mkdir -p temp/std/jrd/os/posix
|
|
mkdir -p temp/std/jrd/os/win32
|
|
mkdir -p temp/std/jrd/os/darwin
|
|
mkdir -p temp/std/lock
|
|
mkdir -p temp/std/misc
|
|
mkdir -p temp/std/msgs
|
|
mkdir -p temp/std/qli
|
|
mkdir -p temp/std/remote
|
|
mkdir -p temp/std/remote/os/win32
|
|
mkdir -p temp/std/remote/os/sun
|
|
mkdir -p temp/std/remote/os/darwin
|
|
mkdir -p temp/std/utilities/common
|
|
mkdir -p temp/std/utilities/gsec
|
|
mkdir -p temp/std/utilities/gstat
|
|
mkdir -p temp/std/utilities/guard
|
|
mkdir -p temp/std/utilities/ibmgr
|
|
mkdir -p temp/std/utilities/install
|
|
mkdir -p temp/std/utilities/rebuild
|
|
mkdir -p temp/std/vulcan
|
|
mkdir -p temp/std/extern/editline
|
|
|
|
mkdir -p temp/superclient/alice
|
|
mkdir -p temp/superclient/burp
|
|
mkdir -p temp/superclient/common/classes
|
|
mkdir -p temp/superclient/common/config
|
|
mkdir -p temp/superclient/config
|
|
mkdir -p temp/superclient/dsql
|
|
mkdir -p temp/superclient/dudley
|
|
mkdir -p temp/superclient/extlib
|
|
mkdir -p temp/superclient/extlib/fbudf
|
|
mkdir -p temp/superclient/gpre
|
|
mkdir -p temp/superclient/intl
|
|
mkdir -p temp/superclient/ipserver
|
|
mkdir -p temp/superclient/iscguard
|
|
mkdir -p temp/superclient/isql
|
|
mkdir -p temp/superclient/jrd
|
|
mkdir -p temp/superclient/jrd/os/posix
|
|
mkdir -p temp/superclient/jrd/os/win32
|
|
mkdir -p temp/superclient/jrd/os/darwin
|
|
mkdir -p temp/superclient/lock
|
|
mkdir -p temp/superclient/misc
|
|
mkdir -p temp/superclient/msgs
|
|
mkdir -p temp/superclient/qli
|
|
mkdir -p temp/superclient/remote
|
|
mkdir -p temp/superclient/remote/os/win32
|
|
mkdir -p temp/superclient/remote/os/sun
|
|
mkdir -p temp/superclient/remote/os/darwin
|
|
mkdir -p temp/superclient/utilities/common
|
|
mkdir -p temp/superclient/utilities/gsec
|
|
mkdir -p temp/superclient/utilities/gstat
|
|
mkdir -p temp/superclient/utilities/guard
|
|
mkdir -p temp/superclient/utilities/ibmgr
|
|
mkdir -p temp/superclient/utilities/install
|
|
mkdir -p temp/superclient/utilities/rebuild
|
|
mkdir -p temp/superclient/vulcan
|
|
|
|
mkdir -p temp/superserver/alice
|
|
mkdir -p temp/superserver/burp
|
|
mkdir -p temp/superserver/common/classes
|
|
mkdir -p temp/superserver/common/config
|
|
mkdir -p temp/superserver/config
|
|
mkdir -p temp/superserver/dsql
|
|
mkdir -p temp/superserver/dudley
|
|
mkdir -p temp/superserver/extlib
|
|
mkdir -p temp/superserver/extlib/fbudf
|
|
mkdir -p temp/superserver/gpre
|
|
mkdir -p temp/superserver/intl
|
|
mkdir -p temp/superserver/ipserver
|
|
mkdir -p temp/superserver/iscguard
|
|
mkdir -p temp/superserver/isql
|
|
mkdir -p temp/superserver/jrd
|
|
mkdir -p temp/superserver/jrd/os/posix
|
|
mkdir -p temp/superserver/jrd/os/win32
|
|
mkdir -p temp/superserver/jrd/os/darwin
|
|
mkdir -p temp/superserver/lock
|
|
mkdir -p temp/superserver/misc
|
|
mkdir -p temp/superserver/msgs
|
|
mkdir -p temp/superserver/qli
|
|
mkdir -p temp/superserver/remote
|
|
mkdir -p temp/superserver/remote/os/win32
|
|
mkdir -p temp/superserver/remote/os/sun
|
|
mkdir -p temp/superserver/remote/os/darwin
|
|
mkdir -p temp/superserver/utilities/common
|
|
mkdir -p temp/superserver/utilities/gsec
|
|
mkdir -p temp/superserver/utilities/gstat
|
|
mkdir -p temp/superserver/utilities/guard
|
|
mkdir -p temp/superserver/utilities/ibmgr
|
|
mkdir -p temp/superserver/utilities/install
|
|
mkdir -p temp/superserver/utilities/rebuild
|
|
mkdir -p temp/superserver/vulcan
|
|
|
|
])
|
|
|
|
|
|
MAKE_SRC_DIR=builds/posix
|
|
|
|
|
|
dnl EKU: handle platform specific installation and packaging
|
|
dnl: Common Files
|
|
case "$PLATFORM" in
|
|
[LINUX|GENTOOFREEBSD|HPUX])
|
|
AC_CONFIG_FILES([
|
|
gen/install/misc/firebird.conf:builds/install/misc/firebird.conf
|
|
gen/install/misc/aliases.conf:builds/install/misc/aliases.conf.in
|
|
gen/install/misc/fbintl.conf:builds/install/misc/fbintl.conf
|
|
gen/firebird/bin/fb_config:builds/install/misc/fb_config.in
|
|
gen/firebird/bin/posixLibrary.sh:builds/install/misc/posixLibrary.sh.in
|
|
gen/firebird/bin/classicLibrary.sh:builds/install/misc/classicLibrary.sh.in
|
|
gen/firebird/bin/superLibrary.sh:builds/install/misc/superLibrary.sh.in
|
|
gen/firebird/bin/changeRunUser.sh:builds/install/misc/changeRunUser.sh.in
|
|
gen/firebird/bin/restoreRootRunUser.sh:builds/install/misc/restoreRootRunUser.sh.in],
|
|
[chmod a+x gen/install/scripts/*.sh gen/install/*sh 2>/dev/null])
|
|
;;
|
|
esac
|
|
|
|
dnl: Platform Specific Files
|
|
|
|
case "$PLATFORM" in
|
|
LINUX|GENTOOFREEBSD)
|
|
AC_CONFIG_COMMANDS(,,[
|
|
mkdir -p gen/install/scripts
|
|
mkdir -p gen/install/misc
|
|
mkdir -p gen/RPM/RPMS/i686
|
|
mkdir -p gen/RPM/BUILD])
|
|
|
|
INSTALL_SRC_DIR=builds/install/arch-specific/linux/${FIREBIRD_ARCH_TYPE}
|
|
AC_CONFIG_FILES([gen/install/makeInstallImage.sh:${INSTALL_SRC_DIR}/makeInstallImage.sh.in
|
|
gen/firebird/bin/tarMainInstall.sh:${INSTALL_SRC_DIR}/tarMainInstall.sh.in
|
|
gen/firebird/bin/tarinstall.sh:${INSTALL_SRC_DIR}/tarinstall.sh.in
|
|
gen/firebird/bin/preinstall.sh:${INSTALL_SRC_DIR}/preinstall.sh.in
|
|
gen/firebird/bin/postinstall.sh:${INSTALL_SRC_DIR}/postinstall.sh.in
|
|
gen/firebird/bin/preuninstall.sh:${INSTALL_SRC_DIR}/preuninstall.sh.in
|
|
gen/firebird/bin/postuninstall.sh:${INSTALL_SRC_DIR}/postuninstall.sh.in
|
|
gen/firebird/bin/taruninstall.sh:${INSTALL_SRC_DIR}/taruninstall.sh.in
|
|
gen/firebird/bin/tarMainUninstall.sh:${INSTALL_SRC_DIR}/tarMainUninstall.sh.in
|
|
gen/install/scripts/rpmheader.txt:${INSTALL_SRC_DIR}/rpmheader.txt.in
|
|
gen/install/scripts/rpmfiles.txt:${INSTALL_SRC_DIR}/rpmfiles.txt.in
|
|
gen/install/misc/firebird.xinetd:builds/install/arch-specific/linux/misc/firebird.xinetd.in
|
|
gen/install/misc/firebird.init.d.generic:builds/install/arch-specific/linux/misc/firebird.init.d.generic.in
|
|
gen/install/misc/firebird.init.d.mandrake:builds/install/arch-specific/linux/misc/firebird.init.d.mandrake.in
|
|
gen/install/misc/firebird.init.d.suse:builds/install/arch-specific/linux/misc/firebird.init.d.suse.in
|
|
gen/install/misc/firebird.init.d.debian:builds/install/arch-specific/linux/misc/firebird.init.d.debian.in
|
|
gen/install/misc/firebird.init.d.gentoo:builds/install/arch-specific/linux/misc/firebird.init.d.gentoo.in
|
|
gen/install/misc/firebird.init.d.slackware:builds/install/arch-specific/linux/misc/firebird.init.d.slackware.in
|
|
gen/install/misc/rc.config.firebird:builds/install/arch-specific/linux/misc/rc.config.firebird.in
|
|
gen/firebird/bin/changeDBAPassword.sh:builds/install/misc/changeDBAPassword.sh.in
|
|
gen/firebird/bin/changeGdsLibraryCompatibleLink.sh:builds/install/misc/changeGdsLibraryCompatibleLink.sh.in
|
|
gen/firebird/bin/createAliasDB.sh:builds/install/misc/createAliasDB.sh.in
|
|
gen/firebird/bin/linuxLibrary.sh:builds/install/arch-specific/linux/misc/linuxLibrary.sh.in
|
|
gen/firebird/bin/superLinux.sh:builds/install/arch-specific/linux/misc/superLinux.sh.in
|
|
],[chmod a+x gen/install/scripts/*.sh gen/install/*sh 2>/dev/null])
|
|
;;
|
|
|
|
HPUX)
|
|
HP_INSTALL_SRC_DIR=builds/install/arch-specific/hpux/${FIREBIRD_ARCH_TYPE}
|
|
AC_CONFIG_FILES([
|
|
gen/install/makeinstallImage.sh:${HP_INSTALL_SRC_DIR}/makeinstallImage.sh.in
|
|
gen/firebirdCS.psf:${HP_INSTALL_SRC_DIR}/firebirdCS.psf.in
|
|
gen/firebird/bin/preInstall.sh:${HP_INSTALL_SRC_DIR}/preInstall.sh.in
|
|
gen/firebird/bin/tarInstall.sh:${HP_INSTALL_SRC_DIR}/tarInstall.sh.in
|
|
gen/firebird/bin/tarmainInstall.sh:${HP_INSTALL_SRC_DIR}/tarmainInstall.sh.in
|
|
gen/firebird/bin/tarUninstall.sh:${HP_INSTALL_SRC_DIR}/tarUninstall.sh.in
|
|
gen/firebird/bin/tarmainUninstall.sh:${HP_INSTALL_SRC_DIR}/tarmainUninstall.sh.in
|
|
gen/firebird/bin/postInstall.sh:${HP_INSTALL_SRC_DIR}/postInstall.sh.in
|
|
gen/firebird/bin/preUninstall.sh:${HP_INSTALL_SRC_DIR}/preUninstall.sh.in
|
|
gen/firebird/bin/postUninstall.sh:${HP_INSTALL_SRC_DIR}/postUninstall.sh.in
|
|
gen/install/misc/firebird.init.d.hpux:builds/install/arch-specific/hpux/misc/firebird.init.d.hpux.in
|
|
gen/install/misc/rc.config.firebird.hpux:builds/install/arch-specific/hpux/misc/rc.config.firebird.hpux.in
|
|
gen/firebird/bin/changedbaPassword.sh:builds/install/arch-specific/hpux/misc/changedbaPassword.sh.in
|
|
gen/firebird/bin/changegdslibrarycompatibleLink.sh:builds/install/arch-specific/hpux/misc/changegdslibrarycompatibleLink.sh.in
|
|
gen/firebird/bin/hpuxLibrary.sh:builds/install/arch-specific/hpux/misc/hpuxLibrary.sh.in
|
|
gen/firebird/bin/createaliasDB.sh:builds/install/arch-specific/hpux/misc/createaliasDB.sh.in],
|
|
[chmod a+x gen/install/scripts/*.sh gen/install/*.sh 2>/dev/null])
|
|
;;
|
|
|
|
FREEBSD)
|
|
AC_CONFIG_FILES([gen/install/install.sh:builds/install/arch-specific/freebsd/install.sh.in
|
|
],[chmod a+x gen/install/install.sh 2>/dev/null])
|
|
;;
|
|
|
|
|
|
NETBSD)
|
|
AC_CONFIG_FILES([gen/install/install.netbsd.sh:builds/install/arch-specific/netbsd/install.sh.in
|
|
],[chmod a+x gen/install/install.netbsd.sh 2>/dev/null])
|
|
;;
|
|
|
|
|
|
SINIX-Z)
|
|
AC_CONFIG_FILES([gen/install/pkginfo:builds/install/arch-specific/sinixz/pkginfo.in
|
|
gen/install/prototype:builds/install/arch-specific/sinixz/prototype.in
|
|
gen/install/preinstall:builds/install/arch-specific/sinixz/preinstall.in
|
|
gen/install/postinstall:builds/install/arch-specific/sinixz/postinstall.in
|
|
gen/install/postremove:builds/install/arch-specific/sinixz/postremove.in
|
|
],[chmod a+x gen/install/pre* gen/install/post* 2>/dev/null])
|
|
;;
|
|
|
|
solx86|SOLARIS)
|
|
AC_CONFIG_FILES([gen/firebird/install/Pkginfo:builds/install/arch-specific/solaris/${ARCH_TYPE_SUFFIX}/pkginfo.in
|
|
gen/firebird/install/Prototype:builds/install/arch-specific/solaris/${ARCH_TYPE_SUFFIX}/prototype.in
|
|
gen/firebird/install/Preinstall:builds/install/arch-specific/solaris/${ARCH_TYPE_SUFFIX}/preinstall.in
|
|
gen/firebird/install/Postinstall:builds/install/arch-specific/solaris/${ARCH_TYPE_SUFFIX}/postinstall.in
|
|
gen/firebird/install/Postremove:builds/install/arch-specific/solaris/${ARCH_TYPE_SUFFIX}/postremove.in
|
|
gen/firebird/install/prototypelg:builds/install/arch-specific/solaris/libgcc/prototypelg.in
|
|
gen/firebird/install/pkginfolg:builds/install/arch-specific/solaris/libgcc/pkginfolg.in
|
|
],[chmod a+x gen/firebird/install/Pre* gen/install/Post* 2>/dev/null])
|
|
;;
|
|
|
|
DARWIN)
|
|
;;
|
|
esac
|
|
|
|
if test -f ${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX};then
|
|
POSTFIX_FILE=gen/make.platform.postfix:${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX}
|
|
POSTFIX_INCLUDE='include $(ROOT)/gen/make.platform.postfix'
|
|
else
|
|
POSTFIX_FILE=
|
|
POSTFIX_INCLUDE=
|
|
fi
|
|
AC_SUBST(POSTFIX_INCLUDE)
|
|
|
|
|
|
AC_CONFIG_FILES(
|
|
gen/make.rules:${MAKE_SRC_DIR}/make.rules
|
|
gen/make.defaults:${MAKE_SRC_DIR}/make.defaults
|
|
gen/make.platform:${MAKE_SRC_DIR}/prefix.${MAKEFILE_PREFIX}
|
|
${POSTFIX_FILE}
|
|
gen/make.shared.variables:${MAKE_SRC_DIR}/make.shared.variables
|
|
gen/make.shared.targets:${MAKE_SRC_DIR}/make.shared.targets
|
|
gen/Makefile:${MAKE_SRC_DIR}/Makefile.in.firebird
|
|
gen/Makefile.codes:${MAKE_SRC_DIR}/Makefile.in.codes
|
|
gen/Makefile.boot.gpre:${MAKE_SRC_DIR}/Makefile.in.boot.gpre
|
|
gen/Makefile.libfbstatic:${MAKE_SRC_DIR}/Makefile.in.libfbstatic
|
|
gen/Makefile.static.gpre:${MAKE_SRC_DIR}/Makefile.in.static.gpre
|
|
gen/Makefile.static.gbak:${MAKE_SRC_DIR}/Makefile.in.static.gbak
|
|
gen/Makefile.static.gfix:${MAKE_SRC_DIR}/Makefile.in.static.gfix
|
|
gen/Makefile.static.isql:${MAKE_SRC_DIR}/Makefile.in.static.isql
|
|
gen/Makefile.refDatabases:${MAKE_SRC_DIR}/Makefile.in.refDatabases
|
|
gen/Makefile.fbserver:${MAKE_SRC_DIR}/Makefile.in.fbserver
|
|
gen/Makefile.libfbclient:${MAKE_SRC_DIR}/Makefile.in.libfbclient
|
|
gen/Makefile.client.fbudf:${MAKE_SRC_DIR}/Makefile.in.client.fbudf
|
|
gen/Makefile.client.gbak:${MAKE_SRC_DIR}/Makefile.in.client.gbak
|
|
gen/Makefile.client.gfix:${MAKE_SRC_DIR}/Makefile.in.client.gfix
|
|
gen/Makefile.client.gdef:${MAKE_SRC_DIR}/Makefile.in.client.gdef
|
|
gen/Makefile.client.qli:${MAKE_SRC_DIR}/Makefile.in.client.qli
|
|
gen/Makefile.client.isql:${MAKE_SRC_DIR}/Makefile.in.client.isql
|
|
gen/Makefile.client.gpre:${MAKE_SRC_DIR}/Makefile.in.client.gpre
|
|
gen/Makefile.client.util:${MAKE_SRC_DIR}/Makefile.in.client.util
|
|
gen/Makefile.client.gsec:${MAKE_SRC_DIR}/Makefile.in.client.gsec
|
|
gen/Makefile.intl:${MAKE_SRC_DIR}/Makefile.in.intl
|
|
gen/Makefile.msgs:${MAKE_SRC_DIR}/Makefile.in.msgs
|
|
gen/Makefile.extlib:${MAKE_SRC_DIR}/Makefile.in.extlib
|
|
gen/examples/Makefile.examples:${MAKE_SRC_DIR}/Makefile.in.examples
|
|
gen/Makefile.libfbembed:${MAKE_SRC_DIR}/Makefile.in.libfbembed
|
|
gen/Makefile.inet_server:${MAKE_SRC_DIR}/Makefile.in.inet_server
|
|
gen/Makefile.embed.lockmgr:${MAKE_SRC_DIR}/Makefile.in.embed.lockmgr
|
|
gen/Makefile.embed.util:${MAKE_SRC_DIR}/Makefile.in.embed.util
|
|
gen/Makefile.embed.fbudf:${MAKE_SRC_DIR}/Makefile.in.embed.fbudf
|
|
gen/Makefile.embed.gfix:${MAKE_SRC_DIR}/Makefile.in.embed.gfix
|
|
gen/Makefile.embed.gbak:${MAKE_SRC_DIR}/Makefile.in.embed.gbak
|
|
gen/Makefile.embed.isql:${MAKE_SRC_DIR}/Makefile.in.embed.isql
|
|
gen/Makefile.embed.gdef:${MAKE_SRC_DIR}/Makefile.in.embed.gdef
|
|
gen/Makefile.embed.qli:${MAKE_SRC_DIR}/Makefile.in.embed.qli
|
|
gen/Makefile.embed.gpre:${MAKE_SRC_DIR}/Makefile.in.embed.gpre
|
|
gen/Makefile.install:builds/install/arch-specific/${INSTALL_PREFIX}/Makefile.in
|
|
Makefile:Makefile.in
|
|
gen/Makefile.extern.editline:${MAKE_SRC_DIR}/Makefile.in.extern.editline
|
|
gen/Makefile.extern.icu:${MAKE_SRC_DIR}/Makefile.in.extern.icu
|
|
)
|
|
|
|
|
|
|
|
if test "$PROD_BUILD_FLG" = N; then
|
|
DEBUG_ICU=--enable-debug
|
|
fi
|
|
|
|
AC_OUTPUT
|
|
(cd extern/icu/source
|
|
chmod +x runConfigureICU configure install-sh
|
|
./runConfigureICU "$ICU_PLATFORM" "$DEBUG_ICU" --prefix=`pwd`/..)
|
|
|
|
|
|
dnl Print out the build configuration (the most interesting thing)
|
|
echo
|
|
echo
|
|
echo The Firebird2 package has been configured with the following options:
|
|
echo
|
|
|
|
case $FIREBIRD_ARCH_TYPE in
|
|
super) echo " Architecture : SuperServer";;
|
|
classic) echo " Architecture : ClassicServer";;
|
|
esac
|
|
|
|
case $PROD_BUILD_FLG in
|
|
Y) echo " Debug : disabled";;
|
|
N) echo " Debug : enabled";;
|
|
esac
|
|
|
|
case $ac_cv_sys_file_offset_bits in
|
|
no) echo "64 bit I/O for 32-bit platforms : disabled";;
|
|
64) echo "64 bit I/O for 32-bit platforms : enabled";;
|
|
esac
|
|
|
|
case $RAW_DEVICES_FLG in
|
|
Y) echo " Raw devices : enabled";;
|
|
N) echo " Raw devices : disabled";;
|
|
esac
|
|
|
|
if test "$FIREBIRD_ARCH_TYPE" = "classic"; then
|
|
case $LOCK_MANAGER_FLG in
|
|
Y) echo " Lock manager : enabled";;
|
|
N) echo " Lock manager : disabled";;
|
|
esac
|
|
fi
|
|
|
|
echo " Service name : $FB_SERVICE_NAME"
|
|
echo " Service port : $FB_SERVICE_PORT"
|
|
|
|
case "$PLATFORM" in
|
|
win32) echo " Pipe name : $FB_PIPE_NAME";;
|
|
esac
|
|
|
|
echo " GPRE modules : c_cxx.cpp$GPRE_LANGUAGE_MODULES"
|
|
echo
|
|
|
|
echo " Install Dir : $prefix"
|
|
echo
|
|
|
|
dnl EOF
|