Вот начало GNUMakefile, который хорошо работает в bash, но потерпел неудачу, так как я переключился на zsh (и oh-my-zsh).Раздражает, что мне нужно запустить оболочку bash для ее выполнения, так как вы думаете, вы можете помочь указать на проблему с синтаксисом?
SUBDIRS = generator geometry io management physicslist processing
makeall:
@echo "********************************************************************************"
@echo " Building Project"
@echo "********************************************************************************"
@for dir in $(SUBDIRS); do (echo; echo; echo Building $$dir...; cd $$dir; $(MAKE) "SUBDIRS=$(SUBDIRS)"); done
Это приводит к бесконечному циклу:
[●]% make
********************************************************************************
Building Project
********************************************************************************
Building generator...
/bin/sh: line 0: cd: generator: No such file or directory
********************************************************************************
Building Project
********************************************************************************
Building generator...
/bin/sh: line 0: cd: generator: No such file or directory
********************************************************************************
Building Project
********************************************************************************
...
...
Кажется, я сам бомбил с помощью make и / bin / sh's:
...
...
24921 ttys012 0:00.00 make SUBDIRS=generator geometry io management physicslist processing
24925 ttys012 0:00.00 /bin/sh -c for dir in generator geometry io management physicslist processing; do (echo; echo; echo Building $dir...; cd $dir; make "SUBDIRS=generator geometry io man
24926 ttys012 0:00.00 /bin/sh -c for dir in generator geometry io management physicslist processing; do (echo; echo; echo Building $dir...; cd $dir; make "SUBDIRS=generator geometry io man
24927 ttys012 0:00.00 make SUBDIRS=generator geometry io management physicslist processing
24931 ttys012 0:00.00 /bin/sh -c for dir in generator geometry io management physicslist processing; do (echo; echo; echo Building $dir...; cd $dir; make "SUBDIRS=generator geometry io man
24932 ttys012 0:00.00 /bin/sh -c for dir in generator geometry io management physicslist processing; do (echo; echo
...
...
EDIT:
Makefile внутри генератора выглядит так:
name := generator
include ../ProgramConfig/Libraries.gmk
Libraries.gmk выглядит как
.PHONY: all lib
all: lib
include ../ProgramConfig/BuildDirs.gmk
include $(G4INSTALL)/config/architecture.gmk
include $(G4INSTALL)/config/common.gmk
include ../ProgramConfig/ExtraDeps.gmk
include ../ProgramConfig/GEANT4.gmk
# Add the sub-directory include directories to the compilation list
CPPFLAGS += $(addprefix -I../, $(addsuffix /include, $(SUBDIRS))) -O2
cleanup:
cd $(G4WORKDIR)
rm -rf bin tmp lib