Do not extract .a files to link them in
This is only required to combine multiple .a files into one.
This commit is contained in:
parent
78aa912fc1
commit
2f5e82f4a5
1 changed files with 8 additions and 117 deletions
125
buildsys.mk.in
125
buildsys.mk.in
|
@ -245,38 +245,11 @@ ${JARFILE}: ${EXT_DEPS} ${JAR_MANIFEST} ${OBJS} ${OBJS_EXTRA}
|
||||||
${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
|
${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
|
||||||
${LINK_STATUS}
|
${LINK_STATUS}
|
||||||
out="$@"; \
|
out="$@"; \
|
||||||
objs=""; \
|
if ${LD} -o $@ ${LIB_OBJS} ${LIB_OBJS_EXTRA} ${LIB_LDFLAGS} ${LIB_LDFLAGS_INSTALL_NAME} ${LDFLAGS} ${LIBS}; then \
|
||||||
ars=""; \
|
|
||||||
for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; 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 ${LD} -o $@ $$objs ${LIB_LDFLAGS} ${LIB_LDFLAGS_INSTALL_NAME} ${LDFLAGS} ${LIBS}; then \
|
|
||||||
${LINK_OK}; \
|
${LINK_OK}; \
|
||||||
else \
|
else \
|
||||||
${LINK_FAILED}; \
|
${LINK_FAILED}; \
|
||||||
fi; \
|
fi
|
||||||
for i in $$ars; do \
|
|
||||||
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
|
|
||||||
rm -fr $$dir; \
|
|
||||||
done
|
|
||||||
|
|
||||||
${FRAMEWORK}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
|
${FRAMEWORK}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
|
||||||
rm -fr $@
|
rm -fr $@
|
||||||
|
@ -302,111 +275,29 @@ ${FRAMEWORK}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
|
||||||
fi
|
fi
|
||||||
${LINK_STATUS}
|
${LINK_STATUS}
|
||||||
out="$@"; \
|
out="$@"; \
|
||||||
objs=""; \
|
if ${LD} -o $$out/$${out%.framework} ${LIB_OBJS} ${LIB_OBJS_EXTRA} ${FRAMEWORK_LDFLAGS} ${FRAMEWORK_LDFLAGS_INSTALL_NAME} ${LDFLAGS} ${LIBS} && ${CODESIGN} -fs ${CODESIGN_IDENTITY} --timestamp=none $$out; then \
|
||||||
ars=""; \
|
|
||||||
for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; 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 ${LD} -o $$out/$${out%.framework} $$objs ${FRAMEWORK_LDFLAGS} ${FRAMEWORK_LDFLAGS_INSTALL_NAME} ${LDFLAGS} ${LIBS} && ${CODESIGN} -fs ${CODESIGN_IDENTITY} --timestamp=none $$out; then \
|
|
||||||
${LINK_OK}; \
|
${LINK_OK}; \
|
||||||
else \
|
else \
|
||||||
rm -fr $$out; \
|
rm -fr $$out; \
|
||||||
${LINK_FAILED}; \
|
${LINK_FAILED}; \
|
||||||
fi; \
|
fi
|
||||||
for i in $$ars; do \
|
|
||||||
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
|
|
||||||
rm -fr $$dir; \
|
|
||||||
done
|
|
||||||
|
|
||||||
${MORPHOS_LIB} ${MORPHOS_LIB_NOINST}: ${EXT_DEPS} ${MORPHOS_LIB_OBJS} ${MORPHOS_LIB_OBJS_EXTRA}
|
${MORPHOS_LIB} ${MORPHOS_LIB_NOINST}: ${EXT_DEPS} ${MORPHOS_LIB_OBJS} ${MORPHOS_LIB_OBJS_EXTRA}
|
||||||
${LINK_STATUS}
|
${LINK_STATUS}
|
||||||
out="$@"; \
|
if ${LD} -o $@ ${MORPHOS_LIB_OBJS} ${MORPHOS_LIB_OBJS_EXTRA} -nostartfiles ${LDFLAGS} ${LIBS}; then \
|
||||||
objs=""; \
|
|
||||||
ars=""; \
|
|
||||||
for i in ${MORPHOS_LIB_OBJS} ${MORPHOS_LIB_OBJS_EXTRA}; 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 ${LD} -o $@ $$objs -nostartfiles ${LDFLAGS} ${LIBS}; then \
|
|
||||||
${LINK_OK}; \
|
${LINK_OK}; \
|
||||||
else \
|
else \
|
||||||
${LINK_FAILED}; \
|
${LINK_FAILED}; \
|
||||||
fi; \
|
fi
|
||||||
for i in $$ars; do \
|
|
||||||
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
|
|
||||||
rm -fr $$dir; \
|
|
||||||
done
|
|
||||||
|
|
||||||
${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
|
${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
|
||||||
${LINK_STATUS}
|
${LINK_STATUS}
|
||||||
out="$@"; \
|
out="$@"; \
|
||||||
objs=""; \
|
if ${LD} -o $@ ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
|
||||||
ars=""; \
|
|
||||||
for i in ${PLUGIN_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 ${LD} -o $@ $$objs ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
|
|
||||||
${LINK_OK}; \
|
${LINK_OK}; \
|
||||||
else \
|
else \
|
||||||
${LINK_FAILED}; \
|
${LINK_FAILED}; \
|
||||||
fi; \
|
fi
|
||||||
for i in $$ars; do \
|
|
||||||
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
|
|
||||||
rm -fr $$dir; \
|
|
||||||
done
|
|
||||||
|
|
||||||
${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
|
${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
|
||||||
${LINK_STATUS}
|
${LINK_STATUS}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue