Ho un semplice file Android.mk:Shell chiamata script da Android.mk, standard output e il separatore mancante errore
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
$(shell ($(LOCAL_PATH)/echo_test.sh))
LOCAL_MODULE := libecho_test
LOCAL_MODULE_TAGS := optional
include $(BUILD_SHARED_LIBRARY)
La cosa interessante che si fa è quello di chiamare il 'echo_test.sh' script bash . Nel caso in cui il contenuto dello script sono
#!/bin/bash
echo 'echo is working' >&2
o
#!/bin/bash
echo 'echo is working' >/dev/null
tutto è OK.
Le cose vanno male quando lo script bash è
#!/bin/bash
echo 'echo is working'
o
#!/bin/bash
echo 'echo is working' >&1
Quindi l'errore restituito è
Android.mk:4: *** missing separator. Stop.
Questo avviene sia con Android NDK 7 e quando si include questo modulo durante la build di Android Ice Cream Sandwich 4.0.3.
Non riesco davvero a capire qual è il problema con lo standard output e il sistema di build Android. Qualcuno ha una spiegazione?
E 'davvero pericoloso aggiungere la corsa di script per tutti: – mafonya