当前位置:  开发笔记 > 编程语言 > 正文

这个Makefile在做什么?

如何解决《这个Makefile在做什么?》经验,为你挑选了2个好方法。

我是新的使用makefile,我有一些makefile.其中一个有我试图理解的这些陈述,但我做不到.

这个makefile在做什么?

# debugging support
ifeq ($(DEBUG), true)
CFLAGS+=-DDEBUG -g
endif 

ifeq ($(DEBUG), gdb)
CFLAGS+=-g
endif

ifeq ($(PROFILING), true)
CFLAGS+=-p
endif

# symbolic names debugging
ifeq ($(DEBUG_NAMES), true)
CFLAGS+=-DDEBUG_NAMES
endif 

# architecture TODO: add others
ifeq ($(ARCH), unix)
CFLAGS+=-DUNIX
endif

# TODO: GC settings
ifeq ($(HEAP), malloc)
CFLAGS+=-DHEAP_MALLOC
endif

ifeq ($(STACK), malloc)
CFLAGS+=-DSTACK_MALLOC
endif

# class loading method
ifeq ($(CLASS), external)
CFLAGS+=-DEXTERNAL_TUK
endif

# monitor allocation
ifeq ($(MONITORS), ondemand)
CFLAGS+=-DON_DEMAND_MONITORS
endif

阿姆里



1> Alan..:

本质上,makefile正在进行一系列检查,并根据某些变量的状态添加编译器标志.例如:

ifeq ($(DEBUG), true)

CFLAGS+=-DDEBUG -g

endif

如果DEBUG变量$(DEBUG)设置为true,则定义宏DEBUG,并将编译器设置为输出调试二进制文件(-g).

每个其他声明大致相同的模式.



2> Geo..:

这将检查环境变量的值,并使用编译器的特定选项配置构建过程(我认为).

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有