libgloss: riscv: Convert to non-recursive automake

PR 29515 points out our documentation builds are broken, let's just move
over to the new non-recursive builds.

Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
Palmer Dabbelt 2022-08-23 16:12:56 -07:00 committed by Corinna Vinschen
parent 0819679a7a
commit f59ff93046
6 changed files with 1264 additions and 357 deletions

View File

@ -71,6 +71,9 @@ endif
if CONFIG_LM32
include lm32/Makefile.inc
endif
if CONFIG_RISCV
include riscv/Makefile.inc
endif
if CONFIG_WINCE
include wince/Makefile.inc
endif

File diff suppressed because it is too large Load Diff

33
libgloss/configure vendored
View File

@ -631,6 +631,8 @@ CFLAGS
CC
CONFIG_WINCE_FALSE
CONFIG_WINCE_TRUE
CONFIG_RISCV_FALSE
CONFIG_RISCV_TRUE
CONFIG_LM32_FALSE
CONFIG_LM32_TRUE
CONFIG_LIBNOSYS_FALSE
@ -705,6 +707,7 @@ infodir
docdir
oldincludedir
includedir
runstatedir
localstatedir
sharedstatedir
sysconfdir
@ -783,6 +786,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@ -1035,6 +1039,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@ -1172,7 +1185,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir
libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@ -1325,6 +1338,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@ -2789,9 +2803,7 @@ subdirs="$subdirs aarch64"
target_makefile_frag=${srcdir}/config/mips.mt
;;
riscv*-*-*)
ac_config_files="$ac_config_files riscv/Makefile"
subdirs="$subdirs riscv"
config_riscv=true
;;
powerpc-*-*|powerpcle-*-*)
ac_config_files="$ac_config_files rs6000/Makefile"
@ -2990,6 +3002,14 @@ else
CONFIG_LM32_FALSE=
fi
if test x$config_riscv = xtrue; then
CONFIG_RISCV_TRUE=
CONFIG_RISCV_FALSE='#'
else
CONFIG_RISCV_TRUE='#'
CONFIG_RISCV_FALSE=
fi
if test x$config_wince = xtrue; then
CONFIG_WINCE_TRUE=
CONFIG_WINCE_FALSE='#'
@ -5211,6 +5231,10 @@ if test -z "${CONFIG_LM32_TRUE}" && test -z "${CONFIG_LM32_FALSE}"; then
as_fn_error $? "conditional \"CONFIG_LM32\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${CONFIG_RISCV_TRUE}" && test -z "${CONFIG_RISCV_FALSE}"; then
as_fn_error $? "conditional \"CONFIG_RISCV\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${CONFIG_WINCE_TRUE}" && test -z "${CONFIG_WINCE_FALSE}"; then
as_fn_error $? "conditional \"CONFIG_WINCE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@ -5848,7 +5872,6 @@ do
"sparc_leon/Makefile") CONFIG_FILES="$CONFIG_FILES sparc_leon/Makefile" ;;
"sparc/Makefile") CONFIG_FILES="$CONFIG_FILES sparc/Makefile" ;;
"mips/Makefile") CONFIG_FILES="$CONFIG_FILES mips/Makefile" ;;
"riscv/Makefile") CONFIG_FILES="$CONFIG_FILES riscv/Makefile" ;;
"rs6000/Makefile") CONFIG_FILES="$CONFIG_FILES rs6000/Makefile" ;;
"mn10200/Makefile") CONFIG_FILES="$CONFIG_FILES mn10200/Makefile" ;;
"mn10300/Makefile") CONFIG_FILES="$CONFIG_FILES mn10300/Makefile" ;;

View File

