Как прочитать файл из Makefile? - PullRequest
0 голосов
/ 17 августа 2010

Я использую GNU Make для создания проекта из нескольких каталогов.Мой вопрос: как я могу использовать один make-файл для сборки нескольких устройств?Например, мое приложение должно работать на различных мобильных устройствах X, Y, Z, каждое из которых имеет разные свойства, такие как размер экрана, тип клавиатуры, версия платформы и т. д. Я должен передать make -f <makefilename> <targetname>.Здесь targetname может быть именем устройства и моделью, как Samsung CorbyPlus, но мой make-файл должен перейти к определенному dirname samsung и открыть файл .txt или около того, где определены все вышеперечисленные свойства.Я должен прочитать их все во время сборки и получить доступ к своему коду через некоторые макросы / define / flags.

Кто-нибудь может подсказать, как это сделать?Будут оценены еще лучшее решение для моего требования.

1 Ответ

1 голос
/ 17 августа 2010

Я бы предложил использовать конфигурационные make-файлы. Например, предположим, у вас есть несколько устройств с его конфигурациями:

config_device1.mk

OPTION1=yes
OPTION2=0

config_device2.mk

OPTION1=no
OPTION2=1

Затем вы можете условно включить их в базовый make-файл, используя специальный параметр, передаваемый из командной строки ( make -f makefile DEVICE = dev_type1 ), использовать параметры из файлов конфигурации и обрабатывать их:

Makefile

ifeq ($(DEVICE),dev_type1)
include $(CONFIG_PATH)/config_device1.mk
endif

ifeq ($(DEVICE),dev_type2)
include $(CONFIG_PATH)/config_device1.mk
endif

ifeq ($(OPTION1),yes)
CFLAGS += -DBUILD_OPTION1     
endif

CFLAGS += -DBUILD_OPTION2=$(OPTION2)

Кстати, в долгосрочной перспективе (если у вас нет временных ограничений) лучше использовать некоторые из существующих систем сборки, прочитать ее руководство и придерживаться ее методологии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...