Page 1 of 1

Build system ignores syntax errors

Posted: Thu Jun 28, 2018 2:50 pm
by PeterR
Hi,
I am porting applications to the ESP32. Lots of undefined/conflicting types to work through. The process is

Code: Select all

make flash
remove some syntax errors then

Code: Select all

make flash
again etc etc.
Often the build system will not return to a file that still has syntax errors and instead carries on with the rest of the build and even programs the device.
If I

Code: Select all

make clean
then

Code: Select all

make flash
then a new attempt is made to recompile.

Code: Select all

make clean
slows me down as I must wait for everything else to recompile.
Why is the build ignoring a files with sytax errors?
Is there a command just to clean the user area?

This is a PC build.

Re: Build system ignores syntax errors

Posted: Thu Jun 28, 2018 7:02 pm
by kolban
That's very interesting. It is not what I have ever seen in any of my environments. If there is a compilation error in a translation unit and I then affect a fix, when I re-run make the translation unit is re-submitted for compilation.

Re: Build system ignores syntax errors

Posted: Fri Jun 29, 2018 3:16 am
by chegewara
I dont know what you are trying to achieve with make clean, but you can just simple delete files from build/main subfolder and eventually build/subfolders that your own components name.

Re: Build system ignores syntax errors

Posted: Fri Jun 29, 2018 8:47 am
by PeterR
Thanks.
Was using clean as I did not know how to selectively remove my objects (other than manual prune which is also a pain).

Using the default build I end up with the one build folder off the project base.
Would be interested if I can locate my objects in their own folder for ease of delete and/or make voodoo which may allow me just to prune my objects (excluding the standard components).

Re: Build system ignores syntax errors

Posted: Fri Jun 29, 2018 8:54 am
by chegewara
Yes, you have build folder, but you also have bunch of subfolders. Each subfolder is for components. You have "main" subfolder for all objects that are inside main folder in you project etc. If you like to play with scripts i think you can easy write simple script to delete all from subfolders you are interested with.

Re: Build system ignores syntax errors

Posted: Fri Jun 29, 2018 9:11 am
by PeterR
My bad. Had a look in build directory and can see that it would be easy to prune my bits.

The Arduino ESP project I am trying to convert has the files:
MQTT.cpp and mqtt.c

Renamed MQTT.cpp to CMQTT.cpp and the file is no longer skipped on second build.
Seems that there is a case insensitive error somewhere in the linking section of the make script.

Life's too short, going with the rename!

Re: Build system ignores syntax errors

Posted: Tue Jul 03, 2018 2:16 am
by ESP_Angus
PeterR wrote: Renamed MQTT.cpp to CMQTT.cpp and the file is no longer skipped on second build.
Seems that there is a case insensitive error somewhere in the linking section of the make script.
Yes, I think this is probably a bug in the build system. Both files will compile to mqtt.o, and Windows regards MQTT.o and mqtt.o as the same file.)

This will be fixed in the CMake-based build system (which names the output files MQTT.cpp.obj and mqtt.c.obj, respectively). Unfortunately it's a little difficult to fix in the current GNU Make build system.

Re: Build system ignores syntax errors

Posted: Tue Jul 03, 2018 1:13 pm
by PeterR
Thanks. Its not an issue for me now that I know.
Now my Ethernet question, viewtopic.php?f=2&t=6261&p=27189#p27189 is hurting!