aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-10-25 15:58:27 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-10-25 16:21:16 +0200
commit80057fd3c1e2ed11e1c1d6e01e4c8d60042cf30d (patch)
treef06b898dc15bcd9db3db318177804ab63902bd00
parentde0d0e9fab2dc8e5886484c680d7ab9062ad3952 (diff)
downloaddynstr-80057fd3c1e2ed11e1c1d6e01e4c8d60042cf30d.tar.gz
WIP shared library
-rw-r--r--.gitignore2
-rw-r--r--Makefile28
2 files changed, 23 insertions, 7 deletions
diff --git a/.gitignore b/.gitignore
index b2b99b7..d2fadd1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
*.o
*.obj
*.a
+*.so
+*.so.*
diff --git a/Makefile b/Makefile
index 59b1ee7..a3b951f 100644
--- a/Makefile
+++ b/Makefile
@@ -17,27 +17,41 @@
PREFIX = /usr/local
DST = $(PREFIX)/lib
PC_DST = $(DST)/pkgconfig
-PROJECT = libdynstr.a
-CFLAGS = -Iinclude
+PROJECT = libdynstr
+MAJOR_VERSION = 0
+MINOR_VERSION = 1
+PATCH_VERSION = 0
+VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)
+PROJECT_A = $(PROJECT).a
+PROJECT_SO = $(PROJECT).so.$(VERSION)
+PROJECT_SO_FQ = $(PROJECT).so.$(MAJOR_VERSION)
+PROJECT_SO_NV = $(PROJECT).so
+CFLAGS = -Iinclude -fPIC
+LDFLAGS = -shared
DEPS = \
dynstr.o
-all: $(PROJECT)
+all: $(PROJECT_A) $(PROJECT_SO)
-install: $(PROJECT) $(PC_DST)/dynstr.pc
+install: all $(PC_DST)/dynstr.pc
mkdir -p $(PREFIX)/include
cp include/dynstr.h $(PREFIX)/include
chmod 0644 $(PREFIX)/include/dynstr.h
mkdir -p $(DST)
- cp $(PROJECT) $(DST)
- chmod 0755 $(DST)/$(PROJECT)
+ cp $(PROJECT_A) $(PROJECT_SO) $(DST)
+ chmod 0755 $(DST)/$(PROJECT_A) $(DST)/$(PROJECT_SO)
+ ln -s $(DST)/$(PROJECT_SO) $(DST)/$(PROJECT_SO_FQ)
+ ln -s $(DST)/$(PROJECT_SO) $(DST)/$(PROJECT_SO_NV)
clean:
rm -f $(DEPS)
-$(PROJECT): $(DEPS)
+$(PROJECT_A): $(DEPS)
$(AR) $(ARFLAGS) $@ $(DEPS)
+$(PROJECT_SO): $(DEPS)
+ $(CC) $(LDFLAGS) $(DEPS) -o $@
+
$(PC_DST)/dynstr.pc: dynstr.pc
mkdir -p $(PC_DST)
sed -e 's,/usr/local,$(PREFIX),' $< > $@