Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    New build system introduced, testing and feedback needed

    Scheduled Pinned Locked Moved
    PanelDue
    7
    57
    2.8k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • mfs12undefined
      mfs12
      last edited by

      @gloomyandy said in New build system introduced, testing and feedback needed:

      The LPC and STM32 builds of RRF both use make

      Can you point me to the repository? Eventually it would be an option to port your solution to RRF.

      Visit me on github at https://github.com/mfs12/

      jay_s_ukundefined gloomyandyundefined 2 Replies Last reply Reply Quote 2
      • jay_s_ukundefined
        jay_s_uk @mfs12
        last edited by

        @mfs12
        Here's the main build repo https://github.com/gloomyandy/RRFBuild/tree/v3.4-dev

        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

        1 Reply Last reply Reply Quote 1
        • oliofundefined
          oliof @gloomyandy
          last edited by

          @gloomyandy I kind of agree. Considering I need to manually pass the really important info (where are the build binaries, what do I want to build) manually into CMake to make it work on Windows, a well-constructed set of Makefiles might be cleaner and easier to follow along in the end. But I won't say no to CMake, and it's @mfs12´s weapon of choice (-:

          <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

          1 Reply Last reply Reply Quote 0
          • gloomyandyundefined
            gloomyandy @mfs12
            last edited by gloomyandy

            @mfs12 The repo that jay pointed you to is the overall build repo. The actual make files we currently keep in the CoreN2G repo (which may or may not be a good idea):
            https://github.com/gloomyandy/CoreN2G/tree/v3.4-dev/src/STM32F4/makefiles
            https://github.com/gloomyandy/CoreN2G/tree/v3.4-dev/src/LPC/makefiles

            I doubt if these qualify as a "well constructed set of makefiles", but they do the job. For historical reasons we currently keep two separate sets of build files for the two different mcus, it would probably make sense to combine them and have a different make build target.

            cmake is certainly a lot easier to handle than the eclipse build file system!

            1 Reply Last reply Reply Quote 1
            • oozeBotundefined
              oozeBot
              last edited by

              Thanks all. I'm getting further and can create the build files, but am now stuck at the following:

              PS C:\Eclipse\PanelDueFirmware> make -C build all -j12
              make: Entering directory 'C:/Eclipse/PanelDueFirmware/build'
              Makefile:32: *** missing separator.  Stop.
              

              I've tried other variations with no luck. FYI - (Get-Command make).Path returns:

              C:\Program Files\GNU ARM Eclipse\Build Tools\2.6-201507152002\bin\make.exe
              

              Thanks in advance.

              1 Reply Last reply Reply Quote 0
              • mfs12undefined
                mfs12
                last edited by

                @oozeBot
                can you send the file 'C:/Eclipse/PanelDueFirmware/build/Makefile'

                There's something wrong with the makefile. any path you pass as commandline parameter needs to be in quotes, backslash replaced with slash and whitespaces escaped with backslash.

                Can you share your cmake call?

                Visit me on github at https://github.com/mfs12/

                oozeBotundefined 1 Reply Last reply Reply Quote 0
                • oozeBotundefined
                  oozeBot @mfs12
                  last edited by oozeBot

                  @mfs12 - Here you go - both renamed to ".txt". I believe I've setup env.vmake correctly. With it, my cmake command is just

                  cmake -B build
                  

                  env.cmake.txt

                  Makefile.txt

                  I'm reviewing the makefile now - one thing of note I've found is on line 79 - note the double "\\". edit - changing the \\ to \ didn't fix it. still reviewing.

                  C:\Eclipse\PanelDueFirmware\build\\CMakeFiles\progress.marks
                  

                  edit - There was an unescaped space in my env.cmake file that I just corrected, but still receiving the same error.

                  1 Reply Last reply Reply Quote 0
                  • mfs12undefined
                    mfs12
                    last edited by mfs12

                    @oozeBot somehow make wants the if-block at line 32 indented. I don't understand why. Weird enough.

                    Anyway i want cmake to run on you machine so hacking the makefiles is not really an option. Just for testing.

                    Visit me on github at https://github.com/mfs12/

                    oozeBotundefined 1 Reply Last reply Reply Quote 0
                    • oozeBotundefined
                      oozeBot @mfs12
                      last edited by

                      @mfs12 - thanks. I got past it by indenting the entire IF block in both makefile and CMakeFiles\makefile2. Pretty strange..

                      Current error I'm researching:

                      PS C:\Eclipse\PanelDueFirmware> make -C build all
                      make: Entering directory 'C:/Eclipse/PanelDueFirmware/build'
                      make[1]: Entering directory 'C:/Eclipse/PanelDueFirmware/build'
                      make[1]: *** No rule to make target '/nologo'.  Stop.
                      make[1]: Leaving directory 'C:/Eclipse/PanelDueFirmware/build'
                      Makefile:79: recipe for target 'all' failed
                      make: *** [all] Error 2
                      make: Leaving directory 'C:/Eclipse/PanelDueFirmware/build'
                      
                      1 Reply Last reply Reply Quote 0
                      • mfs12undefined
                        mfs12
                        last edited by

                        You can always make the build verbose.

                        $ make -C build VERBOSE=1 all
                        

                        Visit me on github at https://github.com/mfs12/

                        oozeBotundefined 1 Reply Last reply Reply Quote 0
                        • oozeBotundefined
                          oozeBot @mfs12
                          last edited by oozeBot

                          @mfs12 - Thank you for the hand-holding.

                          I see an error but am not sure where it came from yet. Look at line 5. That does not exist on my system and was not defined anywhere that I have yet to find.

                          edit - that's the path to "make" and does exist. My mistake - I was looking in Program Files (x86).

                          PS C:\Eclipse\PanelDueFirmware> make -C build VERBOSE=1 all
                          make: Entering directory 'C:/Eclipse/PanelDueFirmware/build'
                          "C:\Program Files\CMake\bin\cmake.exe" -SC:\Eclipse\PanelDueFirmware -BC:\Eclipse\PanelDueFirmware\build --check-build-system CMakeFiles\Makefile.cmake 0
                          "C:\Program Files\CMake\bin\cmake.exe" -E cmake_progress_start C:\Eclipse\PanelDueFirmware\build\CMakeFiles C:\Eclipse\PanelDueFirmware\build\CMakeFiles\progress.marks
                          C:/Program Files/GNU ARM Eclipse/Build Tools/2.6-201507152002/bin/make  -f CMakeFiles\Makefile2 /nologo -w -- VERBOSE=1 all
                          make[1]: Entering directory 'C:/Eclipse/PanelDueFirmware/build'
                          make[1]: *** No rule to make target '/nologo'.  Stop.
                          make[1]: Leaving directory 'C:/Eclipse/PanelDueFirmware/build'
                          Makefile:79: recipe for target 'all' failed
                          make: *** [all] Error 2
                          make: Leaving directory 'C:/Eclipse/PanelDueFirmware/build'
                          
                          1 Reply Last reply Reply Quote 0
                          • mfs12undefined
                            mfs12
                            last edited by mfs12

                            @oozebot said in New build system introduced, testing and feedback needed:

                            C:/Program Files/GNU ARM Eclipse/Build Tools/2.6-201507152002/bin/make

                            How old is your eclipse and toolchain? Is this a date 201507152002?

                            I think this might be an issue.

                            Visit me on github at https://github.com/mfs12/

                            1 Reply Last reply Reply Quote 0
                            • mfs12undefined
                              mfs12
                              last edited by mfs12

                              this nologo parameter is somehow related to verbosity. So if you remove VERBOSE=1 again. Does it work then?

                              Visit me on github at https://github.com/mfs12/

                              oozeBotundefined 1 Reply Last reply Reply Quote 0
                              • oozeBotundefined
                                oozeBot @mfs12
                                last edited by

                                @mfs12 no, it returned the same error as I posted above.

                                My toolchain is

                                C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2021.07\bin
                                

                                and the Eclipse IDE is

                                Version: 2021-06 (4.20.0)
                                Build id: 20210612-2011
                                

                                Reviewing now how to update make.exe

                                1 Reply Last reply Reply Quote 0
                                • mfs12undefined
                                  mfs12
                                  last edited by mfs12

                                  in the end this /nologo parameter is the issue. Make thinks it's a target but it's actually parameter intended for the windows linker. Really strange.

                                  If you delete that. You get a step further.

                                  Visit me on github at https://github.com/mfs12/

                                  1 Reply Last reply Reply Quote 0
                                  • mfs12undefined
                                    mfs12
                                    last edited by

                                    Apparently you can install additional tools using eclipse. Probably update them as well. Eventually this didn't happen for some time.

                                    Visit me on github at https://github.com/mfs12/

                                    oozeBotundefined 1 Reply Last reply Reply Quote 0
                                    • oozeBotundefined
                                      oozeBot @mfs12
                                      last edited by oozeBot

                                      @mfs12 - much closer now. I had two versions of make.exe. I updated it and removed all references to /nologo. However, the version without a logo is what I am needing to compile?

                                      Here is where I currently am at.

                                      PS C:\Eclipse\PanelDueFirmware> make -C build VERBOSE=1 
                                      
                                      ...
                                      
                                      C:\Eclipse\PanelDueFirmware\build C:\Eclipse\PanelDueFirmware\build C:\Eclipse\PanelDueFirmware\build\CMakeFiles\paneldue.elf.dir\DependInfo.cmake --color=
                                      make[2]: Leaving directory 'C:/Eclipse/PanelDueFirmware/build'
                                      C:/Program Files/GNU ARM Eclipse/Build Tools/2.6-201507152002/bin/make  -f CMakeFiles\paneldue.elf.dir\build.make  -nw -- VERBOSE=1 CMakeFiles\paneldue.elf.dir\build
                                      make[2]: Entering directory 'C:/Eclipse/PanelDueFirmware/build'
                                      make[2]: *** No rule to make target 'lib\librrf\librrf.a', needed by 'paneldue.elf'.  Stop.
                                      make[2]: Leaving directory 'C:/Eclipse/PanelDueFirmware/build'
                                      make[1]: *** [CMakeFiles\Makefile2:93: CMakeFiles\paneldue.elf.dir\all] Error 2
                                      make[1]: Leaving directory 'C:/Eclipse/PanelDueFirmware/build'
                                      make: *** [Makefile:80: all] Error 2
                                      make: Leaving directory 'C:/Eclipse/PanelDueFirmware/build'
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • oliofundefined
                                        oliof
                                        last edited by

                                        did you check out librrf as a submodule as detailed in the build instructions?

                                        <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                                        oozeBotundefined 1 Reply Last reply Reply Quote 0
                                        • mfs12undefined
                                          mfs12
                                          last edited by

                                          @oozeBot sounds like you didn't checkout the git submodules.

                                          Please refer to https://github.com/Duet3D/PanelDueFirmware#setup-repository

                                          Visit me on github at https://github.com/mfs12/

                                          oozeBotundefined 1 Reply Last reply Reply Quote 0
                                          • oozeBotundefined
                                            oozeBot @oliof
                                            last edited by

                                            @oliof yes, I did and the root lib/librrf contains many files, so I think I did it right!

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA