Makefile 구현 도중 궁금한 점이 있습니다.

aaman의 이미지

Makefile 구현 도중 궁금한 점이 있어 글 올립니다.

현재 Makefile 에는 아래와 같은 소스가 있습니다.

.... (생략)

aaa:
$(shell sh getver.sh)

.... (생략)

아시겠지만 make aaa 커맨드 입력 시 getver.sh란 쉘 스크립트를 실행하는 명령 입니다.

쉘 스크립트 내용은 별것 없고 아래와 같습니다. (2줄이 끝입니다.)

#!/bin/sh

git init

쉘 스크립트를 따로 실행하면 정상 실행 됩니다.

그런데 Makefile에 쉘 스크립트 실행 명령어를 넣어서 실행하면 아래와 같은 에러가 떨어지네요.

Initialized empty Git repository in /home/.git/
make: Initialized: 명령을 찾지 못했음
make: *** [aaa] 오류 127

쉘 스크립트 내 git init 명령이 한번은 실행 되는거 같은데 왜 다시 에러를 뿜는지 잘 모르겠습니다.

혹시 도움 주실 수 있으신 고수분 계시면 답변 좀 부탁 드려요.

aaman의 이미지

aaa:
@echo "TEST_ECHO"

이런건 정상적으로 echo 명령이 실행됩니다.

유독 쉘 스크립트 실행만 문제 되는거 같은데 잘 모르겠네요.

익명 사용자의 이미지

$(shell sh getver.sh) 대신에 sh getver.sh 라고 사용하세요.

$(shell sh getver.sh)는 getver.sh를 실행후에 그 결과값으로 치환되어, 이 경우에는 결국 getver.sh 실행 결과값을 다시 실행합니다.

aaman의 이미지

이 간단한걸 가지고 삽질하고 있었네요 ㅜㅜ

내공이 아직 많이 부족하네요.

다시 한번 감사드립니다.