From 40fe9c956a5b9837342a4016d604cfd402cfa621 Mon Sep 17 00:00:00 2001 From: Koichi Murase Date: Fri, 23 Aug 2024 20:31:57 +0900 Subject: [PATCH] make: support make variable "USE_DOC=no" --- GNUmakefile | 16 ++++++++++------ README-ja_JP.md | 31 ++++++++++++++++++++++++++----- README.md | 34 ++++++++++++++++++++++++++++------ contrib | 2 +- docs/ChangeLog.md | 1 + note.txt | 15 +++++++++++++++ 6 files changed, 81 insertions(+), 18 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index a867126a..32a2d5c5 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -152,12 +152,14 @@ removedfiles += \ # documents outdirs += $(OUTDIR)/doc -outfiles-doc += $(OUTDIR)/doc/README.md -outfiles-doc += $(OUTDIR)/doc/README-ja_JP.md -outfiles-doc += $(OUTDIR)/doc/CONTRIBUTING.md -outfiles-doc += $(OUTDIR)/doc/ChangeLog.md -outfiles-doc += $(OUTDIR)/doc/Release.md outfiles-license += $(OUTDIR)/doc/LICENSE.md +ifneq ($(USE_DOC),no) + outfiles-doc += $(OUTDIR)/doc/README.md + outfiles-doc += $(OUTDIR)/doc/README-ja_JP.md + outfiles-doc += $(OUTDIR)/doc/CONTRIBUTING.md + outfiles-doc += $(OUTDIR)/doc/ChangeLog.md + outfiles-doc += $(OUTDIR)/doc/Release.md +endif # Note #D2065: make-3.81 のバグにより以下の様に記述すると、より長く一致するパター # ンを持った規則よりも優先されてしまう。3.82 では問題は発生しない。% の代わりに @@ -245,9 +247,11 @@ uninstall: $(INSDIR)/%: $(OUTDIR)/% bash make_command.sh install $(opt_strip_comment) "$<" "$@" +ifneq ($(INSDIR_DOC),$(INSDIR)) $(INSDIR_DOC)/%: $(OUTDIR)/doc/% bash make_command.sh install "$<" "$@" -ifneq ($(INSDIR_DOC),$(INSDIR_LICENSE)) +endif +ifneq ($(findstring $(INSDIR_LICENSE),$(INDDIR) $(INSDIR_DOC)),) $(INSDIR_LICENSE)/%: $(OUTDIR)/doc/% bash make_command.sh install "$<" "$@" endif diff --git a/README-ja_JP.md b/README-ja_JP.md index 470c2439..27d2fbf3 100644 --- a/README-ja_JP.md +++ b/README-ja_JP.md @@ -295,14 +295,35 @@ make install # 指定したディレクトリにインストール make install INSDIR=/path/to/blesh -# パッケージ作成用 (パッケージ管理者用) +# パッケージ作成 (パッケージ管理者用) - 例1 make install DESTDIR=/tmp/blesh-package PREFIX=/usr/local + +# パッケージ作成 - 例2 +make install DESTDIR="$build" PREFIX="$prefix" \ + INSDIR_LICENSE="$build/$prefix/licenses/blesh" + +# パッケージ作成 - 例3 +make install DESTDIR="$build" PREFIX="$prefix" \ + INSDIR_LICENSE="$build/$prefix/share/blesh/doc" \ + INSDIR_DOC="$build/$prefix/share/blesh/doc" + +# パッケージ作成 - 例4 +make install USE_DOC=no DESTDIR="$build" PREFIX="$prefix" \ + INSDIR_LICENSE="$build/$prefix/share/blesh" ``` -Make 変数 `DESTDIR` または `PREFIX` が指定されている時、`ble.sh` は `$DESTDIR/$PREFIX/share/blesh` にコピーされます。 -それ以外で Make 変数 `INSDIR` が指定されている時、直接 `$INSDIR` にインストールされます。 -更にそれ以外で環境変数 `$XDG_DATA_HOME` が指定されている時、`$XDG_DATA_HOME/blesh` にインストールされます。 -以上の変数が何れも指定されていない時の既定のインストール先は `~/.local/share/blesh` です。 +Make 変数 `DESTDIR` または `PREFIX` が指定されている時、 +`ble.sh` 及び関連ファイルは `$DESTDIR/$PREFIX/share/blesh` に、 +ライセンス及びドキュメントは `$DESTDIR/$PREFIX/share/doc/blesh` にコピーされます。 +それ以外で Make 変数 `INSDIR` が指定されている時、 +`ble.sh` 及び関連ファイルは直接 `$INSDIR` に配置され、 +ライセンス及びドキュメントは `$INSDIR/doc` にコピーされます。 +以上の Make 変数が指定されていない時は、 +`ble.sh` 及び関連ファイルは `${XDG_DATA_HOME:-$HOME/.local/share}/blesh` に、 +ライセンス及びドキュメントは `${XDG_DATA_HOME:-$HOME/.local/share}/doc/blesh` にインストールされます。 + +ライセンス及びドキュメントのインストール先は Make 変数 `INSDIR_LICENSE` と `INSDIR_DOC` を用いて上書きできます。 +Make 変数 `USE_DOC=no` が指定されている場合は、ドキュメントファイルの処理が無効化されます。 インストール時にコード中のコメントは自動で削除されますが、コメントを保持したい場合は `strip_comment=no` を `make` の引数に指定して下さい。 diff --git a/README.md b/README.md index d0b92344..ca10b35f 100644 --- a/README.md +++ b/README.md @@ -329,14 +329,36 @@ make install # INSTALL to a specified directory make install INSDIR=/path/to/blesh -# PACKAGE (for package maintainers) +# PACKAGE (for package maintainers) - Example 1 make install DESTDIR=/tmp/blesh-package PREFIX=/usr/local -``` -If either the make variables `DESTDIR` or `PREFIX` is supplied, `ble.sh` will be copied to `$DESTDIR/$PREFIX/share/blesh`. -Otherwise, if the make variables `INSDIR` is specified, it will be installed directly on `$INSDIR`. -Otherwise, if the environment variable `$XDG_DATA_HOME` is defined, the install location will be `$XDG_DATA_HOME/blesh`. -If none of these variables are specified, the default install location is `~/.local/share/blesh`. +# PACKAGE - Example 2 +make install DESTDIR="$build" PREFIX="$prefix" \ + INSDIR_LICENSE="$build/$prefix/licenses/blesh" + +# PACKAGE - Example 3 +make install DESTDIR="$build" PREFIX="$prefix" \ + INSDIR_LICENSE="$build/$prefix/share/blesh/doc" \ + INSDIR_DOC="$build/$prefix/share/blesh/doc" + +# PACKAGE - Example 4 +make install USE_DOC=no DESTDIR="$build" PREFIX="$prefix" \ + INSDIR_LICENSE="$build/$prefix/share/blesh" +``` + +If make variable `DESTDIR` or `PREFIX` is supplied, `ble.sh` and related files +will be copied into `$DESTDIR/$PREFIX/share/blesh`, and the license and +documentation files will be copied into `$DESTDIR/$PREFIX/share/doc/blesh`. +Otherwise, if make variable `INSDIR` is specified, `ble.sh` and related files +will be installed directly in `$INSDIR`, and the license and documentation +files will be copied into `$INSDIR/doc`. If none of these make variables are +defined, `ble.sh` and related files are installed in +`${XDG_DATA_HOME:-$HOME/.local/share}/blesh`, and the license and document +files are installed in `${XDG_DATA_HOME:-$HOME/.local/share}/doc/blesh`. + +The install locations of the license and documentation files can be overridden +by make variables `INSDIR_LICENSE` and `INSDIR_DOC`. If `USE_DOC=no` is +specified, the documentation files are disabled. The comment lines and blank lines in the script files are stripped in the installation process. If you would like to keep these lines in the script files, please specify the argument `strip_comment=no` to `make`. diff --git a/contrib b/contrib index 4edfa8ba..5cd7b067 160000 --- a/contrib +++ b/contrib @@ -1 +1 @@ -Subproject commit 4edfa8ba835e3cd21af365e87449765302f25b4b +Subproject commit 5cd7b067b0f590fa5dc02d6faa1dfe4420ce4b28 diff --git a/docs/ChangeLog.md b/docs/ChangeLog.md index 96e268c2..fafe3198 100644 --- a/docs/ChangeLog.md +++ b/docs/ChangeLog.md @@ -55,6 +55,7 @@ - color: adjust default fg values in faces and add `bleopt color_scheme` (requested by mattmc3) `#D2248` e4cce0ea 5f5554a8 `#D2258` xxxxxxxx - highlight: add `bleopt highlight_eval_word_limit` (motivated by orionalves) `#D2256` 6833bdf8 - progcomp: support `complete -E` `#D2257` xxxxxxxx +- make: support make variable `USE_DOC=no` `#D2259` xxxxxxxx ## Changes diff --git a/note.txt b/note.txt index 2cfeeb27..9db20d81 100644 --- a/note.txt +++ b/note.txt @@ -7373,6 +7373,21 @@ bash_tips 2024-08-23 + * make: make variable "USE_DOC=no" (requested by blackteahamburger) [#D2260] + https://github.com/akinomyoga/ble.sh/issues/485 + + 取り敢えず実装した。USE_DOC=no で指定できる。最初は INSDIR_DOC=none 等を指 + 定した時に無効化できるようにしようと思ったが、それだと make install だけし + か影響を受けない機能のようだし、やはり任意の値を指定できるはずのパス名の設 + 定に特別な値を導入するのは良くない気がする。なので、USE_DOC という変数名に + する事にする。 + + * done: README をもう少し詳しく記述する。 + * done: README-ja_JP も同様に更新する。 + + * fixed: INSDIR_LICENSE と INSDIR_DOC が同じ場合の対策はしているが、それら + が INSDIR と一致する場合の対策がされていない気がする。修正する。 + * contrib: fzf-menu 修正 (reported by pallaswept) [#D2259] https://github.com/akinomyoga/ble.sh/issues/479#issuecomment-2305871596 Ref: #D2251