14
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

オライリーの「GNU Make 第3版 日本語版」の PDF 版を入手する

Last updated at Posted at 2023-02-08

はじめに

オライリーから発行されている「GNU Make 第3版 日本語版」は、GNU Free Documentation License に従い、PDFで配布されています。

(他にも O'Reilly Library として「オープンソースソフトウェアの育て方」「オープンソースソフトウェア」が公開されているみたい)

GNU Make 第3版のPDFをダウンロード

上記のページから PDF を1つづつダウンロードします。

手動でダウンロードしてきてもいいけど、今回は curl コマンドを使いました。

paths.txt
mae.pdf
maegaki.pdf
contents.pdf
ch01.pdf
ch02.pdf
ch03.pdf
ch04.pdf
ch05.pdf
ch06.pdf
ch07.pdf
ch08.pdf
ch09.pdf
ch10.pdf
ch11.pdf
ch12.pdf
appA.pdf
appB.pdf
appC.pdf
index.pdf
ato.pdf
for url_path in $(cat paths.txt) ; do
    curl -sO "https://www.oreilly.co.jp/library/4873112699/${url_path}"
    sleep 1
done

sleep 1 は、サーバにあまり負荷を掛けたくないな、と思ったので。

PDF の結合

この PDF は章ごとに分かれているため、個人で使う場合にはまとめて 1 つの PDF にしておきたいな、と思いました。
PDF の結合自体はいろいろなコマンドでできるみたいですが、今回は pdftk を使ってみました。

Ubuntu の場合にはインストールは以下のような感じ。

sudo apt install pdftk

それ以外の OS ではそれなりの方法でインストールが必要だと思います。

では pdftk コマンドで結合します。

pdftk $(cat paths.txt) cat output output.pdf

output.pdf というファイル名で出力されました。

しおり情報の追加

このまま使ってもいいけど、せっかくなのでしおり情報も追加してみます。

以下のファイルを UTF-8 で保存します。

bookmark.txt
BookmarkBegin
BookmarkTitle: 表紙
BookmarkLevel: 1
BookmarkPageNumber: 1
BookmarkBegin
BookmarkTitle: まえがき等
BookmarkLevel: 2
BookmarkPageNumber: 7
BookmarkBegin
BookmarkTitle: 目次
BookmarkLevel: 2
BookmarkPageNumber: 17
BookmarkBegin
BookmarkTitle: 1章 簡単なメイクファイルを書いてみよう
BookmarkLevel: 1
BookmarkPageNumber: 22
BookmarkBegin
BookmarkTitle: 2章 ルール
BookmarkLevel: 1
BookmarkPageNumber: 29
BookmarkBegin
BookmarkTitle: 3章 変数とマクロ
BookmarkLevel: 1
BookmarkPageNumber: 59
BookmarkBegin
BookmarkTitle: 4章 関数
BookmarkLevel: 1
BookmarkPageNumber: 80
BookmarkBegin
BookmarkTitle: 5章 コマンド
BookmarkLevel: 1
BookmarkPageNumber: 108
BookmarkBegin
BookmarkTitle: 6章 大きなプロジェクトの管理
BookmarkLevel: 1
BookmarkPageNumber: 126
BookmarkBegin
BookmarkTitle: 7章 ポータブルなmakefile
BookmarkLevel: 1
BookmarkPageNumber: 148
BookmarkBegin
BookmarkTitle: 8章 CとC++
BookmarkLevel: 1
BookmarkPageNumber: 159
BookmarkBegin
BookmarkTitle: 9章 Java
BookmarkLevel: 1
BookmarkPageNumber: 179
BookmarkBegin
BookmarkTitle: 10章 makeの性能改善
BookmarkLevel: 1
BookmarkPageNumber: 199
BookmarkBegin
BookmarkTitle: 11章 makefileの実例
BookmarkLevel: 1
BookmarkPageNumber: 213
BookmarkBegin
BookmarkTitle: 12章 makefileのデバッグ
BookmarkLevel: 1
BookmarkPageNumber: 248
BookmarkBegin
BookmarkTitle: 付録A makeの実行
BookmarkLevel: 1
BookmarkPageNumber: 265
BookmarkBegin
BookmarkTitle: 付録B 限界を超えて
BookmarkLevel: 1
BookmarkPageNumber: 268
BookmarkBegin
BookmarkTitle: 付録C GNU Free Documentation License――GNU Project――Free Software Foundation (FSF)
BookmarkLevel: 1
BookmarkPageNumber: 280
BookmarkBegin
BookmarkTitle: 索引
BookmarkLevel: 1
BookmarkPageNumber: 286
BookmarkBegin
BookmarkTitle: 奥付
BookmarkLevel: 1
BookmarkPageNumber: 296

面倒だったので、章単位のみです(節単位のしおりが欲しい人は、自分で頑張ってください)。

pdftk のしおり情報のフォーマットは以下が参考になると思います。

ちなみに、「まえがき等」というのは「監訳者まえがき」「まえがき」「第3版にむけて」をまとめているからです(雑な対応)。

さっきの output.pdf に、このしおり情報を追加して、GNU Make 第3版.pdf を作ってみます。

pdftk output.pdf update_info_utf8 bookmark.txt output "GNU Make 第3版.pdf"

完成しました!

個人利用は問題ないと思いますが、ご利用はライセンス(GFDL; GNU Free Documentation License)に従ってください。
詳細は上記の PDF の付録Cに書いてあります。
GFDL の日本語参考訳は以下で公開してくれているようです。

【日本語の参考訳(GFDL-1.2)】

英語版 GNU Make 第3版の場合

クリックで開閉ができます

英語版も、基本的に日本語版と同じように作れます。

英語版の GNU Make のページからファイルをダウンロードします。

ちなみに、Open Books のページには他にもたくさんの無償提供の書籍があります(html 版も多いですが)。一番上のおサルさんの画像は、たまに目をパチクリさせます。かわいい。

paths.txt
cpyrt.pdf
toc.pdf
author_colo.pdf
part1.pdf
ch01.pdf
ch02.pdf
ch03.pdf
ch04.pdf
ch05.pdf
part2.pdf
ch06.pdf
ch07.pdf
ch08.pdf
ch09.pdf
ch10.pdf
ch11.pdf
ch12.pdf
part3.pdf
appa.pdf
appb.pdf
appc.pdf
inx.pdf

英語版には、前書きや後書き(奥付)などが無いようです。

for URL_PATH in $(cat paths.txt) ; do
    curl -sO "https://www.oreilly.com/openbook/make3/book/$URL_PATH"
    sleep 1
done
pdftk $(cat paths.txt) cat output output.pdf
bookmark.txt
BookmarkBegin
BookmarkTitle: License/Copyright
BookmarkLevel: 1
BookmarkPageNumber: 1
BookmarkBegin
BookmarkTitle: Table of Contents
BookmarkLevel: 2
BookmarkPageNumber: 2
BookmarkBegin
BookmarkTitle: About the Author/Colophon
BookmarkLevel: 2
BookmarkPageNumber: 5
BookmarkBegin
BookmarkTitle: Part I. Basic Concepts
BookmarkLevel: 1
BookmarkPageNumber: 6
BookmarkBegin
BookmarkTitle: Chapter 1: How to write a Simple Makefile
BookmarkLevel: 2
BookmarkPageNumber: 7
BookmarkBegin
BookmarkTitle: Chapter 2: Rules
BookmarkLevel: 2
BookmarkPageNumber: 14
BookmarkBegin
BookmarkTitle: Chapter 3: Variables and Macros
BookmarkLevel: 2
BookmarkPageNumber: 45
BookmarkBegin
BookmarkTitle: Chapter 4: Functions
BookmarkLevel: 2
BookmarkPageNumber: 65
BookmarkBegin
BookmarkTitle: Chapter 5: Commands
BookmarkLevel: 2
BookmarkPageNumber: 92
BookmarkBegin
BookmarkTitle: Part II. Advanced and Specialized Topics
BookmarkLevel: 1
BookmarkPageNumber: 108
BookmarkBegin
BookmarkTitle: Chapter 6: Managing Large Projects
BookmarkLevel: 2
BookmarkPageNumber: 109
BookmarkBegin
BookmarkTitle: Chapter 7: Portable Makefiles
BookmarkLevel: 2
BookmarkPageNumber: 131
BookmarkBegin
BookmarkTitle: Chapter 8: C and C++
BookmarkLevel: 2
BookmarkPageNumber: 143
BookmarkBegin
BookmarkTitle: Chapter 9: Java
BookmarkLevel: 2
BookmarkPageNumber: 161
BookmarkBegin
BookmarkTitle: Chapter 10: Improving the Performance of make
BookmarkLevel: 2
BookmarkPageNumber: 184
BookmarkBegin
BookmarkTitle: Chapter 11: Example Makefiles
BookmarkLevel: 2
BookmarkPageNumber: 198
BookmarkBegin
BookmarkTitle: Chapter 12: Debugging Makefiles
BookmarkLevel: 2
BookmarkPageNumber: 231
BookmarkBegin
BookmarkTitle: Part III. Appendixes
BookmarkLevel: 1
BookmarkPageNumber: 248
BookmarkBegin
BookmarkTitle: A. Running mak
BookmarkLevel: 2
BookmarkPageNumber: 249
BookmarkBegin
BookmarkTitle: B. The Outer Limits
BookmarkLevel: 2
BookmarkPageNumber: 252
BookmarkBegin
BookmarkTitle: C. GNU Free Documentation License--GNU Project--Free Software Foundation (FSF)
BookmarkLevel: 2
BookmarkPageNumber: 263
BookmarkBegin
BookmarkTitle: Index
BookmarkLevel: 1
BookmarkPageNumber: 271
pdftk output.pdf update_info_utf8 bookmark.txt output "GNU_Make_3rd.pdf"

正式な書籍名は "Managing Projects with GNU Make, Third Edition" のようですが長いので、短い名前にしました。

14
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?