37 lines
1.2 KiB
YAML
37 lines
1.2 KiB
YAML
name: Compile make
|
|
description: compile-make
|
|
inputs:
|
|
version:
|
|
description: make version
|
|
required: true
|
|
workaround:
|
|
description: enable workaround for _alloc bug
|
|
required: false
|
|
default: "false"
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Cache make compiled
|
|
if: ${{ !startsWith(runner.os, 'windows') }}
|
|
id: cache-maka
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: /usr/local/bin/make-${{ inputs.version }}
|
|
key: v1-${{ runner.os }}-make-${{ inputs.version }}
|
|
|
|
- name: Make GNU Make from source
|
|
if: ${{ !startsWith(runner.os, 'windows') && steps.cache-make.outputs.cache-hit != 'true' }}
|
|
env:
|
|
VERSION: ${{ inputs.version }}
|
|
WORKAROUND: ${{ inputs.workaround }}
|
|
shell: bash
|
|
run: |
|
|
curl "https://ftp.gnu.org/gnu/make/make-${VERSION}.tar.gz" | tar xz
|
|
pushd "make-${VERSION}"
|
|
./configure
|
|
[[ "$WORKAROUND" = "true" ]] && sed -i 's/#if !defined __alloca \&\& !defined __GNU_LIBRARY__/#if !defined __alloca \&\& defined __GNU_LIBRARY__/g; s/#ifndef __GNU_LIBRARY__/#ifdef __GNU_LIBRARY__/g' "./glob/glob.c"
|
|
make -j 4
|
|
popd
|
|
cp -p "make-${VERSION}/make" "/usr/local/bin/make-${VERSION}"
|