2016-12-20 3 views
0

Это мой первый раз с использованием make-файла, чтобы упростить разработку гибридных мобильных приложений. Итак, у меня есть этот довольно 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 

команды под «знак:» секция работают отлично, но войти: выполнить: и установить: даже не показывая в ЦМД. Я использую Windows 7 и программу GnuWin32 make.

ответ

1

make всегда пытается создать только первую цель в файле makefile, если вы не укажете конкретную цель в командной строке; например, вы могли бы вызывать make sign install execute log, и это запустило бы их все.

Похоже, что вы хотите, чтобы цель run была целью по умолчанию при вводе make; если это так, то первый цели в файле makefile не последний.

Кроме того, вы не должны отступать от цепей log и run, как в приведенном выше примере. Это в лучшем случае запутанно и ошибка в худшем случае.

+0

Спасибо, я переместил цель запуска перед знаком, так что теперь это первая цель, и теперь она хорошо работает. любая идея о том, что такое .PHONY вещь наверху? –

+0

Читайте о фиктивных целях здесь: https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html – MadScientist

Смежные вопросы