Je crée un package pour openwrt qui contient plusieurs modules. Le package se compile correctement si la structure est :

package_name
. Makefile<s>.txt</s>
. files
. src
    + CMakeLists.txt
    + Module1
    + Module2
    + ...
    + Modulen

Mais si je change le nom src par modules cela me montre des erreurs. Je connais la recherche de structure par défaut pour le répertoire src, mais, que dois-je ajouter à mon Makefile.txt pour remplacer la valeur par défaut src par une autre ?

Je vous remercie.

0
Shorosky 10 févr. 2020 à 12:36

1 réponse

Meilleure réponse

La structure du package OpenWRt peut être trouvée ici. La partie intéressante pour vous est Bundle source code with OpenWrt Makefile.

(Je crains que le Makefile ne soit juste Makefile sans l'extension txt. Ce serait utile si vous pouviez publier votre Makefile complet - mais j'essaierai sans. Veuillez également indiquer l'OpenWRT version que vous utilisez, la réponse peut dépendre de la version)

J'ai trouvé dans include/package-defaults.mk le [OpenWRT 19.07.1] suivant :

Build/Patch:=$(Build/Patch/Default)
ifneq ($(strip $(PKG_UNPACK)),)
  define Build/Prepare/Default
        $(PKG_UNPACK)
        [ ! -d ./src/ ] || $(CP) ./src/. $(PKG_BUILD_DIR)
        $(Build/Patch)
  endef
endif

Cela signifie pour moi que soit vous :

  • définissez PKG_UNPACK dans votre Makefile comme suit : PKG_UNPACK=$(CP) ./modules/. $(PKG_BUILD_DIR)
  • remplacez la section Préparer par défaut comme suit (ou copiez récursif, selon votre structure) :

.

define Build/Prepare
        $(call Build/Prepare/Default)
        $(CP) ./modules/* $(PKG_BUILD_DIR)/
endef
0
molnarg 11 févr. 2020 à 14:12