@ -97,8 +97,7 @@ case "${target}" in
target_makefile_frag=${srcdir}/config/mips.mt
;;
riscv*-*-*)
AC_CONFIG_FILES([riscv/Makefile])
subdirs="$subdirs riscv"
config_riscv=true
;;
powerpc-*-*|powerpcle-*-*)
AC_CONFIG_FILES([rs6000/Makefile])
@ -239,7 +238,7 @@ esac
dnl These subdirs have converted to non-recursive make. Hopefully someday all
dnl the ports above will too!
m4_foreach_w([SUBDIR], [
bfin iq2000 libnosys lm32 wince
bfin iq2000 libnosys lm32 riscv wince
], [dnl
AM_CONDITIONAL([CONFIG_]m4_toupper(SUBDIR), [test x$config_]SUBDIR = xtrue)
])

View File

@ -1,330 +0,0 @@
#-------------------------------------------------------------------------
# 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
#-------------------------------------------------------------------------
Makefile : $(src_dir)/Makefile.in ../config.status
cd .. && $(SHELL) config.status
dist_junk += Makefile
#-------------------------------------------------------------------------
# Default
#-------------------------------------------------------------------------
all : $(install_libs)
.PHONY : all
#-------------------------------------------------------------------------
# Clean up junk
#-------------------------------------------------------------------------
clean :
rm -rf *~ \#* $(junk)
distclean :
rm -rf *~ \#* $(junk) $(dist_junk)
.PHONY : clean distclean

View File

@ -0,0 +1,71 @@
multilibtool_DATA += \
%D%/nano.specs \
%D%/sim.specs \
%D%/semihost.specs \
%D%/crt0.o
multilibtool_LIBRARIES += %D%/libgloss.a
%C%_libgloss_a_CPPFLAGS = -I$(srcdir)/%D%
%C%_libgloss_a_SOURCES = \
%D%/sys_access.c \
%D%/sys_chdir.c \
%D%/sys_chmod.c \
%D%/sys_chown.c \
%D%/sys_close.c \
%D%/sys_conv_stat.c \
%D%/sys_execve.c \
%D%/sys_exit.c \
%D%/sys_faccessat.c \
%D%/sys_fork.c \
%D%/sys_fstat.c \
%D%/sys_fstatat.c \
%D%/sys_ftime.c \
%D%/sys_getcwd.c \
%D%/sys_getpid.c \
%D%/sys_gettimeofday.c \
%D%/sys_isatty.c \
%D%/sys_kill.c \
%D%/sys_link.c \
%D%/sys_lseek.c \
%D%/sys_lstat.c \
%D%/sys_open.c \
%D%/sys_openat.c \
%D%/sys_read.c \
%D%/sys_sbrk.c \
%D%/sys_stat.c \
%D%/sys_sysconf.c \
%D%/sys_times.c \
%D%/sys_unlink.c \
%D%/sys_utime.c \
%D%/sys_wait.c \
%D%/sys_write.c
multilibtool_LIBRARIES += %D%/libsemihost.a
%C%_libsemihost_a_CPPFLAGS = -I$(srcdir)/%D%
%C%_libsemihost_a_SOURCES = \
%D%/nanosleep.c \
%D%/sys_chdir.c \
%D%/sys_chmod.c \
%D%/sys_chown.c \
%D%/sys_execve.c \
%D%/sys_fork.c \
%D%/sys_getcwd.c \
%D%/sys_getpid.c \
%D%/sys_kill.c \
%D%/sys_utime.c \
%D%/sys_wait.c \
%D%/semihost-sys_close.c \
%D%/semihost-sys_exit.c \
%D%/semihost-sys_fdtable.c \
%D%/semihost-sys_fstat.c \
%D%/semihost-sys_ftime.c \
%D%/semihost-sys_isatty.c \
%D%/semihost-sys_link.c \
%D%/semihost-sys_lseek.c \
%D%/semihost-sys_open.c \
%D%/semihost-sys_read.c \
%D%/semihost-sys_sbrk.c \
%D%/semihost-sys_stat.c \
%D%/semihost-sys_stat_common.c \
%D%/semihost-sys_unlink.c \
%D%/semihost-sys_write.c