bash 스크립트를 사용자 디렉토리에 설치하려면 Makefile을 만들어야 하는데 bin
, 이를 수행하는 가장 좋은 방법이 무엇인지 잘 모르겠습니다. bin 디렉토리의 위치를 지정하기 위해 사용자 입력을 허용하는 변수를 사용해야 합니까, 아니면 환경 변수가 있습니까(적어도 대부분의 배포판에서는)?
답변1
일반적으로 사용자에게는 bin 디렉터리가 없을 수도 있습니다. 이와 같은 Makefile을 사용하면 make DESTDIR=/usr/local/bin install
/usr/local/bin에 설치하고 ~/bin에 기본값을 지정할 수 있습니다.
# DESTDIR is where the program should be installed
DESTDIR = $$HOME/bin
prog: a.c b.c
${CC} -o $@ $<
install: prog
mkdir -p ${DESTDIR}
cp $< ${DESTDIR}
이로 인해 프로그램은 여러 개의 C 파일로 구성됩니다. install
bin 디렉토리가 존재하지 않으면 대상은 이를 생성한 다음(존재하는 경우 -p는 오류를 방지함) 파일을 복사합니다. $$
쉘 변수에 유의하십시오 .
GNU make는 order only prerequisite
디렉토리가 존재하지 않는 경우에만 디렉토리 생성을 허용하지만 mkdir을 실행하는 데 걸리는 시간은 컴파일 시간에 비해 짧을 수 있습니다.