我想在编译时管理一些功能并设置特定的怪癖。因此,我必须能够修改必须编译的对象列表以生成最终目标、编译命令和链接命令。到目前为止,我只需要使用两种风格的程序,另一种(比如说special
)一种只是添加了一些CXXFLAGS
和一个目标文件:
specialclient: CXXFLAGS+=-DSPECIALBUILD
specialclient: LDFLAGS+=-lanotherlib
specialclient: libanotherlib client
哪里client
是正常目标。但是现在我需要另一个可选特征(比如peculiar
),事情开始变得复杂,因为我希望能够选择特征的任意组合;但我不想为peculiarclient
and指定目标specialpeculiarclient
。我希望能够在命令行中指定每个功能,例如make [special] [peculiar] client
.
我怎么解决这个问题?