dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.50)
AC_INIT

dnl set the DMAKEROOT
#AC_FUNC_SET_DMAKEROOT
PACKAGE=dmake
VERSION=4.2

AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
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_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
	  ;;
   *)
      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