build: sync deb control.master with recent control changes
[pcp.git] / m4 / package_utilies.m4
blobc6c5102e158b6a0e1163e19f99ea92ed5ef5eb20
2 # Check for specified utility (env var) - if unset, fail.
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   ])
14 # Generic macro, sets up all of the global build variables.
15 # The following environment variables may be set to override defaults:
16 #  MAKE TAR BZIP2 MAKEDEPEND AWK SED ECHO SORT RPMBUILD DPKG LEX YACC
18 AC_DEFUN([AC_PACKAGE_UTILITIES],
19   [ AC_PROG_CXX
20     AC_PACKAGE_NEED_UTILITY($1, "$CXX", cc, [C++ compiler])
22     if test -z "$MAKE"; then
23         AC_PATH_PROG(MAKE, mingw32-make,, /mingw/bin:/usr/bin:/usr/local/bin)
24     fi
25     if test -z "$MAKE"; then
26         AC_PATH_PROG(MAKE, gmake,, /usr/bin:/usr/local/bin)
27     fi
28     if test -z "$MAKE"; then
29         AC_PATH_PROG(MAKE, make,, /usr/bin)
30     fi
31     make=$MAKE
32     AC_SUBST(make)
33     AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make])
35     if test -z "$TAR"; then
36         AC_PATH_PROG(TAR, tar,, /bin:/usr/local/bin:/usr/bin)
37     fi
38     tar=$TAR
39     AC_SUBST(tar)
41     if test -z "$ZIP"; then
42         AC_PATH_PROG(ZIP, gzip,, /bin:/usr/bin:/usr/local/bin)
43     fi
44     zip=$ZIP
45     AC_SUBST(zip)
47     if test -z "$BZIP2"; then
48         AC_PATH_PROG(BZIP2, bzip2,, /bin:/usr/bin:/usr/local/bin)
49     fi
50     bzip2=$BZIP2
51     AC_SUBST(bzip2)
53     if test -z "$MAKEDEPEND"; then
54         AC_PATH_PROG(MAKEDEPEND, makedepend, /bin/true)
55     fi
56     makedepend=$MAKEDEPEND
57     AC_SUBST(makedepend)
59     if test -z "$AWK"; then
60         AC_PATH_PROG(AWK, awk,, /bin:/usr/bin)
61     fi
62     awk=$AWK
63     AC_SUBST(awk)
65     if test -z "$SED"; then
66         AC_PATH_PROG(SED, sed,, /bin:/usr/bin)
67     fi
68     sed=$SED
69     AC_SUBST(sed)
71     if test -z "$ECHO"; then
72         AC_PATH_PROG(ECHO, echo,, /bin:/usr/bin)
73     fi
74     echo=$ECHO
75     AC_SUBST(echo)
77     if test -z "$SORT"; then
78         AC_PATH_PROG(SORT, sort,, /bin:/usr/bin)
79     fi
80     sort=$SORT
81     AC_SUBST(sort)
83     dnl check if symbolic links are supported
84     AC_PROG_LN_S
86     dnl check if rpmbuild is available
87     if test -z "$RPMBUILD"
88     then
89         AC_PATH_PROG(RPMBUILD, rpmbuild)
90     fi
91     rpmbuild=$RPMBUILD
92     AC_SUBST(rpmbuild)
94     dnl check if the dpkg program is available
95     if test -z "$DPKG"
96     then
97         AC_PATH_PROG(DPKG, dpkg)
98     fi
99     dpkg=$DKPG
100     AC_SUBST(dpkg)
102     dnl Check for the MacOSX PackageMaker
103     AC_MSG_CHECKING([for PackageMaker])
104     if test -z "$PACKAGE_MAKER"
105     then
106         devapps=/Developer/Applications
107         darwin6=${devapps}/PackageMaker.app/Contents/MacOS
108         darwin7=${devapps}/Utilities/PackageMaker.app/Contents/MacOS
109         if test -x ${darwin6}/PackageMaker       
110         then
111             package_maker=${darwin6}/PackageMaker
112             AC_MSG_RESULT([ yes (darwin 6.x)])
113         elif test -x ${darwin7}/PackageMaker
114         then
115             AC_MSG_RESULT([ yes (darwin 7.x)])
116             package_maker=${darwin7}/PackageMaker
117         else
118             AC_MSG_RESULT([ no])
119         fi
120     else
121         package_maker="$PACKAGE_MAKER"
122     fi
123     AC_SUBST(package_maker)
125     dnl check if the MacOSX hdiutil program is available
126     test -z "$HDIUTIL" && AC_PATH_PROG(HDIUTIL, hdiutil)
127     hdiutil=$HDIUTIL
128     AC_SUBST(hdiutil)
130     dnl check if a toolchain is available for the books
131     test -z "$PUBLICAN" && AC_PATH_PROG(PUBLICAN, publican)
132     publican=$PUBLICAN
133     AC_SUBST(publican)
134     test -z "$DBLATEX" && AC_PATH_PROG(DBLATEX, dblatex)
135     dblatex=$DBLATEX
136     AC_SUBST(dblatex)
137     test -z "$XMLTO" && AC_PATH_PROG(XMLTO, xmlto)
138     xmlto=$XMLTO
139     AC_SUBST(xmlto)
141     book_toolchain=""
142     if test "$do_books" = "check" -o "$do_books" = "yes"
143     then
144         if test "$BOOK_TOOLCHAIN" != ""
145         then
146             book_toolchain=$BOOK_TOOLCHAIN
147         elif test "$DBLATEX" != ""
148         then
149             book_toolchain=dblatex
150         elif test "$PUBLICAN" != ""
151         then
152             book_toolchain=publican
153         elif test "$XMLTO" != ""
154         then
155             book_toolchain=xmlto
156         elif test "$do_books" = "yes"
157         then
158             AC_MSG_ERROR(cannot enable books build - no toolchain found)
159         fi
160     fi
161     AC_SUBST(book_toolchain)
163     dnl check if user wants their own lex, yacc
164     AC_PROG_YACC
165     yacc=$YACC
166     AC_SUBST(yacc)
167     AC_PROG_LEX
168     lex=$LEX
169     AC_SUBST(lex)
170     
171     dnl extra check for lex and yacc as these are often not installed
172     AC_MSG_CHECKING([if yacc is executable])
173     binary=`echo $yacc | awk '{cmd=1; print $cmd}'`
174     binary=`which "$binary"`
175     if test -x "$binary"
176     then
177         AC_MSG_RESULT([ yes])
178     else
179         AC_MSG_RESULT([ no])
180         echo
181         echo "FATAL ERROR: did not find a valid yacc executable."
182         echo "You can either set \$YACC as the full path to yacc"
183         echo "in the environment, or install a yacc/bison package."
184         exit 1
185     fi
186     AC_MSG_CHECKING([if lex is executable])
187     binary=`echo $lex | awk '{cmd=1; print $cmd}'`
188     binary=`which "$binary"`
189     if test -x "$binary"
190     then
191         AC_MSG_RESULT([ yes])
192     else
193         AC_MSG_RESULT([ no])
194         echo
195         echo "FATAL ERROR: did not find a valid lex executable."
196         echo "You can either set \$LEX as the full path to lex"
197         echo "in the environment, or install a lex/flex package."
198         exit 1
199     fi