달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'make'에 해당되는 글 2건

  1. 2007.12.31 Make 이용법 (함수 및 특수 타겟)
  2. 2007.12.29 Make 이용법 (재귀적 사용)

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

1. 재귀적 make 사용


1.1. 주요 설명

다음과 같이 특정 폴더(show)로 이동하여 해당 폴더의 make를 실행할 수도 있지만,
cd show && make
다음과 같이 쉘 스크립트를 이용하여 간단히 할 수 있다.
@for dir in $(DIRS); do make -C $$dir || exit $? ; done
참고적으로 다음과 같이 export 키워드를 통해 상위 Makefile에서 특정 매크로값을 서브 Makefile에 전달할 수 있다.
export CC == gcc

구조를 간단히 설명하면,
최상위 Makefile에서는 서브 Makefile을 실행하면,
각 서브 Makefile은 컴파일하여 목적파일(.o)을 상위 폴더에 복사한다.
그러면 최상위 Makefile이 이러한 목적파일(.o)을 이용하여 최종 hello 바이너리 파일을 만든다.


1.2. 테스트 환경 설명

이후의 Makefile을 이용하기 위해서
show.c 파일이 있는 show 폴더와 main.c 파일이 있는 main 폴더를 만들었다.
해당 소스 코드는 생략하며, 아래와 같은 최상위 Makefile을 실행하면 hello 라는 바이너리 파일이 생성된다.


1.3. 최상위 Makefile

DIRS = show main
OBJECTS = show.o main.o
TARGET = hello

all : objs
$(CC) -o $(TARGET) $(OBJECTS)

objs:
@for dir in $(DIRS); do \
make -C $$dir || exit $?; \
done


1.4. 각 하위 폴더의 Makefile

OBJECTS = $(patsubst %.c, %.o, $(wildcard *.c))

all : $(OBJECTS)
cp -f $^ ../

clean:
-rm -rf *.o

clean:
@for dir in $(DIRS); do \
make -C $$dir clean; \
done
-rm -rf *.o $(TARGET)

'Tool > build' 카테고리의 다른 글

CMake 를 써 보자  (0) 2010.05.08
Make 이용법 (함수 및 특수 타겟)  (0) 2007.12.31
Posted by neodelicious
|