Skip to content

Commit

Permalink
make: work around make-3.81 bug of pattern rules
Browse files Browse the repository at this point in the history
  • Loading branch information
akinomyoga committed Aug 17, 2023
1 parent acf3b09 commit f7ec170
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 6 deletions.
17 changes: 16 additions & 1 deletion GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,22 @@ outfiles-doc += $(OUTDIR)/doc/CONTRIBUTING.md
outfiles-doc += $(OUTDIR)/doc/ChangeLog.md
outfiles-doc += $(OUTDIR)/doc/Release.md
outfiles-license += $(OUTDIR)/doc/LICENSE.md
$(OUTDIR)/doc/%: % | $(OUTDIR)/doc

# Note #D2065: make-3.81 のバグにより以下の様に記述すると、より長く一致するパター
# ンを持った規則よりも優先されてしまう。3.82 では問題は発生しない。% の代わりに
# %.md にしたとしても、%.md が contrib/README.md 等に一致してしまう。仕方がない
# ので $(OUTDIR)/doc/%: % に対応するファイルに関しては明示的に一つずつ記述する
# 事にする。
#
# $(OUTDIR)/doc/%: % | $(OUTDIR)/doc
# $(CP) $< $@
#
# Workaround for make-3.81:
$(OUTDIR)/doc/README.md: README.md | $(OUTDIR)/doc
$(CP) $< $@
$(OUTDIR)/doc/README-ja_JP.md: README-ja_JP.md | $(OUTDIR)/doc
$(CP) $< $@
$(OUTDIR)/doc/LICENSE.md: LICENSE.md | $(OUTDIR)/doc
$(CP) $< $@

$(OUTDIR)/doc/%: docs/% | $(OUTDIR)/doc
Expand Down
2 changes: 1 addition & 1 deletion contrib
Submodule contrib updated 1 files
+6 −6 contrib.mk
3 changes: 2 additions & 1 deletion docs/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
- history (`ble/builtin/history -w`): write file even without any new entries (requested by Jai-JAP) `#D2053` c78e5c9f
- auto-complete: overwrite subsequent characters with self-insert in overwrite mode `#D2059` 7044b2db
- complete: move face definitions `menu_filter_*` to `core-complete-def.sh` `#D2060` af022266
- make: add `INSDIR_LICENSE` for install location of licenses (reported by willemw) `#D2063` d39998f0 xxxxxxxx
- make: add `INSDIR_LICENSE` for install location of licenses (reported by willemw) `#D2064` d39998f0 xxxxxxxx

## Fixes

Expand All @@ -43,6 +43,7 @@
- complete: update a workaround for cobra-1.5.0 (reported by 3ximus) `#D2057` a24435d3
- make: work around ecryptfs bug (reported by juanejot) `#D2058` 969a763e dc0cdb30
- edit: update mc-4.8.29 integration (reported by mooreye) `#D2062` 2c4194a2 68c5c5c4
- make: work around `make-3.81` bug of pattern rules `#D2065` xxxxxxxx

## Contrib

Expand Down
30 changes: 27 additions & 3 deletions note.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6923,17 +6923,41 @@ bash_tips
Done (実装ログ)
-------------------------------------------------------------------------------

2023-08-17

* Makefile: github/workflows の macos-latest で失敗する [#D2065]

色々実験した結果、どうやら make-3.81 では以下の規則があった時に三つ目に合致
するファイル名の時であっても、一つ目の規則を適用してしまう様である。3.82 で
はちゃんと問題なく動作する。

| $(OUTDIR)/doc/%: % | $(OUTDIR)/doc
| $(CP) $< $@
| $(OUTDIR)/doc/%: docs/% | $(OUTDIR)/doc
| $(CP) $< $@
| $(OUTDIR)/doc/contrib/%.md: contrib/%.md | $(OUTDIR)/doc/contrib
| $(CP) $< $@

よく見てみるとこの make-3.81 における問題は contrib.mk にも既に書かれていた。
contrib.mk における回避方法は三番目の規則をより詳しくすると言う物だったが、
実は一つ目の規則を消して代わりにファイルを一つずつ記述する方が現実的の気が
する。その様に変更する事にする。

x contrib.mk で定義されているマクロ名に綴り間違いがある。序でにこれも修正し
ておく。

2023-08-16

* PKGBUILD: 色々とけちがついているので修正する (requested by willemw) [#D2063]
* PKGBUILD: 色々とけちがついているので修正する (requested by willemw) [#D2064]
https://aur.archlinux.org/packages/blesh-git#comment-929483

* provides & conflicts を修正した
* depends & makedepends の修正
* /usr/share/licenses/blesh に配置するライセンス

* external: bash-3.2 初期化で無限ループになる。bash --norc で開始した後に
source out/ble.sh しても問題は発生しない。
* external: bash-3.2 初期化で無限ループになる [#D2063]

bash --norc で開始した後に source out/ble.sh しても問題は発生しない。

→これは単に ~/.bashrc の方のバグだった。ble/util/idle.push のサポートが無
い時に ble-import -d 経由で無限ループが明示的にできていた。
Expand Down

0 comments on commit f7ec170

Please sign in to comment.