Make it possible to add .a files to OBJS when building static libs.

This commit is contained in:
Jonathan Schleifer 2011-03-24 16:29:14 +01:00
parent 934052397c
commit 914073dc3c

View file

@ -1,5 +1,6 @@
# #
# Copyright (c) 2007 - 2009, Jonathan Schleifer <js@webkeks.org> # Copyright (c) 2007, 2008, 2009, 2010, 2011
# Jonathan Schleifer <js@webkeks.org>
# #
# https://webkeks.org/hg/buildsys/ # https://webkeks.org/hg/buildsys/
# #
@ -99,9 +100,9 @@ MO_FILES = ${LOCALES:.po=.mo}
.PHONY: all subdirs pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales .PHONY: all subdirs pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales
all: all:
${MAKE} ${MFLAGS} subdirs || exit 1 ${MAKE} ${MFLAGS} subdirs
${MAKE} ${MFLAGS} depend || exit 1 ${MAKE} ${MFLAGS} depend
${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${LIB} ${LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} locales || exit 1 ${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${LIB} ${LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} locales
subdirs: subdirs:
for i in ${SUBDIRS}; do \ for i in ${SUBDIRS}; do \
@ -174,12 +175,40 @@ ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS}
${LINK_STATUS} ${LINK_STATUS}
if ${AR} cr $@ ${OBJS} && ${RANLIB} $@; then \ rm -f $@
objs=""; \
ars=""; \
for i in ${OBJS}; do \
case $$i in \
*.a) \
ars="$$ars $$i" \
;; \
*.o) \
objs="$$objs $$i" \
;; \
esac \
done; \
for i in $$ars; do \
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
rm -fr $$dir; \
mkdir -p $$dir; \
cd $$dir; \
ar x ../$$i; \
for j in *.o; do \
objs="$$objs $$dir/$$j"; \
done; \
cd ..; \
done; \
if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
${LINK_OK}; \ ${LINK_OK}; \
else \ else \
${LINK_FAILED}; \ ${LINK_FAILED}; \
rm -f $@; \ rm -f $@; \
fi fi; \
for i in $$ars; do \
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
rm -fr $$dir; \
done
locales: ${MO_FILES} locales: ${MO_FILES}