質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

Q&A

解決済

2回答

1945閲覧

make commandの引数が空文字だったらprocessをexitしたい

tuioku

総合スコア42

make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

0グッド

0クリップ

投稿2021/10/15 02:39

make commandの引数が空文字だったらプロセスを抜けるようにしたいのですが
どのように書けばいいでしょうか??
Makefileの中でifで調べつつ、引数が空文字だったらはじくという処理が理想です。

Makefile

1ifeq ($(Target), ) 2 echo "Target is null" 3 exit 4endif

こんなイメージです。

下記を実行してもエラーになってしまいます。

make test Target="test"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

int32_t

2021/10/15 02:50

> エラーになってしまいます。 どんなエラーですか? makeコマンドは GNU make ですか?
guest

回答2

0

ベストアンサー

コマンドラインにターゲットが書かれていないと、Makefile中の最初のターゲットが実行されるので、Makefileの最初に

Makefile

1.PHONY: none 2none: 3 @echo "Target is null" 4 @exit 1

のように書けば期待通りになると思います。

投稿2021/10/15 03:59

編集2021/10/15 04:00
int32_t

総合スコア21020

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

コマンド行引数にゴールが指定されていない場合、makefileの最初のターゲットがゴールとなります。
そこで下記をmakefileの他のターゲットよりも先に記述します。

Makefile

1ifeq ($(MAKECMDGOALS),) 2.PHONY: notarget 3notarget: 4 echo "Target is null" 5endif

マクロMAKECMDGOALSはコマンド行引数で指定されたゴールです。これが空ならnotargetというターゲットを設定しこれがデフォルトのゴールとなるようにします。

投稿2021/10/15 03:39

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問