General improvement on viewing wide and long slog2 files. This added features needed...
[mpe.git] / aclocal_make.m4
1 dnl
2 dnl We need routines to check that make works.  Possible problems with
3 dnl make include
4 dnl
5 dnl It is really gnumake, and contrary to the documentation on gnumake,
6 dnl it insists on screaming everytime a directory is changed.  The fix
7 dnl is to add the argument --no-print-directory to the make
8 dnl
9 dnl It is really BSD 4.4 make, and can't handle 'include'.  For some
10 dnl systems, this can be fatal; there is no fix (other than removing this
11 dnl aleged make).
12 dnl
13 dnl It is the OSF V3 make, and can't handle a comment in a block of targe
14 dnl code.  There is no acceptable fix.
15 dnl
16 dnl This assumes that "MAKE" holds the name of the make program.  If it
17 dnl determines that it is an improperly built gnumake, it adds
18 dnl --no-print-directorytries to the symbol MAKE.
19 define(PAC_MAKE_IS_GNUMAKE,[
20 AC_MSG_CHECKING(gnumake)
21 rm -f conftest
22 cat > conftest <<.
23 SHELL=/bin/sh
24 ALL:
25         @(dir=`pwd` ; cd .. ; \$(MAKE) -f \$\$dir/conftest SUB)
26 SUB:
27         @echo "success"
28 .
29 str=`$MAKE -f conftest 2>&1`
30 if test "$str" != "success" ; then
31     str=`$MAKE --no-print-directory -f conftest 2>&1`
32     if test "$str" = "success" ; then
33         MAKE="$MAKE --no-print-directory"
34         AC_MSG_RESULT(yes using --no-print-directory)
35     else
36         AC_MSG_RESULT(no)
37     fi
38 else
39     AC_MSG_RESULT(no)
40 fi
41 rm -f conftest
42 str=""
43 ])dnl
44 dnl
45 dnl PAC_MAKE_IS_BSD44([true text])
46 dnl
47 define(PAC_MAKE_IS_BSD44,[
48 AC_MSG_CHECKING(BSD 4.4 make)
49 rm -f conftest
50 cat > conftest <<.
51 ALL:
52         @echo "success"
53 .
54 cat > conftest1 <<.
55 include conftest
56 .
57 str=`$MAKE -f conftest1 2>&1`
58 rm -f conftest conftest1
59 if test "$str" != "success" ; then
60     AC_MSG_RESULT(Found BSD 4.4 so-called make)
61     echo "The BSD 4.4 make is INCOMPATIBLE with all other makes."
62     echo "Using this so-called make may cause problems when building programs."
63     echo "You should consider using gnumake instead."
64     ifelse([$1],,[$1])
65 else
66     AC_MSG_RESULT(no - whew)
67 fi
68 str=""
69 ])dnl
70 dnl
71 dnl PAC_MAKE_IS_OSF([true text])
72 dnl
73 define(PAC_MAKE_IS_OSF,[
74 AC_MSG_CHECKING(OSF V3 make)
75 rm -f conftest
76 cat > conftest <<.
77 SHELL=/bin/sh
78 ALL:
79         @# This is a valid comment!
80         @echo "success"
81 .
82 str=`$MAKE -f conftest 2>&1`
83 rm -f conftest 
84 if test "$str" != "success" ; then
85     AC_MSG_RESULT(Found OSF V3 make)
86     echo "The OSF V3 make does not allow comments in target code."
87     echo "Using this make may cause problems when building programs."
88     echo "You should consider using gnumake instead."
89     ifelse([$1],,[$1])
90 else
91     AC_MSG_RESULT(no)
92 fi
93 str=""
94 ])dnl
95 dnl
96 dnl Look for a style of VPATH.  Known forms are
97 dnl VPATH = .:dir
98 dnl .PATH: . dir
99 dnl
100 dnl Defines VPATH or .PATH with . $(srcdir)
101 dnl Requires that vpath work with implicit targets
102 dnl NEED TO DO: Check that $< works on explicit targets.
103 dnl
104 define(PAC_MAKE_VPATH,[
105 AC_SUBST(VPATH)
106 AC_MSG_CHECKING(for virtual path format)
107 rm -rf conftest*
108 mkdir conftestdir
109 cat >conftestdir/a.c <<EOF
110 A sample file
111 EOF
112 cat > conftest <<EOF
113 all: a.o
114 VPATH=.:conftestdir
115 .c.o:
116         @echo \$<
117 EOF
118 ac_out=`$MAKE -f conftest 2>&1 | grep 'conftestdir/a.c'`
119 if test -n "$ac_out" ; then 
120     AC_MSG_RESULT(VPATH)
121     VPATH='VPATH=.:$(srcdir)'
122 else
123     rm -f conftest
124     cat > conftest <<EOF
125 all: a.o
126 .PATH: . conftestdir
127 .c.o:
128         @echo \$<
129 EOF
130     ac_out=`$MAKE -f conftest 2>&1 | grep 'conftestdir/a.c'`
131     if test -n "$ac_out" ; then 
132         AC_MSG_RESULT(.PATH)
133         VPATH='.PATH: . $(srcdir)'
134     else
135         AC_MSG_RESULT(neither VPATH nor .PATH works)
136     fi
137 fi
138 rm -rf conftest*
139 ])dnl