タグ付けされた質問 「make」

makeに関する質問については、ターゲット間の依存関係を管理することによってビルドプロセスを自動化するユーティリティ。このタグは、make自体に関する質問、またはmakeコマンドラインユーティリティの使用から生じる問題に関する質問に使用します。

1
GNU‑MakeをPOSIX Make動作に制限する
Linuxでmake他のMakefileを編集または使用するときに、LinuxがMakefileでGNU‑Make固有の拡張機能の意図しない使用を拒否するようにする既知の方法はありますか?つまり、GNU‑Make makeがPOSIXで指定されたとおりに動作し、GNU‑Make固有の拡張機能を拒否するように制限しますか? .POSIX特別なターゲットは「によると、十分ではありません4.9特殊ビルトインターゲット名(gnu.org)」。manページでは、このためのコマンドラインオプションについては触れられていません。 別のmakeユーティリティを使用することもできます。 — 2018-10-19を更新— 私はまだ私の質問に直接答えを見つけることができますが、ここではこの問題、私はこの質問があった時点で存在していませんでした文書について、少なくとも文書である: ポータブルのMakefileのAチュートリアル(nullprogram.com) 。
12 make  gnu-make 

3
コンパイルを続行するにはどうすればよいですか?
makeソースツリー全体を再コンパイルしなくても、いつでもプロセスを中断できることはわかっています。私が知っているようにmake、ターゲットがまだコンパイルされていない場合、または最後のコンパイル後にソースコードが変更されている場合にのみ、ターゲットをコンパイルします。 しかし、私が中断した場合make、1つ以上の(並行性レベルに応じて)ハーフレディバイナリが確実に存在します。次に実行するときに、それらはmakeどうなりますか?または、部分的にコンパイルされたバイナリを回避するためにCtrl+ を押すと、現在のターゲットが終了しCますか?

4
makefileは、コマンドがローカルマシンで使用できるかどうかをどのように検出できますか?
GTDスタイルのシステムでタスクを計画するために、org-modeを使い始めました。Dropboxフォルダーのディレクトリにすべての組織ファイルを置き、emacsを実行して、Cygwin、Mac OS X、Debianの3つの異なるローカルマシンからこれらのファイルを編集/管理します。私はMobileOrgを使用してiPadからこれらの組織ファイルにアクセスするので、変更が行われたときはファイルを最新の状態に保つ必要があります。これを実行するには、を実行します。checksums.datmd5sum *.org > checksums.dat 問題は、コマンドに対して3つの異なるコマンドがあることですmd5sum:md5sum.exeCygwin、md5Mac OS X、およびmd5sumDebianです。最も理想的な状況は、Dropbox foderに保存されているmakefileで、現在のマシンで使用可能なコマンドを検出し、そのコマンドを実行してmd5チェックサム操作を実行します。
11 shell  make  hashsum 

1
GNU Makefileでのプロセス置換
bashプロンプトで、疑似ファイルを使用してdiffを実行できます。 diff <(echo test) <(echo test) これをそのままMakefileに追加すると失敗します。 all: diff <(echo test) <(echo test) エラー(ヒント:/ bin / shがこのシステムの/ bin / bashを指しています): /bin/sh: -c: line 0: syntax error near unexpected token `(' /bin/sh: -c: line 0: `diff <(echo test) <(echo test)' それはどういう意味ですか、一時ファイルを使用せずに2つの出力を比較する方法はありますか?

2
makefileのファイル関数は、 '@'記号が前に付いた引数を取ります
このコードの抜粋は、GNU makefileマニュアルの第8.6章からのものです。 makefileのファイル関数argの@ $ @。inはどういう意味ですか?rmのようなシェルコマンドの前に「@」記号が付いている理由 program: $(OBJECTS) $(file >$@.in,$^) $(CMD) $(CMDFLAGS) @$@.in @rm $@.in ファイル関数の構文は $(file op filename[,text])
10 make 

2
Makefileの%記号の意味
私はメイクファイルで遊んでいて、% . oまたは%.cに出くわしました。私が理解したことから、それはすべてのcまたはoファイルを指定します。しかし、なぜこれが機能するのか: %.o: %.c $(CC) -c $^ -o $@ これは機能しません SOURCE := $(wildcard *.c) $(SOURCE:.c=.o): SOURCE $(CC) -c $^ -o $@ どちらの式もすべてのファイルを指定します。では、%。o: makeファイルのシンボルは何をしているのでしょうか?
10 make  gnu-make 

3
Linuxカーネルのビルド構成を自動化するスクリプトmake menuconfigの方法は?
Linuxビルドを自動化したいのですが、最終的には非常に手動のステップのように見えるものを実行する必要がありますmake menuconfig。これは、OSとカーネル構成の間で構成を同期しているようですか? cp git-tracked-config .config make defconfig make menuconfig # <- how to automate/script this? make V=s 基本的に、make menuconfigビルドスクリプトの呼び出しを削除するにはどうすればよいですか? 余談ですが、これはmake menuconfigを呼び出さずに実行したときに発生するように見えるビルドエラーに対する反応です。 make[1]: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop. おそらくメイクファイル自体が存在しないか、メイクファイルがそのルールを含むように生成/モーフィングされていないために、メイクファイルにルールがないようですが、それは別の質問です。 これをまとめて取り組むためのよりスマートな方法があるかもしれません。追跡していないけれどもすべき他の設定はありますか(例:oldconfig)?

2
`make clean`と` make mrproper`の両方が使用されるのはなぜですか?
それはLinuxカーネルMakefileで書かれています clean - Remove most generated files but keep the config and enough build support to build external modules mrproper - Remove all generated files + config + various backup files そしてそれはarch docsに述べられています 準備を完了するには、カーネルツリーが完全にクリーンであることを確認します。 $ make clean && make mrproper ではmake mrproper、より完全に削除すると、なぜmake clean使用されるのでしょうか?
10 linux  make  gnu 

3
「セパレーターがない(TABのことですか)」と文句を言う
som_pak-3.1-NAcMoS.tar.gzファイルをインストールしようとしているときに、以下のコマンドを使用しました。 $ tar xvf som_pak-3.1-NAcMoS.tar.gz $ cd som_pak-3.1 $ cp makefile.unix makefile $ make $ cd .. $ ln -s som_pak-3.1 $NACMOS_HOME/som_pak しかし、makeコマンドの実行中に次のエラーが発生します。 *セパレータがありません(8スペースの代わりにTABを意味していましたか?)。やめる。 エラーの理由を誰かに教えてもらえますか? これに含める必要があるパッケージはありますか?
10 compiling  make 

1
複数のマシンのハードウェアをサポートするlocalmodconfigでカスタムカーネルを構築する方法
アプライアンスのように単一のタスクを実行するようにサーバーを構成する場合、カスタムカーネルを構築する必要が生じる可能性があります。たとえば、ディスク領域を節約します。 Ubuntu Core 13.10 amd64ルートファイルシステムは38 MBのダウンロードで、必要な依存関係を含む「linux-image-generic」メタパッケージは79 MBのアーカイブをダウンロードし、kernel-image-xyz-genericパッケージのサイズは14 MBのままです。。 ハードウェアが使用しないモジュールから削除されたカーネルを構築する場合、make localmodconfigコマンドはジョブに適したツールです。ただし、ビルドおよびテスト環境を実行する仮想マシンは、ターゲットのデプロイメントハードウェアとは異なるモジュールをロードします。または、しばらくすると、展開ハードウェアが機能しなくなり、別のハードウェアが使用されます。また、カーネルの更新がリリースされる頻度では、ハードウェア構成ごとにカスタムカーネルを構築するのが面倒になる場合があります。 いくつかの異なるハードウェアボックスで動作するカスタムLinuxカーネルをすばやく構築する方法は?

1
CheckInstallの副作用はありますか、それとも毎回使用する必要がありますか?
私は職場でUbuntuを、自宅でSlackwareを使用しています。 今日の仕事では、いくつかの反復的なタスクを自動化することになっている、疑わしいプログラムを会社のリポジトリからダウンロードしました。でインストールしましたconfigure; make; make install。今、それを削除したいのですが、Makefileでアンインストールするための適切なターゲットがありません。このプログラムはPythonで書かれており、インストーラー*.pyはさまざまな場所に多くのファイルをコピーしましたが、それらをすべて削除するのは簡単ではありません。 そのため、代わりにCheckInstallを使用して、make installそのようなプログラムを簡単に削除し、システム上のすべてのソフトウェアを一貫した方法で追跡できるようにすることを考えました。しかし、CheckInstallに関連する可能性のある副作用はあるのでしょうか、または新しいソフトウェアをインストールするたびにそれを使用できますか?使っていますか?

5
Makefileを介してPATHにディレクトリを追加する
Makefile内で変更したPATHを現在のターミナルにエクスポートする際に問題が発生します。Makefileディレクトリがどこにあっても、PATH内のbinフォルダーに追加しようとしています。 makefileの関連するストリップは次のとおりです。 PATH := $(shell pwd)/bin:$(PATH) install: mkdir -p ./bin export PATH echo $(PATH) エコーはそれを正しく出力しますが、ターミナルでエコーをやり直しても、PATHは同じままです。

6
小規模なプロジェクトで「make」を使用する利点は何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 昨年休業。 これはmake、特にで説明されている複雑な依存関係がありMakefile、ワークフローにも役立つ大規模なプロジェクトに役立つことがわかりました。make小さなプロジェクトで使うことの利点は聞いていません。いずれかがあります?

1
デフォルトでマルチスレッドmakeを使用しますか?
コマンドラインにmake追加-j6するだけでなく、システム全体でマルチスレッド(私のシステムでは6スレッドが理想的)を使用する方法はありますか?つまり、実行するとmake、実行していた場合と同じように動作しmake -j6ますか?AURからpacaur(Arch を使用して)多くのパッケージをインストールし、makeコマンドを直接実行しないため、この機能が必要です。

1
make-kpkgとmake deb-pkgの違い
私は間の正確な違いを知っているしたいmake-kpkgとしmake deb-pkg。この質問はほとんど同じことを尋ねますが、満足のいく答えはありません。以前は使用していた make -j `getconf _NPROCESSORS_ONLN` deb-pkg カーネルソースツリーをコンパイルし、header + kernel-image debianパッケージを生成します。第2世代Intel i3 CPUでコンパイルするのに1時間以上かかるため、非常に遅いことがわかりました。次に、以前に使用した方法make-kpkgよりも5〜6倍速い別の方法を見つけましたdeb-pkg。私が実行するコード fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers -j `getconf _NPROCESSORS_ONLN` また、debパッケージをコンパイルして生成するのに必要な時間はわずか10〜15分です。どちらのコンパイルプロセスでも、ジョブが分割されるため_NPROCESSORS_ONLN、この違いは何ですか?前もって感謝します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.