Изменить каталог по умолчанию sr c для пакета компиляции openwrt - PullRequest
0 голосов
/ 10 февраля 2020

Я создаю пакет для openwrt, который содержит несколько модулей. Пакет компилируется правильно, если структура:

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

Но если я изменяю имя sr c на modules , это показывает мне ошибки. Я знаю структуру поиска по умолчанию для каталога sr c, но что я должен добавить в свой Makefile.txt, чтобы изменить значение по умолчанию sr c на любое другое?

Спасибо.

1 Ответ

0 голосов
/ 11 февраля 2020

Структуру пакета OpenWRt можно найти здесь . Интересная часть для вас - Bundle source code with OpenWrt Makefile.

(Боюсь, что Makefile должно быть просто Makefile без txt расширения. Было бы полезно, если бы вы могли опубликовать свой полный Makefile - но я постараюсь без него. Также, пожалуйста, укажите OpenWRT версия, которую вы используете, ответ может зависеть от версии)

Я нашел в include/package-defaults.mk следующее [OpenWRT 19.07.1]:

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

Для меня это означает, что либо вы:

  • определяете PKG_UNPACK в вашем Makefile следующим образом: PKG_UNPACK=$(CP) ./modules/. $(PKG_BUILD_DIR)
  • переопределяете раздел по умолчанию Подготовьте следующим образом (или копируйте рекурсивно, в зависимости от вашей структуры):

.

define Build/Prepare
        $(call Build/Prepare/Default)
        $(CP) ./modules/* $(PKG_BUILD_DIR)/
endef
...