summaryrefslogtreecommitdiff
path: root/libmysqld
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2005-06-02 22:59:37 +0200
committerunknown <serg@serg.mylan>2005-06-02 22:59:37 +0200
commit4d81713cb8e81cb12a2f1de630b373a81a483e6d (patch)
tree5ec4570a835c2af2a411eb840188d2e68a308884 /libmysqld
parente9799ba6fa687fd879e8d2fe84986103c6279b8a (diff)
downloadmariadb-git-4d81713cb8e81cb12a2f1de630b373a81a483e6d.tar.gz
assemble libmysqld.a 5-10 times faster!
Diffstat (limited to 'libmysqld')
-rw-r--r--libmysqld/Makefile.am27
1 files changed, 11 insertions, 16 deletions
diff --git a/libmysqld/Makefile.am b/libmysqld/Makefile.am
index 6fc919c904f..5f2425d77c8 100644
--- a/libmysqld/Makefile.am
+++ b/libmysqld/Makefile.am
@@ -86,29 +86,24 @@ INC_LIB= $(top_builddir)/regex/libregex.a \
# To make it easy for the end user to use the embedded library we
# generate a total libmysqld.a from all library files,
+# note - InnoDB libraries have circular dependencies, so in INC_LIB
+# few libraries are present two times. Metrowerks linker doesn't like
+# it at all. Traditional ar has no problems with it, but still there's no
+# need to add the same file twice to the library, so 'sort -u' save us
+# some time and spares unnecessary work.
+
libmysqld.a: libmysqld_int.a $(INC_LIB)
if DARWIN_MWCC
- mwld -lib -o $@ libmysqld_int.a `ls -1 $(INC_LIB) | sort -u`
+ mwld -lib -o $@ libmysqld_int.a `echo $(INC_LIB) | sort -u`
else
if test "$(host_os)" = "netware" ; \
then \
$(libmysqld_a_AR) libmysqld.a libmysqld_int.a $(INC_LIB) ; \
else \
- if test ! -d tmp ; then mkdir tmp ; fi ; \
- rm -f $@ libmysqld_int2.a tmp/*.o tmp/*.a ; \
- cp $(INC_LIB) tmp ; \
- cp libmysqld_int.a libmysqld_int2.a ; \
- cd tmp ; \
- for file in *.a ; do \
- bfile=`basename $$file .a` ; \
- $(AR) x $$file; \
- for obj in *.o ; do mv $$obj $${bfile}_$$obj ; done ; \
- $(AR) q ../libmysqld_int2.a *.o ; \
- rm -f *.o ; \
- done ; \
- cd .. ; \
- mv libmysqld_int2.a libmysqld.a ; \
- rm -f tmp/* ; \
+ for arc in ./libmysqld_int.a $(INC_LIB); do \
+ arpath=`echo $$arc|sed 's|[^/]*$$||'`; \
+ $(AR) t $$arc|sed "s|^|$$arpath|"; \
+ done | sort -u | xargs $(AR) cq libmysqld.a ; \
$(RANLIB) libmysqld.a ; \
fi
endif