3.2.3 says:
$(TARGET_OUTPUT_DIR)
The output directory of the current target.
$(TARGET_OBJECT_DIR)
The object directory of the current target.
$(TARGET_NAME)
The name of the current target.
$(TARGET_OUTPUT_FILE)
The output file of the current target.
$(TARGET_OUTPUT_BASENAME)
The output file’s base name (no path, no extension) of the current target.
This appears to be missing something. In project>properties>build targets I can choose to put an automatic platform prefix and extension on the output filename. But these variables appear to offer no way to rebuild or access this platform-extended filename. Indeed, $(TARGET_OUTPUT_BASENAME) specifically strips off the ext (but not the prefix?).
So I think $(TARGET_OUTPUT_FILE) should be the complete filename
only (because $(TARGET_OUTPUT_DIR) already has the dir info so $(TARGET_OUTPUT_DIR)/$(TARGET_OUTPUT_FILE) would then get the full thing, and $(TARGET_OUTPUT_PREFIX) and $(TARGET_OUTPUT_EXT) should be added with BASENAME modified to strip the prefix too.
Or am I missing something?