当我尝试我的 makefile 时,我收到错误消息说没有这样的文件或目录,但是我的目录就在那里,我做错了什么?谢谢。
我的项目结构:
dev |--- ev
|--- display
|--- install ( makefile is here, try to call makefiles in ev and display folder)
我的生成文件:
MODULES :=ev display
SRC_DIR :=$(addprefix ../, $(MODULES))
BUILD_DIR:=$(addsuffix /build, $(SRC_DIR))
x:=../ev ------> add temporarily just for test,
------> the same error if x:=$(HOME)/dev/ev
INSTALL_DIR:=EX Frameworks Add-ons
INSTALL_DIR:=$(addprefix $(HOME)/EX/, $(INSTALL_DIR))
vpath %.cpp %.java $(SRC_DIR)
.PHONY: all clean
checkdirs: $(INSTALL_DIR)
$(INSTALL_DIR):
@echo "INSTALL DIR"
@mkdir -p $@
define make-goal
$1:
@echo "start building each part"
cd $@ && make -f Makefile_new.osx clean
cd $@ && make -f Makefile_new.osx package
endef
clean:
@echo "clean up"
@echo "BUILD_DIR IS $(BUILD_DIR)"
@rm -rf $(BUILD_DIR)
all:
@echo "start build subdirectory"
@echo "SRC_DIR IS $(SRC_DIR)"
@echo "x is $(x)"
$(call make-goal, $(x))) ----> when it comes to here, I got error message
错误消息:
x is ../ev
../x:
make: ../ev:: No such file or directory.
我猜它是关于相对路径的,因为我从安装文件夹中调用这个makefile,然后在安装文件夹中找不到 $(x),但是当我尝试创建一个名为 ev (Install/ev) 的文件夹时,我仍然得到同样的错误。
我认为这一定是我在这里错过的基本内容,但它是什么。
谢谢。
更新:
我正在尝试构建一个包含多个子项目的项目。结构是:
dev |---- ev
|---- edf
|----- dt
|------af
|------Install
在 Install 内部,我有一个 makefile,它位于顶层。Install文件夹中的makefile会调用其他文件夹中的makefile来构建不同的主题,
理想情况下,我想在不接触源代码的情况下构建每个子项目。我的资源包括 c++ 和 java 代码。