|
57 | 57 | LIBGFORTRAN_PATH=$(otool -L $(which fpm) | grep libgfortran | awk '{print $1}' | head -n 1) |
58 | 58 | if [ -n "$LIBGFORTRAN_PATH" ] && [ -n "$CURRENT_GFORTRAN" ]; then |
59 | 59 | TARGET_DIR=$(dirname "$LIBGFORTRAN_PATH") |
60 | | - echo "Creating directory: $TARGET_DIR" |
61 | | - sudo mkdir -p "$TARGET_DIR" |
| 60 | + echo "Creating directory tree for: $TARGET_DIR" |
| 61 | + # Create directory tree one level at a time to handle permissions properly |
| 62 | + IFS='/' read -ra PARTS <<< "$TARGET_DIR" |
| 63 | + CURRENT_PATH="" |
| 64 | + for part in "${PARTS[@]}"; do |
| 65 | + if [ -n "$part" ]; then |
| 66 | + CURRENT_PATH="$CURRENT_PATH/$part" |
| 67 | + sudo mkdir "$CURRENT_PATH" 2>/dev/null || true |
| 68 | + fi |
| 69 | + done |
62 | 70 | echo "Linking $CURRENT_GFORTRAN to $LIBGFORTRAN_PATH" |
63 | 71 | sudo ln -fs "$CURRENT_GFORTRAN" "$LIBGFORTRAN_PATH" |
64 | 72 | fi |
|
67 | 75 | LIBQUADMATH_PATH=$(otool -L $(which fpm) | grep libquadmath | awk '{print $1}' | head -n 1) |
68 | 76 | if [ -n "$LIBQUADMATH_PATH" ] && [ -n "$CURRENT_QUADMATH" ]; then |
69 | 77 | TARGET_DIR=$(dirname "$LIBQUADMATH_PATH") |
70 | | - echo "Creating directory: $TARGET_DIR" |
71 | | - sudo mkdir -p "$TARGET_DIR" |
| 78 | + echo "Creating directory tree for: $TARGET_DIR" |
| 79 | + # Create directory tree one level at a time to handle permissions properly |
| 80 | + IFS='/' read -ra PARTS <<< "$TARGET_DIR" |
| 81 | + CURRENT_PATH="" |
| 82 | + for part in "${PARTS[@]}"; do |
| 83 | + if [ -n "$part" ]; then |
| 84 | + CURRENT_PATH="$CURRENT_PATH/$part" |
| 85 | + sudo mkdir "$CURRENT_PATH" 2>/dev/null || true |
| 86 | + fi |
| 87 | + done |
72 | 88 | echo "Linking $CURRENT_QUADMATH to $LIBQUADMATH_PATH" |
73 | 89 | sudo ln -fs "$CURRENT_QUADMATH" "$LIBQUADMATH_PATH" |
74 | 90 | fi |
|
77 | 93 | LIBGCC_PATH=$(otool -L $(which fpm) | grep libgcc_s | awk '{print $1}' | head -n 1) |
78 | 94 | if [ -n "$LIBGCC_PATH" ] && [ -n "$CURRENT_GCC_S" ]; then |
79 | 95 | TARGET_DIR=$(dirname "$LIBGCC_PATH") |
80 | | - echo "Creating directory: $TARGET_DIR" |
81 | | - sudo mkdir -p "$TARGET_DIR" |
| 96 | + echo "Creating directory tree for: $TARGET_DIR" |
| 97 | + # Create directory tree one level at a time to handle permissions properly |
| 98 | + IFS='/' read -ra PARTS <<< "$TARGET_DIR" |
| 99 | + CURRENT_PATH="" |
| 100 | + for part in "${PARTS[@]}"; do |
| 101 | + if [ -n "$part" ]; then |
| 102 | + CURRENT_PATH="$CURRENT_PATH/$part" |
| 103 | + sudo mkdir "$CURRENT_PATH" 2>/dev/null || true |
| 104 | + fi |
| 105 | + done |
82 | 106 | echo "Linking $CURRENT_GCC_S to $LIBGCC_PATH" |
83 | 107 | sudo ln -fs "$CURRENT_GCC_S" "$LIBGCC_PATH" |
84 | 108 | fi |
0 commit comments