CCSv4 build generates error - target pattern contains no `%'. Stop.

From Texas Instruments Wiki
Jump to: navigation, search

Background

I attempted to rebuild the test_audio example that comes with the Logic PD OMAP-L138 BSL in CCSv4.1, but when I rebuild I get the following error:

**** Build of configuration Debug for project test_audio ****

C:\Program Files (x86)\Texas Instruments\ccsv4\utils\gmake\gmake -k all
subdir.mk:35: *** target pattern contains no `%'. Stop.

Build complete for project test_audio

This is not specific to just the OMAP-L138 BSL examples and likely could happen with any converted CCSv3.3 project.

Environment

I encountered the issue with CCSv4.1, CGTools v6.1.12, and the OMAP-L138 BSL 1014013A (dated Aug. 21, 2009), but again I do not believe this is specific to these specific versions.

Answer

In my case the conversion wizard was creating bad paths for the .obj, .out and .map files as well as two bad header include paths. To fix this I took the following steps:

  • Open the Project Properties (right click the project, select Properties)
  • Navigate to Basic Settings->C6000 Compiler->Directory Specifier and make sure the mode is automatic (or specify a valid object file directory)
  • Under Include Options update the last two directories to point to the actual location of the project’s include folder and the BSL include folder
  • Navigate to Basic Settings->C6000 Linker->Basic Options and specify a valid output file name (probably project_name.out) and map file name (project_name.map)

At this point you should not get the strange gmake errors, but you may still get a linker error. To correct the linker error open the .cmd file and update the relative path to the BSL file (or any other library file) to an absolute path. You should now be able to completely build the project successfully.

With that said, bug SDSCM00034965 was created against the conversion wizard for the invalid search paths.