Global standard programming with GNU Autotools

Slides:



Advertisements
Similar presentations
Copyright © NTT COMWARE 2014 NTT COMWARE CONFIDENTIAL PROPRIETARY OSS-EAI ドキュメント生成ツール 利用マニュアル NTT コムウェア 品質生産性技術本部 技術 SE 部 OSS ・ AP 技術担当.
Advertisements

InstallShieldLecture InstallShield でインストーラを作成する方法 ( 初級編 ) ソニーエンジニアリング 設計 3 部 1 課 齋藤佑輔.
OpenOffice.org 2.3の 紹介と今後の展開について
CODE::BLOCKSで 無料で簡単 Windowsアプリ開発
TeX で数式を書くための PowerPoint アドイン Ver (2011/06/26) Ver. 0.1 (2007/5/30)
OpenOffice.org の独自コンパイル
互換性とパフォーマンス 川西 裕幸 DirectX Technical Evangelist
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
初年次セミナー 第8回 データの入力.
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
ソースプログラム・アーカイブ・サイト -関数依存グラフと検索への応用-
最新ファイルの提供を保証する代理FTPサーバの開発
JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 /
第3回参考文献発表 PHP言語 岩永逸平.
IBM Power Systems Linux センター のご紹介
2014年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
静岡大学大学院理工学研究科 阿部 秀尚 Weka入門(セットアップ編) 静岡大学大学院理工学研究科 阿部 秀尚
NetBSD以外でpkgsrcを使うZoularis
Samba日本語版の設定と運用のノウハウトラブルシューティング編
Flashプレイヤーを使った動画配信 情報工学科 宮本 崇也.
高エネルギー加速器研究機構 素粒子原子核研究所 千代浩司
2011/12/17(Sat) PHP AV binding.
オレポータビリティ 日本Rubyの会 青木 峰郎.
プログラムを「StiLL」で作成します。
2013年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
Linux リテラシ 2006 第2回 基本コマンド2.
CakePHPを業務に導入する Shin x blog 新原 雅司.
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
しらたま みんなもっとツール作ろうよ! しらたま 08/08/10 うかべん 横浜#2.
IE5でアプリケーション開発 東日本計算センター 小野 修司.
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
2007 Microsoft Office system クイックガイド
Mavenによる プロジェクト管理 近畿大学理工学部 情報学科3年  小野実.
ケータイキット for Smarty のご紹介
山田 由貴子 (北大理・地球惑星科学専攻) 2004年10月29日
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
アプリケーションのインストール 8. アプリケーションのインストール 水野嘉明
ISD実習E 2009年6月1日 read関数 read-macro back-quote 文字列のread 課題
OSS-EAI ドキュメント生成ツール 利用マニュアル
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
情報システム構築 -グループ分けとCVSの初期設定-
TA 高田正法 B10 CPUを作る 2日目 SPIMのコンパイル TA 高田正法
スクリプト言語を用いたPHITSの連続実行
教師あり学習と ディープラーニング 金子邦彦.
Integration between GitLab and Fuego
FreeBSDインストール 2002年4月10日.
高エネルギー加速器研究機構 素粒子原子核研究所 千代浩司
第7回ネットワークプログラミング 中村 修.
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
PCPU物理設計 ~マクロレベルの配置配線~
対応可否 スキル一覧 株式会社エージェント 2015年10月7日 Ver.1.0.
佐賀大学 理工学部知能情報システム学科 講師 大月 美佳
実行時情報に基づく OSカーネルのコンフィグ最小化
i-web RPGX による Web アプリケーション構築
2002/7/30 IEとOEの安全な設定 中野区医師会医療情報NW委員会 渡辺 正紀 IEとOEの安全な設定   1/25.
Excelを便利にする250以上の機能を体系化したアドインはこちらです。
デジタル画像とC言語.
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
Parallel Setsによるライブラリの 組み合わせと利用状況の可視化
B演習(言語処理系演習)第2回 田浦.
仮想マシンと物理マシンを一元管理するための仮想AMT
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
RaQ3/4パッチ強化セミナー CobaltResQ 小田 誠.
ソフトウェア理解支援を目的とした 辞書の作成法
Make の使い方.
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
情報工学科 3年生対象 専門科目 システムプログラミング 第3回 makeコマンド 動的リンクライブラリ 情報工学科 篠埜 功.
情報工学科 3年生対象 専門科目 システムプログラミング 第3回 makeコマンド 動的リンクライブラリ 情報工学科 篠埜 功.
Presentation transcript:

Global standard programming with GNU Autotools ウノウ株式会社 尾藤 正人

背景 UNIX(Like)は数が多い 歴史も長い 非互換性の問題

GNU Autotools の目的 高い互換性 簡単にパッケージ化

高い互換性の実現方法 テストによって非互換性の検出 OS、バージョンによる区別は原則しない 基本ツール(sh, make)の非互換性には自動対応 どのOSでも使用可能な基本ツールのみを使用 ラッパープログラムを使ってコマンドやオプションの差異を吸収

GNU Autotools とは? autoconf automake libtool 互いに独立

configure.ac(ルールファイル) autoconf configure を生成 GNU m4 configure.ac(ルールファイル)

autoconf - configure shスクリプト 関数、typedef、ライブラリ等のテスト config.hを出力 *.in(Makefile.in) -> *(Makefile) s/@foo@/${foo}/g

autoconf - configure.ac AC_INIT([foo],[0.0.1],[masato@unoh.net]) AM_INIT_AUTOMAKE(foo, 0.0.1) AC_CONFIG_SRCDIR([config.h.in]) AC_CONFIG_HEADERS([config.h]) AC_PROG_CC AC_HEADER_STDC AC_CHECK_HEADERS([unistd.h]) AC_TYPE_SIZE_T AC_FUNC_MALLOC AC_CHECK_FUNCS([strdup]) AC_CONFIG_FILES([Makefile]) AC_OUTPUT

configure.scanはconfigure.acの雛形 autoconf - autoscan ソースコードを再帰的に自動検査 configure.scanを生成 configure.scanはconfigure.acの雛形

AM_で始まるm4マクロ(automake用)を取得 aclocal.m4に書き出す autoconf - aclocal configure.acを読み込む AM_で始まるm4マクロ(automake用)を取得 aclocal.m4に書き出す

autoconf - autoheader configure.acを読み込む 記述に従ってconfig.h.inを生成

automake Makefile.inを生成 Makefile.am(ルールファイル)

automake - Makefile.am bin_PROGRAMS = foo foo_SOURCES = foo.c foo.h lib_LTLIBRARIES = libbar.la libbar_la_SOURCES = bar.c bar.h

automake - 便利なMakefile インストール先ディレクトリを簡単に変更できる make dist 一発でtarballを作成 インクルードパスは自動で追加(ディレクトリを変更しても深くなっても大丈夫) make distclean 一発で初期化 configure.ac,Makefile.amが変わった場合は自動で更新してくれる

ライブラリ生成のコマンド、オプションはツール、環境によってまちまち libtool shスクリプト ライブラリ生成のコマンド、オプションはツール、環境によってまちまち libtoolを使う事で統一的なインターフェースでライブラリの生成が可能

autoconf,automakeと組み合わせて使う時に必要なファイルをローカルにコピーしてくれる libtool - libtoolize autoconf,automakeと組み合わせて使う時に必要なファイルをローカルにコピーしてくれる aclocal,libtoolize,aclocalの順に実行

GNU Autotoolsを使うと互換性の高いプログラムが簡単に書ける まとめ GNU Autotoolsを使うと互換性の高いプログラムが簡単に書ける パッケージ化もラクチン phpにはあまり関係ない