Unlike stated in the manual, m4 is not an optional package that is
only needed on developer machines to build the html version of the
manual. Rather, the m4 macro processor is an essential requirement
because the gengetopt input files are generated with m4 from their
templates in m4/gengetopt.
This patch moves the documentation item on m4 from the development
section of the manual to the list of required packages for building
the paraslash package. It also adds a check for the m4 executable
to configure.ac to let the generated configure script fail the build
early on systems where m4 is not installed.
PACKAGE_VERSION := @PACKAGE_VERSION@
INSTALL := @INSTALL@
PACKAGE_VERSION := @PACKAGE_VERSION@
INSTALL := @INSTALL@
GENGETOPT := @GENGETOPT@
HELP2MAN := @HELP2MAN@
GENGETOPT := @GENGETOPT@
HELP2MAN := @HELP2MAN@
test -z "$GENGETOPT" && AC_MSG_ERROR(
[gengetopt is required to build this package])
test -z "$GENGETOPT" && AC_MSG_ERROR(
[gengetopt is required to build this package])
+AC_PATH_PROG([M4], [m4])
+test -z "$M4" && AC_MSG_ERROR(
+ [The m4 macro processor is required to build this package])
+
AC_PATH_PROG([HELP2MAN], [help2man])
test -z "$HELP2MAN" && AC_MSG_ERROR(
[help2man is required to build this package])
AC_PATH_PROG([HELP2MAN], [help2man])
test -z "$HELP2MAN" && AC_MSG_ERROR(
[help2man is required to build this package])
$(m4depdir)/%.m4d: $(m4_ggo_dir)/%.m4 | $(m4depdir)
@[ -z "$(Q)" ] || echo 'M4D $<'
$(m4depdir)/%.m4d: $(m4_ggo_dir)/%.m4 | $(m4depdir)
@[ -z "$(Q)" ] || echo 'M4D $<'
- $(Q) m4 -I $(m4_ggo_dir) -s $< \
+ $(Q) $(M4) -I $(m4_ggo_dir) -s $< \
| awk '{if ($$1 ~ /#line/) {gsub(/"/, "", $$3); if ($$3 != "$<") \
print "$(ggo_dir)/$(*F).ggo: " $$3}}' | sort | uniq > $@
$(ggo_dir)/%.ggo: $(m4_ggo_dir)/%.m4 $(m4_ggo_dir)/header.m4 | $(ggo_dir)
@[ -z "$(Q)" ] || echo 'M4 $<'
| awk '{if ($$1 ~ /#line/) {gsub(/"/, "", $$3); if ($$3 != "$<") \
print "$(ggo_dir)/$(*F).ggo: " $$3}}' | sort | uniq > $@
$(ggo_dir)/%.ggo: $(m4_ggo_dir)/%.m4 $(m4_ggo_dir)/header.m4 | $(ggo_dir)
@[ -z "$(Q)" ] || echo 'M4 $<'
- $(Q) m4 -I $(m4_ggo_dir) $< > $@
+ $(Q) $(M4) -I $(m4_ggo_dir) $< > $@
git clone git://git.tuebingen.mpg.de/osl
cd osl && make && sudo make install && sudo ldconfig
git clone git://git.tuebingen.mpg.de/osl
cd osl && make && sudo make install && sudo ldconfig
- sudo apt-get install autoconf libssl-dev help2man gengetopt \
+ sudo apt-get install autoconf libssl-dev help2man gengetopt m4 \
libmad0-dev libid3tag0-dev libasound2-dev libvorbis-dev \
libfaad-dev libspeex-dev libFLAC-dev libsamplerate-dev realpath \
libasound2-dev libao-dev libreadline-dev libncurses-dev \
libmad0-dev libid3tag0-dev libasound2-dev libvorbis-dev \
libfaad-dev libspeex-dev libFLAC-dev libsamplerate-dev realpath \
libasound2-dev libao-dev libreadline-dev libncurses-dev \
- [help2man](ftp://ftp.gnu.org/pub/gnu/help2man) is used to create
the man pages.
- [help2man](ftp://ftp.gnu.org/pub/gnu/help2man) is used to create
the man pages.
+- [m4](ftp://ftp.gnu.org/pub/gnu/m4/). Some source files are generated
+from templates by the m4 macro processor.
+
Optional:
- [openssl](http://www.openssl.org/) or
Optional:
- [openssl](http://www.openssl.org/) or
paraslash development. It is necessary for cloning the git repository
and for getting updates.
paraslash development. It is necessary for cloning the git repository
and for getting updates.
-- [m4](ftp://ftp.gnu.org/pub/gnu/m4/). Some input files for gengetopt
-are generated from templates by the m4 macro processor.
-
- [autoconf](ftp://ftp.gnu.org/pub/gnu/autoconf/) GNU autoconf creates
the configure file which is shipped in the tarballs but has to be
generated when compiling from git.
- [autoconf](ftp://ftp.gnu.org/pub/gnu/autoconf/) GNU autoconf creates
the configure file which is shipped in the tarballs but has to be
generated when compiling from git.