私は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"
あなたが見ることができるように、これらの二つのディレクトリが存在すると、彼らがしなければ、それらにコピーするスクリプトは、(私はまだ行っていないかどうかを確認するために、ターゲット・テスト「をインストール」それを "アンインストール"するには、心配しないでください)。
私の最初の質問:これは正しい方法ですか? 「すべて」と「クリーン」のターゲットが動作します(推測できるように、「Daemon /」に別のメイクファイルがあります)が、これを行うためのよりクリーンな方法があるかどうかを知りたいと思います。
第2に、 "test"関数がゼロ以外の値を返すため、エラーが無視される前に " - "する必要がありました。残念ながら、その「make install」を出力ビーイングにおける結果:
非常に醜い、おそらくない良い方法ですInstalling Components
make: [install] Error 1 (ignored)
make: [install] Error 1 (ignored)
Installed.
。この場合、私は何ができますか? ( - @と@ - 私は両方を試してみましたが、@は "無視" の出力を抑制しません)私はそれをこのようにしてください、心から クリス
ありがとうございました!その最後の行は、「どこに移動するのか見つけられませんでした」と言うだけでした – Chris