|
1 | 1 | #! /usr/bin/make |
2 | 2 |
|
| 3 | +# Use GNU sed on Darwin (macOS) systems, regular sed elsewhere |
| 4 | +ifeq ($(shell uname -s),Darwin) |
| 5 | +SED=gsed |
| 6 | +else |
| 7 | +SED=sed |
| 8 | +endif |
| 9 | + |
3 | 10 | # Extract version from git, or if we're from a zipfile, use dirname |
4 | | -VERSION=$(shell git describe --tags --always --dirty=-modded --abbrev=7 2>/dev/null || pwd | sed -n 's|.*/c\{0,1\}lightning-v\{0,1\}\([0-9a-f.rc\-]*\)$$|v\1|gp') |
| 11 | +VERSION=$(shell git describe --tags --always --dirty=-modded --abbrev=7 2>/dev/null || pwd | $(SED) -n 's|.*/c\{0,1\}lightning-v\{0,1\}\([0-9a-f.rc\-]*\)$$|v\1|gp') |
5 | 12 |
|
6 | 13 | # Next release. |
7 | 14 | CLN_NEXT_VERSION := v25.12 |
@@ -318,30 +325,30 @@ else |
318 | 325 | # Git doesn't maintain timestamps, so we only regen if sources actually changed: |
319 | 326 | # We place the SHA inside some generated files so we can tell if they need updating. |
320 | 327 | # Usage: $(call SHA256STAMP_CHANGED) |
321 | | -SHA256STAMP_CHANGED = [ x"`sed -n 's/.*SHA256STAMP:\([a-f0-9]*\).*/\1/p' $@ 2>/dev/null`" != x"`cat $(sort $(filter-out FORCE,$^)) | $(SHA256SUM) | cut -c1-64`" ] |
| 328 | +SHA256STAMP_CHANGED = [ x"`$(SED) -n 's/.*SHA256STAMP:\([a-f0-9]*\).*/\1/p' $@ 2>/dev/null`" != x"`cat $(sort $(filter-out FORCE,$^)) | $(SHA256SUM) | cut -c1-64`" ] |
322 | 329 | # Usage: $(call SHA256STAMP,commentprefix,commentpostfix) |
323 | 330 | SHA256STAMP = echo "$(1) SHA256STAMP:"`cat $(sort $(filter-out FORCE,$^)) | $(SHA256SUM) | cut -c1-64`"$(2)" >> $@ |
324 | 331 | endif |
325 | 332 |
|
326 | 333 | # generate-wire.py --page [header|impl] hdrfilename wirename < csv > file |
327 | 334 | %_wiregen.h: %_wire.csv $(WIRE_GEN_DEPS) |
328 | 335 | @if $(call SHA256STAMP_CHANGED); then \ |
329 | | - $(call VERBOSE,"wiregen $@",tools/generate-wire.py --page header $($@_args) $@ `basename $< .csv | sed 's/_exp_/_/'` < $< > $@ && $(call SHA256STAMP,//,)); \ |
| 336 | + $(call VERBOSE,"wiregen $@",tools/generate-wire.py --page header $($@_args) $@ `basename $< .csv | $(SED) 's/_exp_/_/'` < $< > $@ && $(call SHA256STAMP,//,)); \ |
330 | 337 | fi |
331 | 338 |
|
332 | 339 | %_wiregen.c: %_wire.csv $(WIRE_GEN_DEPS) |
333 | 340 | @if $(call SHA256STAMP_CHANGED); then \ |
334 | | - $(call VERBOSE,"wiregen $@",tools/generate-wire.py --page impl $($@_args) ${@:.c=.h} `basename $< .csv | sed 's/_exp_/_/'` < $< > $@ && $(call SHA256STAMP,//,)); \ |
| 341 | + $(call VERBOSE,"wiregen $@",tools/generate-wire.py --page impl $($@_args) ${@:.c=.h} `basename $< .csv | $(SED) 's/_exp_/_/'` < $< > $@ && $(call SHA256STAMP,//,)); \ |
335 | 342 | fi |
336 | 343 |
|
337 | 344 | %_printgen.h: %_wire.csv $(WIRE_GEN_DEPS) |
338 | 345 | @if $(call SHA256STAMP_CHANGED); then \ |
339 | | - $(call VERBOSE,"printgen $@",tools/generate-wire.py -s -P --page header $($@_args) $@ `basename $< .csv | sed 's/_exp_/_/'` < $< > $@ && $(call SHA256STAMP,//,)); \ |
| 346 | + $(call VERBOSE,"printgen $@",tools/generate-wire.py -s -P --page header $($@_args) $@ `basename $< .csv | $(SED) 's/_exp_/_/'` < $< > $@ && $(call SHA256STAMP,//,)); \ |
340 | 347 | fi |
341 | 348 |
|
342 | 349 | %_printgen.c: %_wire.csv $(WIRE_GEN_DEPS) |
343 | 350 | @if $(call SHA256STAMP_CHANGED); then \ |
344 | | - $(call VERBOSE,"printgen $@",tools/generate-wire.py -s -P --page impl $($@_args) ${@:.c=.h} `basename $< .csv | sed 's/_exp_/_/'` < $< > $@ && $(call SHA256STAMP,//,)); \ |
| 351 | + $(call VERBOSE,"printgen $@",tools/generate-wire.py -s -P --page impl $($@_args) ${@:.c=.h} `basename $< .csv | $(SED) 's/_exp_/_/'` < $< > $@ && $(call SHA256STAMP,//,)); \ |
345 | 352 | fi |
346 | 353 |
|
347 | 354 | RUST_PROFILE ?= debug |
@@ -411,7 +418,7 @@ ALL_TEST_GEN += $(GRPC_GEN) |
411 | 418 | $(GRPC_GEN) &: cln-grpc/proto/node.proto cln-grpc/proto/primitives.proto |
412 | 419 | $(PYTHON) -m grpc_tools.protoc -I cln-grpc/proto cln-grpc/proto/node.proto --python_out=$(GRPC_PATH)/ --grpc_python_out=$(GRPC_PATH)/ --experimental_allow_proto3_optional |
413 | 420 | $(PYTHON) -m grpc_tools.protoc -I cln-grpc/proto cln-grpc/proto/primitives.proto --python_out=$(GRPC_PATH)/ --experimental_allow_proto3_optional |
414 | | - find $(GRPC_DIR)/ -type f -name "*.py" -print0 | xargs -0 sed -i'.bak' -e 's/^import \(.*\)_pb2 as .*__pb2/from pyln.grpc import \1_pb2 as \1__pb2/g' |
| 421 | + find $(GRPC_DIR)/ -type f -name "*.py" -print0 | xargs -0 $(SED) -i'.bak' -e 's/^import \(.*\)_pb2 as .*__pb2/from pyln.grpc import \1_pb2 as \1__pb2/g' |
415 | 422 | find $(GRPC_DIR)/ -type f -name "*.py.bak" -print0 | xargs -0 rm -f |
416 | 423 |
|
417 | 424 | # We make pretty much everything depend on these. |
@@ -444,7 +451,7 @@ mkdocs.yml: $(MANPAGES:=.md) |
444 | 451 | @$(call VERBOSE, "genidx $@", \ |
445 | 452 | find doc -maxdepth 1 -name '*\.[0-9]\.md' | \ |
446 | 453 | cut -b 5- | LC_ALL=C sort | \ |
447 | | - sed 's/\(.*\)\.\(.*\).*\.md/- "\1": "\1.\2.md"/' | \ |
| 454 | + $(SED) 's/\(.*\)\.\(.*\).*\.md/- "\1": "\1.\2.md"/' | \ |
448 | 455 | $(PYTHON) devtools/blockreplace.py mkdocs.yml manpages --language=yml --indent " " \ |
449 | 456 | ) |
450 | 457 |
|
@@ -559,7 +566,7 @@ check-python-flake8: |
559 | 566 | @# E731 do not assign a lambda expression, use a def |
560 | 567 | @# W503: line break before binary operator |
561 | 568 | @# E741: ambiguous variable name |
562 | | - @uv run flake8 --ignore=E501,E731,E741,W503,F541,E275 --exclude $(shell echo ${PYTHON_GENERATED} | sed 's/ \+/,/g') ${PYSRC} |
| 569 | + @uv run flake8 --ignore=E501,E731,E741,W503,F541,E275 --exclude $(shell echo ${PYTHON_GENERATED} | $(SED) 's/ \+/,/g') ${PYSRC} |
563 | 570 |
|
564 | 571 | check-pytest-pyln-proto: |
565 | 572 | PATH=$(PYLN_PATH) PYTHONPATH=$(MY_CHECK_PYTHONPATH) uv run $(PYTEST) contrib/pyln-proto/tests/ |
@@ -717,7 +724,7 @@ $(ALL_TEST_PROGRAMS:=.o): $(ALL_GEN_SOURCES) |
717 | 724 |
|
718 | 725 | update-ccan: |
719 | 726 | mv ccan ccan.old |
720 | | - DIR=$$(pwd)/ccan; cd ../ccan && ./tools/create-ccan-tree -a $$DIR `cd $$DIR.old/ccan && find * -name _info | sed s,/_info,, | $(SORT)` $(CCAN_NEW) |
| 727 | + DIR=$$(pwd)/ccan; cd ../ccan && ./tools/create-ccan-tree -a $$DIR `cd $$DIR.old/ccan && find * -name _info | $(SED) s,/_info,, | $(SORT)` $(CCAN_NEW) |
721 | 728 | mkdir -p ccan/tools/configurator |
722 | 729 | cp ../ccan/tools/configurator/configurator.c ../ccan/doc/configurator.1 ccan/tools/configurator/ |
723 | 730 | $(MAKE) ccan/config.h |
@@ -772,8 +779,8 @@ update-pyln-versions: $(PYLNS:%=update-pyln-version-%) |
772 | 779 | update-pyln-version-%: |
773 | 780 | @if [ -z "$(NEW_VERSION)" ]; then echo "Set NEW_VERSION!" >&2; exit 1; fi |
774 | 781 | @echo "Updating contrib/pyln-$* to $(NEW_VERSION)" |
775 | | - @sed -i.bak 's/^version = .*/version = "$(NEW_VERSION)"/' contrib/pyln-$*/pyproject.toml && rm contrib/pyln-$*/pyproject.toml.bak |
776 | | - @sed -i.bak 's/^__version__ = .*/__version__ = "$(NEW_VERSION)"/' contrib/pyln-$*/pyln/$*/__init__.py && rm contrib/pyln-$*/pyln/$*/__init__.py.bak |
| 782 | + @$(SED) -i.bak 's/^version = .*/version = "$(NEW_VERSION)"/' contrib/pyln-$*/pyproject.toml && rm contrib/pyln-$*/pyproject.toml.bak |
| 783 | + @$(SED) -i.bak 's/^__version__ = .*/__version__ = "$(NEW_VERSION)"/' contrib/pyln-$*/pyln/$*/__init__.py && rm contrib/pyln-$*/pyln/$*/__init__.py.bak |
777 | 784 |
|
778 | 785 | pyln-release: $(PYLNS:%=pyln-release-%) |
779 | 786 |
|
@@ -805,7 +812,7 @@ update-lock: |
805 | 812 | update-reckless-version: |
806 | 813 | @if [ -z "$(NEW_VERSION)" ]; then echo "Set NEW_VERSION!" >&2; exit 1; fi |
807 | 814 | @echo "Updating tools/reckless to $(NEW_VERSION)" |
808 | | - @sed -i.bak "s/__VERSION__ = '.*'/__VERSION__ = '$(NEW_VERSION)'/" tools/reckless && rm tools/reckless.bak |
| 815 | + @$(SED) -i.bak "s/__VERSION__ = '.*'/__VERSION__ = '$(NEW_VERSION)'/" tools/reckless && rm tools/reckless.bak |
809 | 816 |
|
810 | 817 | update-dot-version: |
811 | 818 | @if [ -z "$(NEW_VERSION)" ]; then echo "Set NEW_VERSION!" >&2; exit 1; fi |
|
0 commit comments