Makefile игнорира segfault

Опитвам се да използвам GNU Make за автоматично конвертиране на набор от .mmpz файлове в .ogg файлове с помощта на lmms. В момента има бъг в lmms, който го кара да се отклонява от грешка след създаване на изходния файл, което кара make да изплюе грешки. Добавянето на - преди правилото принуждава make да игнорира грешката и не му позволява да премахне изходния файл, но съобщенията за грешка все още се генерират. Опитах следното:

-@lmms -r $(MPPZDIR)/$*.mmpz -f ogg -o $(OGGDIR)/$*.ogg
-@lmms -r $(MPPZDIR)/$*.mmpz -f ogg -o $(OGGDIR)/$*.ogg 2> /dev/null
-@lmms -r $(MPPZDIR)/$*.mmpz -f ogg -o $(OGGDIR)/$*.ogg || true

които всички произвеждат нещо подобно на

/bin/sh: line 1:  3325 Segmentation fault      (core dumped) lmms -r resources/mmpz/song.mmpz -f ogg -o content/music/song.ogg 2> /dev/null
Makefile:28: recipe for target 'content/music/song.ogg' failed
make: [content/music/song.ogg] Error 139 (ignored)

Като се има предвид, че segfault се очаква и не показва неуспешно създаване на изходния файл, има ли начин да скриете тази грешка, докато грешката не бъде коригирана? make -i също изглежда все още извежда грешките.


person rcorre    schedule 02.10.2014    source източник
comment
|| true има същия ефект като водещия - при получаване на make за игнориране на грешката на командата lmms.   -  person Etan Reisner    schedule 03.10.2014
comment
@MarkGaleck В това отношение съм напълно съгласен с теб. || true е абсолютно за предпочитане пред водещото -. Мисълта ми беше най-вече, че и двете не са необходими, както в ред три от примера за OP.   -  person Etan Reisner    schedule 03.10.2014
comment
@Etan добре, вземам го обратно, съжалявам, не е добра гледна точка   -  person Mark Galeck    schedule 03.10.2014


Отговори (1)


person    schedule
comment
Това все още отпечатва съобщение за грешка при сегментиране за всяка повреда (преди ОЧАКВАНА НЕИСПРАВНОСТ: да се отпечата). - person rcorre; 03.10.2014
comment
@murphyslaw о, виждам, че грешката в сегментирането не е нормално съобщение за грешка, то не се отпечатва в процеса stderr. Чакай да разгледам това. - person Mark Galeck; 03.10.2014
comment
@murphyslaw Добре, опитайте сега - person Mark Galeck; 03.10.2014