hivex: Added gnulib includes from builddir, as suggested by the Gnulib documentation...
authorHilko Bengen <bengen@hilluzination.de>
Wed, 30 Nov 2011 23:30:10 +0000 (00:30 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 1 Dec 2011 16:35:05 +0000 (16:35 +0000)
    Since some modules (`getopt', for example) may copy files
    into the build directory, `top_builddir/lib' is needed as well as
    `top_srcdir/lib'. -- GNU Gnulib manual, section 2.2 Initial import

This fixes an in-tree build failure on a Debian/sid system (see
below). hivexml could be built out-of-tree, but it turned out that due
to a missing include path, in this case the system's getopt
implementation was used insted of Gnulib's.

make[2]: Entering directory `«SRCDIR»/xml'
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I..    -DLOCALEBASEDIR=\""/usr/local/share/locale"\" -I../gnulib/lib -I../lib -I/usr/include/libxml2     -g -O2 -MT hivexml-hivexml.o -MD -MP -MF .deps/hivexml-hivexml.Tpo -c -o hivexml-hivexml.o `test -f 'hivexml.c' || echo './'`hivexml.c
mv -f .deps/hivexml-hivexml.Tpo .deps/hivexml-hivexml.Po
/bin/bash ../libtool  --tag=CC   --mode=link gcc -std=gnu99 -DLOCALEBASEDIR=\""/usr/local/share/locale"\" -I../gnulib/lib -I../lib -I/usr/include/libxml2     -g -O2   -o hivexml hivexml-hivexml.o ../lib/libhivex.la -lxml2
libtool: link: gcc -std=gnu99 -DLOCALEBASEDIR=\"/usr/local/share/locale\" -I../gnulib/lib -I../lib -I/usr/include/libxml2 -g -O2 -o .libs/hivexml hivexml-hivexml.o  ../lib/.libs/libhivex.so /usr/lib/libxml2.so
hivexml-hivexml.o: In function `main':
«SRCDIR»/xml/hivexml.c:96: undefined reference to `rpl_getopt'
«SRCDIR»/xml/hivexml.c:110: undefined reference to `rpl_optind'
«SRCDIR»/xml/hivexml.c:154: undefined reference to `rpl_optind'
collect2: ld returned 1 exit status
make[2]: *** [hivexml] Error 1
make[2]: Leaving directory `«SRCDIR»/xml'

lib/Makefile.am
sh/Makefile.am
xml/Makefile.am
xml/hivexml.c

index cfd2e05..a339a00 100644 (file)
@@ -39,7 +39,10 @@ libhivex_la_LDFLAGS = \
        $(LTLIBINTL) \
        $(LTLIBTHREAD)
 libhivex_la_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
-libhivex_la_CPPFLAGS = -I$(top_srcdir)/gnulib/lib -I$(srcdir)
+libhivex_la_CPPFLAGS = \
+  -I$(top_srcdir)/gnulib/lib \
+  -I$(top_builddir)/gnulib/lib \
+  -I$(srcdir)
 
 include_HEADERS = hivex.h
 
index 0898370..a6f5ae6 100644 (file)
@@ -38,6 +38,7 @@ hivexsh_SOURCES = \
 hivexsh_LDADD = ../lib/libhivex.la ../gnulib/lib/libgnu.la $(LIBREADLINE)
 hivexsh_CFLAGS = \
   -I$(top_srcdir)/gnulib/lib \
+  -I$(top_builddir)/gnulib/lib \
   -I$(top_srcdir)/lib \
   -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
   $(WARN_CFLAGS) $(WERROR_CFLAGS)
index b2af45d..67ba248 100644 (file)
@@ -23,10 +23,11 @@ bin_PROGRAMS = hivexml
 hivexml_SOURCES = \
   hivexml.c
 
-hivexml_LDADD = ../lib/libhivex.la $(LIBXML2_LIBS)
+hivexml_LDADD = ../lib/libhivex.la ../gnulib/lib/libgnu.la $(LIBXML2_LIBS)
 hivexml_CFLAGS = \
   -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
   -I$(top_srcdir)/gnulib/lib \
+  -I$(top_builddir)/gnulib/lib \
   -I$(top_srcdir)/lib \
   $(LIBXML2_CFLAGS) \
   $(WARN_CFLAGS) $(WERROR_CFLAGS)
index 5030c24..d38e9d4 100644 (file)
@@ -32,6 +32,8 @@
 #include <libintl.h>
 #endif
 
+#include <getopt.h>
+
 #include <libxml/xmlwriter.h>
 
 #include "hivex.h"