Changeset 729 for trunk/src/gmake
- Timestamp:
- Dec 17, 2006, 3:12:07 AM (19 years ago)
- Location:
- trunk/src/gmake
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gmake/function.c
r725 r729 1933 1933 /* Return the absolute name of file NAME which does not contain any `.', 1934 1934 `..' components nor any repeated path separators ('/'). */ 1935 1936 static char * 1935 #ifdef KMK 1936 char * 1937 #else 1938 static char * 1939 #endif 1937 1940 abspath (const char *name, char *apath) 1938 1941 { … … 2454 2457 { STRING_SIZE_TUPLE("kb-obj-base"), 1, 1, 0, func_kbuild_object_base}, 2455 2458 { STRING_SIZE_TUPLE("kb-obj-suff"), 1, 1, 0, func_kbuild_object_suffix}, 2456 { STRING_SIZE_TUPLE("kb-src-prop"), 3, 3, 0, func_kbuild_source_prop},2457 { STRING_SIZE_TUPLE("kb-src-one"), 1, 1, 0, func_kbuild_source_one},2459 { STRING_SIZE_TUPLE("kb-src-prop"), 4, 4, 0, func_kbuild_source_prop}, 2460 { STRING_SIZE_TUPLE("kb-src-one"), 0, 1, 0, func_kbuild_source_one}, 2458 2461 #endif 2459 2462 }; -
trunk/src/gmake/kbuild.c
r725 r729 43 43 #endif 44 44 45 /* function.c */ 46 char * abspath(const char *name, char *apath); 47 48 /** 49 * Applies the specified default path to any relative paths in *ppsz. 50 * 51 * @param pDefPath The default path. 52 * @param ppsz Pointer to the string pointer. If we expand anything, *ppsz 53 * will be replaced and the caller is responsible for calling free() on it. 54 * @param pcch IN: *pcch contains the current string length. 55 * OUT: *pcch contains the new string length. 56 * @param pcchAlloc *pcchAlloc contains the length allocated for the string. Can be NULL. 57 * @param fCanFree Whether *ppsz should be freed when we replace it. 58 */ 59 static void 60 kbuild_apply_defpath(struct variable *pDefPath, char **ppsz, int *pcch, int *pcchAlloc, int fCanFree) 61 { 62 char *pszIterator; 63 const char *pszInCur; 64 unsigned int cchInCur; 65 unsigned int cRelativePaths; 66 67 /* 68 * The first pass, count the relative paths. 69 */ 70 cRelativePaths = 0; 71 pszIterator = *ppsz; 72 while ((pszInCur = find_next_token(&pszIterator, &cchInCur))) 73 { 74 /* is relative? */ 75 #ifdef HAVE_DOS_PATHS 76 if (pszInCur[0] != '/' && pszInCur[0] != '\\' && (cchInCur < 2 || pszInCur[1] != ':')) 77 #else 78 if (pszInCur[0] != '/') 79 #endif 80 cRelativePaths++; 81 } 82 83 /* 84 * The second pass construct the new string. 85 */ 86 if (cRelativePaths) 87 { 88 const size_t cchOut = *pcch + cRelativePaths * (pDefPath->value_length + 1) + 1; 89 char *pszOut = xmalloc(cchOut); 90 char *pszOutCur = pszOut; 91 const char *pszInNextCopy = *ppsz; 92 93 cRelativePaths = 0; 94 pszIterator = *ppsz; 95 while ((pszInCur = find_next_token(&pszIterator, &cchInCur))) 96 { 97 /* is relative? */ 98 #ifdef HAVE_DOS_PATHS 99 if (pszInCur[0] != '/' && pszInCur[0] != '\\' && (cchInCur < 2 || pszInCur[1] != ':')) 100 #else 101 if (pszInCur[0] != '/') 102 #endif 103 { 104 PATH_VAR(szAbsPathIn); 105 PATH_VAR(szAbsPathOut); 106 107 if (pDefPath->value_length + cchInCur + 1 >= GET_PATH_MAX) 108 continue; 109 110 /* Create the abspath input. */ 111 memcpy(szAbsPathIn, pDefPath->value, pDefPath->value_length); 112 szAbsPathIn[pDefPath->value_length] = '/'; 113 memcpy(&szAbsPathIn[pDefPath->value_length + 1], pszInCur, cchInCur); 114 szAbsPathIn[pDefPath->value_length + 1 + cchInCur] = '\0'; 115 116 if (abspath(szAbsPathIn, szAbsPathOut) != NULL) 117 { 118 const size_t cchAbsPathOut = strlen(szAbsPathOut); 119 assert(cchAbsPathOut <= pDefPath->value_length + 1 + cchInCur); 120 121 /* copy leading input */ 122 if (pszInCur != pszInNextCopy) 123 { 124 const size_t cchCopy = pszInCur - pszInNextCopy; 125 memcpy(pszOutCur, pszInNextCopy, cchCopy); 126 pszOutCur += cchCopy; 127 } 128 pszInNextCopy = pszInCur + cchInCur; 129 130 /* copy out the abspath. */ 131 memcpy(pszOutCur, szAbsPathOut, cchAbsPathOut); 132 pszOutCur += cchAbsPathOut; 133 } 134 } 135 } 136 /* the final copy (includes the nil). */ 137 cchInCur = *ppsz + *pcch - pszInNextCopy; 138 memcpy(pszOutCur, pszInNextCopy, cchInCur); 139 pszOutCur += cchInCur; 140 *pszOutCur = '\0'; 141 assert((size_t)(pszOutCur - pszOut) < cchOut); 142 143 /* set return values */ 144 if (fCanFree) 145 free(*ppsz); 146 *ppsz = pszOut; 147 *pcch = pszOutCur - pszOut; 148 if (pcchAlloc) 149 *pcchAlloc = cchOut; 150 } 151 } 152 45 153 46 154 /** … … 157 265 } 158 266 267 /** 268 * Looks up a variable and applies default a path to all relative paths. 269 * The value_length field is valid upon successful return. 270 * 271 * @returns Pointer to the variable. NULL if not found. 272 * @param pDefPath The default path. 273 * @param pszName The variable name. 274 */ 275 static struct variable * 276 kbuild_lookup_variable_defpath(struct variable *pDefPath, const char *pszName) 277 { 278 struct variable *pVar = kbuild_lookup_variable(pszName); 279 if (pVar && pDefPath) 280 kbuild_apply_defpath(pDefPath, &pVar->value, &pVar->value_length, &pVar->value_alloc_len, 1); 281 return pVar; 282 } 283 159 284 /** Same as kbuild_lookup_variable except that a '%s' in the name string 160 285 * will be substituted with the values of the variables in the va list. */ 161 286 static struct variable * 162 kbuild_lookup_variable_fmt_va( const char *pszNameFmt, va_list va)287 kbuild_lookup_variable_fmt_va(struct variable *pDefPath, const char *pszNameFmt, va_list va) 163 288 { 164 289 va_list va2; … … 206 331 va_end(va2); 207 332 333 if (pDefPath) 334 return kbuild_lookup_variable_defpath(pDefPath, pszName); 208 335 return kbuild_lookup_variable(pszName); 209 336 } … … 212 339 * will be substituted with the values of the variables in the ellipsis. */ 213 340 static struct variable * 214 kbuild_lookup_variable_fmt( const char *pszNameFmt, ...)341 kbuild_lookup_variable_fmt(struct variable *pDefPath, const char *pszNameFmt, ...) 215 342 { 216 343 struct variable *pVar; 217 344 va_list va; 218 345 va_start(va, pszNameFmt); 219 pVar = kbuild_lookup_variable_fmt_va(p szNameFmt, va);346 pVar = kbuild_lookup_variable_fmt_va(pDefPath, pszNameFmt, va); 220 347 va_end(va); 221 348 return pVar; … … 240 367 PropF2.value_length = strlen(pszPropF2); 241 368 242 if ( (pVar = kbuild_lookup_variable_fmt( "%_%_%%.%.%",pTarget, pSource, pType, &PropF2, pBldTrg, pBldTrgArch))243 || (pVar = kbuild_lookup_variable_fmt( "%_%_%%.%", pTarget, pSource, pType, &PropF2, pBldTrg))244 || (pVar = kbuild_lookup_variable_fmt( "%_%_%%", pTarget, pSource, pType, &PropF2))245 || (pVar = kbuild_lookup_variable_fmt( "%_%_%.%.%", pTarget, pSource, &PropF2, pBldTrg, pBldTrgArch))246 || (pVar = kbuild_lookup_variable_fmt( "%_%_%.%", pTarget, pSource, &PropF2, pBldTrg))247 || (pVar = kbuild_lookup_variable_fmt( "%_%_%", pTarget, pSource, &PropF2))248 || (pVar = kbuild_lookup_variable_fmt( "%_%%.%.%", pSource, pType, &PropF2, pBldTrg, pBldTrgArch))249 || (pVar = kbuild_lookup_variable_fmt( "%_%%.%", pSource, pType, &PropF2, pBldTrg))250 || (pVar = kbuild_lookup_variable_fmt( "%_%%", pSource, pType, &PropF2))251 || (pVar = kbuild_lookup_variable_fmt( "%_%.%.%", pSource, &PropF2, pBldTrg, pBldTrgArch))252 || (pVar = kbuild_lookup_variable_fmt( "%_%.%", pSource, &PropF2, pBldTrg))253 || (pVar = kbuild_lookup_variable_fmt( "%_%", pSource, &PropF2))254 || (pVar = kbuild_lookup_variable_fmt( "%_%%.%.%", pTarget, pType, &PropF2, pBldTrg, pBldTrgArch))255 || (pVar = kbuild_lookup_variable_fmt( "%_%%.%", pTarget, pType, &PropF2, pBldTrg))256 || (pVar = kbuild_lookup_variable_fmt( "%_%%", pTarget, pType, &PropF2))257 || (pVar = kbuild_lookup_variable_fmt( "%_%.%.%", pTarget, &PropF2, pBldTrg, pBldTrgArch))258 || (pVar = kbuild_lookup_variable_fmt( "%_%.%", pTarget, &PropF2, pBldTrg))259 || (pVar = kbuild_lookup_variable_fmt( "%_%", pTarget, &PropF2))260 261 || (pTool && (pVar = kbuild_lookup_variable_fmt( "TOOL_%_%%.%.%", pTool, pType, &PropF2, pBldTrg, pBldTrgArch)))262 || (pTool && (pVar = kbuild_lookup_variable_fmt( "TOOL_%_%%.%", pTool, pType, &PropF2, pBldTrg)))263 || (pTool && (pVar = kbuild_lookup_variable_fmt( "TOOL_%_%%", pTool, pType, &PropF2)))264 || (pTool && (pVar = kbuild_lookup_variable_fmt( "TOOL_%_%.%.%", pTool, &PropF2, pBldTrg, pBldTrgArch)))265 || (pTool && (pVar = kbuild_lookup_variable_fmt( "TOOL_%_%.%", pTool, &PropF2, pBldTrg)))266 || (pTool && (pVar = kbuild_lookup_variable_fmt( "TOOL_%_%", pTool, &PropF2)))267 268 || (pVar = kbuild_lookup_variable_fmt( "%%.%.%", pType, &PropF1, pBldTrg, pBldTrgArch))269 || (pVar = kbuild_lookup_variable_fmt( "%%.%", pType, &PropF1, pBldTrg))270 || (pVar = kbuild_lookup_variable_fmt( "%%", pType, &PropF1))271 || (pVar = kbuild_lookup_variable_fmt( "%.%.%", &PropF1, pBldTrg, pBldTrgArch))272 || (pVar = kbuild_lookup_variable_fmt( "%.%", &PropF1, pBldTrg))369 if ( (pVar = kbuild_lookup_variable_fmt(NULL, "%_%_%%.%.%",pTarget, pSource, pType, &PropF2, pBldTrg, pBldTrgArch)) 370 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%_%%.%", pTarget, pSource, pType, &PropF2, pBldTrg)) 371 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%_%%", pTarget, pSource, pType, &PropF2)) 372 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%_%.%.%", pTarget, pSource, &PropF2, pBldTrg, pBldTrgArch)) 373 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%_%.%", pTarget, pSource, &PropF2, pBldTrg)) 374 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%_%", pTarget, pSource, &PropF2)) 375 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%%.%.%", pSource, pType, &PropF2, pBldTrg, pBldTrgArch)) 376 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%%.%", pSource, pType, &PropF2, pBldTrg)) 377 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%%", pSource, pType, &PropF2)) 378 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%.%.%", pSource, &PropF2, pBldTrg, pBldTrgArch)) 379 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%.%", pSource, &PropF2, pBldTrg)) 380 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%", pSource, &PropF2)) 381 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%%.%.%", pTarget, pType, &PropF2, pBldTrg, pBldTrgArch)) 382 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%%.%", pTarget, pType, &PropF2, pBldTrg)) 383 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%%", pTarget, pType, &PropF2)) 384 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%.%.%", pTarget, &PropF2, pBldTrg, pBldTrgArch)) 385 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%.%", pTarget, &PropF2, pBldTrg)) 386 || (pVar = kbuild_lookup_variable_fmt(NULL, "%_%", pTarget, &PropF2)) 387 388 || (pTool && (pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%%.%.%", pTool, pType, &PropF2, pBldTrg, pBldTrgArch))) 389 || (pTool && (pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%%.%", pTool, pType, &PropF2, pBldTrg))) 390 || (pTool && (pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%%", pTool, pType, &PropF2))) 391 || (pTool && (pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%.%.%", pTool, &PropF2, pBldTrg, pBldTrgArch))) 392 || (pTool && (pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%.%", pTool, &PropF2, pBldTrg))) 393 || (pTool && (pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%", pTool, &PropF2))) 394 395 || (pVar = kbuild_lookup_variable_fmt(NULL, "%%.%.%", pType, &PropF1, pBldTrg, pBldTrgArch)) 396 || (pVar = kbuild_lookup_variable_fmt(NULL, "%%.%", pType, &PropF1, pBldTrg)) 397 || (pVar = kbuild_lookup_variable_fmt(NULL, "%%", pType, &PropF1)) 398 || (pVar = kbuild_lookup_variable_fmt(NULL, "%.%.%", &PropF1, pBldTrg, pBldTrgArch)) 399 || (pVar = kbuild_lookup_variable_fmt(NULL, "%.%", &PropF1, pBldTrg)) 273 400 || (pVar = kbuild_lookup_variable(pszPropF1)) 274 401 ) … … 651 778 652 779 /* releases resources allocated in the kbuild_get_sdks. */ 780 static void 653 781 kbuild_put_sdks(struct kbuild_sdks *pSdks) 654 782 { … … 799 927 { 800 928 struct variable *pVar; 801 size_tcchExp;929 int cchExp; 802 930 char *pszExp; 803 931 } *paVars; … … 817 945 iVar = 0; 818 946 /* the tool (lowest priority) */ 819 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "TOOL_%_%", pTool, &Prop);820 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "TOOL_%_%.%", pTool, &Prop, pBldType);821 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "TOOL_%_%.%", pTool, &Prop, pBldTrg);822 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "TOOL_%_%.%", pTool, &Prop, pBldTrgArch);823 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "TOOL_%_%.%.%", pTool, &Prop, pBldTrg, pBldTrgArch);824 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "TOOL_%_%.%", pTool, &Prop, pBldTrgCpu);825 826 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "TOOL_%_%%", pTool, pType, &Prop);827 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "TOOL_%_%%.%", pTool, pType, &Prop, pBldType);828 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "TOOL_%_%%.%", pTool, pType, &Prop, pBldTrg);829 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "TOOL_%_%%.%", pTool, pType, &Prop, pBldTrgArch);830 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "TOOL_%_%%.%.%", pTool, pType, &Prop, pBldTrg, pBldTrgArch);831 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "TOOL_%_%%.%", pTool, pType, &Prop, pBldTrgCpu);947 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%", pTool, &Prop); 948 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%.%", pTool, &Prop, pBldType); 949 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%.%", pTool, &Prop, pBldTrg); 950 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%.%", pTool, &Prop, pBldTrgArch); 951 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%.%.%", pTool, &Prop, pBldTrg, pBldTrgArch); 952 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%.%", pTool, &Prop, pBldTrgCpu); 953 954 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%%", pTool, pType, &Prop); 955 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%%.%", pTool, pType, &Prop, pBldType); 956 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%%.%", pTool, pType, &Prop, pBldTrg); 957 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%%.%", pTool, pType, &Prop, pBldTrgArch); 958 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%%.%.%", pTool, pType, &Prop, pBldTrg, pBldTrgArch); 959 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "TOOL_%_%%.%", pTool, pType, &Prop, pBldTrgCpu); 832 960 833 961 /* the global sdks */ … … 838 966 { 839 967 struct variable *pSdk = &pSdks->pa[iSdk]; 840 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%", pSdk, &Prop);841 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldType);842 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldTrg);843 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldTrgArch);844 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%.%", pSdk, &Prop, pBldTrg, pBldTrgArch);845 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldTrgCpu);846 847 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%", pSdk, pType, &Prop);848 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldType);849 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrg);850 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgArch);851 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%.%", pSdk, pType, &Prop, pBldTrg, pBldTrgArch);852 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgCpu);968 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%", pSdk, &Prop); 969 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldType); 970 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldTrg); 971 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldTrgArch); 972 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%.%", pSdk, &Prop, pBldTrg, pBldTrgArch); 973 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldTrgCpu); 974 975 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%", pSdk, pType, &Prop); 976 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldType); 977 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrg); 978 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgArch); 979 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%.%", pSdk, pType, &Prop, pBldTrg, pBldTrgArch); 980 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgCpu); 853 981 } 854 982 855 983 /* the globals */ 856 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%", &Prop);857 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%.%", &Prop, pBldType);858 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%.%", &Prop, pBldTrg);859 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%.%", &Prop, pBldTrgArch);860 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%.%.%", &Prop, pBldTrg, pBldTrgArch);861 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%.%", &Prop, pBldTrgCpu);862 863 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%%", pType, &Prop);864 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%%.%", pType, &Prop, pBldType);865 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%%.%", pType, &Prop, pBldTrg);866 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%%.%", pType, &Prop, pBldTrgArch);867 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%%.%.%", pType, &Prop, pBldTrg, pBldTrgArch);868 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%%.%", pType, &Prop, pBldTrgCpu);984 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "%", &Prop); 985 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "%.%", &Prop, pBldType); 986 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "%.%", &Prop, pBldTrg); 987 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "%.%", &Prop, pBldTrgArch); 988 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "%.%.%", &Prop, pBldTrg, pBldTrgArch); 989 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "%.%", &Prop, pBldTrgCpu); 990 991 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "%%", pType, &Prop); 992 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "%%.%", pType, &Prop, pBldType); 993 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "%%.%", pType, &Prop, pBldTrg); 994 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "%%.%", pType, &Prop, pBldTrgArch); 995 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "%%.%.%", pType, &Prop, pBldTrg, pBldTrgArch); 996 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "%%.%", pType, &Prop, pBldTrgCpu); 869 997 870 998 /* the target sdks */ … … 875 1003 { 876 1004 struct variable *pSdk = &pSdks->pa[iSdk]; 877 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%", pSdk, &Prop);878 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldType);879 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldTrg);880 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldTrgArch);881 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%.%", pSdk, &Prop, pBldTrg, pBldTrgArch);882 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldTrgCpu);883 884 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%", pSdk, pType, &Prop);885 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldType);886 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrg);887 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgArch);888 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%.%", pSdk, pType, &Prop, pBldTrg, pBldTrgArch);889 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgCpu);1005 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%", pSdk, &Prop); 1006 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldType); 1007 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldTrg); 1008 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldTrgArch); 1009 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%.%", pSdk, &Prop, pBldTrg, pBldTrgArch); 1010 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldTrgCpu); 1011 1012 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%", pSdk, pType, &Prop); 1013 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldType); 1014 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrg); 1015 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgArch); 1016 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%.%", pSdk, pType, &Prop, pBldTrg, pBldTrgArch); 1017 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgCpu); 890 1018 } 891 1019 892 1020 /* the target */ 893 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%", pTarget, &Prop);894 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%.%", pTarget, &Prop, pBldType);895 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%.%", pTarget, &Prop, pBldTrg);896 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%.%", pTarget, &Prop, pBldTrgArch);897 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%.%.%", pTarget, &Prop, pBldTrg, pBldTrgArch);898 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%.%", pTarget, &Prop, pBldTrgCpu);899 900 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%%", pTarget, pType, &Prop);901 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%%.%", pTarget, pType, &Prop, pBldType);902 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%%.%", pTarget, pType, &Prop, pBldTrg);903 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%%.%", pTarget, pType, &Prop, pBldTrgArch);904 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%%.%.%", pTarget, pType, &Prop, pBldTrg, pBldTrgArch);905 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%%.%", pTarget, pType, &Prop, pBldTrgCpu);1021 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%", pTarget, &Prop); 1022 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%.%", pTarget, &Prop, pBldType); 1023 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%.%", pTarget, &Prop, pBldTrg); 1024 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%.%", pTarget, &Prop, pBldTrgArch); 1025 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%.%.%", pTarget, &Prop, pBldTrg, pBldTrgArch); 1026 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%.%", pTarget, &Prop, pBldTrgCpu); 1027 1028 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%%", pTarget, pType, &Prop); 1029 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%%.%", pTarget, pType, &Prop, pBldType); 1030 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%%.%", pTarget, pType, &Prop, pBldTrg); 1031 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%%.%", pTarget, pType, &Prop, pBldTrgArch); 1032 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%%.%.%", pTarget, pType, &Prop, pBldTrg, pBldTrgArch); 1033 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%%.%", pTarget, pType, &Prop, pBldTrgCpu); 906 1034 907 1035 /* the source sdks */ … … 912 1040 { 913 1041 struct variable *pSdk = &pSdks->pa[iSdk]; 914 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%", pSdk, &Prop);915 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldType);916 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldTrg);917 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldTrgArch);918 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%.%", pSdk, &Prop, pBldTrg, pBldTrgArch);919 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldTrgCpu);920 921 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%", pSdk, pType, &Prop);922 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldType);923 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrg);924 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgArch);925 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%.%", pSdk, pType, &Prop, pBldTrg, pBldTrgArch);926 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgCpu);1042 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%", pSdk, &Prop); 1043 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldType); 1044 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldTrg); 1045 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldTrgArch); 1046 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%.%", pSdk, &Prop, pBldTrg, pBldTrgArch); 1047 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldTrgCpu); 1048 1049 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%", pSdk, pType, &Prop); 1050 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldType); 1051 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrg); 1052 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgArch); 1053 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%.%", pSdk, pType, &Prop, pBldTrg, pBldTrgArch); 1054 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgCpu); 927 1055 } 928 1056 929 1057 /* the source */ 930 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%", pSource, &Prop);931 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%.%", pSource, &Prop, pBldType);932 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%.%", pSource, &Prop, pBldTrg);933 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%.%", pSource, &Prop, pBldTrgArch);934 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%.%.%", pSource, &Prop, pBldTrg, pBldTrgArch);935 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%.%", pSource, &Prop, pBldTrgCpu);936 937 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%%", pSource, pType, &Prop);938 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%%.%", pSource, pType, &Prop, pBldType);939 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%%.%", pSource, pType, &Prop, pBldTrg);940 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%%.%", pSource, pType, &Prop, pBldTrgArch);941 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%%.%.%", pSource, pType, &Prop, pBldTrg, pBldTrgArch);942 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%%.%", pSource, pType, &Prop, pBldTrgCpu);1058 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%", pSource, &Prop); 1059 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%.%", pSource, &Prop, pBldType); 1060 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%.%", pSource, &Prop, pBldTrg); 1061 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%.%", pSource, &Prop, pBldTrgArch); 1062 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%.%.%", pSource, &Prop, pBldTrg, pBldTrgArch); 1063 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%.%", pSource, &Prop, pBldTrgCpu); 1064 1065 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%%", pSource, pType, &Prop); 1066 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%%.%", pSource, pType, &Prop, pBldType); 1067 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%%.%", pSource, pType, &Prop, pBldTrg); 1068 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%%.%", pSource, pType, &Prop, pBldTrgArch); 1069 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%%.%.%", pSource, pType, &Prop, pBldTrg, pBldTrgArch); 1070 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%%.%", pSource, pType, &Prop, pBldTrgCpu); 943 1071 944 1072 … … 950 1078 { 951 1079 struct variable *pSdk = &pSdks->pa[iSdk]; 952 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%", pSdk, &Prop);953 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldType);954 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldTrg);955 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldTrgArch);956 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%.%", pSdk, &Prop, pBldTrg, pBldTrgArch);957 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%.%", pSdk, &Prop, pBldTrgCpu);958 959 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%", pSdk, pType, &Prop);960 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldType);961 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrg);962 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgArch);963 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%.%", pSdk, pType, &Prop, pBldTrg, pBldTrgArch);964 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgCpu);1080 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%", pSdk, &Prop); 1081 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldType); 1082 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldTrg); 1083 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldTrgArch); 1084 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%.%", pSdk, &Prop, pBldTrg, pBldTrgArch); 1085 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%.%", pSdk, &Prop, pBldTrgCpu); 1086 1087 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%", pSdk, pType, &Prop); 1088 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldType); 1089 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrg); 1090 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgArch); 1091 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%.%", pSdk, pType, &Prop, pBldTrg, pBldTrgArch); 1092 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(NULL, "SDK_%_%%.%", pSdk, pType, &Prop, pBldTrgCpu); 965 1093 } 966 1094 967 1095 /* the target + source */ 968 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%_%", pTarget, pSource, &Prop);969 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%_%.%", pTarget, pSource, &Prop, pBldType);970 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%_%.%", pTarget, pSource, &Prop, pBldTrg);971 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%_%.%", pTarget, pSource, &Prop, pBldTrgArch);972 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%_%.%.%", pTarget, pSource, &Prop, pBldTrg, pBldTrgArch);973 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%_%.%", pTarget, pSource, &Prop, pBldTrgCpu);974 975 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%_%%", pTarget, pSource, pType, &Prop);976 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%_%%.%", pTarget, pSource, pType, &Prop, pBldType);977 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%_%%.%", pTarget, pSource, pType, &Prop, pBldTrg);978 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%_%%.%", pTarget, pSource, pType, &Prop, pBldTrgArch);979 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%_%%.%.%", pTarget, pSource, pType, &Prop, pBldTrg, pBldTrgArch);980 paVars[iVar++].pVar = kbuild_lookup_variable_fmt( "%_%_%%.%", pTarget, pSource, pType, &Prop, pBldTrgCpu);1096 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%_%", pTarget, pSource, &Prop); 1097 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%_%.%", pTarget, pSource, &Prop, pBldType); 1098 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%_%.%", pTarget, pSource, &Prop, pBldTrg); 1099 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%_%.%", pTarget, pSource, &Prop, pBldTrgArch); 1100 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%_%.%.%", pTarget, pSource, &Prop, pBldTrg, pBldTrgArch); 1101 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%_%.%", pTarget, pSource, &Prop, pBldTrgCpu); 1102 1103 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%_%%", pTarget, pSource, pType, &Prop); 1104 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%_%%.%", pTarget, pSource, pType, &Prop, pBldType); 1105 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%_%%.%", pTarget, pSource, pType, &Prop, pBldTrg); 1106 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%_%%.%", pTarget, pSource, pType, &Prop, pBldTrgArch); 1107 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%_%%.%.%", pTarget, pSource, pType, &Prop, pBldTrg, pBldTrgArch); 1108 paVars[iVar++].pVar = kbuild_lookup_variable_fmt(pDefPath, "%_%_%%.%", pTarget, pSource, pType, &Prop, pBldTrgCpu); 981 1109 982 1110 assert(cVars == iVar); … … 1004 1132 } 1005 1133 if (pDefPath) 1006 { 1007 /** @todo */ 1008 } 1134 kbuild_apply_defpath(pDefPath, &paVars[iVar].pszExp, &paVars[iVar].cchExp, NULL, 1135 paVars[iVar].pszExp != paVars[iVar].pVar->value); 1009 1136 cchTotal += paVars[iVar].cchExp + 1; 1010 1137 } … … 1041 1168 struct variable *pTarget = kbuild_get_variable("target"); 1042 1169 struct variable *pSource = kbuild_get_variable("source"); 1170 struct variable *pDefPath = NULL; 1043 1171 struct variable *pType = kbuild_get_variable("type"); 1044 1172 struct variable *pTool = kbuild_get_variable("tool"); … … 1056 1184 else 1057 1185 fatal(NILF, _("incorrect direction argument `%s'!"), argv[2]); 1186 if (argv[3]) 1187 pDefPath = kbuild_get_variable("defpath"); 1058 1188 1059 1189 kbuild_get_sdks(&Sdks, pTarget, pSource, pBldType, pBldTrg, pBldTrgArch); … … 1061 1191 pVar = kbuild_collect_source_prop(pTarget, pSource, pTool, &Sdks, pType, 1062 1192 pBldType, pBldTrg, pBldTrgArch, pBldTrgCpu, 1063 NULL,1193 pDefPath, 1064 1194 argv[0], argv[1], iDirection); 1065 1195 if (pVar) … … 1212 1342 size_t cch; 1213 1343 struct kbuild_sdks Sdks; 1344 1345 /* 1346 * Gather properties. 1347 */ 1214 1348 kbuild_get_sdks(&Sdks, pTarget, pSource, pBldType, pBldTrg, pBldTrgArch); 1215 1349 … … 1218 1352 pDefs = kbuild_collect_source_prop(pTarget, pSource, pTool, &Sdks, pType, pBldType, pBldTrg, pBldTrgArch, pBldTrgCpu, NULL, 1219 1353 "DEFS", "defs", 1/* left-to-right */); 1220 pIncs = kbuild_collect_source_prop(pTarget, pSource, pTool, &Sdks, pType, pBldType, pBldTrg, pBldTrgArch, pBldTrgCpu, NULL,1354 pIncs = kbuild_collect_source_prop(pTarget, pSource, pTool, &Sdks, pType, pBldType, pBldTrg, pBldTrgArch, pBldTrgCpu, pDefPath, 1221 1355 "INCS", "incs", -1/* right-to-left */); 1222 pFlags = kbuild_collect_source_prop(pTarget, pSource, pTool, &Sdks, pType, pBldType, pBldTrg, pBldTrgArch, pBldTrgCpu, pDefPath,1356 pFlags = kbuild_collect_source_prop(pTarget, pSource, pTool, &Sdks, pType, pBldType, pBldTrg, pBldTrgArch, pBldTrgCpu, NULL, 1223 1357 "FLAGS", "flags", 1/* left-to-right */); 1224 1358 pDeps = kbuild_collect_source_prop(pTarget, pSource, pTool, &Sdks, pType, pBldType, pBldTrg, pBldTrgArch, pBldTrgCpu, pDefPath, 1225 1359 "DEPS", "deps", 1/* left-to-right */); 1360 1361 /* 1362 * If we've got a default path, we must expand the source now. 1363 * If we do this too early, "<source>_property = stuff" won't work becuase 1364 * our 'source' value isn't what the user expects. 1365 */ 1366 if (pDefPath) 1367 kbuild_apply_defpath(pDefPath, &pSource->value, &pSource->value_length, &pSource->value_alloc_len, 1 /* can free */); 1226 1368 1227 1369 /*
Note:
See TracChangeset
for help on using the changeset viewer.