Makefile: Build dynstr also as a shared library
This commit is contained in:
parent
b2ded0cd62
commit
1a303c69cd
|
@ -1,3 +1,5 @@
|
|||
*.o
|
||||
*.obj
|
||||
*.a
|
||||
*.so
|
||||
*.so.*
|
||||
|
|
28
Makefile
28
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 -fs $(DST)/$(PROJECT_SO) $(DST)/$(PROJECT_SO_FQ)
|
||||
ln -fs $(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),' $< > $@
|
||||
|
|
Loading…
Reference in New Issue