This now also honors the cflags as obtained from pkgconfig, otherwise one gets a compile error if the headers are in a location other than /usr/include. Signed-off-by: Jan Engelhardt <jengelh@xxxxxxx> --- .gitignore | 17 ++-- Makefile.am | 7 ++ Makefile.defs.in | 40 -------- Makefile.in | 5 - Makefile.rules.in | 89 ------------------ configure.ac | 41 +++++---- doc/Makefile.am | 14 +++ doc/Makefile.in | 20 ---- files/Makefile.am | 6 ++ files/Makefile.in | 4 - install-sh | 269 ------------------------------------------------------ src/Makefile.am | 24 +++++ src/Makefile.in | 30 ------ src/cli.c | 1 + src/erec.c | 1 + src/main.c | 1 + 16 files changed, 87 insertions(+), 482 deletions(-) create mode 100644 Makefile.am delete mode 100644 Makefile.defs.in delete mode 100644 Makefile.in delete mode 100644 Makefile.rules.in create mode 100644 doc/Makefile.am delete mode 100644 doc/Makefile.in create mode 100644 files/Makefile.am delete mode 100644 files/Makefile.in delete mode 100755 install-sh create mode 100644 src/Makefile.am delete mode 100644 src/Makefile.in diff --git a/.gitignore b/.gitignore index d26b395..a54c6ae 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1,19 @@ # Dependency and object files -.*.d +.deps/ +.libs/ *.o # Generated by autoconf/configure Makefile +Makefile.in Makefile.defs Makefile.rules -config.h -config.h.in -config.h.in~ -config.log -config.status -configure -autom4te.cache +/aclocal.m4 +/autom4te.cache/ +/build-aux/ +/config.* +/configure +/stamp-h1 # Debian package build temporary files build-stamp diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..ad76c06 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,7 @@ +# -*- Makefile -*- + +SUBDIRS = src files doc + +archive: + git archive --prefix=nftables-${PACKAGE_VERSION}/ HEAD | \ + bzip2 -c > nftables-${PACKAGE_VERSION}.tar.bz2 diff --git a/Makefile.defs.in b/Makefile.defs.in deleted file mode 100644 index 545c4ee..0000000 --- a/Makefile.defs.in +++ /dev/null @@ -1,40 +0,0 @@ -DEBUG = @CONFIG_DEBUG@ -CC = @CC@ -CPP = @CPP@ -LEX = @LEX@ -YACC = @YACC@ -MKDIR_P = @MKDIR_P@ -INSTALL = @INSTALL@ - -PACKAGE_TARNAME = @PACKAGE_TARNAME@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -sysconfdir = @sysconfdir@ -datarootdir = @datarootdir@ -mandir = @mandir@ -docdir = @docdir@ -pdfdir = @pdfdir@ -confdir = @sysconfdir@/nftables - -LDFLAGS += @LDFLAGS@ -LDFLAGS += @LIBS@ - -CPPFLAGS += @CPPFLAGS@ - -CFLAGS += @CFLAGS@ @DEFS@ -CFLAGS += -DDEFAULT_INCLUDE_PATH="\"$(confdir)\"" -CFLAGS += -include config.h -CFLAGS += -Iinclude -CFLAGS += -fno-strict-aliasing - -CFLAGS += -Wall -Werror -CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -CFLAGS += -Wdeclaration-after-statement -Wsign-compare -Winit-self -CFLAGS += -Wformat-nonliteral -Wformat-security -Wmissing-format-attribute -CFLAGS += -Wcast-align -Wundef -Wbad-function-cast # -Wshadow -CFLAGS += -Waggregate-return -Wunused -Wwrite-strings - -ifeq ($(DEBUG),y) -CFLAGS += -g -DDEBUG -endif diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index 5d42541..0000000 --- a/Makefile.in +++ /dev/null @@ -1,5 +0,0 @@ -SUBDIRS += src -SUBDIRS += files -SUBDIRS += doc - -include Makefile.rules diff --git a/Makefile.rules.in b/Makefile.rules.in deleted file mode 100644 index a93a26b..0000000 --- a/Makefile.rules.in +++ /dev/null @@ -1,89 +0,0 @@ -include Makefile.defs - -makedeps += $(SUBDIR)Makefile -makedeps += Makefile -makedeps += Makefile.defs -makedeps += Makefile.rules - -configure: configure.ac - sh autogen.sh - -%: %.in configure - sh configure - -%.o: %.c $(makedeps) - @echo -e " CC\t\t$<" - $(CC) $(CFLAGS) -c -o $@ $< - -.%.d: %.c $(makedeps) - @echo -e " DEP\t\t$<" - $(RM) $@ - $(CC) -M $(CFLAGS) $< | sed 's,$(*F)\.o[ :]*,$*.o $@ : ,g' > $@ - -%.c %.h: %.y $(makedeps) - @echo -e " YACC\t\t$<" - $(YACC) $(YACCFLAGS) -d -o $@ $< - -%.c %.h: %.l $(makedeps) - @echo -e " LEX\t\t$<" - $(LEX) -t --header-file=$(<:.l=.h) $< > $@ - -%.8: %.xml $(makedeps) - @echo -e " MAN\t\t$@" - (cd $(SUBDIR); docbook2x-man ../$<) - -%.pdf: %.xml $(makedeps) - @echo -e " PDF\t\t$@" - db2pdf -o $(SUBDIR) $< - -archive: - git archive --prefix=nftables-@PACKAGE_VERSION@/ HEAD | \ - bzip2 -c > nftables-@PACKAGE_VERSION@.tar.bz2 - -define program_template -$(1)-obj := $$(patsubst %,$(SUBDIR)%,$$($(1)-obj)) -$(1)-extra-clean-files := $$(patsubst %,$(SUBDIR)%,$$($(1)-extra-clean-files)) - -depfiles := $$(patsubst $(SUBDIR)%.o,$(SUBDIR).%.d,$$($(1)-obj)) - -$(SUBDIR)$(1): $$($(1)-extra-targets) $$($(1)-obj) - @echo -e " LD\t\t$$@" - $$(CC) $$($(1)-obj) $$(LDFLAGS) -o $$@ -all_targets += $(SUBDIR)$(1) - -.PHONY: $(1)-clean -$(1)-clean: - @echo -e " CLEAN\t\t$(1)" - $$(RM) $$($(1)-obj) $$(depfiles) $$($(1)-extra-clean-files) $(SUBDIR)$(1) -clean_targets += $(1)-clean - -.PHONY: $(1)-install -$(1)-install: - @echo -e " INSTALL\t$1" - $(MKDIR_P) $$(DESTDIR)/$$($(1)-destdir) - $(INSTALL) -m 755 -o root -g root \ - $(SUBDIR)$(1) \ - $$(DESTDIR)/$$($(1)-destdir)/$(1) -install_targets += $(1)-install - -ifneq ($(MAKECMDGOALS),clean) --include $$(depfiles) -endif -endef - -ifneq ($(SUBDIR),) -include $(SUBDIR)/Makefile -$(foreach prog,$(PROGRAMS),$(eval $(call program_template,$(prog)))) -endif - -.DEFAULT_GOAL := all - -.PHONY: all clean install -all: $(SUBDIRS) $(all_targets) -clean: $(SUBDIRS) $(clean_targets) -install: all $(SUBDIRS) $(install_targets) - -.PHONY: $(SUBDIRS) -$(SUBDIRS): - @echo -e " SUBDIR\t$@/" - @$(MAKE) -s -f Makefile.rules $(MAKECMDGOALS) SUBDIR="$@/" SUBDIRS="" diff --git a/configure.ac b/configure.ac index b850451..1d0dc58 100644 --- a/configure.ac +++ b/configure.ac @@ -7,8 +7,10 @@ AC_COPYRIGHT([Copyright (c) 2008 Patrick McHardy <kaber@xxxxxxxxx>]) AC_INIT([nftables], [0.01-alpha1], [netfilter-devel@xxxxxxxxxxxxxxx]) AC_DEFINE([RELEASE_NAME], ["sch�lefilter"], [Release name]) +AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_SRCDIR([src/rule.c]) AC_CONFIG_HEADER([config.h]) +AM_INIT_AUTOMAKE([-Wall foreign subdir-objects tar-pax no-dist-gzip dist-xz]) AC_DEFINE([_GNU_SOURCE], [], [Enable various GNU extensions]) AC_DEFINE([_STDC_FORMAT_MACROS], [], [printf-style format macros]) @@ -24,35 +26,25 @@ AC_PROG_CC AC_PROG_INSTALL AC_CHECK_PROG(CONFIG_MAN, docbook2x-man, y, n) +AM_CONDITIONAL([CONFIG_MAN], [test "$CONFIG_MAN" = y]) if test "$CONFIG_MAN" != "y" then AC_MSG_WARN([docbookx2-man not found, no manpages will be built]) fi AC_CHECK_PROG(CONFIG_PDF, db2pdf, y, n) +AM_CONDITIONAL([CONFIG_PDF], [test "$CONFIG_PDF" = y]) if test "$CONFIG_PDF" != "y" then AC_MSG_WARN([db2pdf not found, no PDF manpages will be built]) fi -AC_PATH_PROG(LEX, [flex]) -if test -z "$LEX" -then - AC_MSG_ERROR([No suitable version of flex found]) -fi - -AC_PATH_PROG(YACC, [bison]) -if test -z "$YACC" -then - AC_MSG_ERROR([No suitable version of bison found]) -fi +AC_PROG_YACC +AC_PROG_LEX # Checks for libraries. -AC_CHECK_LIB([mnl], [mnl_socket_open], , - AC_MSG_ERROR([No suitable version of libmnl found])) - -AC_CHECK_LIB([nftables], [nft_rule_alloc], , - AC_MSG_ERROR([No suitable version of libnftables found])) +PKG_CHECK_MODULES([libmnl], [libmnl]) +PKG_CHECK_MODULES([libnft], [libnftables]) AC_CHECK_LIB([gmp], [__gmpz_init], , AC_MSG_ERROR([No suitable version of libgmp found])) @@ -60,6 +52,21 @@ AC_CHECK_LIB([gmp], [__gmpz_init], , AC_CHECK_LIB([readline], [readline], , AC_MSG_ERROR([No suitable version of libreadline found])) -AC_CONFIG_FILES([Makefile Makefile.defs Makefile.rules]) +my_CPPFLAGS="" +my_CFLAGS="-fno-strict-aliasing -Wall -Wstrict-prototypes \ + -Wmissing-prototypes -Wmissing-declarations \ + -Wdeclaration-after-statement -Wsign-compare -Winit-self \ + -Wformat-nonliteral -Wformat-security -Wmissing-format-attribute \ + -Wcast-align -Wundef -Wbad-function-cast -Waggregate-return -Wunused \ + -Wwrite-strings" +#-Wshadow +if test "$CONFIG_DEBUG" = y; then + my_CFLAGS="$my_CFLAGS -O0 -ggdb3" + my_CPPFLAGS="$my_CPPFLAGS -DDEBUG" +fi +AC_SUBST([my_CPPFLAGS]) +AC_SUBST([my_CFLAGS]) + +AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([src/Makefile doc/Makefile files/Makefile]) AC_OUTPUT diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..77ef71e --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,14 @@ +# -*- Makefile -*- + +if CONFIG_MAN +man_MANS = nftables.8 +endif +if CONFIG_PDF +doc_DATA = nftables.pdf +endif + +.xml.8: + docbook2x-man $< + +.xml.pdf: + db2pdf $< diff --git a/doc/Makefile.in b/doc/Makefile.in deleted file mode 100644 index 2c42d7e..0000000 --- a/doc/Makefile.in +++ /dev/null @@ -1,20 +0,0 @@ -mandocs-@CONFIG_MAN@ += doc/nftables.8 -pdfdocs-@CONFIG_PDF@ += doc/nftables.pdf - -all: $(mandocs-y) $(pdfdocs-y) -clean: - @echo -e " CLEAN\t\tdoc" - $(RM) $(mandocs-y) $(pdfdocs-y) - -install: $(mandocs-y) $(pdfdocs-y) - @echo -e " INSTALL\tdoc" - if test -n "$(mandocs-y)"; then \ - $(MKDIR_P) $(DESTDIR)/${mandir}/man8 ;\ - $(INSTALL) -m 755 -o root -g root $(mandocs-y) \ - $(DESTDIR)/${mandir}/man8/ ;\ - fi - if test -n "$(pdfdocs-y)"; then \ - $(MKDIR_P) $(DESTDIR)/${pdfdir} ;\ - $(INSTALL) -m 755 -o root -g root $(pdfdocs-y) \ - $(DESTDIR)/${pdfdir}/ ;\ - fi diff --git a/files/Makefile.am b/files/Makefile.am new file mode 100644 index 0000000..9c001af --- /dev/null +++ b/files/Makefile.am @@ -0,0 +1,6 @@ +# -*- Makefile -*- + +pkgsysconfdir = ${sysconfdir}/nftables +pkgsysconf_DATA = nftables/bridge-filter nftables/ipv4-filter \ + nftables/ipv4-mangle nftables/ipv4-nat nftables/ipv6-filter \ + nftables/ipv6-mangle nftables/ipv6-nat diff --git a/files/Makefile.in b/files/Makefile.in deleted file mode 100644 index cd67c37..0000000 --- a/files/Makefile.in +++ /dev/null @@ -1,4 +0,0 @@ -install: - @echo -e " INSTALL\tfiles" - $(MKDIR_P) $(DESTDIR)/$(confdir) - $(INSTALL) -m 755 -o root -g root $(SUBDIR)nftables/* $(DESTDIR)/$(confdir)/ diff --git a/install-sh b/install-sh deleted file mode 100755 index d4744f0..0000000 --- a/install-sh +++ /dev/null @@ -1,269 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - chmodcmd="" - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..352e24f --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,24 @@ +# -*- Makefile -*- + +AM_CPPFLAGS = ${libmnl_CFLAGS} ${libnft_CFLAGS} -I${top_srcdir}/include \ + -DDEFAULT_INCLUDE_PATH=\"${sysconfdir}/nftables\" ${my_CPPFLAGS} +AM_CFLAGS = ${my_CFLAGS} +AM_YFLAGS = -d + +sbin_PROGRAMS = nft + +nft_SOURCES = \ + main.c cli.c rule.c statement.c datatype.c expression.c evaluate.c \ + payload.c exthdr.c meta.c ct.c netlink.c netlink_linearize.c \ + netlink_delinearize.c segtree.c rbtree.c gmputil.c utils.c erec.c \ + mnl.c parser_impl.y scanner.l +nft_LDADD = ${libmnl_LIBS} ${libnft_LIBS} + +parser_impl.${OBJEXT}: scanner.c + +scanner.h: scanner.c +scanner.c: scanner.l + ${AM_V_LEX}${LEX} -t --header-file=$(<:.l=.h) $< >$@ + +LEX_OUTPUT_ROOT = lex.nft_ +CLEANFILES = parser_impl.c parser_impl.h scanner.c scanner.h diff --git a/src/Makefile.in b/src/Makefile.in deleted file mode 100644 index 7e5c9c4..0000000 --- a/src/Makefile.in +++ /dev/null @@ -1,30 +0,0 @@ -PROGRAMS += nft - -nft-destdir := @sbindir@ - -nft-obj += main.o -nft-obj += cli.o -nft-obj += rule.o -nft-obj += statement.o -nft-obj += datatype.o -nft-obj += expression.o -nft-obj += evaluate.o -nft-obj += payload.o -nft-obj += exthdr.o -nft-obj += meta.o -nft-obj += ct.o -nft-obj += netlink.o -nft-obj += netlink_linearize.o -nft-obj += netlink_delinearize.o -nft-obj += segtree.o -nft-obj += rbtree.o -nft-obj += gmputil.o -nft-obj += utils.o -nft-obj += erec.o -nft-obj += mnl.o - -nft-obj += parser_impl.o -nft-extra-clean-files += parser_impl.c parser_impl.h - -nft-obj += scanner.o -nft-extra-clean-files += scanner.c scanner.h diff --git a/src/cli.c b/src/cli.c index 8875207..43ae8ce 100644 --- a/src/cli.c +++ b/src/cli.c @@ -12,6 +12,7 @@ * Development of this code funded by Astaro AG (http://www.astaro.com/) */ +#define _GNU_SOURCE 1 #include <stdlib.h> #include <stdio.h> #include <stdarg.h> diff --git a/src/erec.c b/src/erec.c index 7451d94..8247b94 100644 --- a/src/erec.c +++ b/src/erec.c @@ -8,6 +8,7 @@ * Development of this code funded by Astaro AG (http://www.astaro.com/) */ +#define _GNU_SOURCE 1 #include <stdio.h> #include <string.h> #include <stdarg.h> diff --git a/src/main.c b/src/main.c index 0c97120..a132f82 100644 --- a/src/main.c +++ b/src/main.c @@ -8,6 +8,7 @@ * Development of this code funded by Astaro AG (http://www.astaro.com/) */ +#include "config.h" #include <stdlib.h> #include <stddef.h> #include <unistd.h> -- 1.8.2 -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html