Makefile: первая строка не интерпретируется (Вывод: make не терпит BOM. Для удаления используем bomstrip)

Модератор: Модераторы разделов

nick87720z
Сообщения: 180
ОС: Gentoo / Calculate

Makefile: первая строка не интерпретируется

Сообщение nick87720z »

Что бы ни было написано в первой строке, оно просто пропускается - если это переменная, то при подстановке получаю пустое место.
Однако если в самом начале поставить пустую строку (можно еще комментарий или просто пробелы или табы), неожиданно получаю:

Код: Выделить всё

Makefile:1: *** пропущен разделитель.  Останов.

Вот сам Makefile:

Код: Выделить всё

release_flags = -O3
debug_flags = -O0 -ggdb3 -g3

gtk_flags = `pkg-config --cflags --libs gtk+-2.0`
sources = main.c sig_handler.c

all:
    gcc $(release_flags) -o window-docker $(sources) $(gtk_flags)

debug:
    gcc $(debug_flags) -o window-docker $(sources) $(gtk_flags)

В данном случае вместо gcc -O3 -o ..... получаю gcc -o ... (с двумя пробелами перед -o).

P.S. Проблему удалось обойти, тупейшим образом продублировав первую строку.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5413
ОС: Gentoo

Re: Makefile: первая строка не интерпретируется

Сообщение /dev/random »

Вы случайно не в виндовом блокноте мэйкфайл набирали?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5413
ОС: Gentoo

Re: Makefile: первая строка не интерпретируется

Сообщение /dev/random »

Поясню свою мысль: эта ошибка означает, что в начале первой строки торчат какие-то символы, которых вы не видите. Вероятнее всего это BOM, который некоторые быдлоредакторы (вроде виндового блокнота) втыкают в начало каждого файла, сохраняемого в utf-8.
Спасибо сказали:
Аватара пользователя
agentprog
Сообщения: 362
Статус: Ad Astra per aspera
ОС: openSUSE 11.4, Arch

Re: Makefile: первая строка не интерпретируется

Сообщение agentprog »

/dev/random писал(а):
20.03.2011 20:33
некоторые быдлоредакторы

я понимаю, что иногда Kate по своему желанию начинает вставлять BOM, даже когда в настройках указано, что я этого не хочу, но это не такой уж быдлоредактор, как могло бы показаться.
No problems - just solutions!
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Makefile: первая строка не интерпретируется

Сообщение eddy »

nick87720z, советую пользоваться geany, чтобы таких "косяков" не было. Еще плюс - geany является IDE.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
nick87720z
Сообщения: 180
ОС: Gentoo / Calculate

Re: Makefile: первая строка не интерпретируется

Сообщение nick87720z »

У меня "Write byte order marker" выключено. Хотя в начале файла есть такое: EF BB BF - оно?
Интересно, а это можно выкурить оттуда?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5413
ОС: Gentoo

Re: Makefile: первая строка не интерпретируется

Сообщение /dev/random »

nick87720z писал(а):
21.03.2011 19:42
У меня "Write byte order marker" выключено. Хотя в начале файла есть такое: EF BB BF - оно?

Да, оно.

nick87720z писал(а):
21.03.2011 19:42
Интересно, а это можно выкурить оттуда?

Открыть в latin1 или другой однобайтной кодировке и вырезать вручную. Я не знаю, умеет ли ваш редактор открывать файл в выбранной пользователем кодировке; если не умеет, воспользуйтесь другим.
Спасибо сказали:
nick87720z
Сообщения: 180
ОС: Gentoo / Calculate

Re: Makefile: первая строка не интерпретируется

Сообщение nick87720z »

Нашел bomstrip в репозитории :yahoo:
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Makefile: первая строка не интерпретируется

Сообщение sash-kan »

nick87720z писал(а):
21.03.2011 19:42
Интересно, а это можно выкурить оттуда?
например, можно удалить первую строку:
$ sed -i 1d <файл>
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: