Blob Blame History Raw
From nobody Mon Sep 17 00:00:00 2001
From: Paul P Komkoff Jr <i@stingr.net>
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