저는 Makefile에 새롭기 때문에 아마도 이것이 가장 좋은 방법입니다 (입력 방법에 대해 많은 것을 알고 있습니다, 어떻게 광산이 나쁜지 배우고 싶습니다.). 어쨌든, 여기 내 문제는 다음과 같습니다.데몬 용 Makefile
나는 내 프로그램을 위해 작성한 데몬을 가지고 있으며 Makefile (대상은 "설치")을 사용하여 설치하려고합니다. "설치"대상이하는 일은 데몬 바이너리를 위치로 옮긴 다음 "서비스 스크립트"를 /etc/init.d/ 또는 /etc/rc.d/로 이동하는 것입니다 (다른 배포판은 다른 폴더를 가지고 있기 때문에 ...). 여기 내 메이크 지금까지입니다 : 그들이 할 경우
all:
@echo "Making Components"
@cd Daemon; make
@echo "Components Built"
install:
@echo "Installing Components"
@mkdir -p /usr/lib/
@cp Daemon/myprog_d /usr/lib/myprog_d
[email protected] -d /etc/init.d && cp Scripts/myprog /etc/init.d/
[email protected] -d /etc/rc.d && cp Scripts/myprog /etc/rc.d/
[email protected] ! -d /etc/init.d -a ! -d /etc/rc.d && echo " Warning: Couldn't install script. Manually install Scripts/myprog"
@mkdir -p /var/log/
@echo "Installed."
uninstall:
@echo "Uninstalling Components"
@./Scripts/myprog stop > /dev/null
@rm -f /usr/lib/myprog_d
@echo "Uninstall complete"
clean:
@echo "Cleaning Components"
@cd Daemon; make clean
@echo "Clean complete"
당신이 볼 수 있듯이, "설치"대상 시험은 두 디렉토리가 존재하는지 확인하고, 복사본은 그들에 스크립트는 (아직 수행하지 않은 그것을 "제거"하려면 걱정하지 마십시오).
내 첫 번째 질문 : 이것이 올바른 방법인가요? "all"및 "clean"타겟이 작동합니다 (추측 할 수있는 것처럼 "Daemon /"에 다른 makefile이 있음).하지만이 작업을보다 명확하게 수행 할 수있는 방법이 있는지 알고 싶습니다.
둘째, "test"함수가 0이 아니기 때문에 오류가 무시되기 전에 "-"해야합니다. 불행하게도, 그 "를 설치 만든다"출력 존재의 결과 :
매우 추한 및 아마 좋습니다Installing Components
make: [install] Error 1 (ignored)
make: [install] Error 1 (ignored)
Installed.
. 이 경우 무엇을 할 수 있습니까? (- @ @와 - 나는 모두를 시도했지만, @은 "무시"출력을 표시하지 않습니다)
감사 크리스
을
고맙습니다. 마지막 줄은 "어디로 옮길 지 찾지 못했습니다" – Chris