Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Kinsella, Ray <ray.kinsella@intel.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2] radlib: new package
Date: Mon, 28 Mar 2016 19:40:27 +0000	[thread overview]
Message-ID: <1459194027.3607.13.camel@intel.com> (raw)

Delta's from v1:-

 * Complete rework of patch for the package's autotools implementation
  * Removed references to prefix.
  * Reworked database support to use PKG_CHECK_MODULES and
AC_PATH_PROG.
  * Used '--with--somedb' to indicate which database backend to build
with. (The radlib build ends up with conflicting symbols if more than
one is enabled at the same time, we prevent this in the package's .mk).
 * Complete rework of the Kconfig.
  * Database support is only enabled when BR2_PACKAGE_(mysql, sqlite or
postgresql) are set.
  * Database backend is selected by 'choice' when more than one is
enabled. 
 * Other tidy up's recommended for the v1 patch. 
  * Included a comment on radlib.hash.
  * Added signed off line and description to the patch.
  * Removed no_sync from mysql.
  * etc.

radlib is a rapid application development library for unix
multi-process applications. It uses SYS V IPC facilities and
FIFOs to provide an RTOS-like, event-driven, distributed
framework. Processes may be run as daemons or have a controlling
terminal.

Signed-off-by: Ray Kinsella <ray.kinsella@intel.com>
---
 package/Config.in                                  |   1 +
 ...0001-Update-to-autoconf-to-use-pkg-config.patch | 388
+++++++++++++++++++++
 package/radlib/Config.in                           |  37 ++
 package/radlib/radlib.hash                         |   2 +
 package/radlib/radlib.mk                           |  28 ++
 5 files changed, 456 insertions(+)
 create mode 100644 package/radlib/0001-Update-to-autoconf-to-use-pkg
-config.patch
 create mode 100644 package/radlib/Config.in
 create mode 100644 package/radlib/radlib.hash
 create mode 100644 package/radlib/radlib.mk

diff --git a/package/Config.in b/package/Config.in
index 8208da8..13fb380 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1260,6 +1260,7 @@ endif
 	source "package/protobuf-c/Config.in"
 	source "package/qhull/Config.in"
 	source "package/qlibc/Config.in"
+	source "package/radlib/Config.in"
 	source "package/startup-notification/Config.in"
 	source "package/tz/Config.in"
 	source "package/tzdata/Config.in"
diff --git a/package/radlib/0001-Update-to-autoconf-to-use-pkg
-config.patch b/package/radlib/0001-Update-to-autoconf-to-use-pkg
-config.patch
new file mode 100644
index 0000000..f98b9d5
--- /dev/null
+++ b/package/radlib/0001-Update-to-autoconf-to-use-pkg-config.patch
@@ -0,0 +1,388 @@
+From d4c1b74a6624da7cc217c6b1aef59dc60b7d20c0 Mon Sep 17 00:00:00 2001
+From: Ray Kinsella <ray.kinsella@intel.com>
+Date: Sun, 27 Mar 2016 16:38:16 +0100
+Subject: [PATCH] Update to autoconf to use pkg-config
+
+Updates to autoconf as follows;
+
+ * Use pkg-config for postgresql and sqlite
+ * Use mysql-config for mysql
+ * Also removed unecessary conditionals from sub-makefiles
+
+Signed-off-by: Ray Kinsella <ray.kinsella@intel.com>
+---
+ configure.ac          | 88
+++++++++++++++++++++++++++++++++++++++++++++++++
+ configure.in          | 91 ------------------------------------------
---------
+ debug/Makefile.am     | 32 +++---------------
+ msgRouter/Makefile.am | 34 ++++---------------
+ src/Makefile.am       | 36 ++++++++------------
+ 5 files changed, 112 insertions(+), 169 deletions(-)
+ create mode 100644 configure.ac
+ delete mode 100644 configure.in
+
+diff --git a/configure.ac b/configure.ac
+new file mode 100644
+index 0000000..ba493f5
+--- /dev/null
++++ b/configure.ac
+@@ -0,0 +1,88 @@
++# Process this file with autoconf to produce a configure script.
++
++AC_PREREQ(2.5)
++AC_INIT([radlib],[2.12.0],[mteel2005 at gmail.com])
++AC_CONFIG_SRCDIR([h/radmsgLog.h])
++AM_INIT_AUTOMAKE([subdir-objects])
++AM_CONFIG_HEADER([config.h])
++
++AC_ARG_WITH([postgresql], AS_HELP_STRING([--with-postgresql], [Build
with postgresql]))
++if test "x$with_postgresql" = "xyes"; then
++ PKG_CHECK_MODULES([POSTGRESQL], [libpq], [have_libpq=yes],
[have_libpq=no])
++fi
++AM_CONDITIONAL([HAVE_POSTGRESQL],  [test "$have_libpq" = "yes"])
++
++AC_ARG_WITH([mysql], AS_HELP_STRING([--with-mysql], [Build with
mysql]))
++if test "x$with_mysql" = "xyes"; then
++        AC_PATH_PROG([MYSQL_CONFIG], [mysql_config])
++        if test "x$MYSQL_CONFIG" != "x";then
++                MYSQL_CFLAGS=`$MYSQL_CONFIG --cflags`
++                MYSQL_LIBS=`$MYSQL_CONFIG --libs`
++                AC_SUBST([MYSQL_CFLAGS])
++                AC_SUBST([MYSQL_LIBS])
++        fi
++fi
++AM_CONDITIONAL([HAVE_MYSQL],  [test "x$MYSQL_CONFIG" != "x"])
++
++AC_ARG_WITH([sqlite], AS_HELP_STRING([--with-sqlite], [Build with
sqlite]))
++if test "x$with_sqlite" = "xyes"; then
++	PKG_CHECK_MODULES([SQLITE3], [sqlite3],
[have_libsqlite3=yes], [have_libsqlite3=no])
++fi
++AM_CONDITIONAL([HAVE_SQLITE3],  [test "$have_libsqlite3" = "yes"])
++
++# Check for big endian host:
++AC_C_BIGENDIAN()
++
++# Checks for programs.
++AC_PROG_CC
++AC_PROG_INSTALL
++AC_PROG_LIBTOOL
++
++# Set a flag here if we are cross compiling (must be after
AC_PROG_CC)
++AM_CONDITIONAL(CROSSCOMPILE, test x$cross_compiling = xyes)
++
++# Checks for libraries.
++AC_CHECK_LIB([c], [strncpy])
++AC_CHECK_LIB([m], [exp])
++
++# Checks for header files.
++AC_HEADER_STDC
++AC_HEADER_SYS_WAIT
++AC_CHECK_HEADERS([fcntl.h \
++                  stdlib.h \
++                  string.h \
++                  sys/time.h \
++                  syslog.h \
++                  termios.h \
++                  unistd.h])
++
++# Checks for typedefs, structures, and compiler characteristics.
++AC_C_CONST
++AC_TYPE_PID_T
++AC_HEADER_TIME
++AC_STRUCT_TM
++
++# Checks for library functions.
++AC_FUNC_FORK
++AC_FUNC_MALLOC
++AC_FUNC_SELECT_ARGTYPES
++AC_TYPE_SIGNAL
++AC_FUNC_STAT
++AC_FUNC_VPRINTF
++AC_CHECK_FUNCS([getcwd \
++                gethostname \
++                gettimeofday \
++                memset \
++                mkdir \
++                mkfifo \
++                select \
++                strchr \
++                strerror \
++                strrchr])
++
++AC_CONFIG_FILES([Makefile \
++                 src/Makefile \
++                 msgRouter/Makefile \
++                 debug/Makefile])
++AC_OUTPUT
++
+diff --git a/configure.in b/configure.in
+deleted file mode 100644
+index 47e507e..0000000
+--- a/configure.in
++++ /dev/null
+@@ -1,91 +0,0 @@
+-# Process this file with autoconf to produce a configure script.
+-
+-AC_PREREQ(2.5)
+-AC_INIT([radlib],[2.12.0],[mteel2005 at gmail.com])
+-AC_CONFIG_SRCDIR([h/radmsgLog.h])
+-AM_INIT_AUTOMAKE([radlib],[2.12.0])
+-AM_CONFIG_HEADER([config.h])
+-
+-AC_ARG_ENABLE(mysql,
+-[  --enable-mysql                 include radlib MySQL database
support],
+-[case "${enableval}" in
+-  yes) mysql=true ;;
+-  no)  mysql=false ;;
+-  *) mysql=false ;;
+-esac],[mysql=false])
+-AM_CONDITIONAL(MYSQL, test x$mysql = xtrue)
+-
+-AC_ARG_ENABLE(pgresql,
+-[  --enable-pgresql               include radlib postgreSQL database
support],
+-[case "${enableval}" in
+-  yes) pgresql=true ;;
+-  no)  pgresql=false ;;
+-  *) pgresql=false ;;
+-esac],[pgresql=false])
+-AM_CONDITIONAL(PGRESQL, test x$pgresql = xtrue)
+-
+-AC_ARG_ENABLE(sqlite,
+-[  --enable-sqlite                include radlib sqlite database
support],
+-[case "${enableval}" in
+-  yes) sqlite=true ;;
+-  no)  sqlite=false ;;
+-  *) sqlite=false ;;
+-esac],[sqlite=false])
+-AM_CONDITIONAL(SQLITE, test x$sqlite = xtrue)
+-
+-# Check for big endian host:
+-AC_C_BIGENDIAN()
+-
+-# Checks for programs.
+-AC_PROG_CC
+-AC_PROG_INSTALL
+-AC_PROG_LIBTOOL
+-
+-# Set a flag here if we are cross compiling (must be after
AC_PROG_CC)
+-AM_CONDITIONAL(CROSSCOMPILE, test x$cross_compiling = xyes)
+-
+-# Checks for libraries.
+-AC_CHECK_LIB([c], [strncpy])
+-AC_CHECK_LIB([m], [exp])
+-
+-# Checks for header files.
+-AC_HEADER_STDC
+-AC_HEADER_SYS_WAIT
+-AC_CHECK_HEADERS([fcntl.h \
+-                  stdlib.h \
+-                  string.h \
+-                  sys/time.h \
+-                  syslog.h \
+-                  termios.h \
+-                  unistd.h])
+-
+-# Checks for typedefs, structures, and compiler characteristics.
+-AC_C_CONST
+-AC_TYPE_PID_T
+-AC_HEADER_TIME
+-AC_STRUCT_TM
+-
+-# Checks for library functions.
+-AC_FUNC_FORK
+-AC_FUNC_MALLOC
+-AC_FUNC_SELECT_ARGTYPES
+-AC_TYPE_SIGNAL
+-AC_FUNC_STAT
+-AC_FUNC_VPRINTF
+-AC_CHECK_FUNCS([getcwd \
+-                gethostname \
+-                gettimeofday \
+-                memset \
+-                mkdir \
+-                mkfifo \
+-                select \
+-                strchr \
+-                strerror \
+-                strrchr])
+-
+-AC_CONFIG_FILES([Makefile \
+-                 src/Makefile \
+-                 msgRouter/Makefile \
+-                 debug/Makefile])
+-AC_OUTPUT
+-
+diff --git a/debug/Makefile.am b/debug/Makefile.am
+index 00f3b13..fde57d5 100644
+--- a/debug/Makefile.am
++++ b/debug/Makefile.am
+@@ -4,7 +4,7 @@
+ bin_PROGRAMS = raddebug
+ 
+ # define include directories
+-INCLUDES = \
++AM_CFLAGS = \
+ 		-I$(top_srcdir)/h \
+ 		-D_GNU_SOURCE
+ 
+@@ -15,30 +15,8 @@ raddebug_SOURCES  = \
+ # define libraries
+ raddebug_LDADD   = -lrad -lpthread 
+ 
+-if MYSQL
+-raddebug_LDADD   += -lmysqlclient
+-else
+-if PGRESQL
+-raddebug_LDADD   += -lpq
+-endif
+-endif
+-if SQLITE
+-raddebug_LDADD   += -lsqlite3
+-endif
+-
+ # define library directories
+-raddebug_LDFLAGS = -L../src/.libs -L$(prefix)/lib -L/usr/lib
+-INCLUDES         += -I$(prefix)/include -I/usr/include
+-
+-if MYSQL
+-raddebug_LDFLAGS += -L$(prefix)/lib64/mysql -L$(prefix)/lib/mysql 
-L/usr/lib64/mysql -L/usr/lib/mysql
+-else
+-if PGRESQL
+-raddebug_LDFLAGS += -L$(prefix)/pgsql/lib
+-INCLUDES         += -I$(prefix)/pgsql/include
+-endif
+-endif
+-
+-if CROSSCOMPILE
+-raddebug_LDFLAGS += $(prefix)/lib/crt1.o $(prefix)/lib/crti.o
$(prefix)/lib/crtn.o
+-endif
++raddebug_LDFLAGS = -L../src/.libs \
++		$(SQLITE3_LIBS) \
++		$(MYSQL_LIBS) \
++		$(POSTGRESQL_LIBS)
+diff --git a/msgRouter/Makefile.am b/msgRouter/Makefile.am
+index 5a20421..6f13a4e 100644
+--- a/msgRouter/Makefile.am
++++ b/msgRouter/Makefile.am
+@@ -4,7 +4,7 @@
+ bin_PROGRAMS = radmrouted
+ 
+ # define include directories
+-INCLUDES = \
++AM_CFLAGS = \
+ 		-I$(top_srcdir)/h \
+ 		-D_GNU_SOURCE
+ 
+@@ -13,32 +13,10 @@ radmrouted_SOURCES  = \
+ 		$(top_srcdir)/msgRouter/msgRouter.c
+ 
+ # define libraries
+-radmrouted_LDADD   = -lrad -lpthread
+-
+-if MYSQL
+-radmrouted_LDADD   += -lmysqlclient
+-else
+-if PGRESQL
+-radmrouted_LDADD   += -lpq
+-endif
+-endif
+-if SQLITE
+-radmrouted_LDADD   += -lsqlite3
+-endif
++radmrouted_LDADD  = -lrad -lpthread
+ 
+ # define library directories
+-radmrouted_LDFLAGS = -L../src/.libs -L$(prefix)/lib -L/usr/lib
+-INCLUDES           += -I$(prefix)/include -I/usr/include
+-
+-if MYSQL
+-radmrouted_LDFLAGS += -L$(prefix)/lib64/mysql -L$(prefix)/lib/mysql 
-L/usr/lib64/mysql -L/usr/lib/mysql
+-else
+-if PGRESQL
+-radmrouted_LDFLAGS += -L$(prefix)/lib -L$(prefix)/pgsql/lib
+-INCLUDES           += -I$(prefix)/pgsql/include
+-endif
+-endif
+-
+-if CROSSCOMPILE
+-radmrouted_LDFLAGS += $(prefix)/lib/crt1.o $(prefix)/lib/crti.o
$(prefix)/lib/crtn.o
+-endif
++radmrouted_LDFLAGS = -L../src/.libs \
++			$(SQLITE3_LIBS) \
++			$(MYSQL_LIBS) \
++			$(POSTGRESQL_LIBS)
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 38b2ac8..25d16cf 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -12,45 +12,35 @@ SUBDIRS =
+ #define the library to be built
+ lib_LTLIBRARIES = librad.la
+ 
+-if MYSQL
+-MY_INCLUDES 	= \
+-		-I$(prefix)/include/mysql \
+-		-I/usr/include/mysql
+-MY_SOURCES  	= \
++if HAVE_MYSQL
++MYSQL_SOURCES  	= \
+ 		$(top_srcdir)/database/mysql/my_database.c \
+ 		$(top_srcdir)/src/raddatabase.c
+ MYSQL_HDRS	= \
+ 		$(top_srcdir)/h/raddatabase.h
+ endif
+-if PGRESQL
+-PG_INCLUDES 	= \
+-		-I$(prefix)/include \
+-		-I/usr/include
+-PG_SOURCES	= \
++if HAVE_POSTGRESQL
++PGSQL_SOURCES	= \
+ 		$(top_srcdir)/database/postgresql/pg_database.c \
+ 		$(top_srcdir)/src/raddatabase.c
+ PGSQL_HDRS	= \
+ 		$(top_srcdir)/h/raddatabase.h \
+ 		$(top_srcdir)/database/postgresql/_pg-types.h
+ endif
+-if SQLITE
+-SQ_INCLUDES 	= \
+-		-I$(prefix)/include \
+-		-I/usr/include
+-SQ_SOURCES	= \
++if HAVE_SQLITE3
++SQLITE_SOURCES	= \
+ 		$(top_srcdir)/src/radsqlite.c
+ SQLITE_HDRS	= \
+ 		$(top_srcdir)/h/radsqlite.h
+ endif
+ 
+ # define include directories
+-INCLUDES = \
++AM_CFLAGS = \
+ 		-I$(top_srcdir)/h \
+-		-I$(prefix)/include \
+ 		-D_GNU_SOURCE \
+-		$(MY_INCLUDES) \
+-		$(PG_INCLUDES) \
+-		$(SQ_INCLUDES)
++		$(MYSQL_CFLAGS) \
++		$(SQLITE3_CFLAGS) \
++		$(POSTGRESQL_CFLAGS)
+ 
+ 
+ 
+@@ -86,9 +76,9 @@ librad_la_SOURCES  = \
+ 		$(top_srcdir)/src/radtimers.c \
+ 		$(top_srcdir)/src/radtimeUtils.c \
+ 		$(top_srcdir)/src/radUDPsocket.c \
+-		$(MY_SOURCES) \
+-		$(PG_SOURCES) \
+-		$(SQ_SOURCES)
++		$(MYSQL_SOURCES) \
++		$(PGSQL_SOURCES) \
++		$(SQLITE_SOURCES)
+ 
+ 
+ # define the header files we install for the library
+-- 
+2.4.3
+
diff --git a/package/radlib/Config.in b/package/radlib/Config.in
new file mode 100644
index 0000000..e77e03c
--- /dev/null
+++ b/package/radlib/Config.in
@@ -0,0 +1,37 @@
+config BR2_PACKAGE_RADLIB
+	bool "radlib"
+	help
+	  radlib is a rapid application development library for unix
+	  multi-process applications. It uses SYS V IPC facilities and
+	  FIFOs to provide an RTOS-like, event-driven, distributed
framework.
+	  Processes may be run as daemons or have a controlling
terminal.
+	  
+	  http://sourceforge.net/projects/radlib/
+
+choice
+	prompt "radlib database backend"
+	depends on BR2_PACKAGE_RADLIB
+	depends on BR2_PACKAGE_SQLITE \
+		|| BR2_PACKAGE_MYSQL \
+		|| BR2_PACKAGE_POSTGRESQL
+	help$
+		Selects the backend database: sqlite, mysql or
postgresql
+
+config BR2_PACKAGE_RADLIB_SQLITE
+	bool "sqlite"
+	depends on BR2_PACKAGE_SQLITE
+	help
+		Configure radlib to use a sqlite database backend
+
+config BR2_PACKAGE_RADLIB_MYSQL
+	bool "mysql"
+	depends on BR2_PACKAGE_MYSQL
+	help
+		Configure radlib to use a mysql database backend
+
+config BR2_PACKAGE_RADLIB_POSTGRESQL
+	bool "postgresql"
+	depends on BR2_PACKAGE_POSTGRESQL
+	help
+		Configure radlib to use a postgresql database backend
+endchoice
diff --git a/package/radlib/radlib.hash b/package/radlib/radlib.hash
new file mode 100644
index 0000000..2fbfbba
--- /dev/null
+++ b/package/radlib/radlib.hash
@@ -0,0 +1,2 @@
+# From http://sourceforge.net/projects/radlib/files/
+sha256 
 82b98bb5e08a500dea1e4252843b9c772fa1fb67ac8ab89ed64abdd5e22eca66 
 radlib-2.12.0.tar.gz
