当前位置: 技术问答>linux和unix
makefile文件,见鬼了.
来源: 互联网 发布时间:2015-11-18
本文导语: TOPDIR = ../ include $(TOPDIR)Rules.mak EXTRA_LIBS += -lpthread EXEC = $(INSTALL_DIR)/httpd ./httpd OBJS = httpd...
TOPDIR = ../
include $(TOPDIR)Rules.mak
EXTRA_LIBS += -lpthread
EXEC = $(INSTALL_DIR)/httpd ./httpd
OBJS = httpd.o copy.o
HTTPD_DOCUMENT_ROOT = /mnt/yaffs
CFLAGS += -DHTTPD_DOCUMENT_ROOT="$(HTTPD_DOCUMENT_ROOT)"
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(EXTRA_LIBS)
install:
$(EXP_INSTALL) $(EXEC) $(INSTALL_DIR)
clean:
-rm -f $(EXEC) *.elf *.gdb *.o
这是小弟实验书上的一个makefile文件.这个makefile文件里的HTTPD_DOCUMENT_ROOT = /mnt/yaffs是什么意思呀?情况是这样的,我想把httpd这个程序烧进开发板里,,而这个yaffs是目标机的文件系统来.纯从语法上来说,这样定义有什么用呢?更加奇怪的是我只在宿主机上也用这个makefile,居然也通过了,我的宿主机上根本没有这个/mnt/yaffs这个文件系统呀.
include $(TOPDIR)Rules.mak
EXTRA_LIBS += -lpthread
EXEC = $(INSTALL_DIR)/httpd ./httpd
OBJS = httpd.o copy.o
HTTPD_DOCUMENT_ROOT = /mnt/yaffs
CFLAGS += -DHTTPD_DOCUMENT_ROOT="$(HTTPD_DOCUMENT_ROOT)"
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(EXTRA_LIBS)
install:
$(EXP_INSTALL) $(EXEC) $(INSTALL_DIR)
clean:
-rm -f $(EXEC) *.elf *.gdb *.o
这是小弟实验书上的一个makefile文件.这个makefile文件里的HTTPD_DOCUMENT_ROOT = /mnt/yaffs是什么意思呀?情况是这样的,我想把httpd这个程序烧进开发板里,,而这个yaffs是目标机的文件系统来.纯从语法上来说,这样定义有什么用呢?更加奇怪的是我只在宿主机上也用这个makefile,居然也通过了,我的宿主机上根本没有这个/mnt/yaffs这个文件系统呀.
|
HTTPD_DOCUMENT_ROOT = /mnt/yaffs
CFLAGS += -DHTTPD_DOCUMENT_ROOT="$(HTTPD_DOCUMENT_ROOT)"
从以上两句只能看出你定义了一个宏,相当于你在文件中使用了下面一句:
#define HTTPD_DOCUMENT_ROOT /mnt/yaffs
关键之处就是你的程序中使用这个宏来做什么,假定你的那个程序中这个宏没有任何作用,它当然不会对结果产生任何影响的,况且你说的仅仅只是编译呢?!!!!
我猜你运行的结果应该会受影响的
CFLAGS += -DHTTPD_DOCUMENT_ROOT="$(HTTPD_DOCUMENT_ROOT)"
从以上两句只能看出你定义了一个宏,相当于你在文件中使用了下面一句:
#define HTTPD_DOCUMENT_ROOT /mnt/yaffs
关键之处就是你的程序中使用这个宏来做什么,假定你的那个程序中这个宏没有任何作用,它当然不会对结果产生任何影响的,况且你说的仅仅只是编译呢?!!!!
我猜你运行的结果应该会受影响的
|
假定你的WEB服务器要指定日志文件路径,那么可以通过配置文件,也可以用宏的方式,关键是你的程序,你仔细在源码中去搜一下你的那个宏:HTTPD_DOCUMENT_ROOT,看一下在代码中用来做什么的