libcgicc: fix build breakage and bump version

First, the build was failing with:

cd .. && /bin/sh /home/test/brbuild/build/cgicc-3.2.7/support/missing --run autoheader
/home/test/brbuild/build/cgicc-3.2.7/support/missing: line 52: autoheader: command not found
WARNING: `autoheader' is missing on your system.  You should only need it if
         you modified `acconfig.h' or `configure.ac'.  You might want
         to install the `Autoconf' and `GNU m4' packages.  Grab them
         from any GNU archive site.

That was because the PATH doesn't contain $(HOST_DIR)/usr/bin. So we
pass $(TARGET_MAKE_ENV) when calling make.

Then, the build was failing because of the crappy configure.ac and
doc/Makefile.am this project has. configure.ac checks if doxygen is
available, and if it isn't, it sets DOXYGEN to /bin/echo. Then,
doc/Makefile.am does:

        DATE=`date '+%-d %b %Y'` VERSION=$(VERSION) $(DOXYGEN) Doxyfile
        cp $(IMAGES) cgicc-doc.css html
        mv html/index.html html/index.html.bak

When DOXYGEN=/bin/echo, then the first line does not generate anything
in html/, and the third line fails.

Therefore, we add a patch that allows to pass a --disable-doc option,
which removes the check for Doxygen. If --enable-doc is passed, then
the configure script fails if Doxygen isn't found (but in the
Buildroot case, we always pass --disable-doc to avoid the doxygen
dependency).

We also take this opportunity to bump the version of libcgicc, and to
remove a patch that is no longer needed due to this version bump.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Thomas Petazzoni 2010-02-25 15:24:07 +01:00
parent 7ba5e38629
commit 85e611804b
3 changed files with 55 additions and 15 deletions

View File

@ -1,12 +0,0 @@
diff -urN cgicc-3.2.7-0rig//demo/dns.cpp cgicc-3.2.7/demo/dns.cpp
--- cgicc-3.2.7-0rig//demo/dns.cpp 2009-01-21 00:24:13.000000000 +0100
+++ cgicc-3.2.7/demo/dns.cpp 2009-01-21 00:24:30.000000000 +0100
@@ -34,6 +34,7 @@
#include <vector>
#include <stdexcept>
#include <iostream>
+#include <string.h>
#include "cgicc/CgiDefs.h"
#include "cgicc/Cgicc.h"

View File

@ -0,0 +1,50 @@
Index: cgicc-3.2.9/Makefile.am
===================================================================
--- cgicc-3.2.9.orig/Makefile.am 2010-02-25 16:34:06.000000000 +0100
+++ cgicc-3.2.9/Makefile.am 2010-02-25 16:34:14.000000000 +0100
@@ -8,9 +8,15 @@
DEMO =
endif
+if DOC
+DOCDIR = doc
+else
+DOC =
+endif
+
ACLOCAL_AMFLAGS=
-SUBDIRS = cgicc doc support $(DEMO)
+SUBDIRS = cgicc $(DOCDIR) support $(DEMO)
CLEANFILES = *~
Index: cgicc-3.2.9/configure.ac
===================================================================
--- cgicc-3.2.9.orig/configure.ac 2010-02-25 16:34:06.000000000 +0100
+++ cgicc-3.2.9/configure.ac 2010-02-25 16:45:46.000000000 +0100
@@ -17,9 +17,23 @@
AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_LIBTOOL
-AC_CHECK_PROG(DOXYGEN, doxygen, doxygen, /bin/echo)
+AC_ARG_ENABLE(doc,
+ [ --enable-doc build doc [[default=yes]]],
+ [case "${enableval}" in
+ yes) cgicc_doc=yes ;;
+ no) cgicc_doc=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-doc) ;;
+ esac], cgicc_doc=yes)
+
+if test "$cgicc_doc" = yes; then
+ AC_CHECK_PROG(DOXYGEN, doxygen, doxygen)
+ if test -z "$DOXYGEN" ; then
+ AC_MSG_ERROR([Doxygen is required to build the documentation])
+ fi
+fi
+AM_CONDITIONAL(DOC, test "$cgicc_doc" = yes)
dnl Determine host system type

View File

@ -4,7 +4,7 @@
#
#############################################################
LIBCGICC_VERSION=3.2.7
LIBCGICC_VERSION=3.2.9
LIBCGICC_DIR=$(BUILD_DIR)/cgicc-$(LIBCGICC_VERSION)
LIBCGICC_SITE=$(BR2_GNU_MIRROR)/cgicc
LIBCGICC_SOURCE=cgicc-$(LIBCGICC_VERSION).tar.gz
@ -22,6 +22,7 @@ $(LIBCGICC_DIR)/.unpacked: $(DL_DIR)/$(LIBCGICC_SOURCE)
$(LIBCGICC_DIR)/.configured: $(LIBCGICC_DIR)/.unpacked
(cd $(LIBCGICC_DIR); rm -f config.cache; \
$(AUTORECONF); \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
./configure $(QUIET) \
@ -33,15 +34,16 @@ $(LIBCGICC_DIR)/.configured: $(LIBCGICC_DIR)/.unpacked
--sysconfdir=/etc \
--localstatedir=/var \
--disable-demos \
--disable-doc \
)
touch $@
$(LIBCGICC_DIR)/.compiled: $(LIBCGICC_DIR)/.configured
$(MAKE) -C $(LIBCGICC_DIR)
$(TARGET_MAKE_ENV) $(MAKE) -C $(LIBCGICC_DIR)
touch $@
$(STAGING_DIR)/usr/lib/libcgicc.so: $(LIBCGICC_DIR)/.compiled
$(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBCGICC_DIR) install
$(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBCGICC_DIR) install
touch -c $(STAGING_DIR)/usr/lib/libcgicc.so
$(TARGET_DIR)/usr/lib/libcgicc.so: $(STAGING_DIR)/usr/lib/libcgicc.so