AC_PREREQ([2.71]) AC_INIT([MPUIO Library],[1.0.3],[Andrey V.Kosteltsev ],[libmpuio],[https://radix-linux.su]) AC_LIBMPUIO_REQUIRE_BASH AC_LIBMPUIO_HEADLINE([libmpuio], [Formatted I/O Library], [LIBMPUIO_VERSION],dnl [Copyright (c) 1999-2026 Andrey V.Kosteltsev])dnl AC_MSG_CFG_PART(Getting the canonical system type) dnl dnl NOTE: Следующие вызовы должны осуществляться строго до dnl вызова AM_INIT_AUTOMAKE . dnl dnl Для библиотеки достаточно вызвать AC_CANONICAL_HOST и при этом dnl будут определены build_alias и host_alias. Однако опция --target dnl будет запрещена. dnl dnl Для программ достаточно задать AC_CANONICAL_TARGET и при этом dnl будут определены build_alias, host_alias и target_alias. Естественно dnl будут доступны все три опции: --build, --host, и --target . dnl AC_CANONICAL_HOST AC_CANONICAL_TARGET AC_USE_SYSTEM_EXTENSIONS dnl Должна вызываться строго после AC_CANONICAL_TARGET . AC_ARG_PROGRAM AC_MSG_CFG_PART(Init Automake environment) AM_INIT_AUTOMAKE([dist-xz no-dist-gzip]) AC_CONFIG_SRCDIR(acsite.m4) AC_CONFIG_HEADERS(config.h) AC_CONFIG_MACRO_DIRS([m4]) AC_MSG_CFG_PART(Test for GNU Compiler Colection) AC_PROG_CC if test $ac_cv_c_compiler_gnu != yes; then AC_MSG_ERROR([ ******** ${TB}The MPU Library should be compiled using the GNU compiler only.${TN}]) fi AC_SUBST(cross_compiling) AC_PROG_CPP AC_MSG_CFG_PART(Test for alias attribute) LIBMPUIO_ALIAS_ATTRIBUTE AC_MSG_CFG_PART(Test for hidden visibility attribute) LIBMPUIO_HIDDEN_VISIBILITY_ATTRIBUTE AC_MSG_CFG_PART(Test for Target Machine Data Types) AC_GCC_TYPES AC_MSG_CFG_PART(Test for Target Machine Size of Data Types) AC_GCC_SIZEOF_TYPES AC_GCC_WIDTH_OF_TYPES AC_MSG_CFG_PART(Test for Target Machine Byte Order) AC_GCC_BYTE_ORDER AC_GCC_FLOAT_WORD_ORDER AC_MSG_CFG_PART(Test for Target Machine Programming Model) AC_GCC_PROGRAMMING_MODEL AC_MSG_CFG_PART(Test for Target Machine Register Width) AC_GCC_REGISTER_WIDTH AC_MSG_CFG_PART(Test for GNU Binutils) LIBMPUIO_PROG_BINUTILS AC_MSG_CFG_PART(Test how to build C programs using POSIX threads) AX_PTHREAD([ LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC"]) AC_MSG_CFG_PART(Test for GNU Source) AC_USE_SYSTEM_EXTENSIONS if test $host != $build; then AC_MSG_CFG_PART(Test for Build Machile Compiler) AC_PROG_BUILD_CC AC_PATH_PROG_BUILD_STRIP_S fi AC_SUBST(BUILD_CFLAGS) AC_SUBST(BUILD_LDFLAGS) AC_ARG_VAR([BUILD_CC],[Build C compiler command]) AC_ARG_VAR([BUILD_CFLAGS],[Build C compiler flags]) AC_ARG_VAR([BUILD_LDFLAGS],[Build linker flags, e.g. -L if you have libraries in a nonstandard directory ]) AC_MSG_CFG_PART(Test for GCC builtin functions) AX_GCC_BUILTIN([__builtin_popcount]) AX_GCC_BUILTIN([__builtin_parity]) AC_MSG_CFG_PART(Test for GNU libtool) LT_PREREQ([2.4.6]) LT_INIT AC_SUBST([LIBTOOL_DEPS]) AC_MSG_CFG_PART(Test for libtool VERSION Information) AC_LIBMPUIO_LT_VERSION_INFO AC_MSG_CFG_PART(Test for LD_LIBRARY_PATH Environment Variable) AC_LD_LIBRARY_PATH dnl dnl End of arguments to specify other packages/features. dnl ============================================================ dnl ============================================================ dnl Locate tools: dnl ============================================================ AC_MSG_CFG_PART(Test for Header files) dnl dnl Check for system header files. dnl ============================= dnl /* GetText частично проверил. Но мы делаем для себя. */ AC_CHECK_INCLUDES_DEFAULT AC_PROG_EGREP AC_CHECK_HEADERS( locale.h ) AC_CHECK_HEADERS( sys/types.h sys/stat.h stdlib.h stddef.h ) AC_CHECK_HEADERS( memory.h string.h strings.h ) AC_CHECK_HEADERS( inntypes.h stdint.h unistd.h ) AC_CHECK_HEADERS( fcntl.h errno.h ) AC_CHECK_HEADERS( sys/file.h ) AC_CHECK_HEADERS( sys/uio.h ) AC_CHECK_HEADERS( sys/wait.h ) AC_CHECK_HEADERS( stdarg.h ) AC_CHECK_HEADERS( sys/time.h ) AC_CHECK_HEADERS( limits.h ) AC_CHECK_HEADERS( endian.h ) AC_CHECK_HEADERS( ctype.h ) AC_CHECK_HEADERS( uchar.h ) AC_CHECK_HEADERS( pthread.h ) AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_MSG_CFG_PART(Test for Libc functions) dnl dnl Check for glibc funcs. dnl ============================= dnl /* GetText частично проверил. Но мы делаем для себя. */ AC_CHECK_FUNCS([iconv putenv setenv setlocale]) AC_MSG_CFG_PART(Test for LibMPU) dnl ============================================================ dnl Check for LibMPU dnl ============================================================ dnl AC_CHECK_HEADERS( libmpu.h ) AC_CHECK_LIBMPU( [1.0.20], [yes], [ AC_DEFINE( [HAVE_LIBMPU], [1], [Define to 1 if LibMPU is available.] ) ], [ AC_MSG_ERROR([LibMPU version 1.0.20 or later is required.]) ] ) # TODO: check programs test -n "$critic_missing" && AC_MSG_ERROR([ ******** ${TB}These critical programs are missing or too old: $critic_missing${TN} ******** ${TB}Check the INSTALL file for required versions.${TN}]) test -n "$aux_missing" && AC_MSG_WARN([ ******** ${TB}These auxiliary programs are missing or too old: $aux_missing${TN} ******** ${TB}some features will be disabled.${TN} ******** ${TB}Check the INSTALL file for required versions.${TN}]) dnl dnl End of locate tools: dnl ============================================================ dnl ============================================================ dnl Define variables accoring to arguments: dnl ============================================================ # if using special system headers, find out the compiler's sekrit # header directory and add that to the list. NOTE: Only does the # right thing on a system that doesn't need fixincludes. # (Not presently a problem.) if test -n "$sysheaders"; then SYSINCLUDES=-nostdinc for d in include include-fixed; do i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" && SYSINCLUDES="$SYSINCLUDES -isystem $i" done SYSINCLUDES="$SYSINCLUDES -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`" fi AC_SUBST(SYSINCLUDES) dnl dnl End of variables definition. dnl ============================================================ AC_MSG_CFG_PART(OUTPUT Substitutions) AC_CONFIG_FILES([ Makefile src/Makefile mpuio-config mpuio.pc man/Makefile man/ru/Makefile]) AC_OUTPUT if test -f "config.h"; then echo "" echo "Now you can run:" echo " \`${TB}make${TN}' to compile," echo " \`${TB}make install${TN}' to make and install ${TB}libmpu${TN}," echo " \`${TB}make dist${TN}' to create distributable tarballs, or" echo " \`${TB}make distclean${TN}' to clean before configure for another target." echo "Good luck." echo "" fi