murmurhash: add dynamic library build process (#3)
Signed-off-by: chenxuqiang <cxq507@foxmail.com>
diff --git a/Makefile b/Makefile
index 64a54f1..7dcc77e 100644
--- a/Makefile
+++ b/Makefile
@@ -5,6 +5,13 @@
PREFIX ?= /usr/local
MANPREFIX ?= $(PREFIX)/share/man
MAN_FILES = $(wildcard man/*.md)
+LIB ?= libmurmurhash.so
+INCLUDE ?= murmurhash.h
+
+all: $(LIB) $(BIN)
+
+$(LIB):
+ $(CC) -shared $(SRC) $(CFLAGS) -o $(LIB)
$(BIN):
$(CC) main.c $(SRC) $(CFLAGS) -o $(BIN)
@@ -12,13 +19,19 @@
clean:
rm -f test
rm -f $(BIN)
+ rm -f $(LIB)
+
+example:
+ $(CC) murmurhash_example.c -lmurmurhash -o murmurhash_example
test:
$(CC) test.c $(SRC) $(CFLAGS) -o test
./test
-install: $(BIN)
+install: $(BIN) $(LIB)
install $(BIN) $(PREFIX)/bin
+ install $(LIB) $(PREFIX)/lib
+ install $(INCLUDE) $(PREFIX)/include
install man/*.1 $(MANPREFIX)/man1
docs: $(MAN_FILES)
diff --git a/murmurhash_example.c b/murmurhash_example.c
new file mode 100644
index 0000000..e8a840c
--- /dev/null
+++ b/murmurhash_example.c
@@ -0,0 +1,13 @@
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <murmurhash.h>
+
+int main(void)
+{
+ uint32_t seed = 0;
+ const char *key = "kinkajou"; // // 0xb6d99cf8
+ uint32_t hash = murmurhash(key, (uint32_t)strlen(key), seed);
+ printf("murmurhash(%s) = 0x%x\n", key, hash);
+ return 0;
+}
\ No newline at end of file