Menu

#372 No stdout from custom makefile in build log

Undefined
open
nobody
None
Undefined
2016-06-09
2016-06-08
Riot
No

When using a custom makefile, the complete build log consists of:

-------------- Build: example in Example (compiler: GNU GCC Compiler)---------------
Using makefile: Makefile
Process terminated with status 0 (0 minute(s), 4 second(s))
0 error(s), 0 warning(s) (0 minute(s), 4 second(s))

Despite the fact that the makefile outputs its build steps etc. Only errors are shown.

Desired behaviour is to see the output produced by the makefile.

Version 16.01 rev 10692, Linux 64bit.

Discussion

  • Teodor Petrov

    Teodor Petrov - 2016-06-08

    What are the settings for the logging verbosity in the Settings -> Compiler?

     
  • Riot

    Riot - 2016-06-09

    Logging verbosity is on "task description". On this mode, other build scripts etc all do produce normally visible stdout as expected in the build log.

     
  • Teodor Petrov

    Teodor Petrov - 2016-06-09

    What do you mean by other build scripts?

     
    • Riot

      Riot - 2016-06-10

      When not using a custom makefile, but building from a codeblocks project as normal, any external scripts that are executed return stdout as expected in the log. I use both pre and post build steps and custom build commands extensively and those all show their output correctly in that logging mode.

       
      • Teodor Petrov

        Teodor Petrov - 2016-06-10

        I guess the other places where build scripts are executed are wrong and should be fixed. :)
        If we show the output from the makefile this will make the options of full logging and task description be the same. Some build systems have the VERBOSE=1 variable, we could probably expose it...

         
        • Riot

          Riot - 2016-06-14

          Suppressing stdout from other build scripts would be extremely undesirable.

          Currently, my g++ build command is in the order of hundreds of options long, and including the full commandline when building renders the remainder of the output completely unreadable.

          Suppressing the commandline should not at all be the same thing as suppressing standard output. In fact it would be crazy not to see standard output from your build commands in any display mode. These two unrelated settings should not in any case be conflated - I want to see "compiling whatever.cpp", not thirty lines of gcc options, but if something is wrong or if there are warnings or comments generated, or progress info output by very long running post-compile packaging scripts, I don't want to miss those.

          Since makefiles generally produce output in the form of "compiling x... done, compiling y... done", that fits perfectly with the output expected from the "task description" logging verbosity level.

          I also really don't want to have to go into my menus and change the logging verbosity every single time I switch between a makefile based project and a native codeblocks project just to get the same level of logging detail; that would be a step backwards for usability as well.

           
          • Teodor Petrov

            Teodor Petrov - 2016-06-14

            The output of the make is controled by the makefile itself and most makefiles in the wild are pretty verbose. The true solution here is to add another option in the project that allows you to enter a verbose and non-verbose make commands.

            This is not really hard to do but requires more time which I don't have at the moment, so patches welcome...

             
            • Riot

              Riot - 2016-06-14

              That's understandable, but I would suggest at this point as a very simple workaround to just not suppress stdout from the makefile; if someone else's makefile is too spammy, there are ways to resolve that without preventing everyone who uses codeblocks from being able to read the output of their own makefiles too.

               

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.