> Rename Make.defs to Makefile

To be clear, here I'm referring to ../boards/nucleo-f446re/src/Make.defs

On Thu, May 20, 2021 at 2:27 PM Abdelatif Guettouche
<abdelatif.guettou...@gmail.com> wrote:
>
> I just copied the nucleo-fe446re board without the common directory.
>
> Here are the steps I took:
> Add the correct custom board CONFIGs to nsh/defconfig (and remove some
> of the old ones)
> Rename Make.defs to Makefile
> Add include $(TOPDIR)/boards/Board.mk to the end of the file.
>
> ./tools/configure.sh ../boards/nucleo-f446re/configs/nsh
> make
>
> Builds fine.
>
> On Thu, May 20, 2021 at 2:14 PM Abdelatif Guettouche
> <abdelatif.guettou...@gmail.com> wrote:
> >
> > (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
> > > >>>>

Reply via email to