C_DEFINES=$(C_DEFINES) -D_PRODUCT_A
//C_DEFINES=$(C_DEFINES) -D_PRODUCT_B
#ifdef PRODUCT_A // <- I want to do doing like this in a sources file.
MOST_SOURCES= a.c b.c productA.c
#elif PRODUCT_B
MOST_SOURCES= a.c b.c productB.c
#endif
是否有正确的语法?
答案 0 :(得分:1)
这不起作用,因为nmake(build?)只使用文件中的第一个SOURCES行
!IFDEF NEW_SRC
SOURCES=src1.c src2.c src3.c
!ELSE
SOURCRS=src3.c src4.c src5.c
!ENDIF
但是,您可以包含以下环境变量:
SOURCES=\
purecall.c \
driver_base.cpp \
capture.cpp \
device.cpp \
$(_rc_filename)
或者您执行以下操作:
makefile.inc
--------------
!IFDEF NEW_SRC
MY_SRC=src1.c src2.c src3.c
!ELSE
MY_SRC=src3.c src4.c src5.c
!ENDIF
!IF [echo SOURCES=$(MY_SRC) > sources.inc]
!ENDIF
sources
--------
NTTARGETFILE0=
TARGETNAME=mylib
TARGETTYPE=LIBRARY
.
.
.
!include sources.inc
mybuild.bat
-------------
build -Z0
build -Zcef
(这取自OSR online邮件列表)