openrc/mk/lib.mk

68 lines
1.7 KiB
Makefile
Raw Normal View History

# rules to build a library
# based on FreeBSD's bsd.lib.mk
2009-05-01 19:41:40 +05:30
# Copyright (c) 2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
SHLIB_NAME= lib${LIB}.so.${SHLIB_MAJOR}
SHLIB_LINK= lib${LIB}.so
SONAME?= ${SHLIB_NAME}
OBJS+= ${SRCS:.c=.o}
SOBJS+= ${OBJS:.o=.So}
_LIBS= lib${LIB}.a ${SHLIB_NAME}
2008-03-03 18:34:08 +05:30
CLEANFILES+= ${OBJS} ${SOBJS} ${_LIBS} ${SHLIB_LINK}
.SUFFIXES: .So
2008-10-15 14:32:27 +05:30
.c.o:
${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@
.c.So:
${CC} ${PICFLAG} -DPIC ${CPPFLAGS} ${CFLAGS} -c $< -o $@
all: depend ${_LIBS}
lib${LIB}.a: ${OBJS} ${STATICOBJS}
@${ECHO} building static library $@
${AR} rc $@ $^
${RANLIB} $@
2008-01-06 17:08:37 +05:30
${SHLIB_NAME}: ${VERSION_MAP}
LDFLAGS+= -Wl,--version-script=${VERSION_MAP}
# We need to ensure we use libraries in /lib
LDFLAGS+= -L/${LIBNAME} -Wl,-rpath=/${LIBNAME}
${SHLIB_NAME}: ${SOBJS}
@${ECHO} building shared library $@
@rm -f $@ ${SHLIB_LINK}
@ln -fs $@ ${SHLIB_LINK}
${CC} ${LDFLAGS} -shared -Wl,-x \
-o $@ -Wl,-soname,${SONAME} \
${SOBJS} ${LDADD}
install: all
2008-01-07 05:00:20 +05:30
${INSTALL} -d ${DESTDIR}${LIBDIR}
${INSTALL} -m ${LIBMODE} lib${LIB}.a ${DESTDIR}${LIBDIR}
${INSTALL} -d ${DESTDIR}${SHLIBDIR}
${INSTALL} -m ${LIBMODE} ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
2008-01-10 13:59:41 +05:30
ln -fs ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK}
${INSTALL} -d ${DESTDIR}${INCDIR}
for x in ${INCS}; do ${INSTALL} -m ${INCMODE} $$x ${DESTDIR}${INCDIR}; done
2008-03-24 11:40:40 +05:30
check test::
2008-01-09 17:14:43 +05:30
clean:
rm -f ${OBJS} ${SOBJS} ${_LIBS} ${SHLIB_LINK} ${CLEANFILES}
extra_depend:
@TMP=depend.$$$$; \
${SED} -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.So:/' .depend > $${TMP}; \
mv $${TMP} .depend
2008-01-11 21:33:38 +05:30
include ${MK}/sys.mk
include ${MK}/os.mk
include ${MK}/depend.mk
2009-04-30 19:35:39 +05:30
include ${MK}/gitignore.mk