Як додати багаторядкові коментарі у makefiles


113

Чи є можливість прокоментувати кілька рядків у makefiles, як, наприклад, у синтаксисі C /* */?


Яку версію марки ви використовуєте?
egrunin

Відповіді:


152

Ні, нічого подібного до /* */коментарів у стилі С у мафієрах немає. Як хтось ще запропонував, ви можете зробити багаторядковий коментар, використовуючи продовження рядків. Наприклад:

# This is the first line of a comment \
and this is still part of the comment \
as is this, since I keep ending each line \
with a backslash character

Однак я думаю, що ви, напевно, хочете тимчасово прокоментувати шматок свого файлу з налагодження з налагодження, а додавання зворотної косої риски в кожному рядку насправді не практично. Якщо ви використовуєте GNU make, пропоную вам використовувати ifeqдирективу зі свідомо помилковим виразом. Наприклад:

ifeq ("x","y")
# here's all your 'commented' makefile content...
endif

Сподіваюся, що це допомагає.


3
Зауважте, що якщо ви хочете "коментувати" рядки в правилі, не відступайте рядки ifeq, endif.
Саймон Мартон

13

Я вважаю, що відповідь - ні. Єдиний стиль коментарів, який я можу знайти, - це # для кожного рядка або використовувати \, щоб обернути перший рядок.


10

Примітка про ідею використання ifeqбагаторядкових коментарів у make (1). Вони працюють не дуже добре, оскільки якщо ви пишете наступне:

ifeq (0,1)
    do not risk ifeq comments
    else trouble will find you
    ifeq is even worse
endif

Текст між ifeq та endif все ще буде проаналізований символом make, що означає, що ви не можете писати все, що хочете, у цей розділ. І якщо ви хочете написати довгий коментар і написати в коментарі все, що завгодно (включаючи знаки $, колонки та багато іншого, які мають значення для створення), тоді ви повинні коментувати кожен рядок. То чому ж ifeq... :)


Це не правильно. Єдиний gmake "розбору" тексту всередині ifeq - це пошук ендіфу. Ви можете легко перевірити це за допомогою makefile, який має деякий хибний синтаксис всередині ifeq. Поки умова в ifeq оцінюється як помилкова, gmake буде радісно ігнорувати синтаксичні помилки всередині ifeq.
Ерік Мельський

3
Це не правильно. Спробуйте наступний приклад: ifeq (0, 1) не ризикуйте ifeq коментарі, інакше неприємності знайдуть вас, якщо інше на початку рядків кидків робить помилки. Так ще , ifeq , ifneq і , можливо , багато інших символи , які я не знаю про те, буде давати вам проблеми.
Марк Вельцер

Це справедливо, але більшість синтаксичних помилок буде проігноровано.
Ерік Мельський


3

Не зовсім те, що ви шукаєте, але схоже за духом. Я не очікую, що це буде прийнята відповідь, але, можливо, це може комусь допомогти.

Якщо припустити, що ви редагуєте свої файли у VIM:
або вирішіть, які рядки ви хочете коментувати, або виберіть їх за допомогою v.

Тоді ви можете використовувати регулярний вимір, s/^/#/щоб прокоментувати рядки
та s/^#//відновити їх.

--Замітки--

  • Щоб відкрити командний рядок vim, натисніть :(двокрапка)
  • Щоб підготувати команду до наступних 'n' рядків, використовуйте .,+n
  • Зразок рядка, що використовує "v", виглядає так: '<,'>s/^/#/

2
Простіше використовувати блок-режим замість цього. Перейдіть до початку першого рядка, щоб коментувати, ctrl-v, стрілка вниз до кінця, велика літера I, #, втеча. Щоб видалити коментарі: ctrl-v, стрілка вниз увесь шлях, x
brunch875

1

У emacs ви можете позначити регіон, який ви хочете прокоментувати, і натисніть M-;(який працює comment-dwim).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.