Updates to QA scrdiff script to keep package configure macros in sync.
[xfstests-dev.git] / m4 / package_utilies.m4
1 #
2 # Check for specified utility (env var) - if unset, fail.
3
4 AC_DEFUN([AC_PACKAGE_NEED_UTILITY],
5   [ if test -z "$2"; then
6         echo
7         echo FATAL ERROR: $3 does not seem to be installed.
8         echo $1 cannot be built without a working $4 installation.
9         exit 1
10     fi
11   ])
12
13 #
14 # Generic macro, sets up all of the global build variables.
15 # The following environment variables may be set to override defaults:
16 #  CC MAKE LIBTOOL TAR ZIP MAKEDEPEND AWK SED ECHO SORT
17 #  MSGFMT MSGMERGE RPM
18 #
19 AC_DEFUN([AC_PACKAGE_UTILITIES],
20   [ if test -z "$CC"; then
21         AC_PROG_CC
22     fi
23     cc="$CC"
24     AC_SUBST(cc)
25     AC_PACKAGE_NEED_UTILITY($1, "$cc", cc, [C compiler])
26
27     if test -z "$MAKE"; then
28         AC_PATH_PROG(MAKE, make, /usr/bin/make)
29     fi
30     make=$MAKE
31     AC_SUBST(make)
32     AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make])
33
34     if test -z "$LIBTOOL"; then
35         AC_PATH_PROG(LIBTOOL, libtool,,/usr/bin:/usr/local/bin)
36     fi
37     libtool=$LIBTOOL
38     AC_SUBST(libtool)
39     AC_PACKAGE_NEED_UTILITY($1, "$libtool", libtool, [GNU libtool])
40
41     if test -z "$TAR"; then
42         AC_PATH_PROG(TAR, tar)
43     fi
44     tar=$TAR
45     AC_SUBST(tar)
46     if test -z "$ZIP"; then
47         AC_PATH_PROG(ZIP, gzip, /bin/gzip)
48     fi
49     zip=$ZIP
50     AC_SUBST(zip)
51     if test -z "$MAKEDEPEND"; then
52         AC_PATH_PROG(MAKEDEPEND, makedepend, /bin/true)
53     fi
54     makedepend=$MAKEDEPEND
55     AC_SUBST(makedepend)
56     if test -z "$AWK"; then
57         AC_PATH_PROG(AWK, awk, /bin/awk)
58     fi
59     awk=$AWK
60     AC_SUBST(awk)
61     if test -z "$SED"; then
62         AC_PATH_PROG(SED, sed, /bin/sed)
63     fi
64     sed=$SED
65     AC_SUBST(sed)
66     if test -z "$ECHO"; then
67         AC_PATH_PROG(ECHO, echo, /bin/echo)
68     fi
69     echo=$ECHO
70     AC_SUBST(echo)
71     if test -z "$SORT"; then
72         AC_PATH_PROG(SORT, sort, /bin/sort)
73     fi
74     sort=$SORT
75     AC_SUBST(sort)
76
77     dnl check if symbolic links are supported
78     AC_PROG_LN_S
79
80     if test "$enable_gettext" = yes; then
81         if test -z "$MSGFMT"; then
82                 AC_CHECK_PROG(MSGFMT, msgfmt, /usr/bin/msgfmt)
83         fi
84         msgfmt=$MSGFMT
85         AC_SUBST(msgfmt)
86         AC_PACKAGE_NEED_UTILITY($1, "$msgfmt", msgfmt, gettext)
87         if test -z "$MSGMERGE"; then
88                 AC_CHECK_PROG(MSGMERGE, msgmerge, /usr/bin/msgmerge)
89         fi
90         msgmerge=$MSGMERGE
91         AC_SUBST(msgmerge)
92         AC_PACKAGE_NEED_UTILITY($1, "$msgmerge", msgmerge, gettext)
93     fi
94
95     if test -z "$RPM"; then
96         AC_PATH_PROG(RPM, rpm, /bin/rpm)
97     fi
98     rpm=$RPM
99     AC_SUBST(rpm)
100     dnl .. and what version is rpm
101     rpm_version=0
102     test -x $RPM && rpm_version=`$RPM --version \
103                         | awk '{print $NF}' | awk -F. '{V=1; print $V}'`
104     AC_SUBST(rpm_version)
105     dnl At some point in rpm 4.0, rpm can no longer build rpms, and
106     dnl rpmbuild is needed (rpmbuild may go way back; not sure)
107     dnl So, if rpm version >= 4.0, look for rpmbuild.  Otherwise build w/ rpm
108     if test $rpm_version -ge 4; then
109         AC_PATH_PROG(RPMBUILD, rpmbuild)
110         rpmbuild=$RPMBUILD
111     else
112         rpmbuild=$RPM
113     fi
114     AC_SUBST(rpmbuild)
115   ])