人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Makefile について質問です。以下のようにシェルコマンドを利用してマクロを定義したいのですがうまく動きません。

FILE = ${shell cat sample.txt}

all:
@echo ${FILE}

このようにして sample.txt の文字列を表示させたいのですが何も表示されません。書き方に間違いなどあれば教えてほしいです。OS は FreeBSD 6.2 です。

●質問者: okuryu
●カテゴリ:コンピュータ インターネット
✍キーワード:ALL ECHO FreeBSD Makefile OS
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● t_shiono
●10ポイント

一度FILEという変数を利用しているか分かりませんが、以下で十分ではないでしょうか?

FILE=sample.txt

all:
 cat ${FILE}

回答では、タブが入力できなかったので、スペースで代用してあるので、ご注意ください。

ちなみに、質問中のものでもきちんと中身が表示されたのですが、ひょっとして、タブとスペースを混同していませんか?

http://dummy

◎質問者からの返答

どうしてもシェルコマンドを利用して変数を定義するときにファイル中の文字列を代入したいためこの方法は避けたいです。スペースとタブの記述は間違いないと思います。


2 ● しおり
●60ポイント ベストアンサー
FILE = ${shell cat sample.txt}

という書き方は GNU make の書き方です。

GNU make は、FreeBSD では gmake という名前でインストールされているはずですので、make ではなく gmake で実行してみてください。

なお、FreeBSD 標準の make では、以下のように書きます。

FILE != cat sample.txt
◎質問者からの返答

まさにこれでした。FreeBSD では書き方が違うのですね。紹介してくださった FreeBSD 標準の書き方で解決しました。わかりやすい回答ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