head	1.1;
access;
symbols
	gcc-2_8_1-990325:1.1
	gcc-2_8_1-990319:1.1
	gcc-2_8_1-990302:1.1
	gcc_2_8_1-990302:1.1
	gcc_2_8_1-990222:1.1
	gcc-2_8_1-990109:1.1
	gcc-2_8_1-981210:1.1
	gcc-2_8_1-981208:1.1
	gcc-2_8_1-980929:1.1
	gcc_2_8_1-980929:1.1
	gcc-2_8_1-980928:1.1
	gcc-2_8_1-980813:1.1
	gcc-2_8_1-980811:1.1
	gcc-2_8_1-980718:1.1
	gcc-2_8_1-980705:1.1
	gcc-2_8_1-980627:1.1
	gcc-2_8_1-980609:1.1
	gcc-2_8_1-980608:1.1
	gcc-2_8_1-980529:1.1
	gcc-2_8_1-980525:1.1
	gcc-2_8_1-980513:1.1
	gcc-2_8_1-980502:1.1
	gcc-2_8_1-980402:1.1
	gcc-2_8_1-980426:1.1
	gcc-2_8_1-980419:1.1
	gcc-2_8_1-980413:1.1
	gcc-2_8_1-980412:1.1
	gcc-2_8_1-980407:1.1
	gcc-2_8_1-980401:1.1
	gcc_2_8_1-980315:1.1
	gcc-2_8_1-RELEASE:1.1;
locks; strict;
comment	@# @;


1.1
date	95.12.06.11.39.58;	author erich;	state Exp;
branches;
next	;


desc
@Build rules for semi-hosted ARM with AOF assembler.
@


1.1
log
@Initial revision
@
text
@OLDCC = armcc -w
# Don't build enquire
ENQUIRE=
CROSS_LIBGCC1 = libgcc1-aof.a
LIBGCC2 = libgcc2-aof.a
LIBGCC = libgcc-aof.a
LIBGCC2_CFLAGS = -O2 -fomit-frame-pointer
LIBGCC1_TEST = #libgcc1-atest
EXTRA_PARTS = crtbegin.o crtend.o

# Rule to build libgcc1.a and libgcc2.a and libgcc.a, since the librarian 
# for the ARM tools is somewhat quirky, and needs a special rule to use it.
libgcc1-aof.a: libgcc1.c $(CONFIG_H) config.status
	-rm -rf tmplib libgcc1.a libgcc1-aof.a tmplibgcc1.a
	mkdir tmplib
	for name in $(LIB1FUNCS); \
	do \
	  echo $${name}; \
	  rm -f $${name}$(objext); \
	  $(OLDCC) $(CCLIBFLAGS) $(INCLUDES) -c -DL$${name} $(srcdir)/libgcc1.c; \
	  if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
	  mv libgcc1$(objext) tmplib/$${name}$(objext); \
	done
	(cd tmplib; \
	 armlib -c tmplibgcc1.a *; \
	 mv tmplibgcc1.a ..)
	mv tmplibgcc1.a libgcc1-aof.a
	rm -rf tmplib

libgcc2-aof.a: libgcc2.c libgcc2.ready $(CONFIG_H) $(LIB2FUNCS_EXTRA) \
   machmode.h longlong.h gbl-ctors.h config.status
	-rm -f tmplibgcc2.a
	-rm -rf tmplib
	mkdir tmplib
	for name in $(LIB2FUNCS); \
	do \
	  echo $${name}; \
	  $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c -DL$${name} \
	      $(srcdir)/libgcc2.c -o tmplib/$${name}$(objext); \
	  if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
	done
	(cd tmplib; \
	 armlib -c tmplibgcc2.a *; \
	 mv tmplibgcc2.a ..)
	mv tmplibgcc2.a libgcc2-aof.a
	rm -rf tmplib

# Combine the various libraries into a single library, libgcc.a.
libgcc-aof.a: $(CROSS_LIBGCC1) $(LIBGCC2)
	-rm -rf tmplibgcc.a libgcc.a tmpcopy libgcc-aof.a
	mkdir tmpcopy
	(cd tmpcopy; armlib -e ../$(LIBGCC1) \*)
	-(cd tmpcopy; chmod +w * > /dev/null 2>&1)
	(cd tmpcopy; armlib -e ../$(LIBGCC2) \*)
	(cd tmpcopy; armlib -co ../tmplibgcc.a *$(objext))
	rm -rf tmpcopy
	mv tmplibgcc.a libgcc.a
	ln libgcc.a libgcc-aof.a

libgcc1-atest: libgcc1-test.o native $(GCC_PARTS) $(EXTRA_PARTS)
	@@echo "Testing libgcc1.  Ignore linker warning messages."
	$(GCC_FOR_TARGET) $(GCC_CFLAGS) libgcc1-test.o -o libgcc1-test \
	-v
@
