差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| c_cpp:autoconf [2019/02/04 18:52] – [参考文献] ともやん | c_cpp:autoconf [2023/09/27 05:30] (現在) – ともやん | ||
|---|---|---|---|
| 行 2: | 行 2: | ||
| Autoconf は、さまざまなシステムに適応するようにソースコードパッケージを自動的に設定するシェルスクリプトを作成するためのツールです。\\ | Autoconf は、さまざまなシステムに適応するようにソースコードパッケージを自動的に設定するシェルスクリプトを作成するためのツールです。\\ | ||
| Autoconf によって生成された設定スクリプトは、実行時に Autoconf から独立しているため、ユーザーは Autoconf をインストールしている必要はありません。\\ | Autoconf によって生成された設定スクリプトは、実行時に Autoconf から独立しているため、ユーザーは Autoconf をインストールしている必要はありません。\\ | ||
| + | \\ | ||
| + | 各種コマンドは以下のパッケージに含まれる。\\ | ||
| + | < | ||
| + | $ sudo dnf install automake | ||
| + | </ | ||
| + | |||
| ===== ビルドまでの流れ ===== | ===== ビルドまでの流れ ===== | ||
| < | < | ||
| 行 18: | 行 24: | ||
| </ | </ | ||
| < | < | ||
| - | jQuery(function() { | + | |
| // toc をフロー図の上に重ねて、フロー図の幅が縮まない様にする | // toc をフロー図の上に重ねて、フロー図の幅が縮まない様にする | ||
| jQuery("# | jQuery("# | ||
| 行 31: | 行 37: | ||
| // rowspan でフロー図の列を連結する | // rowspan でフロー図の列を連結する | ||
| jQuery("# | jQuery("# | ||
| - | }); | + | });*/ |
| </ | </ | ||
| </ | </ | ||
| 行 64: | 行 70: | ||
| </ | </ | ||
| ※開発者ではない一般ユーザーは、STEP8 で ./ | ※開発者ではない一般ユーザーは、STEP8 で ./ | ||
| + | |||
| + | ===== ディレクトリ構成 ===== | ||
| + | 以下の構造を想定している。 | ||
| + | < | ||
| + | autoconf_sample | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | +hello.cpp (file) | ||
| + | </ | ||
| ===== C++ サンプルの準備 ===== | ===== C++ サンプルの準備 ===== | ||
| 行 108: | 行 130: | ||
| 空ファイルでも構わないので、INSTALL、NEWS、README、LICENSE、AUTHORS、ChangeLog のファイルを準備する。\\ | 空ファイルでも構わないので、INSTALL、NEWS、README、LICENSE、AUTHORS、ChangeLog のファイルを準備する。\\ | ||
| <WRAP prewrap 100%>< | <WRAP prewrap 100%>< | ||
| - | $ touch INSTALL NEWS README | + | $ touch AUTHORS ChangeLog |
| </ | </ | ||
| Makefile.am を作成する。\\ | Makefile.am を作成する。\\ | ||
| 行 115: | 行 137: | ||
| </ | </ | ||
| <file autoconf Makefile.am> | <file autoconf Makefile.am> | ||
| - | # ソースファイルのサブディレクトリの指定 | ||
| - | SUBDIRS = src | ||
| - | </ | ||
| - | src/ | ||
| - | < | ||
| - | $ vi src/ | ||
| - | </ | ||
| - | <file autoconf src/ | ||
| # 作成する実行ファイル名 | # 作成する実行ファイル名 | ||
| bin_PROGRAMS = hello | bin_PROGRAMS = hello | ||
| # 実行ファイルのソースコード | # 実行ファイルのソースコード | ||
| - | hello_SOURCES = hello.cpp | + | hello_SOURCES = src/hello.cpp |
| # C++コンパイラオプション | # C++コンパイラオプション | ||
| 行 183: | 行 197: | ||
| AC_CONFIG_HEADERS([config.h]) | AC_CONFIG_HEADERS([config.h]) | ||
| - | AM_INIT_AUTOMAKE([1.16 foreign]) | + | AM_INIT_AUTOMAKE([1.16 |
| # Checks for programs. | # Checks for programs. | ||
| 行 217: | 行 231: | ||
| # Checks for library functions. | # Checks for library functions. | ||
| - | AC_CONFIG_FILES([Makefile | + | AC_CONFIG_FILES([Makefile]) |
| - | src/Makefile]) | + | |
| AC_OUTPUT | AC_OUTPUT | ||
| </ | </ | ||
| 行 247: | 行 260: | ||
| configure.ac: | configure.ac: | ||
| configure.ac: | configure.ac: | ||
| - | src/Makefile.am: | + | Makefile.am: |
| </ | </ | ||
| 行 297: | 行 310: | ||
| configure: creating ./ | configure: creating ./ | ||
| config.status: | config.status: | ||
| - | config.status: | ||
| config.status: | config.status: | ||
| config.status: | config.status: | ||
| config.status: | config.status: | ||
| - | make all-recursive | + | make all-am |
| - | make[1]: ディレクトリ '/ | + | make[1]: ディレクトリ '/ |
| - | Making all in src | + | depbase=`echo |
| - | make[2]: ディレクトリ '/home/ | + | g++ -DHAVE_CONFIG_H -I. |
| - | g++ -DHAVE_CONFIG_H -I. -I.. | + | mv -f $depbase.Tpo $depbase.Po |
| - | mv -f .deps/hello.Tpo .deps/hello.Po | + | g++ -g -O2 -o hello src/hello.o |
| - | g++ -g -O2 -o hello hello.o | + | make[1]: ディレクトリ '/ |
| - | make[2]: ディレクトリ '/ | + | |
| - | make[2]: ディレクトリ '/ | + | |
| - | make[2]: ディレクトリ '/ | + | |
| - | make[1]: ディレクトリ '/ | + | |
| </ | </ | ||
| ===== hello の実行 ===== | ===== hello の実行 ===== | ||
| < | < | ||
| - | $ src/hello | + | $ ./hello |
| 10 20 30 | 10 20 30 | ||
| </ | </ | ||
| 行 322: | 行 330: | ||
| ===== 参考文献 ===== | ===== 参考文献 ===== | ||
| [[https:// | [[https:// | ||
| - | [[http:// | + | [[http:// |
| [[https:// | [[https:// | ||
| [[https:// | [[https:// | ||