Added separate folders (itzam, sqlite, rawdb) under src, for specific database access implementations.
Default database : itzam.
Use "./configure --with-sqlite" to build using the SQLITE db. Provide implementation in src/sqlite/pers_low_level_db_access.c
based on pers_low_level_db_access_if.h
Use "./configure --with-rawdb" to build using the RAWDB db. Provide implementation in src/rawdb/pers_low_level_db_access.c
based on pers_low_level_db_access_if.h
Change-Id: I4c32835fd1863b3d25bc35c54958905e2c535758
Signed-off-by: Petrica Manoila <petrica.manoila@continental-corporation.com>
+persistence-common-object ChangeLog
+===================================
+
+Version 1.0.1 25.08.2014
+------------------------
+
+1. Split of the low level database access.
+ Added separate folders (itzam, sqlite, rawdb) under src, for specific database access implementations.
+ Default database : itzam.
+ Use "./configure --with-sqlite" to build using the SQLITE db. Provide implementation in src/sqlite/pers_low_level_db_access.c
+ based on pers_low_level_db_access_if.h
+ Use "./configure --with-rawdb" to build using the RAWDB db. Provide implementation in src/rawdb/pers_low_level_db_access.c
+ based on pers_low_level_db_access_if.h
# Copyright (C) 2012 Continental Automotive Systems, Inc.
#
# Author: Ana.Chisca@continental-corporation.com
+# Petrica.Manoila@continental-corporation.com
#
# Configure template for the persistence-common library
#
PKG_CHECK_MODULES([GIO_UNIX], [gio-unix-2.0 >= 2.30.0])
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.30.0])
PKG_CHECK_MODULES([DLT], [automotive-dlt >= 2.2.0])
-PKG_CHECK_MODULES([ITZAM], [libitzam >= 6.0.4])
-ITZAM_LIBS="-litzam"
+
+dnl *************************************
+dnl *** Database support ***
+dnl *************************************
+
+AC_ARG_WITH([database],
+ AS_HELP_STRING([--with-database=auto|itzam|sqlite|rawdb],[Choose database backend.]),[],[with_database=auto])
+
+dnl ********** ITZAM **********
+AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xitzam"],
+ [PKG_CHECK_MODULES(ITZAM, [ libitzam >= 6.0.4 ], HAVE_ITZAM=1, HAVE_ITZAM=0)],
+ HAVE_ITZAM=0)
+AS_IF([test "x$HAVE_ITZAM" = "x1"], with_database=itzam)
+AS_IF([test "x$HAVE_ITZAM" = "x1"], ITZAM_LIBS="-litzam")
+AS_IF([test "x$with_database" = "xitzam" -a "x$HAVE_ITZAM" = "x0"],
+ [AC_MSG_ERROR([*** itzam not found])])
+
+AM_CONDITIONAL([HAVE_ITZAM], [test "x$HAVE_ITZAM" = x1])
+
+dnl ********** SQLITE **********
+AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsqlite"],
+ [PKG_CHECK_MODULES(SQLITE, [sqlite3 >= 3.7.5], HAVE_SQLITE=1, HAVE_SQLITE=0)],
+ HAVE_SQLITE=0)
+AS_IF([test "x$HAVE_SQLITE" = "x1"], with_database=sqlite)
+AS_IF([test "x$with_database" = "xsqlite" -a "x$HAVE_SQLITE" = "x0"],
+ [AC_MSG_ERROR([*** sqlite not found])])
+
+AM_CONDITIONAL([HAVE_SQLITE], [test "x$HAVE_SQLITE" = x1])
+
+dnl ********** RAWDB **********
+AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xrawdb"],
+ HAVE_RAWDB=1,
+ HAVE_RAWDB=0)
+AS_IF([test "x$HAVE_RAWDB" = "x1"], with_database=rawdb)
+AS_IF([test "x$with_database" = "xrawdb" -a "x$HAVE_RAWDB" = "x0"],
+ [AC_MSG_ERROR([*** rawdb not found])])
+
+AM_CONDITIONAL([HAVE_RAWDB], [test "x$HAVE_RAWDB" = x1])
+
+AS_IF([test "x$HAVE_ITZAM" != x1 -a "x$HAVE_SQLITE" != x1 -a "x$HAVE_RAWDB" != x1],
+ AC_MSG_ERROR([*** missing database backend]))
dnl *************************************
dnl *** Define extra paths ***
# Copyright (C) 2012 Continental Automotive Systems, Inc.
#
# Author: Ana.Chisca@continental-corporation.com
+# Petrica.Manoila@continental-corporation.com
#
# Makefile template for the persistence common library
#
ACLOCAL_AMFLAGS=-I m4
+# Build objects into the subdirectory of the build directory corresponding to the subdirectory of the source files
+# to avoid conflicts for pers_low_level_db_access.c files for different databases
+AUTOMAKE_OPTIONS = subdir-objects
+
lib_LTLIBRARIES = libpers_common.la
include_HEADERS= \
- $(top_srcdir)/inc/protected/persComTypes.h \
- $(top_srcdir)/inc/protected/persComDataOrg.h \
- $(top_srcdir)/inc/protected/persComDbAccess.h \
- $(top_srcdir)/inc/protected/persComErrors.h \
- $(top_srcdir)/inc/protected/persComRct.h \
- $(top_srcdir)/inc/protected/persComIpc.h
+ ../inc/protected/persComTypes.h \
+ ../inc/protected/persComDataOrg.h \
+ ../inc/protected/persComDbAccess.h \
+ ../inc/protected/persComErrors.h \
+ ../inc/protected/persComRct.h \
+ ../inc/protected/persComIpc.h
libpers_common_la_CFLAGS = \
- -I $(top_srcdir)/inc/private -I $(top_srcdir)/inc/protected -I $(top_srcdir)/generated\
+ -I ../inc/private -I ../inc/protected -I ../generated\
$(DLT_CFLAGS) \
$(GIO_CFLAGS) \
$(GIO_UNIX_CFLAGS) \
$(GLIB_CFLAGS) \
$(GOBJECT_CFLAGS) \
- $(DBUS_CFLAGS) \
- $(ITZAM_CFLAGS)
+ $(DBUS_CFLAGS)
+
+if HAVE_ITZAM
+libpers_common_la_CFLAGS += \
+ $(ITZAM_CFLAGS)
+endif
+
+if HAVE_SQLITE
+libpers_common_la_CFLAGS += \
+ $(SQLITE_CFLAGS)
+endif
+
+if HAVE_RAWDB
+libpers_common_la_CFLAGS += \
+ $(RAWDB_CFLAGS)
+endif
libpers_common_la_SOURCES = \
- $(top_srcdir)/generated/PasClientNotificationGen.c\
- $(top_srcdir)/src/pers_data_organization.c\
- $(top_srcdir)/src/pers_local_shared_db_access.c\
- $(top_srcdir)/src/pers_low_level_db_access.c\
- $(top_srcdir)/src/pers_resource_config_table.c\
- $(top_srcdir)/src/pers_ipc.c\
- $(top_srcdir)/src/pers_ipc_dbus.c
+ ../generated/PasClientNotificationGen.c\
+ ../src/pers_data_organization.c\
+ ../src/pers_local_shared_db_access.c\
+ ../src/pers_resource_config_table.c\
+ ../src/pers_ipc.c\
+ ../src/pers_ipc_dbus.c
+
+if HAVE_ITZAM
+libpers_common_la_SOURCES += \
+ ../src/itzam/pers_low_level_db_access.c
+endif
+
+if HAVE_SQLITE
+libpers_common_la_SOURCES += \
+ ../src/sqlite/pers_low_level_db_access.c
+endif
+
+if HAVE_RAWDB
+libpers_common_la_SOURCES += \
+ ../src/rawdb/pers_low_level_db_access.c
+endif
libpers_common_la_LDFLAGS = -version-info $(GENERIC_LIBRARY_VERSION)
+
libpers_common_la_LIBADD = \
$(DLT_LIBS) \
$(GIO_LIBS) \
$(GIO_UNIX_LIBS) \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
- $(GOBJECT_LIBS) \
- $(ITZAM_LIBS)
+ $(GOBJECT_LIBS)
+
+if HAVE_ITZAM
+libpers_common_la_LIBADD += \
+ $(ITZAM_LIBS)
+endif
+
+if HAVE_SQLITE
+libpers_common_la_LIBADD += \
+ $(SQLITE_LIBS)
+endif
+
+if HAVE_RAWDB
+libpers_common_la_LIBADD += \
+ $(RAWDB_LIBS)
+endif
-dbuspolicy_DATA = $(top_srcdir)/dbus_config/org.genivi.persistence.admin.conf
+dbuspolicy_DATA = ../dbus_config/org.genivi.persistence.admin.conf
# Export interface description of org.genivi.persistence.admin DBus interface
-dbusinterfaces_DATA = $(top_srcdir)/dbus_specifications/org.genivi.persistence.admin.xml
+dbusinterfaces_DATA = ../dbus_specifications/org.genivi.persistence.admin.xml
EXTRA_DIST = $(dbuspolicy_DATA) \
$(dbusinterfaces_DATA)
# pkgconfig
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = $(top_srcdir)/pkgconfig/libperscommon.pc
+pkgconfig_DATA = ../pkgconfig/libperscommon.pc