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

    Building without eclispe?

    Scheduled Pinned Locked Moved
    Firmware developers
    4
    8
    935
    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.
    • bondusundefined
      bondus
      last edited by

      Is there any way to build the firmware without eclipse? Good old make?

      I just updated my firmware sources for the first time since january and getting it to compile and link again was the same nightmare it was back then. Hours of randomly clicking around on "Build clean", "refresh", "build all", restart eclipse, delete directories, pressing F5, sometimes getting one step closer to a successful build.
      The problems are all in configuration and/or dependency management. Or my total lack of understanding eclipse.

      I finally got it building again, slightly frustrated.

      1 Reply Last reply Reply Quote 2
      • dc42undefined
        dc42 administrators
        last edited by dc42

        Eclipse generates makefiles, so you could export them and use make if you wish. But you will still need some way of keeping track of different build configurations if you use more than one, include paths, compiler options. etc.

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        1 Reply Last reply Reply Quote 0
        • gtj0undefined
          gtj0
          last edited by

          Since january, there was an update that moved the definition of GccPath from the project settings to the workspace settings as ArmGccPath. Did you catch that in the updated build instructions?

          Which OS do you build under?

          1 Reply Last reply Reply Quote 0
          • bondusundefined
            bondus
            last edited by

            Sorry for my rant before, I was far too agitated to post on forums.

            The problems had nothing to do with my configuration and setup. I didn't change a thing between starting to try to compile and successfully building a working firmware. No build configuration changes, no source file changes, none of the files in git were changed. The issues I had was everything from strange compilation errors in CoreNG, something about a Pin class, to linker errors where it was missing syscalls.o or symbols defined multiple times,

            I think one of the keys to why it got resolved was a project refresh (F5) in eclipse.

            I noted the change of GccPath and the need for an updated compiler. The old q2 compiler crashed on the new sources, "../src/Storage/FileInfoParser.cpp:764:6: internal compiler error: Segmentation fault". Scary.

            My dislike for eclipse is now even stronger than it was before 🙂

            dc42undefined 1 Reply Last reply Reply Quote 2
            • XTLundefined
              XTL
              last edited by

              There really should be an unattended and repeatable build and preferrably CI for every software project. Does duet fw really require a ginormous interactive heap of Java to build?

              1 Reply Last reply Reply Quote 1
              • dc42undefined
                dc42 administrators @bondus
                last edited by dc42

                @bondus said in Building without eclispe?:

                I think one of the keys to why it got resolved was a project refresh (F5) in eclipse.

                If you import files and/or workspaces outside of Eclipse, then of course you need to refresh the project, so that Eclipse knows there are changes to pick up. It would be a waste of resources if it scanned the disk before every build in case you had changed something.

                I noted the change of GccPath and the need for an updated compiler. The old q2 compiler crashed on the new sources, "../src/Storage/FileInfoParser.cpp:764:6: internal compiler error: Segmentation fault". Scary.
                My dislike for eclipse is now even stronger than it was before.

                Why? The compiler issue is nothing to do with Eclipse.

                @xtl said in Building without eclispe?:

                There really should be an unattended and repeatable build and preferrably CI for every software project. Does duet fw really require a ginormous interactive heap of Java to build?

                Eclipse has a wealth of features that make it faster for me to maintain and develop the firmware. That, and the fact that it is cross-platform and open source, is why I use it. As I said in my previous post, if you want to build outside of Eclipse, feel free to export the makefiles.

                Duet WiFi hardware designer and firmware engineer
                Please do not ask me for Duet support via PM or email, use the forum
                http://www.escher3d.com, https://miscsolutions.wordpress.com

                1 Reply Last reply Reply Quote 0
                • bondusundefined
                  bondus
                  last edited by

                  @dc42 There are very few cross platform build environments for strange embedded platform to choose from. eclipse is one of the very few.

                  But I find it very frustrating that if you close the IDE, do a git pull, and restart the IDE, it has still cached something in a magic place that breaks your build. Many non eclipse projects suffers from similar issues, usually due to a lack of expressed dependency between intermediate output files and configuration/project definition files.

                  @XTL You can build eclipse projects on the command line for CI integration without starting the ginormous IDE. eclipse is not a toy. Just make sure that you know where the magic files are and remove them between builds.

                  1 Reply Last reply Reply Quote 0
                  • XTLundefined
                    XTL
                    last edited by

                    That's good. I'm aware of Eclipse and actually use it for some things in all kinds of strange versions. It's a fine tool for development, but not for builds or integration.

                    I've also seen so many compilers and tools get buried in licenses and obsoletion of platforms that it always lights up alarms to see some massive IDE been mentioned when something is supposed to get built.

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