From 3cc4402fcc7872c5cfa6960eae8da189ffff982d Mon Sep 17 00:00:00 2001 From: Jonathan Schleifer Date: Tue, 23 Dec 2008 14:36:26 +0100 Subject: [PATCH] Make it possible to build libraries as static libraries only. --- buildsys.mk.in | 19 +++++++++++++------ m4/buildsys.m4 | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 6 deletions(-) diff --git a/buildsys.mk.in b/buildsys.mk.in index b10a061..bb23227 100644 --- a/buildsys.mk.in +++ b/buildsys.mk.in @@ -150,12 +150,19 @@ ${PROG} ${PROG_NOINST}: ${EXT_DEPS} ${OBJS} fi ${LIB} ${LIB_NOINST}: ${EXT_DEPS} ${OBJS} - ${LINK_STATUS} - if ${LD} -o $@ ${OBJS} ${LIB_LDFLAGS} ${LDFLAGS} ${LIBS}; then \ - ${LINK_OK}; \ - else \ - ${LINK_FAILED}; \ - fi + case $@ in \ + *.a) \ + ${MAKE} ${MFLAGS} STATIC_LIB=${LIB} LIB= $@ || exit 1 \ + ;; \ + *) \ + ${LINK_STATUS}; \ + if ${LD} -o $@ ${OBJS} ${LIB_LDFLAGS} ${LDFLAGS} ${LIBS}; then \ + ${LINK_OK}; \ + else \ + ${LINK_FAILED}; \ + fi \ + ;; \ + esac ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${OBJS} ${LINK_STATUS} diff --git a/m4/buildsys.m4 b/m4/buildsys.m4 index de3a4d7..7843c50 100644 --- a/m4/buildsys.m4 +++ b/m4/buildsys.m4 @@ -20,6 +20,18 @@ dnl ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE dnl POSSIBILITY OF SUCH DAMAGE. dnl +AC_DEFUN([BUILDSYS_LIB], [ + AC_ARG_ENABLE(shared, + [ --disable-shared don't build shared libraries], + enable_shared="$enableval") + + if test x"$enableval" = x"no"; then + BUILDSYS_STATIC_LIB_ONLY + else + BUILDSYS_SHARED_LIB + fi +]) + AC_DEFUN([BUILDSYS_PROG_IMPLIB], [ AC_MSG_CHECKING(whether we need an implib) case "$target" in @@ -133,6 +145,29 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [ AC_SUBST(CLEAN_LIB) ]) +AC_DEFUN([BUILDSYS_STATIC_LIB_ONLY], [ + AC_PATH_PROG(AR, ar) + AC_PROG_RANLIB + + LIB_CPPFLAGS='' + LIB_CFLAGS='' + LIB_LDFLAGS='' + LIB_PREFIX='lib' + LIB_SUFFIX='.a' + INSTALL_LIB='${INSTALL} -m 644 $$i ${DESTDIR}${libdir}/$$i' + UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i' + CLEAN_LIB='' + + AC_SUBST(LIB_CPPFLAGS) + AC_SUBST(LIB_CFLAGS) + AC_SUBST(LIB_LDFLAGS) + AC_SUBST(LIB_PREFIX) + AC_SUBST(LIB_SUFFIX) + AC_SUBST(INSTALL_LIB) + AC_SUBST(UNINSTALL_LIB) + AC_SUBST(CLEAN_LIB) +]) + AC_DEFUN([BUILDSYS_TOUCH_DEPS], [ ${as_echo:="echo"} "${as_me:="configure"}: touching .deps files" for i in $(find . -name Makefile); do