# # libgloss Makefile.in for CRIS. Copied and modified from mcore long ago. # DESTDIR = VPATH = @srcdir@ srcdir = @srcdir@ objdir = . srcroot = $(srcdir)/../.. objroot = $(objdir)/../.. prefix = @prefix@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ target_alias = @target_alias@ bindir = @bindir@ libdir = @libdir@ tooldir = $(exec_prefix)/$(target_alias) INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ # Multilib support variables. # TOP is used instead of MULTI{BUILD,SRC}TOP. MULTIDIRS = MULTISUBDIR = SHELL = /bin/sh mkinstalldirs = $(SHELL) $(srcroot)/mkinstalldirs CC = @CC@ AS = @AS@ AR = @AR@ LD = @LD@ RANLIB = @RANLIB@ OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \ then echo ${objroot}/../binutils/objdump ; \ else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi` OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \ then echo ${objroot}/../binutils/objcopy ; \ else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi` CFLAGS = -g SCRIPTS = OBJS = outbyte.o # Beware: GNU make construct used (shell call). Since GCC at the time # of this writing requires GNU make >= 3.79.1, this should pose no # problem. SYSCALL_CFILES := $(shell sed -ne 's/^cat > \([^ ]*\).*/\1/p' < $(srcdir)/gensyscalls) # Here is all of the simulator stuff. # Actually, now it's just the GNU/Linux stuff, as that's also the # simulator ABI. The name of the library is different, though. SIM_SCRIPTS = SIM_LDFLAGS = SIM_BSP = libsyssim.a SIM_CRT0 = $(LIN_CRT0) SIM_OBJS = $(LIN_OBJS) SIM_TEST = sim-test SIM_INSTALL = install-sim # Here is all of the GNU/Linux stuff. At present we don't build newlib # and libgloss for cris*-linux-gnu*, but it's nice to keep that as an # option. LIN_PREFIX = LIN_LDFLAGS = LIN_BSP = libsyslinux.a LIN_CRT0 = lcrt0.o LIN_EXTRA = crti.o crtn.o crt1.o LIN_OBJS = close.o execve.o exit.o fcntl.o fork.o fstat.o getpid.o \ gettod.o isatty.o kill.o link.o lseek.o open.o read.o \ rename.o sbrk.o stat.o times.o unlink.o wait.o write.o ${OBJS} LIN_SCRIPTS = LIN_TEST = LIN_INSTALL = install-lin # In (over)due time, here will be all stuff necessary for a development # board. BSP_PREFIX = BSP_LDFLAGS = BSP_BSP = libbsp.a BSP_CRT0 = crt0.o BSP_OBJS = ${OBJS} setup.o irqtable.o BSP_SCRIPTS = BSP_TEST = BSP_INSTALL = install-bsp ALL_INSTALL_FILES = \ ${SIM_CRT0} ${SIM_EXTRA} ${SIM_BSP} \ ${LIN_CRT0} ${LIN_EXTRA} ${LIN_BSP} \ ${BSP_CRT0} ${BSP_EXTRA} ${BSP_BSP} ALL_INSTALL_FILES_NEWLIB_COPY = \ $(sort ${ALL_INSTALL_FILES:%=$(objroot)/newlib/%}) $(objroot)/newlib/libnosys.a # Host specific makefile fragment comes in here. @host_makefile_frag@ # Need to augment the definition from host_makefile_frag above. INCLUDES += -I$(srcdir) all: ${ALL_INSTALL_FILES} ${ALL_INSTALL_FILES_NEWLIB_COPY} libnosys.a # # Here's where we build the board support packages for each target. # ${SIM_BSP}: ${SIM_OBJS} ${AR} ${ARFLAGS} ${SIM_BSP} ${SIM_OBJS} ${RANLIB} ${SIM_BSP} ${BSP_BSP}: ${BSP_OBJS} ${AR} ${ARFLAGS} ${BSP_BSP} ${BSP_OBJS} ${RANLIB} ${BSP_BSP} ${LIN_BSP}: ${LIN_OBJS} ${AR} ${ARFLAGS} ${LIN_BSP} ${LIN_OBJS} ${RANLIB} ${LIN_BSP} # We need a link to libnosys.a in this directory, since this is the # directory used when test-compiling for configuration for other parts and # when running the testsuite. By using a symbolic link, it does not # matter whether libnosys.a is built yet when the rule is executed. libnosys.a: ln -s ../libnosys/libnosys.a # Toplevel build rules for various other libraries have gcc -B options # applied so the newlib build directory is reached, but not the target # libgloss directory (whose name is unknown to the toplevel configury # anyway). Configury tests that check for a successful link therefore # fail; they can't find crt0.o and non-libc.a+libm.a libraries. We copy # over all files we would install to the neighboring newlib directory. # Only the default crt0.o and libraries are needed, but we do them all for # completeness. They're however installed from here, not from the newlib # build directory. $(objroot)/newlib/%: % cp -p $^ $@ # This rule, being more specific, overrides the pattern rule above. $(objroot)/newlib/libnosys.a: ln -s ../libgloss/libnosys/libnosys.a $(objroot)/newlib # # Build a test program for each target board. Just trying to get # it to link is a good test, so we ignore all the errors for now. # # # Here's where we build the test programs for each target. # .PHONY: test test: ${SIM_TEST} ${BSP_TEST} sim-test: sim-test.x sim-test.dis sim-test.x: test.o ${SIM_CRT0} ${SIM_BSP} ${CC} ${LDFLAGS_FOR_TARGET} -L${objdir} \ ${SIM_CRT0} test.o \ -o sim-test.x ${LIBS_FOR_TARGET} -lc ${SIM_BSP} sim-test.dis: sim-test.x ${OBJDUMP} -d sim-test.x > sim-test.dis test.o: ${srcdir}/m68k/test.c # Debug usage. .c.S: ${CC} ${CFLAGS_FOR_TARGET} $(INCLUDES) $(CFLAGS) -c $< # Caveat: for the -melinux multilib in cris-axis-aout, crt0.o is the # same as lcrt0.o, while elsewhere (other cris-axis-aout multilib and # cris-axis-elf) it's crt0.c compiled. crt0.o: lcrt0.o crt0.S case "${MULTISUBDIR}" in \ */elinux) \ cp -p $< $@; st=$$?;; \ *) \ case "$?" in \ *crt0.S) \ $(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -c -xassembler-with-cpp $(srcdir)/crt0.S;; \ *) touch $@;; \ esac; \ st=$$?;; \ esac; exit $$st crt1.o: lcrt0.o cp -p $< $@ clean mostlyclean: rm -f a.out core *.i *.o *-test *.srec *.dis *.x $(SIM_BSP) $(BSP_BSP) $(LIN_BSP) libnosys.a distclean maintainer-clean realclean: clean rm -f Makefile *~ .PHONY: install info install-info clean-info install: ${SIM_INSTALL} ${BSP_INSTALL} ${LIN_INSTALL} # Note that bsp and elinux objects are exclusive: do not overlap # installed files. install-bsp: ${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR} case "${MULTISUBDIR}" in \ */elinux) ;; \ *) set -e; \ for x in ${BSP_CRT0} ${BSP_BSP} ${BSP_SCRIPTS}; do \ ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; \ done;; \ esac install-sim: ${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR} set -e; \ for x in ${SIM_CRT0} ${SIM_BSP} ${SIM_SCRIPTS}; do \ ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; \ done install-lin: ${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR} case "${MULTISUBDIR}" in \ */elinux) \ ${INSTALL_DATA} ${LIN_CRT0} $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/crt0.o; \ set -e; \ for x in ${LIN_BSP} ${LIN_SCRIPTS}; do \ ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; \ done;; \ *) \ set -e; \ for x in ${LIN_BSP} ${LIN_SCRIPTS} ${LIN_EXTRA}; do \ ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; \ done;; \ esac doc: info: install-info: clean-info: Makefile: Makefile.in ../config.status cd .. && $(SHELL) config.status $(SYSCALL_CFILES): syscalls.stamp syscalls.stamp: gensyscalls $(SHELL) $(srcdir)/gensyscalls touch $@ # Dependencies that could and should be auto-generated. close.o: close.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h execve.o: execve.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h exit.o: exit.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h fork.o: fork.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h fstat.o: fstat.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h fcntl.o: fcntl.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h getpid.o: getpid.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h gettod.o: gettod.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h isatty.o: isatty.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h kill.o: kill.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h link.o: link.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h lseek.o: lseek.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h open.o: open.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h read.o: read.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h rename.o: rename.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h sbrk.o: sbrk.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h stat.o: stat.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h times.o: times.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h unlink.o: unlink.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h wait.o: wait.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h write.o: write.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h lcrt0.o: lcrt0.c linunistd.h $(objdir)/../libnosys/config.h $(srcdir)/../libnosys/warning.h setup.o: setup.S irqtable.o: irqtable.S crti.o: crti.c crtn.o: crtn.c