Skip to content

Commit

Permalink
fix: macos compatibility (#111)
Browse files Browse the repository at this point in the history
Signed-off-by: Tronje Krop <[email protected]>
  • Loading branch information
tkrop committed Oct 30, 2024
1 parent f0ac228 commit 552ddb4
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 11 deletions.
28 changes: 25 additions & 3 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,32 @@ jobs:
version: 9

- name: Run Bash compatibility tests
run: |-
make --version;
make --file=config/Makefile.base --trace test-self;
macos:
runs-on: macos-latest
steps:
# - name: Set up Docker
# uses: crazy-max/ghaction-setup-docker@v3

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.23.2

- name: Checkout code
uses: actions/checkout@v4

- name: Run MacOS compatibility tests
env:
BASH_COMPAT: 3.2
run: |-
make --version
make --file=config/Makefile.base --trace test-self
make --file=config/Makefile.base test-self
macos:
macos-brew:
runs-on: macos-latest
steps:
# - name: Set up Docker
Expand All @@ -87,7 +108,8 @@ jobs:
brew install make;
export PATH="/opt/homebrew/opt/make/libexec/gnubin:${PATH}";
make --version;
make --file=config/Makefile.base --trace test-self
make --file=config/Makefile.base --trace test-self;
release:
runs-on: ubuntu-latest
Expand Down
18 changes: 10 additions & 8 deletions config/Makefile.base
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@
SHELL := /bin/bash

# Setup variables for special purposes.
NULL :=
COMMA := ,
SPACE := $(NULL) $(NULL)
TAB := $(NULL) $(NULL)
SPACE := $(SPACE) $(SPACE)
TAB := $(TAB) $(TAB)
define NEWLINE


Expand Down Expand Up @@ -46,31 +45,34 @@ endif

# System depdendent helper functions.
ifeq ("$(shell uname)","Linux")
MAKESHELL := PATH=$(PATH) /bin/bash
else ifeq ($(shell uname),Darwin)
path-setup = $(shell \
if [ "$(1)" == "opt" ]; then \
XPATH="$(shell brew --prefix)/$(1)/$(2)/libexec/gnubin"; \
else XPATH="$(shell brew --prefix)/$(1)"; fi; \
test ! -e "$${XPATH}/$(3)" && brew install $(2) >&2; \
echo -n "$${XPATH}:$(4)")
if [ -n "$(4)" ]; then echo -n "$${XPATH}:$(4)"; \
else echo -n "$${XPATH}"; fi)
export PATH := $(call path-setup,opt,coreutils,ls,$(PATH))
export PATH := $(call path-setup,opt,findutils,find,$(PATH))
export PATH := $(call path-setup,bin,bash,bash,$(PATH))
# export PATH := $(call path-setup,bin,curl,curl,$(PATH))
export PATH := $(call path-setup,bin,curl,curl,$(PATH))
export PATH := $(call path-setup,opt,gawk,awk,$(PATH))
export PATH := $(call path-setup,opt,gsed,sed,$(PATH))
export PATH := $(call path-setup,opt,make,make,$(PATH))
# Ensure export of path to $(shell ...) in gmake 3.81.
MAKESHELL := PATH=$(PATH) /bin/bash
# ifeq (3.81,$(MAKE_VERSION))
export SHELL := $(shell brew --prefix)/bin/bash
# endif
else
$(call cerror,unsupported operating system [$(shell uname --all)])
endif

# Log execution environment for debugging.
$(call cdebug,$(shell uname --all))
$(call cdebug,using BASH [$${0} - $${BASH_VERSION}])
$(call cdebug,using PATH [$(shell echo -n "$${PATH}")])
$(call cdebug,using PATH [$${PATH}])
$(call cdebug,using SHELL [$${SHELL}])

# Helper function to find and remove source files.
find-all = find $(1) ! -path "./run/*" ! -path "./build/*" \( $(2) \) 2>/dev/null | \
Expand Down

0 comments on commit 552ddb4

Please sign in to comment.