целевая командная строка makefile

Извините, что беспокою вас, ребята, но я немного схожу с ума и не нашел ничего действительно подходящего в старых темах. Я хотел бы использовать первый аргумент команды make в качестве значения переменной внутри файла makefile, чтобы вместо выполнения

сделать var=arg1

я могу сделать

сделать аргумент1

а внутри make-файла переменная будет TARGET=arg1. Причина проста. Внутри моего make-файла мне нужно использовать его как

$(TARGET): $(OBJS) @echo -e "\n\n\t\t*** Compiled $(TARGET) successfully! ***\n" ; $(FL) $(LFLAGS) -o $(BUILDS_DIR)[email protected] \ $(OBJS) \ $(LIBS) @echo -e "\n\n\t\t*** Linking $(TARGET) completed! ***\n"

Кроме того (если это возможно), в случае отсутствия первого аргумента переменная TARGET должна быть установлена ​​значением по умолчанию. это реально возможно?

Благодарность

Вы используете GNU make или какую-то другую реализацию make?   —  person Stefano    schedule 20.10.2015

да GNU сделать. я забыл сказать это   —  person Stefano    schedule 20.10.2015

См. также:  Требуется фильтр на платформе Api
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Stefano

    Вы можете получить список всех целей командной строки из $(MAKECMDGOALS), который представляет собой список всех целей, указанных в командной строке (хотя вы не должны делать предположение, что существует только одна из них…).

    В качестве альтернативы вы можете использовать % следующим образом:

    %: $(OBJS)
        @echo making [email protected]
        ...
    

    Обратите внимание, что это шаблонное правило с максимально длинной основой, поэтому оно будет выполняться только в том случае, если нет другого правила для обслуживания цели командной строки (если нет другого правила %:, в этом случае оно будет выполнять только первый). Если вы создадите несколько целей, это будет выполнено один раз для каждой цели.

    кажется, он работает с $(MAKECMDGOALS). Большое спасибо и извините за поздний ответ (проблема с часовым поясом). насчет второго варианта, я тоже об этом думал, но мне нужно было установить переменную TARGET, а я не знал, как с этим поступить. person Stefano; 21.10.2015

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: