2013-06-12 21 views
6

b uilt-in $(error text) and $(warning text) functions of GNU Make'u kullanırken, akrobatik olmadan hata/uyarı çıktısına nasıl satır sonları alabilirim? Btw GNU benim için işe yaramadı,GNU'daki satır sonlarını nasıl sentezleme Uyarıları veya hataları gerçekleştirin?

$(warning $(shell /bin/echo -e "something\nfoo\nbar\nbaz")) 
$(warning $(shell /bin/bash -c 'echo -e "something\nfoo\nbar\nbaz"')) 

Ubuntu 10,04 üzerinde 3.81 Make: akrobasi By

Böyle şu iki komik yöntemleri anlamına gelir.

Gerekçe: benim GNUmakefile daha okunabilir koşullu parçaları (ifeq, ifneq) hata çıkışını yapmak istiyorum.


benim için geçerli geçici çözüm, her hat için kullanmaktır:

$(warning ...) 

ve nihayet geçen hat için: endef

$(error ...) 
+0

'make' ve whitespace çok iyi arkadaşlar değil, korkarım. –

cevap

13

tanımlamak kullanarak bir satır sonu değişkeni tanımlayın/ve Bunu $ n olarak kullanın:

define n 


endef 

$(warning "something$nfoo$nbar$nbaz") 

Tanımla ve endef arasındaki iki boş satırı not edin

+0

İki çalışma da, muhtemelen tek bir karakter olduğu için ?! Teşekkürler, tam da aradığım şey bu. – 0xC0000022L

+0

Rica ederim. N yerine nl olsaydı $ {n} l olarak kabul edilmek için $ (nl) veya $ {nl} olması gerekirdi. Tek harfli değişken isimler Gnu’da bu sorundan çekilmezler. –

+0

yep bunu çözdü. Hızlı cevap için teşekkürler. Sistem bana izin verir vermez kabul eder. – 0xC0000022L

İlgili konular