1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
samba-mirror/source3/m4/check_gnu_make.m4
James Peach 821bf2bd72 r22441: Add automatic dependency tracking. The dependency generation is
toolchain independent, but since there's no portable method for
doing makefile includes, we can actually use the dependencies with
GNU make. It's easy to add this for other makes, but I don't have
any to test.

This also moves as much m4 as possible into the m4 directory where
no-one has to look at it. AFAICT, there's no way to hide depcomp
in there too, which is unfortunate.
(This used to be commit aa14900f82)
2007-10-10 12:19:34 -05:00

79 lines
2.6 KiB
Plaintext

##### http://autoconf-archive.cryp.to/check_gnu_make.html
#
# SYNOPSIS
#
# CHECK_GNU_MAKE()
#
# DESCRIPTION
#
# This macro searches for a GNU version of make. If a match is found,
# the makefile variable `ifGNUmake' is set to the empty string,
# otherwise it is set to "#". This is useful for including a special
# features in a Makefile, which cannot be handled by other versions
# of make. The variable _cv_gnu_make_command is set to the command to
# invoke GNU make if it exists, the empty string otherwise.
#
# Here is an example of its use:
#
# Makefile.in might contain:
#
# # A failsafe way of putting a dependency rule into a makefile
# $(DEPEND):
# $(CC) -MM $(srcdir)/*.c > $(DEPEND)
#
# @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND)))
# @ifGNUmake@ include $(DEPEND)
# @ifGNUmake@ endif
#
# Then configure.in would normally contain:
#
# CHECK_GNU_MAKE()
# AC_OUTPUT(Makefile)
#
# Then perhaps to cause gnu make to override any other make, we could
# do something like this (note that GNU make always looks for
# GNUmakefile first):
#
# if ! test x$_cv_gnu_make_command = x ; then
# mv Makefile GNUmakefile
# echo .DEFAULT: > Makefile ;
# echo \ $_cv_gnu_make_command \$@ >> Makefile;
# fi
#
# Then, if any (well almost any) other make is called, and GNU make
# also exists, then the other make wraps the GNU make.
#
# LAST MODIFICATION
#
# 2002-01-04
#
# COPYLEFT
#
# Copyright (c) 2002 John Darrington <j.darrington@elvis.murdoch.edu.au>
#
# Copying and distribution of this file, with or without
# modification, are permitted in any medium without royalty provided
# the copyright notice and this notice are preserved.
AC_DEFUN(
[CHECK_GNU_MAKE], [ AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
_cv_gnu_make_command='' ;
dnl Search all the common names for GNU make
for a in "$MAKE" make gmake gnumake ; do
if test -z "$a" ; then continue ; fi ;
if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) ; then
_cv_gnu_make_command=$a ;
break;
fi
done ;
) ;
dnl If there was a GNU version, then set @ifGNUmake@ to the empty string, '#' otherwise
if test "x$_cv_gnu_make_command" != "x" ; then
ifGNUmake='' ;
else
ifGNUmake='#' ;
AC_MSG_RESULT("Not found");
fi
AC_SUBST(ifGNUmake)
] )