forked from Imagelibrary/rtems
Patch rtems-rc-19991203-4.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>"""
which is an adaptation of a patch from Ian Lance Taylor plus a few other changes that should significantly speed up building librtemsall.a.
This commit is contained in:
@@ -44,6 +44,8 @@ fi
|
||||
if test "$HAS_RDBG" = "yes"; then
|
||||
cfg_subdirs="$cfg_subdirs librdbg"
|
||||
fi
|
||||
AM_CONDITIONAL(HAS_NETWORKING, test "$HAS_NETWORKING" = "yes" )
|
||||
AM_CONDITIONAL(HAS_RDBG, test "$HAS_RDBG" = "yes" )
|
||||
|
||||
if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
|
||||
cfg_subdirs="$cfg_subdirs librtems++";
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# build and install "glommed" librtemsall.a
|
||||
#
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
## build and install "glommed" librtemsall.a
|
||||
##
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
|
||||
@@ -12,13 +12,22 @@ include $(top_srcdir)/../../automake/lib.am
|
||||
LIBNAME = librtemsall
|
||||
LIB = $(PROJECT_RELEASE)/lib/$(LIBNAME)${LIB_VARIANT}.a
|
||||
|
||||
if HAS_NETWORKING
|
||||
LIBNETWORKING = \
|
||||
$(PROJECT_RELEASE)/lib/libnetworking$(LIB_VARIANT).a \
|
||||
$(PROJECT_RELEASE)/lib/librpc$(LIB_VARIANT).a
|
||||
endif
|
||||
|
||||
if HAS_RDBG
|
||||
LIBRDBG = $(PROJECT_RELEASE)/lib/librdbg$(LIB_VARIANT).a
|
||||
endif
|
||||
|
||||
SRCS = $(wildcard $(PROJECT_RELEASE)/lib/libbsp$(LIB_VARIANT).a) \
|
||||
$(PROJECT_RELEASE)/lib/librtems$(LIB_VARIANT).a \
|
||||
$(wildcard $(PROJECT_RELEASE)/lib/libposix$(LIB_VARIANT).a) \
|
||||
$(wildcard $(PROJECT_RELEASE)/lib/libitron$(LIB_VARIANT).a) \
|
||||
$(wildcard $(PROJECT_RELEASE)/lib/libnetworking$(LIB_VARIANT).a) \
|
||||
$(wildcard $(PROJECT_RELEASE)/lib/librpc$(LIB_VARIANT).a) \
|
||||
$(wildcard $(PROJECT_RELEASE)/lib/librdbg$(LIB_VARIANT).a) \
|
||||
$(LIBNETWORKING) \
|
||||
$(LIBRDBG) \
|
||||
$(wildcard $(PROJECT_RELEASE)/lib/libcpu$(LIB_VARIANT).a) \
|
||||
$(wildcard $(PROJECT_RELEASE)/lib/librtcio$(LIB_VARIANT).a) \
|
||||
$(wildcard $(PROJECT_RELEASE)/lib/libserialio$(LIB_VARIANT).a) \
|
||||
@@ -27,8 +36,6 @@ SRCS = $(wildcard $(PROJECT_RELEASE)/lib/libbsp$(LIB_VARIANT).a) \
|
||||
$(PROJECT_RELEASE)/lib/libmisc$(LIB_VARIANT).a \
|
||||
$(wildcard $(PROJECT_RELEASE)/lib/rtems-ctor$(LIB_VARIANT).o)
|
||||
|
||||
CLEANFILES += $(ARCH)/check
|
||||
|
||||
TMPINSTALL_FILES += \
|
||||
$(PROJECT_RELEASE)/lib/$(LIBNAME)${LIB_VARIANT}.a
|
||||
|
||||
@@ -36,42 +43,34 @@ all: $(ARCH) $(TMPINSTALL_FILES)
|
||||
|
||||
install: all
|
||||
|
||||
$(ARCH)/check: $(SRCS)
|
||||
@$(RM) $@; touch $@;
|
||||
@for f in $(SRCS); do \
|
||||
$(LIB): $(SRCS)
|
||||
rm -f $@
|
||||
rm -rf $(ARCH)/*
|
||||
for f in $(SRCS); do \
|
||||
case $$f in \
|
||||
*.o) echo " `basename $$f`" >> $@ \
|
||||
*.o | *.rel) \
|
||||
if test -f $(ARCH)/`basename $$f`; then \
|
||||
if cmp $$f $(ARCH)/`basename $$f`; then \
|
||||
true; \
|
||||
else \
|
||||
echo 1>&2 "ERROR -- `basename $$f` in multiple files"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
else \
|
||||
cp $$f $(ARCH)/; \
|
||||
chmod a-w $(ARCH)/`basename $$f`; \
|
||||
fi; \
|
||||
;; \
|
||||
*.rel) echo " `basename $$f`" >> $@ \
|
||||
;; \
|
||||
*.a) \
|
||||
( list=`$(AR) t $$f`;\
|
||||
for i in $$list; do \
|
||||
if fgrep " $$i" $@; then \
|
||||
echo "ERROR -- $$i in multiple files"; exit 1; \
|
||||
fi;\
|
||||
echo " $$i" >> $@;\
|
||||
done; ) \
|
||||
;; \
|
||||
esac; \
|
||||
done;
|
||||
|
||||
$(LIB): $(ARCH)/check
|
||||
@for f in $(SRCS); do \
|
||||
case $$f in \
|
||||
*.o) $(AR) ru $@ $$f \
|
||||
;;\
|
||||
*.rel) $(AR) ru $@ $$f \
|
||||
;;\
|
||||
*.a) \
|
||||
(cd $(ARCH); \
|
||||
list=`$(AR) t ../$$f`; \
|
||||
$(AR) x ../$$f $$list; $(AR) ru ../$@ $$list; \
|
||||
$(RM) $$list ;)\
|
||||
$(AR) x ../$$f; \
|
||||
test $$? -eq 0 || exit 1; \
|
||||
chmod a-w *; ) \
|
||||
;; \
|
||||
esac; \
|
||||
done;
|
||||
@$(RANLIB) $@
|
||||
@echo "*** Glommed $@"
|
||||
done
|
||||
$(AR) rc $@ $(ARCH)/*
|
||||
rm -f $(ARCH)/*
|
||||
$(RANLIB) $@
|
||||
|
||||
include $(top_srcdir)/../../automake/local.am
|
||||
|
||||
Reference in New Issue
Block a user