129 lines
3.5 KiB
Makefile
129 lines
3.5 KiB
Makefile
|
# Copyright (c) 1995, 1996, 2001 Cygnus Support -*- mode:makefile -*-
|
||
|
#
|
||
|
# 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.
|
||
|
#
|
||
|
# csky semihosting support.
|
||
|
#
|
||
|
|
||
|
DESTDIR =
|
||
|
VPATH = @srcdir@
|
||
|
srcdir = @srcdir@
|
||
|
objdir = .
|
||
|
srcroot = $(srcdir)/../..
|
||
|
objroot = $(objdir)/../..
|
||
|
|
||
|
prefix = @prefix@
|
||
|
exec_prefix = @exec_prefix@
|
||
|
|
||
|
host_alias = @host_alias@
|
||
|
target_alias = @target_alias@
|
||
|
program_transform_name = @program_transform_name@
|
||
|
|
||
|
bindir = @bindir@
|
||
|
libdir = @libdir@
|
||
|
tooldir = $(exec_prefix)/$(target_alias)
|
||
|
|
||
|
# Multilib support variables.
|
||
|
# TOP is used instead of MULTI{BUILD,SRC}TOP.
|
||
|
MULTIDIRS =
|
||
|
MULTISUBDIR =
|
||
|
MULTIDO = true
|
||
|
MULTICLEAN = true
|
||
|
|
||
|
INSTALL = @INSTALL@
|
||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||
|
INSTALL_DATA = @INSTALL_DATA@
|
||
|
|
||
|
SHELL = /bin/sh
|
||
|
|
||
|
CC = @CC@
|
||
|
|
||
|
AS = @AS@
|
||
|
AR = @AR@
|
||
|
LD = @LD@
|
||
|
RANLIB = @RANLIB@
|
||
|
AR_FLAGS = qv
|
||
|
|
||
|
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`
|
||
|
|
||
|
DO = @DO@
|
||
|
|
||
|
CRT0=crt0.S
|
||
|
|
||
|
#
|
||
|
# here's all the hosted stuff
|
||
|
#
|
||
|
HOSTED_BSP= libsemi.a
|
||
|
HOSTED_SRS= io-semi.S
|
||
|
HOSTED_SRC= sbrk.c io-gdb.c io-exit.c io-close.c io-fstat.c io-gettimeofday.c \
|
||
|
io-lseek.c io-read.c io-system.c io-unlink.c io-exit.c \
|
||
|
io-gdb.c io-isatty.c io-open.c io-rename.c io-stat.c \
|
||
|
io-time.c io-write.c kill.o getpid.o
|
||
|
HOSTED_OBJS= $(patsubst %.c,%.o,$(HOSTED_SRC))
|
||
|
|
||
|
INCLUDES+= -I/home/xialf/workspace/newlib-2.5.0.20171222/newlib/libc/include
|
||
|
|
||
|
# Host specific makefile fragment comes in here.
|
||
|
@host_makefile_frag@
|
||
|
|
||
|
all :: $(HOSTED_BSP)
|
||
|
|
||
|
#
|
||
|
# here's where we build the board support packages for each target
|
||
|
#
|
||
|
|
||
|
# build hosted library
|
||
|
$(HOSTED_OBJS) : %.o : %.c
|
||
|
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) -nostdlib -DHOSTED=1 $(INCLUDES) -c $< -o $@
|
||
|
$(HOSTED_SRS:%.S=%.o): %.o : %.S
|
||
|
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) -nostdlib -DHOSTED=1 $(INCLUDES) -c $< -o $@
|
||
|
|
||
|
$(HOSTED_BSP): $(HOSTED_OBJS) $(HOSTED_SRS:%.S=%.o)
|
||
|
${AR} ${ARFLAGS} $@ $^
|
||
|
${RANLIB} $@
|
||
|
|
||
|
crt0.o: $(CRT0)
|
||
|
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) -c $< -o $@
|
||
|
|
||
|
.PHONY: install info dvi doc install-info clean-info
|
||
|
install:: $(DO:%=install_%) crt0.o
|
||
|
$(INSTALL_PROGRAM) crt0.o $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$(crt0.o)
|
||
|
|
||
|
$(DO:%=install_%): install_hosted
|
||
|
|
||
|
.PHONY:install_hosted
|
||
|
install_hosted::
|
||
|
$(INSTALL_PROGRAM) $(HOSTED_BSP) $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$(HOSTED_BSP)
|
||
|
|
||
|
# target specific makefile fragment comes in here.
|
||
|
@target_makefile_frag@
|
||
|
|
||
|
clean mostlyclean:
|
||
|
rm -f a.out core *.i *~ *.a *.o *-test *.srec *.dis *.x *.map
|
||
|
|
||
|
distclean maintainer-clean realclean: clean
|
||
|
rm -f Makefile config.cache config.log config.status
|
||
|
|
||
|
info dvi doc:
|
||
|
install-info:
|
||
|
clean-info:
|
||
|
|
||
|
Makefile: Makefile.in config.status @host_makefile_frag_path@ @target_makefile_frag_path@
|
||
|
$(SHELL) config.status
|
||
|
|
||
|
config.status: configure
|
||
|
$(SHELL) config.status --recheck
|