我正在尝试在根目录下创建一个Makefile,它创建一个输出(/bin)目录,然后递归进入子目录,查找Makefile,并使用该目录中的文件调用它,并将所有内容输出到/bin。
根目录下的Makefile如下:
根目录下的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(我还没有循环进入子目录)。
在我的Server文件夹中的Makefile中,有两个.java文件,我有以下内容:
JC=javac
all: server
server:
echo $(OUT_DIR);
echo $(CURRENT_DIR);
$(JC) -d $(OUT_DIR) $(CURRENT_DIR)/*.java
我的问题是,当我在初始Makefile中调用“export”时,我试图导出的变量没有被导出,我不明白为什么。
如果有人能够指向我的问题并指出一个优雅的解决方案来解决我的整体问题,我将非常感激。
对我来说,Makefiles有点棘手:似乎有多种方法可以实现类似的解决方案,我不确定哪种更合适和优雅。