mirror of
https://github.com/ruby/ruby.git
synced 2026-10-28 08:25:20 +08:00
Extract source files generation
This commit is contained in:
3 files changed
+53
-14
Notes:
git
2026-07-26 13:33:39 +00:00
No files matched your search
@@ -158,22 +158,9 @@ runs:
|
||||
working-directory: ${{ inputs.srcdir }}
|
||||
run: |
|
||||
ruby tool/missing-baseruby.bat --verbose
|
||||
touch config.status .rbconfig.time
|
||||
for mk in Makefile GNUmakefile; do
|
||||
sed -f tool/prereq.status template/$mk.in > $mk
|
||||
done
|
||||
make up
|
||||
bash tool/gen-sources.bash up
|
||||
echo RUBY_DUMP_AST=true >> "$GITHUB_ENV"
|
||||
|
||||
# Cleanup, runs even on failure
|
||||
- if: always() && inputs.makeup
|
||||
shell: bash
|
||||
working-directory: ${{ inputs.srcdir }}
|
||||
run: |
|
||||
rm -f config.status .rbconfig.time \
|
||||
Makefile GNUmakefile uncommon.mk enc.mk noarch-fake.rb
|
||||
rm -f prism/.time prism/util/.time
|
||||
|
||||
- if: steps.which.outputs.sudo
|
||||
shell: bash
|
||||
run: |
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
nop=
|
||||
dump_ast=
|
||||
|
||||
opt= optarg=
|
||||
while getopts cd:n-: opt; do
|
||||
optarg="$OPTARG"
|
||||
if [[ "$opt" = - ]]; then
|
||||
opt="-${optarg%%=*}"
|
||||
if [[ "$optarg" = *=* ]]; then optarg="${optarg#*=}";
|
||||
elif optarg="${!OPTIND}"; [[ "${optarg}" = -* ]]; then optarg=
|
||||
else shift; fi
|
||||
fi
|
||||
|
||||
case "-$opt" in
|
||||
-c|--clean) nop=:;;
|
||||
-n|--dry-run) nop=echo;;
|
||||
-d|--dump[-_]ast) dump_ast="$optarg" RUBY_DUMP_AST=;;
|
||||
--) break;;
|
||||
-*) echo "${0##*/}: Unknown option $1" 1>&2; exit 1;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND-1))
|
||||
|
||||
if tooldir="${0%/*}"; [ "$tooldir" = "$0" ]; then
|
||||
tooldir=. srcdir=..
|
||||
elif srcdir="${tooldir%/*}"; [ "$srcdir" = "$tooldir" ]; then
|
||||
srcdir=.
|
||||
fi
|
||||
template="${srcdir}/template"
|
||||
|
||||
[ "$nop" = echo ] || trap 'rm -fr "${clean[@]}"' 0 2
|
||||
|
||||
for t in config.status .rbconfig.time Makefile GNUmakefile; do
|
||||
[ -z "${nop}" -a -e "$t" ] && echo "exist: $t" && exit 1
|
||||
done
|
||||
|
||||
${nop} touch config.status .rbconfig.time
|
||||
clean=(config.status .rbconfig.time)
|
||||
for mk in Makefile GNUmakefile; do
|
||||
[ ${nop} ] || sed -f "$tooldir/prereq.status" "$template/$mk.in" > $mk
|
||||
clean+=("$mk")
|
||||
done
|
||||
clean+=(prism/.time prism/util/.time build-tool)
|
||||
${nop} make "HAVE_BASERUBY=yes" "BASERUBY=${RUBY-ruby}" \
|
||||
${RUBY_DUMP_AST:+"DUMP_AST=$RUBY_DUMP_AST" "DUMP_AST_TARGET=no"} \
|
||||
"${@-prereq}"
|
||||
[ -z "$dump_ast" ] || ${nop} cp build-tool/dump_ast "$dump_ast"
|
||||
${nop} rm -fr "${clean[@]}"
|
||||
@@ -16,6 +16,7 @@ s,@CXXFLAGS@,,g
|
||||
s,@DLDFLAGS@,,g
|
||||
s,@DTRACE_EXT@,dmyh,g
|
||||
s,@EXEEXT@,,g
|
||||
s,@GIT@,git,g
|
||||
s,@HAVE_BASERUBY@,yes,g
|
||||
s,@IFCHANGE@,tool/ifchange,g
|
||||
s,@LDFLAGS@,,g
|
||||
|
||||
Reference in new issue
Block a user