summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2014-11-06 17:09:44 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2014-11-12 19:41:13 +0100
commit5fa8e494ca240567313215a7d5a87c620e86024e (patch)
treefa83c029ead4e61120bd670125d6ec50765fc4c9 /src
parentf858f20abb8e6b6881d4c343b737a09697c95779 (diff)
build: autotools conversion
1) This removes former Makefiles and install-sh (which is now automagically imported via autoreconf). Makefile.defs.in Makefile.in Makefile.rules.in src/Makefile.in install-sh (now automagically imported via autoreconf). 2) CFLAGS are left almost same, they are integrated into Make_global.am. Use AM_CPPFLAGS to set the CFLAGS set by pkgconfig. 3) Add m4 directory to the tree which only contains the .gitignore file. Update .gitignore file to skip autogenerated files. 4) include <config.h> whenever required. 5) Minor adjustments to scanner.l and parser_bison.y to compile cleanly with autotools. 6) Add %option outfile=lex.yy.c to scanner.l, otherwise I hit this error here: gcc -DHAVE_CONFIG_H -I. -I.. -I../include -DDEFAULT_INCLUDE_PATH="\"/usr/etc\"" -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 -g -O2 -MT mnl.o -MD -MP -MF $depbase.Tpo -c -o mnl.o mnl.c &&\ mv -f $depbase.Tpo $depbase.Po /bin/sh ../build-aux/ylwrap scanner.l lex.yy.c scanner.c -- flex make[3]: *** [scanner.c] Error 1 make[3]: Leaving directory `/home/pablo/devel/scm/git-netfilter/nftables/src' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/pablo/devel/scm/git-netfilter/nftables/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/pablo/devel/scm/git-netfilter/nftables' make: *** [all] Error 2 7) Add Makefile.am for include/ (contributed by Giorgio Dal Molin). The doc/ and files/ conversion to automake will come in follow up patches but 'make distcheck' already works. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am51
-rw-r--r--src/Makefile.in33
-rw-r--r--src/cli.c1
-rw-r--r--src/erec.c1
-rw-r--r--src/parser_bison.y1
-rw-r--r--src/scanner.l1
6 files changed, 54 insertions, 34 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 00000000..0a678102
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,51 @@
+sbin_PROGRAMS = nft
+
+CLEANFILES = scanner.c parser_bison.c
+
+AM_CPPFLAGS = -I$(top_srcdir)/include
+AM_CPPFLAGS += -DDEFAULT_INCLUDE_PATH="\"${sysconfdir}\""
+ ${LIBMNL_CFLAGS} ${LIBNFTNL_CFLAGS}
+
+AM_CFLAGS = -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
+
+
+AM_YFLAGS = -d
+
+# yacc and lex generate dirty code
+parser_bison.o scanner.o: AM_CFLAGS += -Wno-missing-prototypes -Wno-missing-declarations -Wno-implicit-function-declaration -Wno-nested-externs -Wno-undef -Wno-redundant-decls
+
+BUILT_SOURCES = parser_bison.h
+
+nft_SOURCES = main.c \
+ rule.c \
+ statement.c \
+ datatype.c \
+ expression.c \
+ evaluate.c \
+ proto.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 \
+ scanner.l \
+ parser_bison.y
+
+if BUILD_CLI
+nft_SOURCES += cli.c
+endif
+
+nft_LDADD = ${LIBMNL_LIBS} ${LIBNFTNL_LIBS}
diff --git a/src/Makefile.in b/src/Makefile.in
deleted file mode 100644
index 0c080f6b..00000000
--- a/src/Makefile.in
+++ /dev/null
@@ -1,33 +0,0 @@
-PROGRAMS += nft
-
-nft-destdir := @sbindir@
-
-nft-obj += main.o
-ifeq (@with_cli@,yes)
-nft-obj += cli.o
-endif
-nft-obj += rule.o
-nft-obj += statement.o
-nft-obj += datatype.o
-nft-obj += expression.o
-nft-obj += evaluate.o
-nft-obj += proto.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_bison.o
-nft-extra-clean-files += parser_bison.c parser_bison.h
-
-nft-obj += scanner.o
-nft-extra-clean-files += scanner.c scanner.h
diff --git a/src/cli.c b/src/cli.c
index 6f2847b8..f3827b81 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/)
*/
+#include <config.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
diff --git a/src/erec.c b/src/erec.c
index 4930085f..82543e6d 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/)
*/
+#include <config.h>
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
diff --git a/src/parser_bison.y b/src/parser_bison.y
index 85a1fb46..6eb0475e 100644
--- a/src/parser_bison.y
+++ b/src/parser_bison.y
@@ -33,7 +33,6 @@
#include <erec.h>
#include "parser_bison.h"
-#include "scanner.h"
void parser_init(struct parser_state *state, struct list_head *msgs)
{
diff --git a/src/scanner.l b/src/scanner.l
index 157c1e98..f0ed8d4e 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -169,6 +169,7 @@ ip6addr ({v680}|{v67}|{v66}|{v65}|{v64}|{v63}|{v62}|{v61}|{v60})
addrstring ({macaddr}|{ip4addr}|{ip6addr})
%option prefix="nft_"
+%option outfile="lex.yy.c"
%option reentrant
%option noyywrap
%option nounput