2001/09/24 石井 勝 はじめに ここでは,make ユーティリティを使ってプログラマやSEが行う作業を自動化するための方法を解説したいと思います. make は,単にプログラム開発作業だけでなくいろいろな作業を自動化してくれます.自動化する作業のプラットフォームとして make を活用することができます.ところが,最近のプログラマは統合開発環境を使っているせいか, make を理解できる人が非常に少なくなってきました.今やっている開発でも,Makefile をメンテできるのは僕一人という非常にまずいことになっています.また, make について書かれたサイトや書籍が非常に少ないことも敷居を高くしている原因です.make について少しは知っているけど,あまり使いこんだことがない人はこの記事を参考にしてみてください. ところで,make といってもいろいろな種類があり,それぞれ仕様が
makeというコマンドは、Makefileというファイルの記述に従ってファイ ルの更新を行なうユーティリティです。 と書いてもよくわからんだろうなぁ(^^; まあ、最初のセクションmakeって何するもん?でも読んでみてください。 このページの目標地点は入門の手前あたりまでです。「makeって聞いた ことはあるけど」とか「ちょっと触ってみようかな?」というレベルを 対象に書いてみました。「Makefileって最初だけを大文字にしなくちゃ いけないの?」などということさえ書かれていません。そのへんはman かinfoか成書で調べてください。 なお、このページ中で $ ls などと書いてあるときの$はコマンドプロンプトです。 目次 makeって何するもん? もっとも簡単な例 複数ファイルの場合 マクロの利用 ターゲットの生成方法の指定 ちょっとした応用 C以外にmakeを使う サフィックスルール
make/makefileは,大きいプログラムのどの断片が再コンパイルされる必要があるかという事と,それらを再コンパイルする発行コマンドを自動的に決定するユーティリティ/設定ファイルです. コンピュータサイエンスの基本的な考え方のひとつに冗長性をなくして効率化する構成を追及するというのがあります. 情報理論(bitの理論),HTMLとブラウザ,高級言語と機械語など,ひとつの仕様(表現)から環境や状況にあわせて実装(記述)をつくりだす構成が好まれます. ひとつのファイルでさまざまなコマンドを制御するmake/makefileを制することはコンピュータサイエンスを制することになります. makeのあれこれ もっとも単純な例 Makefile は以下のようなルールからなる.
本人が得意としているのはC言語(C++でも,C#でもありません).数値計算・数論・ソート・検索・計算幾何学・符号・文字列照合等数多くのC言語用ライブラリがここに置いてあります. また,2004年末頃から,スペインにあるオンライン・プログラミング・コンテスト・サイト に参戦していた.参戦記や解答プログラムの一部もここに公開しています. 効率的に約数の個数を求めるアルゴリズムを考えているが、まだ四苦八苦している状態。つまり、1~500万までの整数について、それぞれの約数の数を一気に求めたい。 個々の整数なら、素因数分解して、因数の指数の積で約数の数が分かるのだが、1個1個やっているのでは、遅すぎて話にならない。 それよりも多少高速なプログラムは以下の通り。それでも数秒かかってしまう。 #define MAX 5000000 int c[MAX+10]; /* 約数の数を記録する */ void
bigint.h #ifndef _BIGINT_INCLUDE_CHECK #define _BIGINT_INCLUDE_CHECK #include <algorithm> #include <vector> #include <list> #include <iterator> #include <iostream> #include <iomanip> using namespace std; typedef unsigned long int LINT; template <typename L> class BIGINT { list<L> lint; int degree; // The num of this list bool sign; // if this BIGINT is greater than 0, sign is true. public: BIGINT<
x86系アーキテクチャ上におけるLinuxのメモリ保護機構 近永 智之 著 (Chikanaga) メモリーパーミッション:はじめに メモリーパーミッション:メモリパーミッションの確認 メモリーパーミッション:セグメント機構 メモリーパーミッション:ページング機構 メモリーパーミッション:mapsファイルの実体 参考文献 [1] はじめて読む486−32ビットコンピュータをやさしく語る 蒲地 輝尚 (著) 出版社: アスキー 出版年 1994/09 ISBN: 4756102131 [2] Linuxのブートプロセスをみる 白崎博生(著) UNIX MAGAZINE (アスキー) 2002/05号 [3] Linuxのブートプロセスをみる 2 白崎博生(著) UNIX MAGAZINE (アスキー) 2002/06号 [4] Linuxカーネルインターナル Michael Beck 他 (
祖母の白寿のお祝い 先日、満99歳(数えで100歳)になった祖母の白寿のお祝いをやった。 さすがに身体のあちこちに不具合が出てきており、そろそろ本格的に外出も難しくなってきたので祖母と一緒に家族で集まれるのはたぶんこれが最後だろう。 下は0歳から上は99歳までいるので、移動と諸々…
gccのコマンドラインオプションを調べる時にはいままではWEB上のマニュアルを見ていました。 http://gcc.gnu.org/onlinedocs/ 特に、ちょっとオプションのスペルを確認したい時などはコマンドラインオプションのサマリーのページでブラウザのページ内検索の機能で探していました。 でもここに書いてないオプションもあったりします。 例えば、ソースコードのcharsetを指定するオプションを探したのですがマニュアルに見当たりません。そのためにgcc本体のソースコードを検索したりしたのですが、もっと簡単な方法を見つけました。 $gcc -v --help これでgccとgccから呼びだされるcc1, cc1plus, as, ldなどのコマンドラインオプションの簡単な説明が出力されます。 大量にでる(1000行以上)ので一度ファイルに落してエディタなどでみるといいでしょう。 $
前回のブログ「四面体の体積」に名称だけ出てきたHeronの式というのがある. 三角形の3辺の長さをそれぞれa, b, cとし, (a+b+c)/2をSとすると, その三角形の 面積は√S(S-a)(S-b)(S-c)というのである. たとえば, 辺の長さが3,4,5のPythagoras三角形ではS=6だから, 平方根号の中は 6×3×2×1=36で, 面積は6だ. 右の図, 1辺が2の正三角形では, S=3で, 根号内は3×1×1×1=3で, 面積は√3である. Heronの式を覚えた時, これが正しいという証明を見たかどうかは分らない. 勿論, Sの次元は長さ, S-a,S-b,S-cも長さなので, 根号内の次元は長さの4乗; 開平すると 2乗になり, つまり面積だ. そういえば, 前回のブログにあった, 四面体の体積を6本の 辺の長さから求める式も体積の次元になっている. あたりまえ
映像世界とそのワークフローを変容する「RED ONE」 メディア・コンテンツビジネスの展覧会「IMC Tokyo 2009」が幕張メッセで開催された。ここでは、テッド・シュロビッツ氏による「RED Digital Cinema - 4Kは、はじまりにすぎない。」というカメラシステム「RED ONE」に関する基調講演が行われた。シュロビッツ氏が熱く語ったREDの世界とその未来を詳細レポートする。 RED Digital Cinema社の開発チームのシュロビッツ氏は、EPICやSCARLETなどの今後のラインナップおよび発売時期などにも触れていた こちらの記事でお伝えしているように、今、RED Digital Cinema社のRED ONEは、世界中の映像クリエーターたちから注目されている4Kデジタルカメラだ。この基調講演でシュロビッツ氏は、RED ONEカメラの概要や、これらカメラで撮影され
samurai-x is a highly modular and configurable, next generation framework window manager for X samurai-xと呼ばれるウィンドウマネージャがある。説明によれば高度にモジュール化されており、柔軟な設定が実施できる。最大の特徴はすべてPythonで開発されていることにある。動作させるには2.5以降のPythonが必要。BSD Licenseのもとで提供されている。ウィンドウマネージャの拡張が従来よりも開発しやすいと説明されている。 ウィンドウマネージャを開発するとなると、どうしてもCで開発されたライブラリにアクセスする必要があるため、自動的にCやC++を採用する傾向が強い。しかしsamurai-xではctypesを使うことでCが必要になる部分を隠蔽している。ソースコードにはまったくCのソースコー
英ARMは6月22日、同社のグラフィックスIP「Mali」が解像度1080p対応マルチコアとして、「Khronos OpenGL ES 2.0 API規格」に準拠したことを発表した。 すでに、「Mali-200」は、2008年7月に1080pに対応したGPUとしてKhronos規格に準拠していたが、今回は「Mali-400 MP」がKhronosの公認テストに合格したこととなる。これにより、Mali-400 MPは、OpenVG、OpenGL ES 1.1、OpenGL ES 2.0の3つの主要グラフィックスAPIすべてについて、Khronos規格に準拠したこととなる。 Mali-400 MPは、最大で1Gピクセル/sの性能を提供し、ソフトウェア環境の変更なしで、性能要求に応じた1〜4個の任意数のフラグメントプロセッサをサポートすることができるグラフィックスIP。これにより、多機能型携帯電
NTTドコモは、上り最大5.7Mbps(理論値)となるHSUPAに対応したUSB接続型データ通信端末「L-05A」を、6月26日より全国のドコモ取扱店で発売する。また同日、HSUPA対応エリアを東京23区内の主要駅周辺などから開始し、年内に全国県庁所在地級都市の主要駅周辺などに拡大する予定を明らかにしている。 小さな機器でも他のUSBポートを妨げない、回転式USBコネクタを採用 L-05Aは、下り最大7.2MbpsのHSDPA「FOMAハイスピード」に加え、上り最大5.7MbpsのHSUPAに対応したデータ通信端末。PCに接続するだけで「通信設定ファイル」と「L-05A接続ソフト」のインストール画面が自動で起動(Macは非対応)し、すぐに設定可能なほか、国際ローミングサービス「WORLD WING(3G+GMS)」に対応。付属の通信ソフトは、パケット通信・SMS・電話帳機能搭載で、Wind
図1 異なる無線通信システムを選んで使う その時々の状況に応じて利用する無線通信方式を変えることで、無線資源の有効活用が図れる。ワイヤレス・テクノロジー・パーク2009でKDDIが展示した内容を基に本誌が作成 利用する周波数や帯域(チャネル)幅、通信方式などを、その時々の利用状況に合わせて動的に変える「コグニティブ無線」。電波資源のひっ迫という、今後避けられない課題を解決する切り札とされている無線技術である。技術的な難易度が高く、導入はまだ先とされてきたが、最近になって実用化の兆しが少しずつ見えてきた。 コグニティブ無線を実現する際の土台となる国際標準規格「IEEE 1900.4」が2009年2月に策定された。また、同年5月に開催された無線技術関連の展示会「ワイヤレス・テクノロジー・パーク 2009」では、KDDIと情報通信研究機構(NICT)がそれぞれコグニティブ無線のデモを見せ
少し日が経ってしまったが、UNIX magazine 最終号(2009-07 Summer)が 6/18 に発売され、形を変えて続いてきた UNIX magazine の名称の歴史が絶えることとなった。 今後の UNIX magazine は、NETWORK magazine と合併して、月刊ASCII.technologies(アスキードットテクノロジーズ)としてリニューアルされる(された)が、そのお知らせ(10ページ)にもあるように「UNIX を中核とした技術もさまざまに発展・進化を遂げ…中略…"UNIX" という冠がやや足かせ」になっていたということもあったようだ。 懐かしい話などもあろうかと思うので、皆さんどうぞ。
バッファローコクヨサプライは、オートフォーカス機能を搭載した200万画素のWebカメラ「BSW20KM01Hシリーズ」を7月上旬に発売する。標準価格は9765円。 「BSW20KM01Hシリーズ」は、200万画素の1/4CMOSセンサーを搭載したUSB接続型のWebカメラ。最大解像度は1600×1200ピクセルで、最大フレームレートは30fps、焦点距離は8cm以上。対象に自動で焦点を合わせるオートフォーカス機能や内蔵マイクを搭載するほか、本体を接続すると自動的にドライバをインストールするUVC(USBビデオクラス)に対応する。 本体にはディスプレイや平面などに設置できるラバースタンドや、カメラの向きを前後左右に可動するボールジョイントを採用。Windows XP SP2以降のマイコンピュータ表示環境では、静止画撮影用のシャッターボタンが利用できる。 本体サイズは40×70×68mm(幅×
Description The branch in mathematics known as Galois theory (pronounced as "gal-wah") which is based on abstract algebra was discovered by a young brilliant french mathematician known as Evariste Galois. The branch deals mainly with the analysis and formal description of binary and unary operations upon polynomials comprised of elements within a Galois field that then describe polynomials within
James S. Plank plank@cs.utk.edu http://web.eecs.utk.edu/~jplank Technical Report UT-CS-07-593 Department of Computer Science University of Tennessee The online home for this document is: http://web.eecs.utk.edu/~jplank/plank/papers/CS-07-593 If You Use This Code Please send me email (plank@cs.utk.edu) and let me know. One of the ways in which I am evaluated is the impact of my work, and hard data
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く