프로그램을 작성하다 보면 여러 개의 실행 파일을 만드는 경우가 많습니다.

각각의 프로그램 소스는 디렉터리로 분류하여 작성하게 되는데,

컴파일 환경이 바뀌거나 전역 변수, 전역 상수가 바뀌게 되면

모든 디렉터리에 있는 프로그램을 다시 컴파일하거나

백업을 위해 필요 없는 파일을 제거할 필요가 있습니다.

이를 위해 각 디렉터리별로 이동해서 make all 또는 make clean을

실행하면 되지만, 매우 귀찮은 일입니다.

상위 디렉터리에 아래와 같은 내용으로 Makefile을 만들어 놓는다면

한 번의 실행으로 모든 서브 디렉터리에서 make all 또는 make clean을

자동으로 실행하게 됩니다.


app_dir1과 app_dir2는 예제를 위한 서브 디렉터리입니다.


SUBDIRS = app_dir1  app_dir2


all:

for dir in $(SUBDIRS); do \

$(MAKE) -C $$dir all; \

done


clean:

for dir in $(SUBDIRS); do \

$(MAKE) -C $$dir clean; \

done