Makefile - экспорт с регулярным выражением - PullRequest
0 голосов
/ 15 мая 2018

Я работаю над проектом C XYZ. Этот проект зависит от другого C-проекта ABC. Итак, чтобы сделать make для XYZ, мы должны сначала сделать make для ABC. Для этого я сначала добавил ABC как подмодуль в XYZ, как показано ниже

git submodule add git@github.com:username/ABC.git  
git add .gitmodules  
git add ABC  
git push

Итак, чтобы построить мой проект XYZ, сначала нужно собрать ABC. Итак, мой make-файл в проекте XYZ выглядит следующим образом:

ifndef PRT  
PRT=ABC  
export PRT  
endif

.PHONY: project_ project_clean project_check clean XYZ_package package check

project_ project_clean project_check:  
        @echo "(MAKE) -C src -s $(@:project_%=%)"  
        @$(MAKE) -C src -s $(@:project_%=%)  

clean: project_clean

XYZ_package package:  
        ./scripts/package.sh
check: project_check

Это работает локально, но когда я пытаюсь собрать его в github, он не работает . Потому что в github папка XYZ @ 324354. Это показывает ошибку, как показано ниже:

(MAKE) -C src -s   
make: *** ABC: No such file or directory.  Stop.  
make[1]: *** [all] Error 2  
make: *** [project_] Error 2  

Как настроить PRT variable на правильный путь, чтобы он всегда указывал на правильную папку.

1 Ответ

0 голосов
/ 15 мая 2018

Не совсем понятно, о чем вы спрашиваете (было бы намного проще, если бы вы предоставили конкретный пример, показывающий реальные имена каталогов и т. Д.)может работать:

ifndef PRT
PRT := $(wildcard sub-project*)
endif
export PRT
...