diff options
author | Roy Marples <roy@marples.name> | 2008-01-10 16:35:59 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2008-01-10 16:35:59 +0000 |
commit | 43147845209873b0776bd75d363913fe25611f49 (patch) | |
tree | ab3295c30664476d8d05b0fe5fe9ace702ade5ea /mk/lib.mk | |
parent | 2643f2e605f102d2c2fa098d0cf5400d3795ed4a (diff) |
Allow for OS and SUBOS folders so we can introduce NetBSD scripts whilst keeping BSD for all BSD's.
Diffstat (limited to 'mk/lib.mk')
-rw-r--r-- | mk/lib.mk | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/mk/lib.mk b/mk/lib.mk new file mode 100644 index 00000000..7a570ebe --- /dev/null +++ b/mk/lib.mk @@ -0,0 +1,65 @@ +# rules to build a library +# based on FreeBSD's bsd.lib.mk + +# Copyright 2008 Roy Marples + +LIBNAME?= lib + +SHLIB_NAME= lib${LIB}.so.${SHLIB_MAJOR} +SHLIB_LINK= lib${LIB}.so +SHLIBDIR?= /${LIBNAME} +SONAME?= ${SHLIB_NAME} + +OBJS+= ${SRCS:.c=.o} +SOBJS+= ${OBJS:.o=.So} +_LIBS= lib${LIB}.a ${SHLIB_NAME} + +ECHO?= echo +AR?= ar +RANLIB?= ranlib +INSTALL?= install + +PICFLAG?= -fPIC + +INCDIR?= /usr/include +INCMODE?= 0444 + +LIBDIR?= /usr/${LIBNAME} +LIBMODE?= 0444 + +.SUFFIXES: .So + +.c.So: + ${CC} ${PICFLAG} -DPIC ${CFLAGS} -c $< -o $@ + +all: depend ${_LIBS} + +lib${LIB}.a: ${OBJS} ${STATICOBJS} + @${ECHO} building static library $@ + ${AR} rc $@ $^ + ${RANLIB} $@ + +${SHLIB_NAME}: ${VERSION_MAP} +LDFLAGS+= -Wl,--version-script=${VERSION_MAP} + +${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 + ${INSTALL} -d ${DESTDIR}${LIBDIR} + ${INSTALL} -m ${LIBMODE} lib${LIB}.a ${DESTDIR}${LIBDIR} + ${INSTALL} -d ${DESTDIR}${SHLIBDIR} + ${INSTALL} -m ${LIBMODE} ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR} + ln -fs ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK} + ${INSTALL} -d ${DESTDIR}${INCDIR} + for x in ${INCS}; do ${INSTALL} -m ${INCMODE} $$x ${DESTDIR}${INCDIR}; done + +clean: + rm -f ${OBJS} ${SOBJS} ${_LIBS} ${SHLIB_LINK} ${CLEANFILES} + +include ${MK}/depend.mk |