New build system introduced, testing and feedback needed
-
@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
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.
-
@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.
-
@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'
-
You can always make the build verbose.
$ make -C build VERBOSE=1 all
-
@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'
-
@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.
-
this nologo parameter is somehow related to verbosity. So if you remove VERBOSE=1 again. Does it work then?
-
@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
-
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.
-
Apparently you can install additional tools using eclipse. Probably update them as well. Eventually this didn't happen for some time.
-
@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'
-
did you check out librrf as a submodule as detailed in the build instructions?
-
@oozeBot sounds like you didn't checkout the git submodules.
Please refer to https://github.com/Duet3D/PanelDueFirmware#setup-repository
-
@oliof yes, I did and the root lib/librrf contains many files, so I think I did it right!
-
@mfs12 I just responded that I thought I had, but it must be that didn't work correctly.. I'll rerun those steps again here soon. Thanks again
-
After you rerun those steps, clean out the build/ directory and rerun cmake.
-
This is the console output. I'll clean up the build folder and try again here soon. Thanks
git submodule update --recursive Cloning into '/home/pi/PanelDueFirmware/lib/librrf'... Submodule path 'lib/librrf': checked out 'f3e75ecfe8802ca2cdac07cf20dee3ac05479ea7'
-
I'm back at it.. I cleaned up the build folder, validated I had the latest copy of the windows build tools, verified I had the submodules, and then re-ran.
Here is snippet of the files "cmake -B build" creates (using env.cmake). Note there are now no makefiles! Grr- any ideas?
-
@oozeBot looks like cmake decided to create project files for visual code.
Check for more details about different IDE support.
https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html
In such an early stage i would recommend to delete the build folder when things behave weird.
-
@mfs12 Finally! By using the following, it built without any modifications! There were some warnings, but it created the bin files. This is what I was missing..!
I think this was problem all along..
cmake -B build -G "Eclipse CDT4 - Unix Makefiles"