diff --git a/package/radlib/radlib.mk b/package/radlib/radlib.mk
new file mode 100644
index 0000000..5ff55ac
--- /dev/null
+++ b/package/radlib/radlib.mk
@@ -0,0 +1,28 @@
+######################################################################
##########
+#
+# radlib
+#
+######################################################################
##########
+
+RADLIB_VERSION = 2.12.0
+RADLIB_SITE = http://downloads.sourceforge.net/radlib
+RADLIB_INSTALL_STAGING = YES
+RADLIB_LICENSE = BSD-2c
+RADLIB_LICENSE_FILES = COPYING
+RADLIB_AUTORECONF = YES
+RADLIB_DEPENDENCIES = host-pkgconf
+
+ifeq ($(BR2_PACKAGE_RADLIB_SQLITE),y)
+	RADLIB_CONF_OPTS += --with-sqlite
+endif
+
+ifeq ($(BR2_PACKAGE_RADLIB_MYSQL),y)
+	RADLIB_CONF_ENV=ac_cv_path_MYSQL_CONFIG="$(STAGING_DIR)/usr/bi
n/mysql_config"
+	RADLIB_CONF_OPTS += --with-mysql
+endif
+
+ifeq ($(BR2_PACKAGE_RADLIB_POSTGRESQL),y)
+	RADLIB_CONF_OPTS += --with-postgresql
+endif
+
+$(eval $(autotools-package))
-- 
2.4.3

             reply	other threads:[~2016-03-28 19:40 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-28 19:40 Kinsella, Ray [this message]
2016-03-29 18:07 ` [Buildroot] [PATCH v2] radlib: new package Thomas Petazzoni
2016-03-29 21:35   ` Kinsella, Ray
2016-03-29 21:51     ` Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1459194027.3607.13.camel@intel.com \
    --to=ray.kinsella@intel.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox