From c1d6bffe9ba81c265042859dddf3b39be87c161b Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Sat, 11 Apr 2009 10:15:12 -0400 Subject: Build system improvements for common tools Allows building shared or static libraries using autotools and provides a pkg-config file to simplify inclusion into other parts of the project (or other projects in the future) For now, we will statically link the collection library and INI parser. --- .gitignore | 9 +++++++++ common/Makefile.am | 2 +- common/collection/Makefile.am | 16 +++++++++------- common/collection/collection.pc.in | 11 +++++++++++ common/configure.ac | 2 +- common/ini/Makefile.am | 16 +++++++++------- common/ini/ini_config.pc.in | 11 +++++++++++ common/trace/Makefile.am | 1 + 8 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 common/collection/collection.pc.in create mode 100644 common/ini/ini_config.pc.in create mode 100644 common/trace/Makefile.am diff --git a/.gitignore b/.gitignore index 3b784ff55..76a1c3802 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,15 @@ Makefile cscope.out *.so *.so.[0-9].[0-9].[0-9] +*.a +*.la +*.lo +aclocal.m4 +.deps +.libs *.html *.[0-9] *.pc +autom4te.cache +libtool +stamp-h1 diff --git a/common/Makefile.am b/common/Makefile.am index b06c0e734..ea23cb953 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -1 +1 @@ -SUBDIRS = collection ini +SUBDIRS = collection ini trace diff --git a/common/collection/Makefile.am b/common/collection/Makefile.am index bdc111122..a47f8f99a 100644 --- a/common/collection/Makefile.am +++ b/common/collection/Makefile.am @@ -4,14 +4,16 @@ TRACE_LEVEL=@TRACE_VAR@ topdir=.. AM_CPPFLAGS = -Wall -I$(topdir) -I$(topdir)/trace $(TRACE_LEVEL) -# Build static libraty -noinst_LIBRARIES = libcollection.a -libcollection_a_SOURCES = collection.c collection_tools.c collection.h trace.h collection_tools.h collection_class.h +# Set up the pkg-config file +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = collection.pc -# Build shared library - reserved for future -# lib_LTLIBRARIES = libcollection.la -# libcollection_la_SOURCES = collection.c collection_tools.c collection.h trace.h collection_tools.h collection_class.h +# Build libraty +lib_LTLIBRARIES = libcollection.la +libcollection_la_SOURCES = collection.c collection_tools.c collection_tools.h collection_class.h +include_HEADERS = collection.h collection_tools.h +# Build unit test noinst_PROGRAMS = collection_ut collection_ut_SOURCES = collection_ut.c -collection_ut_LDADD = libcollection.a -lm -lz +collection_ut_LDADD = libcollection.la -lm -lz diff --git a/common/collection/collection.pc.in b/common/collection/collection.pc.in new file mode 100644 index 000000000..c73a588c0 --- /dev/null +++ b/common/collection/collection.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: collection +Description: A data-type to collect data in a heirarchical structure for easy iteration and serialization +Version: @PACKAGE_VERSION@ +Libs: -L${libdir} -lcollection +Cflags: -I${includedir} +URL: http://fedorahosted.org/sssd/ diff --git a/common/configure.ac b/common/configure.ac index 941125d07..8804b4d74 100644 --- a/common/configure.ac +++ b/common/configure.ac @@ -17,7 +17,7 @@ AC_ARG_ENABLE([trace], AS_IF([test ["$trace_level" -gt "0"] -a ["$trace_level" -lt "8"] ],[AC_SUBST([TRACE_VAR],["-DTRACE_LEVEL=$trace_level"])]) -AC_CONFIG_FILES([Makefile collection/Makefile ini/Makefile]) +AC_CONFIG_FILES([Makefile collection/Makefile collection/collection.pc ini/Makefile ini/ini_config.pc trace/Makefile]) AC_OUTPUT diff --git a/common/ini/Makefile.am b/common/ini/Makefile.am index a673aecd8..962172f6e 100644 --- a/common/ini/Makefile.am +++ b/common/ini/Makefile.am @@ -4,14 +4,16 @@ TRACE_LEVEL=@TRACE_VAR@ topdir=.. AM_CPPFLAGS = -Wall -I$(topdir) -I$(topdir)/trace -I$(topdir)/collection $(TRACE_LEVEL) -# Build static libraty -noinst_LIBRARIES = libini_config.a -libini_config_a_SOURCES = ini_config.c collection.h trace.h collection_tools.h collection_class.h ini_config.h +# Set up the pkg-config file +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = ini_config.pc -# Build shared library -#lib_LTLIBRARIES = libini.la -#libini_la_SOURCES = ini_config.c collection.h trace.h collection_tools.h collection_class.h ini_config.h +# Build library +lib_LTLIBRARIES = libini_config.la +libini_config_la_SOURCES = ini_config.c collection.h collection_tools.h collection_class.h +include_HEADERS = ini_config.h +# Build unit test noinst_PROGRAMS = ini_config_ut ini_config_ut_SOURCES = ini_config_ut.c -ini_config_ut_LDADD = libini_config.a -lm -lz ../collection/libcollection.a +ini_config_ut_LDADD = libini_config.la -lm -lz ../collection/libcollection.la \ No newline at end of file diff --git a/common/ini/ini_config.pc.in b/common/ini/ini_config.pc.in new file mode 100644 index 000000000..d08e5b5e2 --- /dev/null +++ b/common/ini/ini_config.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: ini_config +Description: Library to process config files in INI format into a libcollection data structure +Version: @PACKAGE_VERSION@ +Libs: -L${libdir} -lini_config +Cflags: -I${includedir} +URL: http://fedorahosted.org/sssd/ diff --git a/common/trace/Makefile.am b/common/trace/Makefile.am new file mode 100644 index 000000000..489a9d997 --- /dev/null +++ b/common/trace/Makefile.am @@ -0,0 +1 @@ +include_HEADERS = trace.h -- cgit