如何从Makefile中读取文件?

时间:2010-08-17 05:40:47

标签: makefile mobile-devices

我正在使用GNU Make来构建一个多目录项目。 我的问题是如何使用单个makefile来构建多个设备? 例如我的应用程序必须运行在各种X,Y,Z移动设备上,每个设备都有不同的属性,如屏幕尺寸,键盘类型,平台版本等。我必须通过make -f <makefilename> <targetname>。这里targetname可以是设备名称和型号,如三星CorbyPlus,但我的makefile必须转到三星的特定目录并打开.txt文件左右,其中定义了所有上述属性。我必须在构建期间阅读所有这些内容,并通过一些宏/ definitions / flags访问我的代码。

有人可以建议怎么做吗?对我的要求更好的解决方案将不胜感激。

1 个答案:

答案 0 :(得分:1)

我建议使用配置makefile。例如,假设您有多个设备及其配置:

<强> config_device1.mk

OPTION1=yes
OPTION2=0

<强> config_device2.mk

OPTION1=no
OPTION2=1

然后,您可以使用从命令行传递的特殊参数( 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)
BTW,从长远来看(如果你现在没有时间限制),最好使用一些现有的构建系统,阅读其手册并坚持其方法。