Makefile: Build dynstr also as a shared library
This commit is contained in:
parent
b2ded0cd62
commit
1a303c69cd
|
@ -1,3 +1,5 @@
|
||||||
*.o
|
*.o
|
||||||
*.obj
|
*.obj
|
||||||
*.a
|
*.a
|
||||||
|
*.so
|
||||||
|
*.so.*
|
||||||
|
|
28
Makefile
28
Makefile
|
@ -17,27 +17,41 @@
|
||||||
PREFIX = /usr/local
|
PREFIX = /usr/local
|
||||||
DST = $(PREFIX)/lib
|
DST = $(PREFIX)/lib
|
||||||
PC_DST = $(DST)/pkgconfig
|
PC_DST = $(DST)/pkgconfig
|
||||||
PROJECT = libdynstr.a
|
PROJECT = libdynstr
|
||||||
CFLAGS = -Iinclude
|
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 = \
|
DEPS = \
|
||||||
dynstr.o
|
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
|
mkdir -p $(PREFIX)/include
|
||||||
cp include/dynstr.h $(PREFIX)/include
|
cp include/dynstr.h $(PREFIX)/include
|
||||||
chmod 0644 $(PREFIX)/include/dynstr.h
|
chmod 0644 $(PREFIX)/include/dynstr.h
|
||||||
mkdir -p $(DST)
|
mkdir -p $(DST)
|
||||||
cp $(PROJECT) $(DST)
|
cp $(PROJECT_A) $(PROJECT_SO) $(DST)
|
||||||
chmod 0755 $(DST)/$(PROJECT)
|
chmod 0755 $(DST)/$(PROJECT_A) $(DST)/$(PROJECT_SO)
|
||||||
|
ln -fs $(DST)/$(PROJECT_SO) $(DST)/$(PROJECT_SO_FQ)
|
||||||
|
ln -fs $(DST)/$(PROJECT_SO) $(DST)/$(PROJECT_SO_NV)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(DEPS)
|
rm -f $(DEPS)
|
||||||
|
|
||||||
$(PROJECT): $(DEPS)
|
$(PROJECT_A): $(DEPS)
|
||||||
$(AR) $(ARFLAGS) $@ $(DEPS)
|
$(AR) $(ARFLAGS) $@ $(DEPS)
|
||||||
|
|
||||||
|
$(PROJECT_SO): $(DEPS)
|
||||||
|
$(CC) $(LDFLAGS) $(DEPS) -o $@
|
||||||
|
|
||||||
$(PC_DST)/dynstr.pc: dynstr.pc
|
$(PC_DST)/dynstr.pc: dynstr.pc
|
||||||
mkdir -p $(PC_DST)
|
mkdir -p $(PC_DST)
|
||||||
sed -e 's,/usr/local,$(PREFIX),' $< > $@
|
sed -e 's,/usr/local,$(PREFIX),' $< > $@
|
||||||
|
|
Loading…
Reference in New Issue