build-sys: create libkmod-util.la convenience lib
Util functions can be shared betweeing libkmod and tools. Start with the
hash implementation.
diff --git a/Makefile.am b/Makefile.am
index fdba51b..9fecc2c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -40,6 +40,10 @@
LIBKMOD_REVISION=0
LIBKMOD_AGE=1
+noinst_LTLIBRARIES = libkmod/libkmod-util.la
+libkmod_libkmod_util_la_SOURCES = libkmod/libkmod-hash.c \
+ libkmod/libkmod-hash.h
+
include_HEADERS = libkmod/libkmod.h
lib_LTLIBRARIES = libkmod/libkmod.la
@@ -49,7 +53,6 @@
libkmod/macro.h \
libkmod/libkmod.c \
libkmod/libkmod-list.c \
- libkmod/libkmod-hash.c \
libkmod/libkmod-config.c \
libkmod/libkmod-util.c \
libkmod/libkmod-index.c \
@@ -64,8 +67,10 @@
libkmod_libkmod_la_LDFLAGS = $(AM_LDFLAGS) \
-version-info $(LIBKMOD_CURRENT):$(LIBKMOD_REVISION):$(LIBKMOD_AGE) \
-Wl,--version-script=$(top_srcdir)/libkmod/libkmod.sym
-libkmod_libkmod_la_DEPENDENCIES = ${top_srcdir}/libkmod/libkmod.sym
-libkmod_libkmod_la_LIBADD = ${liblzma_LIBS} ${zlib_LIBS}
+libkmod_libkmod_la_DEPENDENCIES = libkmod/libkmod-util.la \
+ ${top_srcdir}/libkmod/libkmod.sym
+libkmod_libkmod_la_LIBADD = libkmod/libkmod-util.la \
+ ${liblzma_LIBS} ${zlib_LIBS}
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libkmod/libkmod.pc
diff --git a/libkmod/libkmod-hash.c b/libkmod/libkmod-hash.c
index 43cbc02..15140ec 100644
--- a/libkmod/libkmod-hash.c
+++ b/libkmod/libkmod-hash.c
@@ -19,7 +19,7 @@
*/
#include "libkmod.h"
-#include "libkmod-private.h"
+#include "libkmod-hash.h"
#include <stdlib.h>
#include <string.h>
diff --git a/libkmod/libkmod-hash.h b/libkmod/libkmod-hash.h
new file mode 100644
index 0000000..53e6c81
--- /dev/null
+++ b/libkmod/libkmod-hash.h
@@ -0,0 +1,13 @@
+#ifndef _LIBKMOD_HASH_H_
+#define _LIBKMOD_HASH_H_
+
+struct hash;
+struct hash *hash_new(unsigned int n_buckets, void (*free_value)(void *value));
+void hash_free(struct hash *hash);
+int hash_add(struct hash *hash, const char *key, const void *value);
+int hash_add_unique(struct hash *hash, const char *key, const void *value);
+int hash_del(struct hash *hash, const char *key);
+void *hash_find(const struct hash *hash, const char *key);
+unsigned int hash_get_count(const struct hash *hash);
+
+#endif
diff --git a/libkmod/libkmod-private.h b/libkmod/libkmod-private.h
index ee76e70..5c9eeaf 100644
--- a/libkmod/libkmod-private.h
+++ b/libkmod/libkmod-private.h
@@ -129,14 +129,8 @@
void kmod_module_set_remove_commands(struct kmod_module *mod, const char *cmd) __attribute__((nonnull(1)));
/* libkmod-hash.c */
-struct hash;
-struct hash *hash_new(unsigned int n_buckets, void (*free_value)(void *value));
-void hash_free(struct hash *hash);
-int hash_add(struct hash *hash, const char *key, const void *value);
-int hash_add_unique(struct hash *hash, const char *key, const void *value);
-int hash_del(struct hash *hash, const char *key);
-void *hash_find(const struct hash *hash, const char *key);
-unsigned int hash_get_count(const struct hash *hash);
+
+#include "libkmod-hash.h"
/* libkmod-file.c */
struct kmod_file *kmod_file_open(const char *filename) __must_check __attribute__((nonnull(1)));