From nobody Mon Sep 17 00:00:00 2001 From: Paul P Komkoff Jr Date: Sat, 10 Jun 2006 20:53:33 +0400 Subject: [PATCH 4/8] Make flow-tools more FHS-compliant and buildable by newer toolchain. Here we are switching to new toolchain (autoconf, automake & libtool), changing some paths (obviously config files should be put in sysconfdir - usually etc - and not in localstatedir which is var) --- configs/Makefile.am | 4 ++-- configure.in | 45 ++++++++++++++++++++++++++++++--------------- lib/Makefile.am | 10 +++++----- lib/ftpaths.h.in | 22 +++++++++++----------- src/Makefile.am | 12 ++++++------ 5 files changed, 54 insertions(+), 39 deletions(-) b03c8b4e55c5f6082ff427559ae5a8bc3e95b8f0 diff --git a/configs/Makefile.am b/configs/Makefile.am index 9b06b52..6ca85cc 100644 --- a/configs/Makefile.am +++ b/configs/Makefile.am @@ -1,6 +1,6 @@ -ftsymdir=$(localstatedir)/sym +ftsymdir=$(sysconfdir)/sym ftsym_DATA = ip-prot.sym ip-type.sym tcp-port.sym asn.sym tag.sym -ftcfgdir=$(localstatedir)/cfg +ftcfgdir=$(sysconfdir)/cfg ftcfg_DATA = map.cfg tag.cfg filter.cfg stat.cfg mask.cfg xlate.cfg diff --git a/configure.in b/configure.in index 01987e8..597bbbd 100644 --- a/configure.in +++ b/configure.in @@ -1,31 +1,32 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(lib/bit1024.c) +AC_INIT(flow-tools, 0.68) -AC_PREFIX_DEFAULT(/usr/local/netflow) +AC_PREFIX_DEFAULT(/usr/local/flow-tools) -AM_INIT_AUTOMAKE(flow-tools, 0.68) -AM_CONFIG_HEADER(lib/ftconfig.h:lib/ftconfig.h.in) +AM_INIT_AUTOMAKE +AM_CONFIG_HEADER(lib/ftconfig.h) -CFLAGS="-g -Wall" +dnl CFLAGS="-g -Wall" dnl Checks for programs. +AC_PROG_LIBTOOL AC_PROG_CC AC_PROG_INSTALL AC_PROG_MAKE_SET AC_PROG_YACC YACC="$YACC -d" -AC_PROG_RANLIB AM_PROG_LEX AC_SUBST(YLIB) AC_SUBST(MYSQLLIB) AC_SUBST(MYSQLCFLAGS) -AC_SUBST(MYSQLINCLUDE) +AC_SUBST(MYSQLLDFLAGS) AC_SUBST(PGSQLLIB) AC_SUBST(PGSQLCFLAGS) -AC_SUBST(PGSQLINCLUDE) +AC_SUBST(PGSQLLDFLAGS) AC_SUBST(CRYPTOLIB) AC_SUBST(OPENSSLINCLUDE) +AC_SUBST(OPENSSLLDFLAGS) dnl extra argument: --with-mysql WITH_MYSQL= @@ -66,37 +67,51 @@ AC_ARG_WITH(openssl, dnl Checks for libraries. if test "x$WHERE_MYSQL" != "x"; then - LIBS="-L$WHERE_MYSQL/lib/mysql" + old_LIBS="$LIBS" + old_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -L$WHERE_MYSQL/lib/mysql" AC_CHECK_LIB(mysqlclient, my_init, [ - MYSQLCFLAGS="-L$WHERE_MYSQL/lib/mysql -I$WHERE_MYSQL/include/mysql" + MYSQLCFLAGS="-I$WHERE_MYSQL/include/mysql" + MYSQLLDFLAGS="-L$WHERE_MYSQL/lib/mysql" MYSQLLIB="-lmysqlclient" AC_DEFINE(HAVE_MYSQL) ] ) + LIBS="$old_LIBS" + LDFLAGS="$old_LDFLAGS" fi if test "x$WHERE_OPENSSL" != "x"; then - LIBS="-L$WHERE_OPENSSL/lib" + old_LIBS="$LIBS" + old_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -L$WHERE_OPENSSL/lib" AC_CHECK_LIB(crypto, EVP_EncryptUpdate, [ - OPENSSLCFLAGS="-L$WHERE_OPENSSL/lib -I$WHERE_OPENSSL/include" + OPENSSLCFLAGS="-I$WHERE_OPENSSL/include" + OPENSSLLDFLAGS="-L$WHERE_OPENSSL/lib" CRYPTOLIB="-lcrypto" AC_DEFINE(HAVE_OPENSSL) ] ) + LIBS="$old_LIBS" + LDFLAGS="$old_LDFLAGS" fi - if test "x$WHERE_PGSQL" != "x"; then - LIBS="-L$WHERE_PGSQL/lib/pgsql" + old_LIBS="$LIBS" + old_LDFLAGS="$LDFLAGS" + LDFLAGS="-L$WHERE_PGSQL/lib/pgsql" AC_CHECK_LIB(pq, PQsetdbLogin, [ - PGSQLCFLAGS="-L$WHERE_PGSQL/lib -I$WHERE_PGSQL/include/pgsql" + PGSQLCFLAGS="-I$WHERE_PGSQL/include/pgsql" + PGSQLLDFLAGS="-L$WHERE_PGSQL/lib" PGSQLLIB="-lpq" AC_DEFINE(HAVE_PGSQL) ] ) + LIBS="$old_LIBS" + LDFLAGS="$old_LDFLAGS" fi AC_CHECK_LIB(y, main,YLIB="$YLIB -ly",) diff --git a/lib/Makefile.am b/lib/Makefile.am index 08e684a..5a4727b 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -2,17 +2,17 @@ ## Process this file with automake to pr #AM_CFLAGS=-g -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs #AM_CFLAGS=-O2 -AM_CFLAGS=-g -Wall +#AM_CFLAGS=-g -Wall -DEFS=-I. -I$(srcdir)/lib +#DEFS=-I. -I$(srcdir)/lib include_HEADERS = ftlib.h ftqueue.h radix.h ftpaths.h ftconfig.h -lib_LIBRARIES = libft.a +lib_LTLIBRARIES = libft.la -libft_a_SOURCES = ftio.c ftswap.c ftencode.c ftdecode.c ftprof.c bit1024.c \ +libft_la_SOURCES = ftio.c ftswap.c ftencode.c ftdecode.c ftprof.c bit1024.c \ fmt.c support.c ftfile.c fttlv.c ftmap.c ftrec.c fterr.c \ ftchash.c ftsym.c radix.c fttag.c ftfil.c ftstat.c getdate.c ftxfield.c\ ftmask.c ftvar.c ftxlate.c -libft_a_LIBADD = @LIBOBJS@ +libft_la_LIBADD = $(LTLIBOBJS) $(CRYPTOLIB) diff --git a/lib/ftpaths.h.in b/lib/ftpaths.h.in index ae8e30a..b0c91b1 100644 --- a/lib/ftpaths.h.in +++ b/lib/ftpaths.h.in @@ -29,17 +29,17 @@ #ifndef FTPATHS_H #define FTPATHS_H -#define FT_PATH_CFG_MAP "@localstatedir@/cfg/map.cfg" -#define FT_PATH_CFG_TAG "@localstatedir@/cfg/tag.cfg" -#define FT_PATH_CFG_FILTER "@localstatedir@/cfg/filter.cfg" -#define FT_PATH_CFG_STAT "@localstatedir@/cfg/stat.cfg" -#define FT_PATH_CFG_MASK "@localstatedir@/cfg/mask.cfg" -#define FT_PATH_CFG_XLATE "@localstatedir@/cfg/xlate.cfg" +#define FT_PATH_CFG_MAP "@sysconfdir@/cfg/map.cfg" +#define FT_PATH_CFG_TAG "@sysconfdir@/cfg/tag.cfg" +#define FT_PATH_CFG_FILTER "@sysconfdir@/cfg/filter.cfg" +#define FT_PATH_CFG_STAT "@sysconfdir@/cfg/stat.cfg" +#define FT_PATH_CFG_MASK "@sysconfdir@/cfg/mask.cfg" +#define FT_PATH_CFG_XLATE "@sysconfdir@/cfg/xlate.cfg" -#define FT_PATH_SYM_IP_PROT "@localstatedir@/sym/ip-prot.sym" -#define FT_PATH_SYM_IP_TYPE "@localstatedir@/sym/ip-type.sym" -#define FT_PATH_SYM_TCP_PORT "@localstatedir@/sym/tcp-port.sym" -#define FT_PATH_SYM_ASN "@localstatedir@/sym/asn.sym" -#define FT_PATH_SYM_TAG "@localstatedir@/sym/tag.sym" +#define FT_PATH_SYM_IP_PROT "@sysconfdir@/sym/ip-prot.sym" +#define FT_PATH_SYM_IP_TYPE "@sysconfdir@/sym/ip-type.sym" +#define FT_PATH_SYM_TCP_PORT "@sysconfdir@/sym/tcp-port.sym" +#define FT_PATH_SYM_ASN "@sysconfdir@/sym/asn.sym" +#define FT_PATH_SYM_TAG "@sysconfdir@/sym/tag.sym" #endif /* FTPATHS_H */ diff --git a/src/Makefile.am b/src/Makefile.am index c5ac63b..f85f427 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -7,7 +7,7 @@ DEFS=-I$(srcdir)/../lib -L$(srcdir)/../l #AM_CFLAGS=-g -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs #AM_CFLAGS=-O2 -AM_CFLAGS=-g -Wall +#AM_CFLAGS=-g -Wall bin_PROGRAMS = flow-capture flow-cat flow-stat flow-print flow-dscan \ flow-send flow-receive flow-gen flow-expire \ @@ -101,9 +101,9 @@ flow_filter_LDADD = -lft @LEXLIB@ @YLIB flow_filter_DEPENDENCIES = ftbuild.h flow_export_SOURCES = flow-export.c -flow_export_LDFLAGS = -L../lib -flow_export_CFLAGS = @MYSQLCFLAGS@ @PGSQLCFLAGS@ -flow_export_LDADD = -lft @MYSQLLIB@ @PGSQLLIB@ +flow_export_LDFLAGS = -L../lib $(MYSQLLDFLAGS) $(PGSQLLDFLAGS) +flow_export_CFLAGS = $(MYSQLCFLAGS) $(PGSQLCFLAGS) +flow_export_LDADD = -lft $(MYSQLLIB) $(PGSQLLIB) flow_export_DEPENDENCIES = ftbuild.h flow_header_SOURCES = flow-header.c @@ -117,8 +117,8 @@ flow_split_LDADD = -lft flow_split_DEPENDENCIES = ftbuild.h flow_xlate_SOURCES = flow-xlate.c -flow_xlate_LDFLAGS = -L../lib -flow_xlate_LDADD = -lft @CRYPTOLIB@ +flow_xlate_LDFLAGS = -L../lib $(CRYPTOLDFLAGS) +flow_xlate_LDADD = -lft $(CRYPTOLIB) flow_xlate_DEPENDENCIES = ftbuild.h flow_tag_SOURCES = flow-tag.c -- 1.3.3