(It looks like we dropped the list somehow, I'm bringing it back...) > There is no way this common file is going into my custom board.
If you don't want it; just remove it. But you'll have to adapt your Make.defs file. Mainly adding "include $(TOPDIR)/boards/Board.mk" at the end. Other small things could be required. Adapt it from a different board that doesn't have a common directory, an STM32F7 for example, it will be simpler. On Thu, May 20, 2021 at 2:11 PM Sebastien Lorquet <sebast...@lorquet.fr> wrote: > > This entirely defeat the purpose of a custom board. > > There is no way this common file is going into my custom board. > > What to do? Do I need TWO custom dirs? One for the board and one for the > custom stuff? > > Sebastien > > Le 20/05/2021 à 15:08, Abdelatif Guettouche a écrit : > > It should then also be the same case as #2206, you'll need the common > > directory: > > https://github.com/apache/incubator-nuttx/issues/2206#issuecomment-721141748 > > > > For STM32 (and other chips that have the "common" directory > > structure), the stm32/board_dir/src/Make.defs file is not complete. > > It needs the stm32/common/Makefile in order to get everything hooked > > into the build system. > > > > On Thu, May 20, 2021 at 2:01 PM Sebastien Lorquet <sebast...@lorquet.fr> > > wrote: > >> It was the defconfig from nucleo-f446re:nsh, only modified to use a > >> custom board with relpath. > >> > >> The same failure happens with the stm32f427i-disco:nsh configuration. > >> > >> > >> I have the same issues as described in 2206 > >> > >> I have tried running: tools/configure.sh ../my_own_nucleo/configs/nsh > >> > >> And the log shows: > >> > >> LN: include/arch to arch/arm/include > >> LN: include/arch/board to > >> /home/slo/nut/nuttx/boards/arm/stm32/nucleo-f446re/include > >> LN: include/arch/chip to arch/arm/include/stm32 > >> LN: arch/arm/src/board to > >> /home/slo/nut/nuttx/boards/arm/stm32/nucleo-f446re/../common > >> LN: arch/arm/src/board/board to > >> /home/slo/nut/nuttx/boards/arm/stm32/nucleo-f446re/src > >> LN: arch/arm/src/chip to arch/arm/src/stm32 > >> LN: /home/slo/nut/nuttx/drivers/platform to > >> /home/slo/nut/nuttx/drivers/dummy > >> > >> and it builds, because it uses the original dev board > >> > >> So in fact using configure with a custom board path DOES NOT work. It just > >> configures whatever built in board is indicated in the config file. > >> > >> Then I tried to change the board path using make menuconfig, then make > >> again, and then it stops building as before: '*** No rule to make target > >> 'libboard.a'.' > >> > >> Sebastien > >> > >> > >> Le 20/05/2021 à 13:44, Abdelatif Guettouche a écrit : > >>> Hi, > >>> > >>> Is it possible to share the defconfig? I just tried with an old one > >>> (based on STM32) and I have a clean build. > >>> The relevant configs that need to be correctly set are: > >>> CONFIG_ARCH_BOARD_CUSTOM=y > >>> CONFIG_ARCH_BOARD_CUSTOM_DIR="../boards/stm32/board-dir" > >>> CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y > >>> CONFIG_ARCH_BOARD_CUSTOM_NAME="Custom-STM32-Board" > >>> > >>> On Thu, May 20, 2021 at 10:47 AM Sebastien Lorquet <sebast...@lorquet.fr> > >>> wrote: > >>>> Hello, > >>>> > >>>> I have to update the nuttx in our project from pre-apache to last > >>>> version. > >>>> > >>>> We would like to use the external board feature. > >>>> > >>>> As a test I copied the nucleo-f446re folder in boards/arm to somewhere > >>>> else (sibling to apps and nuttx), renamed it, and pointed to it in the > >>>> configuration. make menuconfig was happy with that. > >>>> > >>>> However the build fails: > >>>> > >>>> IN: fs/libfs.a -> staging/libfs.a > >>>> make[1]: Entering directory '/home/slo/nut/nuttx/binfmt' > >>>> CC: binfmt_globals.c > >>>> CC: binfmt_initialize.c > >>>> CC: binfmt_register.c > >>>> CC: binfmt_unregister.c > >>>> CC: binfmt_loadmodule.c > >>>> CC: binfmt_unloadmodule.c > >>>> CC: binfmt_execmodule.c > >>>> CC: binfmt_exec.c > >>>> CC: binfmt_copyargv.c > >>>> CC: binfmt_dumpmodule.c > >>>> CC: builtin.c > >>>> AR (create): libbinfmt.a binfmt_globals.o binfmt_initialize.o > >>>> binfmt_register.o binfmt_unregister.o binfmt_loadmodule.o > >>>> binfmt_unloadmodule.o binfmt_execmodule.o binfmt_exec.o > >>>> binfmt_copyargv.o binfmt_dumpmodule.o builtin.o > >>>> make[1]: Leaving directory '/home/slo/nut/nuttx/binfmt' > >>>> IN: binfmt/libbinfmt.a -> staging/libbinfmt.a > >>>> make[1]: Entering directory '/home/slo/nut/nuttx/arch/arm/src' > >>>> make[2]: Entering directory '/home/slo/nut/my_own_nucleo/src' > >>>> make[2]: *** No rule to make target 'libboard.a'. Stop. > >>>> make[2]: Leaving directory '/home/slo/nut/my_own_nucleo/src' > >>>> make[1]: *** [Makefile:152: board/libboard.a] Error 2 > >>>> make[1]: Leaving directory '/home/slo/nut/nuttx/arch/arm/src' > >>>> make: *** [tools/Makefile.unix:422: nuttx] Error 2 > >>>> > >>>> Looks like a Makefile (or just a rule) is missing. Is it a bug in this > >>>> board/arch or in my own method or a problem in the external board build > >>>> system? > >>>> > >>>> I'm using a relative board path. > >>>> > >>>> I'll add a github issue when the problem is understood. > >>>> > >>>> Sebastien > >>>>