Building without eclispe?
-
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.
-
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.
-
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?
-
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
-
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?
-
@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.
-
@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.
-
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.