Mercurial > libbase64
changeset 40:ad4abb4e5ff0
make: add basic shared library support
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 23 Nov 2021 17:07:02 +0100 |
parents | 6d1a259f2a36 |
children | 86b259a3f272 |
files | Makefile |
diffstat | 1 files changed, 39 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile Tue Nov 23 14:02:18 2021 +0100 +++ b/Makefile Tue Nov 23 17:07:02 2021 +0100 @@ -18,17 +18,30 @@ .POSIX: -CC= cc -CFLAGS= -O3 -DNDEBUG +PREFIX= /usr/local +INCDIR= ${PREFIX}/include +LIBDIR= ${PREFIX}/lib +MANDIR= ${PREFIX}/share/man + +VERSION= 3.0.0 +SHLIB= 3 .SUFFIXES: .SUFFIXES: .c .o -all: test/base64 +all: libbase64.a .c.o: ${CC} ${CFLAGS} -Iextern/librexo -I. -c $< -o $@ ${LDFLAGS} +libbase64.a: base64.o + ${AR} -rc $@ $< + +libbase64.so so: base64.o + ${CC} -o libbase64.so.${VERSION} -shared -Wl,-soname,libbase64.so.${SHLIB} $< + ln -sf libbase64.so.${VERSION} libbase64.so.${SHLIB} + ln -sf libbase64.so.${VERSION} libbase64.so + test/base64.o: base64.h test/base64: test/base64.o base64.o @@ -37,8 +50,28 @@ tests: test/base64 test/base64 +install: + mkdir -p ${DESTDIR}${LIBDIR} + cp libbase64.a ${DESTDIR}${LIBDIR} + mkdir -p ${DESTDIR}${INCDIR} + cp base64.h ${DESTDIR}${INCDIR} + mkdir -p ${DESTDIR}${MANDIR}/man3 + cp libbase64.3 ${DESTDIR}${MANDIR}/man3 + ln -sf libbase64.3 ${DESTDIR}${MANDIR}/man3/b64_encode.3 + ln -sf libbase64.3 ${DESTDIR}${MANDIR}/man3/b64_decode.3 + ln -sf libbase64.3 ${DESTDIR}${MANDIR}/man3/B64_ENCODE_LENGTH.3 + ln -sf libbase64.3 ${DESTDIR}${MANDIR}/man3/B64_DECODE_LENGTH.3 + +install-so: + mkdir -p ${DESTDIR}${LIBDIR} + cp libbase64.so.${VERSION} ${DESTDIR}${LIBDIR} + ln -sf libbase64.so.${VERSION} ${DESTDIR}${LIBDIR}/libbase64.so.${SHLIB} + ln -sf libbase64.so.${VERSION} ${DESTDIR}${LIBDIR}/libbase64.so + clean: - rm -f *.o test/*.o - rm -f test/base64 + rm -f base64.o + rm -f libbase64.a + rm -f libbase64.so libbase64.so.${SHLIB} libbase64.so.${VERSION} + rm -f test/base64.o test/base64 -.PHONY: all clean tests +.PHONY: all clean install install-so so tests