newlib/libgloss/riscv/Makefile.in

201 lines
5.1 KiB
Makefile

#-------------------------------------------------------------------------
# Source files
#-------------------------------------------------------------------------
gloss_hdrs = \
machine/syscall.h \
gloss_srcs = \
syscalls.c \
# Extra files
crt0_asm = crt0.S
# Multilib support variables.
# TOP is used instead of MULTI{BUILD,SRC}TOP.
MULTIDIRS =
MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true
#-------------------------------------------------------------------------
# Basic setup
#-------------------------------------------------------------------------
# Remove all default implicit rules since they can cause subtle bugs
# and they just make things run slower
.SUFFIXES:
% : %,v
% : RCS/%,v
% : RCS/%
% : s.%
% : SCCS/s.%
# Default is to build the prereqs of the all target (defined at bottom)
default : all
.PHONY : default
# Source directory
obj_dir := .
src_dir := @srcdir@
VPATH := $(src_dir) $(src_dir)/machine
# Installation directories
prefix := @prefix@
DESTDIR ?= $(prefix)
install_hdrs_dir := $(DESTDIR)$(prefix)/$(target_alias)/include/machine
install_libs_dir = $(DESTDIR)$(prefix)/$(target_alias)/lib${MULTISUBDIR}
#-------------------------------------------------------------------------
# Programs and flags
#-------------------------------------------------------------------------
# C compiler
CC := @CC@
CFLAGS := @CFLAGS@
CPPFLAGS := -I$(obj_dir) -I$(src_dir)
COMPILE := $(CC) -MMD -MP $(CPPFLAGS) $(CFLAGS)
# Library creation
AR := @AR@
RANLIB := @RANLIB@
# Installation
INSTALL := @INSTALL@
INSTALL_DATA := @INSTALL_DATA@
#-------------------------------------------------------------------------
# Build Object Files from C Source
#-------------------------------------------------------------------------
gloss_c_srcs = $(filter %.c, $(gloss_srcs))
gloss_c_objs = $(patsubst %.c, %.o, $(notdir $(gloss_c_srcs)))
gloss_c_deps = $(patsubst %.c, %.d, $(notdir $(gloss_c_srcs)))
$(gloss_c_objs) : %.o : %.c
$(COMPILE) -c $<
objs += $(gloss_c_objs)
deps += $(gloss_c_deps)
junk += $(gloss_c_deps) $(gloss_c_objs)
#-------------------------------------------------------------------------
# Build Object Files from Assembly Source
#-------------------------------------------------------------------------
gloss_asm_srcs = $(filter %.S, $(gloss_srcs))
gloss_asm_objs = $(patsubst %.S, %.o, $(notdir $(gloss_asm_srcs)))
gloss_asm_deps = $(patsubst %.S, %.d, $(notdir $(gloss_asm_srcs)))
$(gloss_asm_objs) : %.o : %.S
$(COMPILE) -c $<
objs += $(gloss_asm_objs)
deps += $(gloss_asm_deps)
junk += $(gloss_asm_deps) $(gloss_asm_objs)
#-------------------------------------------------------------------------
# Build libgloss.a
#-------------------------------------------------------------------------
gloss_lib = libgloss.a
$(gloss_lib) : $(objs)
$(AR) rcv $@ $^
$(RANLIB) $@
junk += $(gloss_libs)
install_hdrs += $(gloss_hdrs)
install_libs += $(gloss_lib)
#-------------------------------------------------------------------------
# Build crt0.o
#-------------------------------------------------------------------------
crt0_obj = $(patsubst %.S, %.o, $(crt0_asm))
crt0_deps = $(patsubst %.S, %.d, $(crt0_asm))
$(crt0_obj) : %.o : %.S
$(COMPILE) -c $<
deps += $(crt0_deps)
junk += $(crt0_deps) $(crt0_obj)
install_libs += $(crt0_obj)
#-------------------------------------------------------------------------
# Autodependency files
#-------------------------------------------------------------------------
-include $(deps)
deps : $(deps)
.PHONY : deps
#-------------------------------------------------------------------------
# Installation
#-------------------------------------------------------------------------
install_hdrs_wdir += $(addprefix $(src_dir)/, $(install_hdrs))
install-hdrs : $(install_hdrs_wdir)
test -d $(install_hdrs_dir) || mkdir -p $(install_hdrs_dir)
for file in $^; do \
$(INSTALL_DATA) $$file $(install_hdrs_dir)/; \
done
install-libs : $(install_libs)
test -d $(install_libs_dir) || mkdir -p $(install_libs_dir)
for file in $^; do \
$(INSTALL_DATA) $$file $(install_libs_dir)/$$file; \
done
install : install-hdrs install-libs
.PHONY : install install-hdrs install-libs
#-------------------------------------------------------------------------
# Regenerate configure information
#-------------------------------------------------------------------------
configure_prereq = \
$(src_dir)/configure.in \
$(src_dir)/configure : $(configure_prereq)
cd $(src_dir) && autoconf
config.status : $(src_dir)/configure
./config.status --recheck
Makefile : $(src_dir)/Makefile.in config.status
./config.status
dist_junk += config.status Makefile config.log
#-------------------------------------------------------------------------
# Default
#-------------------------------------------------------------------------
all : $(install_libs)
.PHONY : all
#-------------------------------------------------------------------------
# Clean up junk
#-------------------------------------------------------------------------
clean :
rm -rf *~ \#* $(junk)
distclean :
rm -rf *~ \#* $(junk) $(dist_junk)
.PHONY : clean distclean