diff options
Diffstat (limited to 'libgloss/sparc/Makefile.inc')
-rw-r--r-- | libgloss/sparc/Makefile.inc | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/libgloss/sparc/Makefile.inc b/libgloss/sparc/Makefile.inc new file mode 100644 index 000000000..707c06428 --- /dev/null +++ b/libgloss/sparc/Makefile.inc @@ -0,0 +1,141 @@ +## Copyright (c) 1995, 1996, 1997 Cygnus Support +## +## The authors hereby grant permission to use, copy, modify, distribute, +## and license this software and its documentation for any purpose, provided +## that existing copyright notices are retained in all copies and that this +## notice is included verbatim in any distributions. No written agreement, +## license, or royalty fee is required for any of the authorized uses. +## Modifications to this software may be copyrighted by their authors +## and need not follow the licensing terms described here, provided that +## the new terms are clearly indicated on the first page of each file where +## they apply. + +## This is set to one of SPARC, SLITE, or SPLET by configure. +## It's not clear what to do here. +## One could certainly build everything. The assembler supports all cpu +## variants (via runtime switches). However, the compiler [currently] doesn't. +## Of course, it may be the case that there isn't any cpu specific code in +## C source files, but there might be in the future. +AM_CPPFLAGS_%C% = -DTARGET_CPU_$(SPARC_CPU) + +multilibtool_DATA += %D%/crt0.o +libobjs_a_SOURCES += %D%/crt0.S + +## Used by some libs. +%C%_common_stub_sources = \ + close.c \ + fstat.c \ + getpid.c \ + isatty.c \ + kill.c \ + lseek.c \ + open.c \ + print.c \ + putnum.c \ + read.c \ + sbrk.c \ + stat.c \ + unlink.c \ + write.c + +## ERC32: SIS simulator, see sim/erc32. +multilibtool_DATA += %D%/erc32-crt0.o +libobjs_a_SOURCES += %D%/erc32-crt0.S +multilibtool_LIBRARIES += %D%/liberc32.a +%C%_liberc32_a_SOURCES = \ + $(%C%_common_stub_sources) \ + %D%/erc32-io.c \ + %D%/traps.S \ + %D%/erc32-stub.c \ + debug.c \ + %D%/fixctors.c + +if SPARC_BUILD_CYGMON +## sparc stuff (not sparclite or sparclet). +%C%_SPARC_OBJ_FORMAT = sparc +%C%_SPARC_RAM_START = 0x4000 + +## sparc 64 stuff. +%C%_SPARC64_OBJ_FORMAT = sparc:v9 +%C%_SPARC64_RAM_START = 0x4000 + +## sparclite stuff. +%C%_SLITE_OBJ_FORMAT = sparc +%C%_SLITE_RAM_START = 0x40050000 + +multilibtool_DATA += %D%/cygmon.ld +%D%/cygmon.ld: $(srcdir)/%D%/@SPARC_CYGMONLDSCRIPTTEMPL@ %D%/Makefile.inc + $(AM_V_GEN)sed 's/TARGET_OBJ_FORMAT/$(%C%_$(SPARC_CPU)_OBJ_FORMAT)/g;s/TARGET_RAM_START/$(%C%_$(SPARC_CPU)_RAM_START)/g;' < $< > $@ + +multilibtool_DATA += %D%/cygmon-crt0.o +libobjs_a_SOURCES += %D%/cygmon-crt0.S +multilibtool_LIBRARIES += %D%/libcygmon.a +%C%_libcygmon_a_SOURCES = \ + %D%/cygmon-salib.c +multilibtool_DATA += %D%/cygmon-salib.o +endif + +if SPARC_BUILD_SLITE +multilibtool_DATA += \ + %D%/ex930.ld \ + %D%/ex931.ld \ + %D%/ex934.ld \ + %D%/sparc86x.ld \ + %D%/elfsim.ld \ + %D%/traps.o + +## For the time being, built the stub without hardware breakpoint support. +multilibtool_LIBRARIES += \ + %D%/libslite930.a \ + %D%/libslite931.a \ + %D%/libslite934.a \ + %D%/libslite86x.a +%C%_libslite930_a_SOURCES = \ + $(%C%_common_stub_sources) \ + %D%/salib.c \ + %D%/sparcl-stub.c \ + %D%/cache.c +%C%_libslite931_a_SOURCES = $(%C%_libslite930_a_SOURCES) +%C%_libslite934_a_SOURCES = $(%C%_libslite930_a_SOURCES) +%C%_libslite86x_a_SOURCES = $(%C%_libslite930_a_SOURCES) +endif + +if SPARC_BUILD_SPLET +multilibtool_DATA += %D%/tsc701.ld + +multilibtool_DATA += %D%/crt0-701.S +libobjs_a_SOURCES += %D%/crt0-701.S + +multilibtool_LIBRARIES += %D%/libsplet701.a +%C%_libsplet701_a_SOURCES = \ + %D%/sysc-701.c \ + %D%/salib-701.c \ + %D%/sparclet-stub.c +endif + +## Compile a fully linked binary. The -N option is for a.out, so the +## base address will be zero, rather than the default of 0x2020. The +## -Wl,-T*.ld is for the linker script. By using -Wl, the linker script +## is put on the proper place in the comand line for ld, and all the +## symbols will get fully resolved. + +check_PROGRAMS += %D%/erc32-test +%C%_erc32_test_SOURCES = %D%/test.c +AM_LDFLAGS_%C%_erc32_test = -N -Wl,-T$(srcdir)/%D%/elfsim.ld -Wl,-Map,$@.map -nostdlib + +check_PROGRAMS += %D%/ex930-test +%C%_ex930_test_SOURCES = %D%/test.c +AM_LDFLAGS_%C%_ex930_test = -N -Wl,-T$(srcdir)/%D%/ex930.ld -nostdlib + +check_PROGRAMS += %D%/ex931-test +%C%_ex931_test_SOURCES = %D%/test.c +AM_LDFLAGS_%C%_ex931_test = -N -Wl,-T$(srcdir)/%D%/ex931.ld -nostdlib + +check_PROGRAMS += %D%/ex934-test +%C%_ex934_test_SOURCES = %D%/test.c +AM_LDFLAGS_%C%_ex934_test = -N -Wl,-T$(srcdir)/%D%/ex934.ld -nostdlib + +## A C++ test case. +# check_PROGRAMS += %D%/dtor +# %C%_ex934_test_SOURCES = %D%/dtor.C +# %C%_ex934_test_LDFLAGS = $(AM_LDFLAGS) -N -Wl,-T$(srcdir)/%D%/elfsim.ld -nostdlib |