📄 aclocal_make.m4
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -