Saya menulis sebuah program untuk tugas yang seharusnya mencetak hasilnya ke stdout. Spesifikasi tugas membutuhkan pembuatan Makefile yang ketika dipanggil make run > outputFile
harus menjalankan program dan menulis output ke file, yang memiliki sidik jari SHA1 identik dengan yang diberikan dalam spesifikasi.
Masalah saya adalah makefile saya:
...
run:
java myprogram
juga mencetak perintah yang menjalankan program saya (mis. java myprogram) ke file output, sehingga file saya menyertakan baris tambahan ini yang menyebabkan sidik jari salah.
Apakah ada cara untuk mengeksekusi perintah tanpa permintaan perintah yang bergema ke baris perintah?
make -s
melakukan itu, dan IMHO adalah solusi yang jauh lebih baik di sini. Baru-baru ini diposting sebagai jawaban terpisah untuk pertanyaan ini.Lebih sederhana lagi, gunakan
make -s
(mode diam)!sumber
@
perintah membuatnya sulit untuk di-debug dan menambahkan banyak kekacauan..SILENT:
target. Lihat make.mad-scientist.net/managing-recipe-echoing-Wall
itu masih mencetaknya. Tentu saja mengapa Anda menggunakan-s
jika Anda ingin melihat peringatan juga?Anda juga bisa menggunakan
.SILENT
Dalam hal ini,
make hi
akan menampilkan perintah, tetapimake run
tidak akan menampilkan.sumber
Efek mendahului perintah dengan
@
dapat diperluas ke bagian dengan memperluas perintah menggunakan trailing backslash pada baris. Jika suatu.PHONY
perintah diinginkan untuk menekan keluaran, seseorang dapat memulai bagian dengan:sumber