mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-04 13:30:39 +08:00
92e488d5b8
The file configure.in was renamed to configure.ac in libgloss/riscv but the hard coded name in the Makefile for that directory was not updated. This patch simply renamed this to configure.ac.
340 lines
8.4 KiB
Makefile
340 lines
8.4 KiB
Makefile
#-------------------------------------------------------------------------
|
|
# Source files
|
|
#-------------------------------------------------------------------------
|
|
|
|
gloss_hdrs = \
|
|
machine/syscall.h \
|
|
|
|
gloss_srcs = \
|
|
nanosleep.c \
|
|
sys_access.c \
|
|
sys_chdir.c \
|
|
sys_chmod.c \
|
|
sys_chown.c \
|
|
sys_close.c \
|
|
sys_conv_stat.c \
|
|
sys_execve.c \
|
|
sys_exit.c \
|
|
sys_faccessat.c \
|
|
sys_fork.c \
|
|
sys_fstatat.c \
|
|
sys_fstat.c \
|
|
sys_ftime.c \
|
|
sys_getcwd.c \
|
|
sys_getpid.c \
|
|
sys_gettimeofday.c \
|
|
sys_isatty.c \
|
|
sys_kill.c \
|
|
sys_link.c \
|
|
sys_lseek.c \
|
|
sys_lstat.c \
|
|
sys_openat.c \
|
|
sys_open.c \
|
|
sys_read.c \
|
|
sys_sbrk.c \
|
|
sys_stat.c \
|
|
sys_sysconf.c \
|
|
sys_times.c \
|
|
sys_unlink.c \
|
|
sys_utime.c \
|
|
sys_wait.c \
|
|
sys_write.c
|
|
|
|
# libsemihost reuses some of the libgloss minimal implementations
|
|
|
|
semihost_srcs = \
|
|
nanosleep.c \
|
|
sys_chdir.c \
|
|
sys_chmod.c \
|
|
sys_chown.c \
|
|
sys_execve.c \
|
|
sys_fork.c \
|
|
sys_getcwd.c \
|
|
sys_getpid.c \
|
|
sys_kill.c \
|
|
sys_utime.c \
|
|
sys_wait.c \
|
|
semihost-sys_close.c \
|
|
semihost-sys_exit.c \
|
|
semihost-sys_fdtable.c \
|
|
semihost-sys_fstat.c \
|
|
semihost-sys_ftime.c \
|
|
semihost-sys_isatty.c \
|
|
semihost-sys_link.c \
|
|
semihost-sys_lseek.c \
|
|
semihost-sys_open.c \
|
|
semihost-sys_read.c \
|
|
semihost-sys_sbrk.c \
|
|
semihost-sys_stat.c \
|
|
semihost-sys_stat_common.c \
|
|
semihost-sys_unlink.c \
|
|
semihost-sys_write.c
|
|
|
|
gloss_specs = \
|
|
nano.specs sim.specs semihost.specs
|
|
|
|
# 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 $<
|
|
|
|
gloss_objs += $(gloss_c_objs)
|
|
deps += $(gloss_c_deps)
|
|
junk += $(gloss_c_deps) $(gloss_c_objs)
|
|
|
|
sim_c_objs = $(patsubst %.c, sim-%.o, $(notdir $(gloss_c_srcs)))
|
|
sim_c_deps = $(patsubst %.c, sim-%.d, $(notdir $(gloss_c_srcs)))
|
|
|
|
$(sim_c_objs): sim-%.o : %.c
|
|
$(COMPILE) -c -DUSING_SIM_SPECS -o $@ $<
|
|
|
|
sim_objs += $(sim_c_objs)
|
|
deps += $(sim_c_deps)
|
|
junk += $(sim_c_deps) $(sim_c_objs)
|
|
|
|
semihost_c_srcs = $(filter %.c, $(semihost_srcs))
|
|
semihost_c_objs = $(patsubst %.c, semihost-%.o, $(notdir $(semihost_c_srcs)))
|
|
semihost_c_deps = $(patsubst %.c, semihost-%.d, $(notdir $(semihost_c_srcs)))
|
|
|
|
$(semihost_c_objs): semihost-%.o : %.c
|
|
$(COMPILE) -c -o $@ $<
|
|
|
|
semihost_objs += $(semihost_c_objs)
|
|
deps += $(semihost_c_deps)
|
|
junk += $(semihost_c_deps) $(semihost_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 -o $@ $<
|
|
|
|
gloss_objs += $(gloss_asm_objs)
|
|
deps += $(gloss_asm_deps)
|
|
junk += $(gloss_asm_deps) $(gloss_asm_objs)
|
|
|
|
sim_asm_objs = $(patsubst %.S, sim-%.o, $(notdir $(gloss_asm_srcs)))
|
|
sim_asm_deps = $(patsubst %.S, sim-%.d, $(notdir $(gloss_asm_srcs)))
|
|
|
|
$(sim_asm_objs) : sim-%.o : %.S
|
|
$(COMPILE) -c -DUSING_SIM_SPECS -o $@ $<
|
|
|
|
sim_objs += $(sim_asm_objs)
|
|
deps += $(sim_asm_deps)
|
|
junk += $(sim_asm_deps) $(sim_asm_objs)
|
|
|
|
semihost_asm_objs = $(patsubst %.S, semihost-%.o, $(notdir $(gloss_asm_srcs)))
|
|
semihost_asm_deps = $(patsubst %.S, semihost-%.d, $(notdir $(gloss_asm_srcs)))
|
|
|
|
$(semihost_asm_objs) : semihost-%.o : %.S
|
|
$(COMPILE) -c -DUSING_SEMIHOST_SPECS -o $@ $<
|
|
|
|
semihost_objs += $(semihost_asm_objs)
|
|
deps += $(semihost_asm_deps)
|
|
junk += $(semihost_asm_deps) $(semihost_asm_objs)
|
|
|
|
#-------------------------------------------------------------------------
|
|
# Build libgloss.a
|
|
#-------------------------------------------------------------------------
|
|
|
|
gloss_lib = libgloss.a
|
|
$(gloss_lib) : $(gloss_objs)
|
|
$(AR) rcv $@ $^
|
|
$(RANLIB) $@
|
|
|
|
junk += $(gloss_lib)
|
|
|
|
install_hdrs += $(gloss_hdrs)
|
|
install_libs += $(gloss_lib)
|
|
install_specs += $(gloss_specs)
|
|
|
|
#-------------------------------------------------------------------------
|
|
# Build libsim.a
|
|
#-------------------------------------------------------------------------
|
|
|
|
sim_lib = libsim.a
|
|
$(sim_lib) : $(sim_objs)
|
|
$(AR) rcv $@ $^
|
|
$(RANLIB) $@
|
|
|
|
junk += $(sim_lib)
|
|
|
|
install_libs += $(sim_lib)
|
|
|
|
#-------------------------------------------------------------------------
|
|
# Build libsemihost.a
|
|
#-------------------------------------------------------------------------
|
|
|
|
semihost_lib = libsemihost.a
|
|
$(semihost_lib) : $(semihost_objs)
|
|
$(AR) rcv $@ $^
|
|
$(RANLIB) $@
|
|
|
|
junk += $(semihost_lib)
|
|
|
|
install_libs += $(semihost_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-specs : $(install_specs)
|
|
test -d $(install_libs_dir) || mkdir -p $(install_libs_dir)
|
|
for file in $^; do \
|
|
$(INSTALL_DATA) $$file $(install_libs_dir)/; \
|
|
done
|
|
|
|
install : install-hdrs install-libs install-specs
|
|
.PHONY : install install-hdrs install-libs
|
|
|
|
#-------------------------------------------------------------------------
|
|
# Regenerate configure information
|
|
#-------------------------------------------------------------------------
|
|
|
|
configure_prereq = \
|
|
$(src_dir)/configure.ac \
|
|
|
|
$(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
|