SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:

System Workbench for STM32

bug in SW's make.exe (v3.81) ? : "Malformed target-specific variable definition" error [fixed]

Hello !
When trying to compile applications from STM32CubeF7, I’ve got a “make” error in reading a subdir.mk file :
“Malformed target-specific variable definition”.
It happens for example in STemWin_HelloWorld application.

It might be a bug in old make version due to a too long command line, as seen here :
I fixed it with replacing SW’s make with this one, which is version 4.1 :

Hope it helps...
Maybe AC6 could update the make tool ?
Thank you
Best regards



Thanks for the bug report. Could you please post the offending subdir.mk file, so that we can work out a workaround to avoid problems with the standard version of make (version 4 is quite uncommon and we only provide our own make on windows, on Linux we use the standard one, which is usually 3.81 or 3.82 but not 4.1).

Bernard (Ac6)

The problematic line in the subdir.mk file is :

Middlewares/STemWin/Config/GUIConf.o: K:/_STM32_/stm32cubef7/STM32Cube_FW_F7_V1.3.0/Projects/STM32746G-Discovery/Applications/STemWin/STemWin_HelloWorld/Src/GUIConf.c

The offending subdir.mk file is in :

My OS is Windows Vista.


Well, after more investigation, I see that the problem comes from an exotic folder name (_STM32_ surrounded by three “=” which I can’t reproduce here due to formatting codes) !
So no problem with make 3.81 if paths have no fancy names... just letters, numbers and _ .
Sorry to bother !


Hi Xavier

OK, now I understand: an ‘=’ in the right-hand side of a dependency in a Makefile define a target-dependent variable, whose name is the left-hand side of the equal sign and the value is the right-hand side of the equal. This variable will be valid only when executing commands to build the current target (what is on the left of the ‘:’) or one of its dependencies.

The problem there was that K:/ is definitly not a valid variable name... If it had been, you will not have had the error, but the build will have failed for another reason, as a dependency would have missed for your target...

So, it’s right: avoid fancy folder names, and especially always omit ‘=’ signs in a folder name (by the way its the first time I see such a folder name...)


Bernard (Ac6)

Thank you for your explanation Bernard !
No more fancy here, promised ! wink