Revision control
Copy as Markdown
Other Tools
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: |
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}"