# HG changeset patch
# User Markus Bröker <mbroeker@largo.dyndns.tv>
# Date 1229187479 -3600
# Node ID a1aa30f0f90489e4ef884feae6570f2e8068cb56
# Parent  c3dc3eb3b5410e99bda86a54dd07b40e1893dac3
libtest demonstrates how to use shared libraries

committer: Markus Bröker <mbroeker@largo.homelinux.org>

diff --git a/libtest/Makefile b/libtest/Makefile
new file mode 100644
--- /dev/null
+++ b/libtest/Makefile
@@ -0,0 +1,24 @@
+     CC = gcc
+ CFLAGS =-Wall -O2 -fPIC
+LDFLAGS = -Llib -ltest
+OBJECTS = func1.o func2.o
+
+.c.o:
+	$(CC) -c $(CFLAGS) -shared $<
+
+all: lib/libtest.so.1.0.1 prog
+
+prog: main.c
+	$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
+
+lib/libtest.so.1.0.1: $(OBJECTS)
+	$(CC) -shared -Wl,-soname,lib/libtest.so.1 $(OBJECTS) -o $@
+	@echo "Look carefully at this :)"
+	ln -s libtest.so.1.0.1 lib/libtest.so.1
+	ln -s libtest.so.1.0.1 lib/libtest.so
+
+.PHONY: clean
+
+clean:
+	rm -f lib/libtest.*
+	rm -f *.o prog
diff --git a/libtest/func1.c b/libtest/func1.c
new file mode 100644
--- /dev/null
+++ b/libtest/func1.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+void func1()
+{
+	printf("Func1: Implement me\n");
+}
diff --git a/libtest/func2.c b/libtest/func2.c
new file mode 100644
--- /dev/null
+++ b/libtest/func2.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+void func2()
+{
+	printf("Func2: Implement me\n");
+}
diff --git a/libtest/lib/.keep b/libtest/lib/.keep
new file mode 100644
diff --git a/libtest/main.c b/libtest/main.c
new file mode 100644
--- /dev/null
+++ b/libtest/main.c
@@ -0,0 +1,10 @@
+void func1();
+void func2();
+
+int main(int argc, char **argv)
+{
+	func1();
+	func2();
+
+	return 0;
+}