diff options
author | Baruch Sterin <baruchs@gmail.com> | 2016-12-22 18:15:29 -0800 |
---|---|---|
committer | Baruch Sterin <baruchs@gmail.com> | 2016-12-22 18:15:29 -0800 |
commit | b9dfb992c78e3c8786dee303e4a9994d46b6990a (patch) | |
tree | 0db7240b7082759875246103ff6f6d57cedf7063 | |
parent | 7d0648e24098ed0e6a0a1471a52946303c351c87 (diff) | |
download | abc-b9dfb992c78e3c8786dee303e4a9994d46b6990a.tar.gz abc-b9dfb992c78e3c8786dee303e4a9994d46b6990a.tar.bz2 abc-b9dfb992c78e3c8786dee303e4a9994d46b6990a.zip |
(1) Makefile: added a shared library target, (2) no longer compile the main function as part of libabc.a
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | readme.md | 7 |
2 files changed, 14 insertions, 1 deletions
@@ -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 @@ -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 |