Explicitly create parent directory before creating symlink (#6808)

Ninja always creates the directories for its outputs, but apparently
Make doesn't.

Fixes https://github.com/google/iree/issues/6801
diff --git a/build_tools/cmake/iree_python.cmake b/build_tools/cmake/iree_python.cmake
index 6adcb34..59e1069 100644
--- a/build_tools/cmake/iree_python.cmake
+++ b/build_tools/cmake/iree_python.cmake
@@ -234,11 +234,18 @@
 
   # Symlink each file as its own target.
   foreach(SRC_FILE ${ARG_SRCS})
+    # SRC_FILE could have other path components in it, so we need to make a
+    # directory for it. Ninja does this automatically, but make doesn't. See
+    # https://github.com/google/iree/issues/6801
+    set(_SRC_BIN_PATH "${CMAKE_CURRENT_BINARY_DIR}/${SRC_FILE}")
+    get_filename_component(_SRC_BIN_DIR "${_SRC_BIN_PATH}" DIRECTORY)
     add_custom_command(
       TARGET ${_NAME}
+      COMMAND
+        ${CMAKE_COMMAND} -E make_directory "${_SRC_BIN_DIR}"
       COMMAND ${CMAKE_COMMAND} -E create_symlink
-        "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FILE}" "${CMAKE_CURRENT_BINARY_DIR}/${SRC_FILE}"
-      BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/${SRC_FILE}"
+        "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FILE}" "${_SRC_BIN_PATH}"
+      BYPRODUCTS "${_SRC_BIN_PATH}"
     )
   endforeach()