Comment obtenir dynamicment le nom du fichier cible du compilateur dans LOCAL_CFLAGS d’Android.mk?

J’essaie actuellement de construire un module natif en utilisant le NDK d’Android. Mon projet est constitué de plusieurs fichiers sources (par exemple: FILENAME .c) et, pour chacun d’entre eux, je dois déclarer une définition dans leurs CFLAGS ( -DOPERATION_FILENAME ).

Pour ce faire, j’ai besoin d’extraire dynamicment le nom du fichier cible actuel du compilateur croisé du NDK Android et de l’utiliser pour définir la valeur.

Je n’ai trouvé aucune information sur la manière de procéder et sur la méthode Makefile ( CFLAGS + = -DOPERATION_ echo $* | sed 's/_$$//' ) ne s’applique pas / ne fonctionne pas ici.

Mon Android.mk actuel ressemble à ceci:

 LOCAL_PATH:=$(call my-dir) include $(CLEAR_VARS) LOCAL_ARM_MODE := arm LOCAL_MODULE := libmpn LOCAL_SRC_FILES := \  LOCAL_CFLAGS := \ -std=gnu99 \ -DHAVE_CONFIG_H \ -D__GMP_WITHIN_GMP \ -O2 \ -pedantic \ -fomit-frame-pointer \ -mfloat-abi=softfp \ -DOPERATION_`echo $* | sed 's/_$$//'` include $(BUILD_SHARED_LIBRARY) 

Est-ce que quelqu’un connaît un moyen efficace d’obtenir le nom de fichier de la cible actuelle du compilateur croisé dans Android.mk? Merci!

Au début de votre Android.mk , ajoutez la ligne qui redéfinit get-src-file-target-cflags , comme ici:

 get-src-file-target-cflags = $(LOCAL_SRC_FILES_TARGET_CFLAGS.$1) -DOPERATION_$(basename $1) LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := t.cpp qq.c LOCAL_MODULE := tm LOCAL_LDLIBS := -latomic include $(BUILD_SHARED_LIBRARY) 

Vous pouvez mettre cette ligne dans Application.mk , si vous le souhaitez.