Я пытаюсь создать Make-файл в корневом каталоге, который создает выходной каталог (/ bin), а затем рекурсивно переходит в подкаталоги, ищет Make-файл, вызывает его с файлами в этом каталоге и выводит все в / 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
Что происходит, когда я вызываю "export" в исходном Makefile, переменные, которые я пытаюсь экспортировать, не экспортируются, и я не понимаю, почему.
Буду очень признателен, если кто-нибудь ответит мне на мой вопрос, а также на элегантное решение для решения моей общей проблемы, пожалуйста.
Makefile'ы немного сложны для меня на данный момент: кажется, есть несколько способов достижения подобного решения, и я не уверен, какой из них является более подходящим и элегантным.