Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вызов другого Makefile, как правильно реализовать 
:(
    Опции темы
slater
Дата 8.11.2010, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 20.11.2009

Репутация: нет
Всего: -4



вечер добрый

объясните пожалуйста как вызвать цель из другого Makefile

Например, в корне проекта есть мейкфайл.

мне нужно например передавай определенное значение переменной окружения вызвать для сборки некоторой цели, которая прописана в другом мейкфайле

заранее благодарю за помощь
PM MAIL   Вверх
Фантом
Дата 8.11.2010, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: нет
Всего: 49



Или я что-то не понимаю... в Makefile вписываются команды, которые надо выполнить для достижения той или иной цели. Что именно мешает в качестве одной из этих команд написать make -f <другой файл>  <цель из него>?
PM   Вверх
slater
Дата 9.11.2010, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 20.11.2009

Репутация: нет
Всего: -4



это то понятно
а вот интересно как это делается рекурсивно? вот это хотелось бы понять на простом примере

PM MAIL   Вверх
Фантом
Дата 10.11.2010, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: нет
Всего: 49



Цитата(slater @  9.11.2010,  20:18 Найти цитируемый пост)
а вот интересно как это делается рекурсивно? вот это хотелось бы понять на простом примере

Сначала Вы хотели "другой файл", а это не совсем рекурсия.  smile Однако и рекурсивно тоже можно, вот наитупейший пример:
Код

goal    :    Makefile
        ls
        make


Запихайте это в файл с именем Makefile и вызовите make в каталоге с ним. Получите бесконечную (в теории, конечно, на практике когда-нибудь память кончится) рекурсию. Да, если работаете с Windows, замените ls на dir (к вопросу это отношения не имеет - просто вставка, чтобы Makefile хоть что-нибудь делал).

PM   Вверх
slater
Дата 11.11.2010, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 20.11.2009

Репутация: нет
Всего: -4



Фантом, спасибо

на самом деле я хотел узнать как вызываются мейки в поддиректориях проекта, например, в том же linux kernel src

т.е. чтобы собрать весь проект, есть главный мейк и есть куча мейков в поддиректориях, и т.д.
и вот как происходят вызовы из главного мейка других?

PM MAIL   Вверх
Фантом
Дата 11.11.2010, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: нет
Всего: 49



Бог мой, да так же! Вы можете в теле make-файла написать любую команду. В том числе и переходы в произвольные каталоги и запуски там чего угодно и с какими угодно параметрами.

PM   Вверх
smoke_man
Дата 12.11.2010, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: нет
Всего: 17



make -C


--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
null56
Дата 15.11.2010, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: нет
Всего: 12



Цитата(smoke_man @  12.11.2010,  12:49 Найти цитируемый пост)
make -C 

да, но можно еще и цель указать
вот пример моего общего мейка
Код

sub:
        $(MAKE) -C filesystem
        $(MAKE) -C network
        $(MAKE) -C thread
        $(MAKE) -C http
clean:
        rm -f $(APP).o $(APP)
        rm -f $(LIBRARY)
        rm -f $(OBJ)
        $(MAKE) clean -C network
        $(MAKE) clean -C thread
        $(MAKE) clean -C filesystem
        $(MAKE) clean -C http

filesystem, thread, filesystem, http подкаталоги

Добавлено через 1 минуту и 10 секунд
цель clean вызывает "make clean" для подкаталогов
PM MAIL   Вверх
slater
Дата 24.11.2010, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 20.11.2009

Репутация: нет
Всего: -4



спасибо Вам, ребята!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | GNU toolchain | Следующая тема »


 




[ Время генерации скрипта: 0.0841 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.