Makefile------宏、if条件、shell命令的使用

来源:互联网 发布:mysql约束是什么 编辑:程序博客网 时间:2024/09/21 08:50

main.c


#include <stdio.h>int main(void){int i;#ifdef FLAGi = 1;#elsei = 3;#endifprintf(" i = %d \n", i);return 0;}


Makefile

CC=gccinput_flag=ifdef input_flagCFLAGS= -D $(input_flag)endifSRC= main.c.PHONY:all clean  ifdef input_flagall:$(CC) $(CFLAGS) $(SRC) -o mainelseall:$(CC) $(CFLAGS) $(SRC) -o main@echo "do all"endifclean:rm *~ *.o -f


运行:


snail@ubuntu:4.makefile-if$ make input_flag=FLAGgcc -D FLAG main.c -o mainsnail@ubuntu:4.makefile-if$ ./main  i = 1 snail@ubuntu:4.makefile-if$ make gcc  main.c -o maindo allsnail@ubuntu:4.makefile-if$ ./main  i = 3 snail@ubuntu:4.makefile-if$ 

通过宏控制条件编译。


0 0