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


FILE = ${shell cat sample.txt}

all:
@echo ${FILE}

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

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:
  • 終了:2007/12/11 00:59:57
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Bookmarker No.2

回答回数191ベストアンサー獲得回数34

ポイント60pt
FILE = ${shell cat sample.txt}

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

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

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

FILE != cat sample.txt
id:okuryu

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

2007/12/11 00:58:36

その他の回答1件)

id:t_shiono No.1

回答回数256ベストアンサー獲得回数22

ポイント10pt

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

FILE=sample.txt

all:
    cat ${FILE}

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

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

http://dummy

id:okuryu

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

2007/12/09 13:58:15
id:Bookmarker No.2

回答回数191ベストアンサー獲得回数34ここでベストアンサー

ポイント60pt
FILE = ${shell cat sample.txt}

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

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

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

FILE != cat sample.txt
id:okuryu

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

2007/12/11 00:58:36

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません