190075Sobrien# We want fine grained libraries, so use the new code to build the
290075Sobrien# floating point emulation libraries.
390075SobrienFPBIT = fp-bit.c
490075SobrienDPBIT = dp-bit.c
590075Sobrien
690075Sobriendp-bit.c: $(srcdir)/config/fp-bit.c
790075Sobrien	cat $(srcdir)/config/fp-bit.c > dp-bit.c
890075Sobrien
990075Sobrienfp-bit.c: $(srcdir)/config/fp-bit.c
1090075Sobrien	echo '#define FLOAT' > fp-bit.c
1190075Sobrien	cat $(srcdir)/config/fp-bit.c >> fp-bit.c
1290075Sobrien
1390075Sobrien# Build the libraries for pthread and all of the 
1490075Sobrien# different processor models
1590075Sobrien
1690075SobrienMULTILIB_OPTIONS	= pthread \
1790075Sobrien			  mcpu=common/mcpu=power/mcpu=powerpc/maix64
1890075Sobrien
1990075SobrienMULTILIB_DIRNAMES	= pthread \
2090075Sobrien			  common power powerpc ppc64
2190075Sobrien
22117395SkanMULTILIB_MATCHES	= mcpu?power=mcpu?power \
23117395Skan			  mcpu?power=mcpu?power2 \
24117395Skan			  mcpu?powerpc=mcpu?power3 \
25117395Skan			  mcpu?powerpc=mcpu?power4 \
26117395Skan			  mcpu?powerpc=mcpu?powerpc \
2790075Sobrien			  mcpu?power=mcpu?rios1 \
28117395Skan			  mcpu?power=mcpu?rios2 \
2990075Sobrien			  mcpu?power=mcpu?rsc \
3090075Sobrien			  mcpu?power=mcpu?rsc1 \
3190075Sobrien			  mcpu?powerpc=mcpu?rs64a \
3290075Sobrien			  mcpu?powerpc=mcpu?601 \
3390075Sobrien			  mcpu?powerpc=mcpu?602 \
3490075Sobrien			  mcpu?powerpc=mcpu?603 \
3590075Sobrien			  mcpu?powerpc=mcpu?603e \
3690075Sobrien			  mcpu?powerpc=mcpu?604 \
37117395Skan			  mcpu?powerpc=mcpu?604e \
3890075Sobrien			  mcpu?powerpc=mcpu?620 \
39117395Skan			  mcpu?powerpc=mcpu?630
4090075Sobrien
4190075SobrienLIBGCC = stmp-multilib
4290075SobrienINSTALL_LIBGCC = install-multilib
4390075Sobrien
4490075Sobrien# Build a shared libgcc library.
4590075SobrienSHLIB_EXT = .a
4690075SobrienSHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
4790075Sobrien	-Wl,-bE:@shlib_map_file@ -o @multilib_dir@/shr.o \
4890075Sobrien	@multilib_flags@ @shlib_objs@ -lc \
49169689Skan	`case @multilib_dir@ in \
5090075Sobrien	*pthread*) echo -L/usr/lib/threads -lpthreads -lc_r /usr/lib/libc.a ;; \
5190075Sobrien	*) echo -lc ;; esac` ; \
52169689Skan	rm -f @multilib_dir@/tmp-@shlib_base_name@.a ; \
53169689Skan	$(AR_CREATE_FOR_TARGET) @multilib_dir@/tmp-@shlib_base_name@.a \
54169689Skan	@multilib_dir@/shr.o ; \
55169689Skan	mv @multilib_dir@/tmp-@shlib_base_name@.a \
56169689Skan	   @multilib_dir@/@shlib_base_name@.a ; \
5790075Sobrien	rm -f @multilib_dir@/shr.o
5890075Sobrien# $(slibdir) double quoted to protect it from expansion while building
5990075Sobrien# libgcc.mk.  We want this delayed until actual install time.
60169689SkanSHLIB_INSTALL = \
61169689Skan	$$(mkinstalldirs) $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@; \
62169689Skan	$(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.a \
63169689Skan		$$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/
64169689SkanSHLIB_LIBS = -lc `case @multilib_dir@ in *pthread*) echo -lpthread ;; esac`
6590075SobrienSHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
66146895SkanSHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
6796263SobrienSHLIB_NM_FLAGS = -Bpg -X32_64
6890075Sobrien
69146895Skan# GCC 128-bit long double support routines.
70169689SkanLIB2FUNCS_EXTRA =  $(srcdir)/config/rs6000/ppc64-fp.c \
71169689Skan	$(srcdir)/config/rs6000/darwin-ldouble.c
72169689SkanTARGET_LIBGCC2_CFLAGS = -mlong-double-128
73146895Skan
7490075Sobrien# Either 32-bit and 64-bit objects in archives.
7590075SobrienAR_FLAGS_FOR_TARGET = -X32_64
7690075Sobrien
77