aclocal_make.m4

来自「MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程」· M4 代码 · 共 392 行

M4
392
字号
dnldnl We need routines to check that make works.  Possible problems withdnl make includednldnl It is really gnumake, and contrary to the documentation on gnumake,dnl it insists on screaming everytime a directory is changed.  The fixdnl is to add the argument --no-print-directory to the makednldnl It is really BSD 4.4 make, and can't handle 'include'.  For somednl systems, this can be fatal; there is no fix (other than removing thisdnl alleged make).dnldnl It is the OSF V3 make, and can't handle a comment in a block of targetdnl code.  There is no acceptable fix.dnldnldnldnldnl Find a make program if none is defined.AC_DEFUN(PAC_PROG_MAKE_PROGRAM,[trueif test "X$MAKE" = "X" ; then   AC_CHECK_PROGS(MAKE,make gnumake nmake pmake smake)fi])dnldnl/*Ddnl PAC_PROG_MAKE_ECHOS_DIR - Check whether make echos all directory changesdnldnl Synopsis:dnl PAC_PROG_MAKE_ECHOS_DIRdnldnl Output Effect:dnl  If make echos directory changes, append '--no-print-directory' to the dnl  symbol 'MAKE'.  If 'MAKE' is not set, chooses 'make' for 'MAKE'.dnldnl See also:dnl PAC_PROG_MAKEdnl D*/dnlAC_DEFUN(PAC_PROG_MAKE_ECHOS_DIR,[AC_CACHE_CHECK([whether make echos directory changes],pac_cv_prog_make_echos_dir,[AC_REQUIRE([PAC_PROG_MAKE_PROGRAM])/bin/rm -f conftestcat > conftest <<.SHELL=/bin/shALL:	@(dir="`pwd`" ; cd .. ; \$(MAKE) -f "\$\$dir/conftest" SUB)SUB:	@echo "success".str="`$MAKE -f conftest 2>&1`"if test "$str" != "success" ; then    str="`$MAKE --no-print-directory -f conftest 2>&1`"    if test "$str" = "success" ; then	pac_cv_prog_make_echos_dir="yes using --no-print-directory"    else	pac_cv_prog_make_echos_dir="no"	echo "Unexpected output from make with program" >>config.log	cat conftest >>config.log	echo "str" >> config.log    fielse    pac_cv_prog_make_echos_dir="no"fi/bin/rm -f confteststr=""])if test "$pac_cv_prog_make_echos_dir" = "yes using --no-print-directory" ; then    MAKE="$MAKE --no-print-directory"fi])dnldnldnl/*Ddnl PAC_PROG_MAKE_INCLUDE - Check whether make supports includednldnl Synopsis:dnl PAC_PROG_MAKE_INCLUDE([action if true],[action if false])dnldnl Output Effect:dnl   Nonednldnl Notes:dnl  This checks for makes that do not support 'include filename'.  Somednl  versions of BSD 4.4 make required '#include' instead; some versions ofdnl  'pmake' have the same syntax.dnldnl See Also:dnl  PAC_PROG_MAKEdnldnl D*/dnlAC_DEFUN(PAC_PROG_MAKE_INCLUDE,[AC_CACHE_CHECK([whether make supports include],pac_cv_prog_make_include,[AC_REQUIRE([PAC_PROG_MAKE_PROGRAM])/bin/rm -f conftestcat > conftest <<.ALL:	@echo "success".cat > conftest1 <<.include conftest.pac_str=`$MAKE -f conftest1 2>&1`/bin/rm -f conftest conftest1if test "$pac_str" != "success" ; then    pac_cv_prog_make_include="no"else    pac_cv_prog_make_include="yes"fi])if test "$pac_cv_prog_make_include" = "no" ; then    ifelse([$2],,:,[$2])else    ifelse([$1],,:,[$1])fi])dnldnldnl/*Ddnl PAC_PROG_MAKE_ALLOWS_COMMENTS - Check whether comments are allowed in dnl   shell commands in a makefilednldnl Synopsis:dnl PAC_PROG_MAKE_ALLOWS_COMMENTS([false text])dnldnl Output Effect:dnl Issues a warning message if comments are not allowed in a makefile.dnl Executes the argument if one is given.dnldnl Notes:dnl Some versions of OSF V3 make do not all comments in action commands.dnldnl See Also:dnl  PAC_PROG_MAKEdnl D*/dnlAC_DEFUN(PAC_PROG_MAKE_ALLOWS_COMMENTS,[AC_CACHE_CHECK([whether make allows comments in actions],pac_cv_prog_make_allows_comments,[AC_REQUIRE([PAC_PROG_MAKE_PROGRAM])/bin/rm -f conftestcat > conftest <<.SHELL=/bin/shALL:	@# This is a valid comment!	@echo "success".pac_str=`$MAKE -f conftest 2>&1`/bin/rm -f conftest if test "$pac_str" != "success" ; then    pac_cv_prog_make_allows_comments="no"else    pac_cv_prog_make_allows_comments="yes"fi])if test "$pac_cv_prog_make_allows_comments" = "no" ; then    AC_MSG_WARN([Your make does not allow comments in target code.Using this make may cause problems when building programs.You should consider using gnumake instead.])    ifelse([$1],,[$1])fi])dnldnldnl/*Ddnl PAC_PROG_MAKE_VPATH - Check whether make supports source-code paths.dnldnl Synopsis:dnl PAC_PROG_MAKE_VPATHdnldnl Output Effect:dnl Sets the variable 'VPATH' to eitherdnl.vbdnl VPATH = .:${srcdir}dnl.vednl ordnl.vbdnl .PATH: . ${srcdir}dnl.vednl dnl Notes:dnl The test checks that the path works with implicit targets (some makesdnl support only explicit targets with 'VPATH' or 'PATH').dnldnl NEED TO DO: Check that $< works on explicit targets.dnldnl See Also:dnl PAC_PROG_MAKEdnldnl D*/dnlAC_DEFUN(PAC_PROG_MAKE_VPATH,[AC_SUBST(VPATH)AM_IGNORE(VPATH)AC_CACHE_CHECK([for virtual path format],pac_cv_prog_make_vpath,[AC_REQUIRE([PAC_PROG_MAKE_PROGRAM])rm -rf conftest*mkdir conftestdircat >conftestdir/a.c <<EOFA sample fileEOFcat > conftest <<EOFall: a.oVPATH=.:conftestdir.c.o:	@echo \$<EOFac_out=`$MAKE -f conftest 2>&1 | grep 'conftestdir/a.c'`if test -n "$ac_out" ; then     pac_cv_prog_make_vpath="VPATH"else    rm -f conftest    cat > conftest <<EOFall: a.o.PATH: . conftestdir.c.o:	@echo \$<EOF    ac_out=`$MAKE -f conftest 2>&1 | grep 'conftestdir/a.c'`    if test -n "$ac_out" ; then         pac_cv_prog_make_vpath=".PATH"    else	pac_cv_prog_make_vpath="neither VPATH nor .PATH works"    fifirm -rf conftest*])if test "$pac_cv_prog_make_vpath" = "VPATH" ; then    VPATH='VPATH=.:${srcdir}'elif test "$pac_cv_prog_make_vpath" = ".PATH" ; then    VPATH='.PATH: . ${srcdir}'fi])dnldnldnl/*Ddnl PAC_PROG_MAKE_SET_CFLAGS - Check whether make sets CFLAGSdnldnl Synopsis:dnl PAC_PROG_MAKE_SET_CFLAGS([action if true],[action if false])dnldnl Output Effects:dnl Executes the first argument if 'CFLAGS' is set by 'make'; executesdnl the second argument if 'CFLAGS' is not set by 'make'.dnldnl Notes:dnl If 'CFLAGS' is set by make, you may wish to override that choice in yourdnl makefile.dnldnl See Also:dnl PAC_PROG_MAKEdnl D*/AC_DEFUN(PAC_PROG_MAKE_SET_CFLAGS,[AC_CACHE_CHECK([whether make sets CFLAGS],pac_cv_prog_make_set_cflags,[AC_REQUIRE([PAC_PROG_MAKE_PROGRAM])/bin/rm -f conftestcat > conftest <<EOFSHELL=/bin/shALL:	@echo X[\$]{CFLAGS}XEOFpac_str=`$MAKE -f conftest 2>&1`/bin/rm -f conftest if test "$pac_str" = "XX" ; then    pac_cv_prog_make_set_cflags="no"else    pac_cv_prog_make_set_cflags="yes"fi])if test "$pac_cv_prog_make_set_cflags" = "no" ; then    ifelse([$2],,:,[$2])else    ifelse([$1],,:,[$1])fi])dnldnl/*Ddnldnl D*/AC_DEFUN(PAC_PROG_MAKE_CLOCK_SKEW,[AC_CACHE_CHECK([whether clock skew breaks make],pac_cv_prog_make_found_clock_skew,[AC_REQUIRE([PAC_PROG_MAKE_PROGRAM])rm -f conftest*cat > conftest <<EOFALL:	@-echo "success"EOF$MAKE -f conftest > conftest.out 2>&1if grep -i skew conftest >/dev/null 2>&1 ; then    pac_cv_prog_make_found_clock_skew=yeselse    pac_cv_prog_make_found_clock_skew=nofirm -f conftest*])dnl We should really do something if we detect clock skew.  The question is,dnl what?if test "$pac_cv_prog_make_found_clock_skew" = "yes" ; then    AC_MSG_WARN([Clock skew found by make.  The configure and build may fail.Consider building in a local instead of NFS filesystem.])fi])dnldnl/*Ddnl PAC_PROG_MAKE_HAS_PATTERN_RULES - Determine if the make program supportsdnl pattern rulesdnldnl Synopsis:dnl PAC_PROG_MAKE_HAS_PATTERN_RULES([action if true],[action if false])dnldnl Output Effect:dnl Executes the first argument if patterns of the formdnl.vbdnl   prefix%suffix: prefix%suffixdnl.vednl are supported by make (gnumake and Solaris make are known to supportdnl this form of target).  If patterns are not supported, executes thednl second argument.dnldnl See Also:dnl PAC_PROG_MAKEdnl dnl D*/AC_DEFUN(PAC_PROG_MAKE_HAS_PATTERN_RULES,[AC_CACHE_CHECK([whether make has pattern rules],pac_cv_prog_make_has_patterns,[AC_REQUIRE([PAC_PROG_MAKE_PROGRAM])rm -f conftest*cat > conftestmm <<EOF# Test for pattern rules.SUFFIXES:.SUFFIXES: .dep .cconftest%.dep: %.c	@cat \[$]< >\[$]@EOFdate > conftest.cif ${MAKE} -f conftestmm conftestconftest.dep 1>&AC_FD_CC 2>&1 </dev/null ; then    pac_cv_prog_make_has_patterns="yes"else    pac_cv_prog_make_has_patterns="no"firm -f conftest*])if test "$pac_cv_prog_make_has_patterns" = "no" ; then    ifelse([$2],,:,[$2])else    ifelse([$1],,:,[$1])fi])dnldnldnl/*Ddnl PAC_PROG_MAKE - Checks for the varieties of MAKE, including support for dnl VPATHdnldnl Synopsis:dnl PAC_PROG_MAKEdnldnl Output Effect:dnl Sets 'MAKE' to the make program to use if 'MAKE' is not already set.dnl Sets the variable 'SET_CFLAGS' to 'CFLAGS =' if make sets 'CFLAGS'.dnldnl Notes:dnl This macro uses 'PAC_PROG_MAKE_ECHOS_DIR', 'PAC_PROG_MAKE_INCLUDE',dnl 'PAC_PROG_MAKE_ALLOWS_COMMENTS', 'PAC_PROG_MAKE_VPATH', anddnl 'PAC_PROG_MAKE_SET_CFLAGS'.  See those commands for details about theirdnl actions.dnl dnl It may call 'AC_PROG_MAKE_SET', which sets 'SET_MAKE' to 'MAKE = @MAKE@'dnl if the make program does not set the value of make, otherwise 'SET_MAKE'dnl is set to empty; if the make program echos the directory name, then dnl 'SET_MAKE' is set to 'MAKE = $MAKE'.dnl D*/dnlAC_DEFUN(PAC_PROG_MAKE,[PAC_PROG_MAKE_PROGRAMPAC_PROG_MAKE_CLOCK_SKEWPAC_PROG_MAKE_ECHOS_DIRPAC_PROG_MAKE_INCLUDEPAC_PROG_MAKE_ALLOWS_COMMENTSPAC_PROG_MAKE_VPATHdnl dnl We're not using patterns any more, and Compaq/DEC OSF-1 sometimes hangsdnl at this testdnl PAC_PROG_MAKE_HAS_PATTERN_RULESAC_SUBST(SET_CFLAGS)AM_IGNORE(SET_CFLAGS)PAC_PROG_MAKE_SET_CFLAGS([SET_CFLAGS='CFLAGS='])if test "$pac_cv_prog_make_echos_dir" = "no" ; then    AC_PROG_MAKE_SETelse    SET_MAKE="MAKE=${MAKE-make}"fi])

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?