Skip to content

Commit

Permalink
make: support make variable "USE_DOC=no"
Browse files Browse the repository at this point in the history
  • Loading branch information
akinomyoga committed Aug 23, 2024
1 parent 5b9d9ab commit 40fe9c9
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 18 deletions.
16 changes: 10 additions & 6 deletions GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -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 では問題は発生しない。% の代わりに
Expand Down Expand Up @@ -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
Expand Down
31 changes: 26 additions & 5 deletions README-ja_JP.md
Original file line number Diff line number Diff line change
Expand Up @@ -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` の引数に指定して下さい。

Expand Down
34 changes: 28 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
Expand Down
2 changes: 1 addition & 1 deletion contrib
Submodule contrib updated 1 files
+3 −1 contrib.mk
1 change: 1 addition & 0 deletions docs/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
15 changes: 15 additions & 0 deletions note.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 40fe9c9

Please sign in to comment.