【发布时间】:2011-10-07 02:53:38
【问题描述】:
我正在尝试在根目录中创建一个 Makefile,它创建一个输出 (/bin) 目录,然后递归地进入子目录,寻找一个 Makefile,使用该目录中的文件调用它,并在 /bin 中输出所有内容.
根目录下的Makefile如下:
DIR=bin
OUT_DIR=/bin
MAKE=make
CURRENT_DIR=./Server
ROOT=.
all: compile
compile: dir
export ROOT;
export OUT_DIR;
export CURRENT_DIR;
export;
$(MAKE) -C $(CURRENT_DIR)
dir:
mkdir -p $(DIR);
clean:
rm -rf $(OUT_DIR)/*
bin 目录被创建,似乎服务器目录中的 Makefile 也被调用(我还没有进入子目录的循环)。
在我的服务器中的 Makefile 中,有两个 .java 文件,我有以下内容:
JC=javac
all: server
server:
echo $(OUT_DIR);
echo $(CURRENT_DIR);
$(JC) -d $(OUT_DIR) $(CURRENT_DIR)/*.java
发生的情况是当我在初始 Makefile 中调用“export”时,我尝试导出的变量没有被导出,我不明白为什么。
如果有人能指点我的问题,并指点我一个优雅的解决方案来解决我的整体问题,我将不胜感激。
Makefile 在这一点上对我来说有点棘手:似乎有多种方法可以实现类似的解决方案,我不确定哪一种更合适和更优雅。
【问题讨论】:
标签: makefile