dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.52) dnl Set the package version dnl Don't forget to update the PACKAGE and VERSION macros in dnl dmake/win95/microsft/config.h to keep the native Microsoft C++ dnl compiler build happy. AC_INIT(dmake, 4.3) AC_CONFIG_SRCDIR(man/dmake.tf) AM_INIT_AUTOMAKE AM_MAINTAINER_MODE dnl Checks for programs. AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_RANLIB dnl Checks for utilities. AC_PROG_AWK dnl Checks for libraries. dnl Initialize libtool #AM_PROG_LIBTOOL dnl Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC AC_CHECK_HEADERS(fcntl.h limits.h strings.h sys/types.h sys/stat.h unistd.h errno.h utime.h spawn.h wait.h sys/wait.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_OFF_T AC_TYPE_SIZE_T AC_CHECK_TYPES(int8) AC_CHECK_TYPES(uint8) AC_CHECK_TYPES(int16) AC_CHECK_TYPES(uint16) AC_CHECK_TYPES(int32) AC_CHECK_TYPES(uint32) AC_HEADER_TIME AC_CHECK_SIZEOF(short, 2) AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(long, 4) dnl Checks for library functions. AC_FUNC_MEMCMP AC_TYPE_SIGNAL AC_FUNC_UTIME_NULL AC_FUNC_VPRINTF AC_CHECK_FUNCS(getcwd getwd putenv strcspn strerror strspn strstr setvbuf tzset settz mkstemp tempnam) dnl Checks for OS AC_MSG_CHECKING([the operating system]) _os=`uname` if test `echo $_os | $AWK -F_ '{ print $1 }'` = "CYGWIN"; then if test "$GCC" = "yes"; then if test `$CC -dumpmachine | $AWK -F- '{ print $3 }'` = "mingw32"; then _os="MINGW" else _os="CYGWIN" fi else _os="MSVC6" fi fi ## At the moment all except mingw builds are OS_TYPE unix OS_TYPE=unix ## The following allows like systems to share settings this is not meant to ## Imply that these OS are the same thing. case "$_os" in "SunOS") OS_VERSION=solaris ;; "Linux") OS_VERSION=linux ;; "CYGWIN") OS_VERSION=cygwin ;; "MINGW") OS_VERSION=mingw OS_TYPE=winnt ;; "MSVC6") OS_VERSION=msvc6 OS_TYPE=winnt ;; "Darwin") OS_VERSION=macosx ;; "FreeBSD") OS_VERSION=linux ;; "OSF1") OS_VERSION=sysvr4 ;; "NetBSD") OS_VERSION=linux ;; "IRIX") OS_VERSION=sysvr4 ;; "IRIX64") OS_VERSION=sysvr4 ;; "GNU") OS_VERSION=linux ;; "AIX") OS_VERSION=sysvr4 ;; *) AC_MSG_ERROR([$_os operating system is not suitable to build dmake!]) ;; esac AC_MSG_RESULT([checked ($_os)]) if test x$OS_TYPE = xunix; then OS_SUBDIRS=["unix startup"] OS_LIBRARY=unix/libunix.a else OS_SUBDIRS=["win95 msdos startup"] OS_LIBRARY=["win95/libwin95.a msdos/libmsdos.a win95/microsft/libmsft.a"] fi AC_SUBST(OS_TYPE) AC_SUBST(OS_VERSION) AC_SUBST(OS_SUBDIRS) AC_SUBST(OS_LIBRARY) AM_CONFIG_HEADER(config.h) AC_CONFIG_FILES(Makefile unix/Makefile startup/Makefile startup/unix/Makefile \ startup/unix/linux/Makefile startup/unix/solaris/Makefile \ startup/unix/macosx/Makefile startup/unix/sysvr4/Makefile \ startup/unix/cygwin/Makefile \ startup/winnt/Makefile startup/winnt/mingw/Makefile \ startup/winnt/msvc6/Makefile \ msdos/Makefile win95/Makefile win95/microsft/Makefile ) dnl ****************************** dnl *** output the whole stuff *** dnl ****************************** AC_CONFIG_COMMANDS_POST([ ## Generate `dmakeroot.h' in two cases ## 1. `config.status' is run either explicitly, or via configure. ## Esp. not when it is run in `Makefile' to generate makefiles and ## config.h ## 2. CONFIG_OTHER is set explicitly ## ## Case 1 is difficult. We know that `automake' sets one of ## CONFIG_FILES or CONFIG_HEADERS to empty. This heuristic works ## only when AM_CONFIG_HEADER is set, however. if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1 CONFIG_OTHER=${CONFIG_OTHER:-dmakeroot.h} fi outfile=dmakeroot.h-tmp cat > $outfile <<\_______EOF /* dmakeroot.h * * This is a generated file. Please modify `configure.in' */ _______EOF if test x$prefix != x; then if test x$OS_TYPE = xunix; then echo '"DMAKEROOT := '$prefix'/share/startup",' >> $outfile fi echo '"OS := '${OS_VERSION}'",' >> $outfile fi if cmp -s $outfile dmakeroot.h; then echo dmakeroot.h is unchanged rm -f $outfile else mv $outfile dmakeroot.h fi ]) dnl set the DMAKEROOT AC_SET_DMAKEROOT dnl *** output to disk *** AC_OUTPUT