Halaman standar POSIX make mengatakan ini tentang baris baru yang lolos (penekanan Milikku):

Perlakuan terhadap escape s di seluruh makefile adalah praktik historis. Misalnya, aturan inferensi:

.c.o\
:

bekerja, dan makro:

f=  bar baz\
   biz
a:
   echo ==$f==

gema "==bar baz biz==".

Apa yang dimaksud dengan "praktik sejarah"?

Bisakah saya menggunakan baris baru yang lolos dalam makefile POSIX yang benar-benar sesuai atau tidak?

2
MarkWeston 3 Januari 2018, 16:22

1 menjawab

Jawaban Terbaik

Standar POSIX mengatakan ini tentang baris baru yang lolos (ini ada dalam teks standar aktual bukan di bagian informatif atau rasional):

Ketika <baris baru> yang lolos (yang didahului oleh <garis miring terbalik>) ditemukan di mana saja di makefile kecuali di baris perintah, baris termasuk, atau garis tepat sebelum garis termasuk, itu harus diganti, bersama dengan spasi putih terdepan pada baris berikut, dengan a <spasi> tunggal. Ketika <baris baru> yang lolos ditemukan di baris perintah dalam makefile, baris perintah harus berisi <backslash>, <baris baru>, dan baris berikutnya, kecuali karakter pertama dari baris berikutnya tidak akan disertakan jika itu adalah <tab>. Ketika seorang melarikan diri <baris baru> ditemukan di baris sertakan atau di baris segera sebelum baris include, perilaku tidak ditentukan.

Itu adalah perilaku yang diamanatkan POSIX yang Anda andalkan sehubungan dengan baris baru yang lolos.

2
MadScientist 3 Januari 2018, 14:08