ㅈㅅㄹ

가끔 라이브러리 사용법 익혀가다보면 자잘하게 테스트 어플을 만들어 볼 필요가 있는데 그 때 쓰면 좋은 템플릿이다. 그냥 소스 이름 = 바이너리 이름 뭐 이런식으로 매칭 되는 식이라 파일 여러개로 나눠서 짤 때는 못 써먹겠지만 뭐 그래도 간단간단한 테스트 어플 만들어보기엔 유용함.

TARGETS= \
        hello

DEPENDENCIES = ncurses

CFLAGS= $(shell $(patsubst %,pkg-config --cflags %,$(DEPENDENCIES)))
LDFLAGS= $(shell $(patsubst %,pkg-config --libs %,$(DEPENDENCIES)))


all: $(TARGETS)


$(TARGETS) : $(patsubst %,%.c,$(TARGETS))
        $(CC) -o $@ $.c; $(CFLAGS) $(LDFLAGS)

clean:
        rm -f *.o $(TARGETS)


TARGETS 에는 타겟 바이너리 이름을 죽~ 적어주면 되고, DEPENDENCIES에는 pkg-config 에서 검색 가능한 패키지 명을 적어주면 된다. 위의 Makefile의 경우에는 폴더 내에 hello.c 라는 파일을 생성해서 코드를 작성하고 난 후, make를 실행하면 hello 라는 이름의 바이너리가 만들어진다.

자주 쓸 일은 없겠지만 템플릿으로 쓰기엔 쓸만해서 올려 둠.


업데이트(2014/03/25): 이걸 좀 더 고쳐서 툴체인 쓸 경우에도 적용할 수 있게 만들어 둔 걸 gist에 올려두었다. 필요하다면 https://gist.github.com/zeph1e/8840168 를 참고하자