2016-12-20 1 views
0

これは私のハイブリッドmobileapps開発を簡略化するためにmakefileを使用した初めてのことです。だから、私はいくつかのコマンドの後に実行することを拒否するこのかなりのメイクファイルを持っています。小切手を持ってください。ウィンドウ内のいくつかのコマンドの後にmakefileが停止する

.PHONY: run 
OUTPUT_FILE=final.apk 
ALIAS=mycert 
KEYPASS=shittypass 
KEYSTORE=certs/bang.keystore 
UNSIGNED=platforms/android/build/outputs/apk/android-release-unsigned.apk 
PACKAGE='com.example.testapp' 
sign: 
    del -f ${OUTPUT_FILE} 
    cordova build android --release 
    jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore ${KEYSTORE} -storepass ${KEYPASS} ${UNSIGNED} ${ALIAS} 
    zipalign -v 4 ${UNSIGNED} ${OUTPUT_FILE} 

execute: 
    adb shell am start -n ${PACKAGE}/${PACKAGE}.MainActivity 

install: 
    adb install -r ${OUTPUT_FILE} 

    log: 
     adb logcat | grep `adb shell ps | grep ${PACKAGE} | cut -c10-15` 

    run: sign install execute log 

"sign:"セクションのコマンドは完全に実行されていますが、log:execute:とinstall:はcmdに表示されません。 私はWindows 7とGnuWin32 makeプログラムを使用しています。

答えて

1

makeは、コマンドラインで特定のターゲットを指定しないかぎり、常にmakefileの最初のターゲットだけを構築しようとします。たとえば、make sign install execute logを呼び出すと、すべて実行されます。

makeと入力したときにrunターゲットをデフォルトターゲットにしたようです。その場合は、最後のものではなく、の最初のターゲットでなければなりません。

また、上の例のようにlogrunのターゲットをインデントしてはいけません。それは最高で混乱し、最悪では誤りです。

+0

ありがとうございます。私は走りの目標を標識の前にシフトしていますので、今は最初の目標です。今はうまくいきます。 .PHONYのことは何ですか? –

+0

ここで偽のターゲットについて読む:https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html – MadScientist

関連する問題