summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile8
-rw-r--r--readme.md7
2 files changed, 14 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 2385431c..d45978a9 100644
--- a/Makefile
+++ b/Makefile
@@ -139,6 +139,8 @@ OBJ := \
$(patsubst %.c, %.o, $(filter %.c, $(SRC))) \
$(patsubst %.y, %.o, $(filter %.y, $(SRC)))
+LIBOBJ := $(filter-out src/base/main/main.o,$(OBJ))
+
DEP := $(OBJ:.o=.d)
# implicit rules
@@ -186,11 +188,15 @@ $(PROG): $(OBJ)
@echo "$(MSG_PREFIX)\`\` Building binary:" $(notdir $@)
$(VERBOSE)$(LD) -o $@ $^ $(LIBS)
-lib$(PROG).a: $(OBJ)
+lib$(PROG).a: $(LIBOBJ)
@echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@)
$(VERBOSE)ar rv $@ $?
$(VERBOSE)ranlib $@
+lib$(PROG).so: $(LIBOBJ)
+ @echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@)
+ $(VERBOSE)$(CXX) -shared -o $@ $^ $(LIBS)
+
docs:
@echo "$(MSG_PREFIX)\`\` Building documentation." $(notdir $@)
$(VERBOSE)doxygen doxygen.conf
diff --git a/readme.md b/readme.md
index c7a6816d..ca9a90ba 100644
--- a/readme.md
+++ b/readme.md
@@ -53,6 +53,13 @@ The current version of ABC can be compiled with C compiler or C++ compiler.
* To compile as C++ code with namespaces: make sure that `CC=g++` and `ABC_NAMESPACE` is set to
the name of the requested namespace. For example, add `-DABC_NAMESPACE=xxx` to OPTFLAGS.
+## Building a shared library
+
+ * Compile the code as position-independent by adding `ABC_USE_PIC=1`.
+ * Build the `libabc.so` target:
+
+ make ABC_USE_PIC=1 libabc.so
+
## Bug reporting:
Please try to reproduce all the reported bugs and unexpected features using the latest