代码,是通过顶层的Makefile,逐层递归进行编译。
如果,想在某一个或者某几个子目录里,进行相关的.c文件,区分化编译,可在顶层Makefile里添加编译选项
例如
子目录的Makefile 有类似语句
ifdef SPECIAL_MACRO
....
....
endif
EXEC = display
OBJS = fram.o dev_ctrl.o lcd_infor.o rx8025.o \
soft_dog.o datafmtcvt.o comfunc.o crcalg.o disp_drv.o lcd_ipc.o\
ipc_com.o lcd_infor_arch.o gpio_ctrl_unit.o lcd_manner.o parameter_modify.o lcd_server.o\
sharemem.o crit_sig.o simple_queue.o emt_read_ms.o database_rd.o flash.o \
ifdef PROVINCE_CHONGQING
lcd_infor_cq.o \
endif
data_saver.o tpfun.o tpmanager.o tpdebug.o cq_day_save.o file.o frame_log.o cfg_ini_misc.o \
顶层的Makefile里需要添加类似的加粗的语句
make -C $directory SPECIAL_MACRO=1
make -C $$dir PROVINCE_CHONGQING=1 || exit $?