Changeset 1812 in kBuild
- Timestamp:
- Oct 10, 2008 6:01:29 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kmk/kbuild.c
r1809 r1812 525 525 if (memchr(pVar->value, '$', pVar->value_length)) 526 526 { 527 char *pszExpanded = allocated_variable_expand(pVar->value); 527 unsigned int value_len; 528 char *pszExpanded = allocated_variable_expand_2(pVar->value, pVar->value_length, &value_len); 528 529 free(pVar->value); 529 530 pVar->value = pszExpanded; 530 pVar->value_length = strlen(pVar->value);531 pVar->value_alloc_len = pVar->value_length+ 1;531 pVar->value_length = value_len; 532 pVar->value_alloc_len = value_len + 1; 532 533 } 533 534 pVar->recursive = 0; … … 1044 1045 pSdks->iGlobal = i; 1045 1046 pSdks->cGlobal = 0; 1046 sprintf(pszTmp, "$(SDKS) $(SDKS.%s) $(SDKS.%s) $(SDKS.%s) $(SDKS.%s.%s)",1047 pBldType->value,1048 pBldTrg->value,1049 pBldTrgArch->value,1050 pBldTrg->value, pBldTrgArch->value);1051 pszIterator = pSdks->apsz[0] = allocated_variable_expand (pszTmp);1047 cch = sprintf(pszTmp, "$(SDKS) $(SDKS.%s) $(SDKS.%s) $(SDKS.%s) $(SDKS.%s.%s)", 1048 pBldType->value, 1049 pBldTrg->value, 1050 pBldTrgArch->value, 1051 pBldTrg->value, pBldTrgArch->value); 1052 pszIterator = pSdks->apsz[0] = allocated_variable_expand_2(pszTmp, cch, NULL); 1052 1053 while ((pszCur = find_next_token(&pszIterator, &cchCur)) != 0) 1053 1054 pSdks->cGlobal++; … … 1057 1058 pSdks->iTarget = i; 1058 1059 pSdks->cTarget = 0; 1059 sprintf(pszTmp, "$(%s_SDKS) $(%s_SDKS.%s) $(%s_SDKS.%s) $(%s_SDKS.%s) $(%s_SDKS.%s.%s)",1060 pTarget->value,1061 pTarget->value, pBldType->value,1062 pTarget->value, pBldTrg->value,1063 pTarget->value, pBldTrgArch->value,1064 pTarget->value, pBldTrg->value, pBldTrgArch->value);1065 pszIterator = pSdks->apsz[1] = allocated_variable_expand (pszTmp);1060 cch = sprintf(pszTmp, "$(%s_SDKS) $(%s_SDKS.%s) $(%s_SDKS.%s) $(%s_SDKS.%s) $(%s_SDKS.%s.%s)", 1061 pTarget->value, 1062 pTarget->value, pBldType->value, 1063 pTarget->value, pBldTrg->value, 1064 pTarget->value, pBldTrgArch->value, 1065 pTarget->value, pBldTrg->value, pBldTrgArch->value); 1066 pszIterator = pSdks->apsz[1] = allocated_variable_expand_2(pszTmp, cch, NULL); 1066 1067 while ((pszCur = find_next_token(&pszIterator, &cchCur)) != 0) 1067 1068 pSdks->cTarget++; … … 1071 1072 pSdks->iSource = i; 1072 1073 pSdks->cSource = 0; 1073 sprintf(pszTmp, "$(%s_SDKS) $(%s_SDKS.%s) $(%s_SDKS.%s) $(%s_SDKS.%s) $(%s_SDKS.%s.%s)",1074 pSource->value,1075 pSource->value, pBldType->value,1076 pSource->value, pBldTrg->value,1077 pSource->value, pBldTrgArch->value,1078 pSource->value, pBldTrg->value, pBldTrgArch->value);1079 pszIterator = pSdks->apsz[2] = allocated_variable_expand (pszTmp);1074 cch = sprintf(pszTmp, "$(%s_SDKS) $(%s_SDKS.%s) $(%s_SDKS.%s) $(%s_SDKS.%s) $(%s_SDKS.%s.%s)", 1075 pSource->value, 1076 pSource->value, pBldType->value, 1077 pSource->value, pBldTrg->value, 1078 pSource->value, pBldTrgArch->value, 1079 pSource->value, pBldTrg->value, pBldTrgArch->value); 1080 pszIterator = pSdks->apsz[2] = allocated_variable_expand_2(pszTmp, cch, NULL); 1080 1081 while ((pszCur = find_next_token(&pszIterator, &cchCur)) != 0) 1081 1082 pSdks->cSource++; … … 1092 1093 pTarget->value, pSource->value, pBldTrg->value, pBldTrgArch->value); 1093 1094 assert(cch < cchTmp); (void)cch; 1094 pszIterator = pSdks->apsz[3] = allocated_variable_expand (pszTmp);1095 pszIterator = pSdks->apsz[3] = allocated_variable_expand_2(pszTmp, cch, NULL); 1095 1096 while ((pszCur = find_next_token(&pszIterator, &cchCur)) != 0) 1096 1097 pSdks->cTargetSource++; … … 1468 1469 if (!paVars[iVar].pVar) 1469 1470 continue; 1470 if ( paVars[iVar].pVar->flavor == f_simple1471 || ! strchr(paVars[iVar].pVar->value, '$'))1471 if ( !paVars[iVar].pVar->recursive 1472 || !memchr(paVars[iVar].pVar->value, '$', paVars[iVar].pVar->value_length)) 1472 1473 { 1473 1474 paVars[iVar].pszExp = paVars[iVar].pVar->value; … … 1476 1477 else 1477 1478 { 1478 paVars[iVar].pszExp = allocated_variable_expand(paVars[iVar].pVar->value); 1479 paVars[iVar].cchExp = strlen(paVars[iVar].pszExp); 1479 unsigned int cchExp; 1480 paVars[iVar].pszExp = allocated_variable_expand_2(paVars[iVar].pVar->value, paVars[iVar].pVar->value_length, &cchExp); 1481 paVars[iVar].cchExp = cchExp; 1480 1482 } 1481 1483 if (pDefPath) … … 1772 1774 { 1773 1775 do_variable_definition_2(NILF, "_DEPFILES_INCLUDED", pDep->value, pDep->value_length, 1774 pDep->flavor == f_simple, 0, o_file, f_append, 0 /* !target_var */);1776 !pDep->recursive, 0, o_file, f_append, 0 /* !target_var */); 1775 1777 eval_include_dep(pDep->value, NILF, iVer >= 2 ? incdep_queue : incdep_read_it); 1776 1778 } … … 1803 1805 pVar = kbuild_get_recursive_variable(pszSrcVar); 1804 1806 do_variable_definition_2(NILF, pszDstVar, pVar->value, pVar->value_length, 1805 pVar->flavor == f_simple, 0, o_file, f_simple, 0 /* !target_var */);1807 !pVar->recursive, 0, o_file, f_simple, 0 /* !target_var */); 1806 1808 1807 1809 memcpy(pszSrc, "_OUTPUT", sizeof("_OUTPUT")); … … 1830 1832 memcpy(psz, pSource->value, pSource->value_length + 1); 1831 1833 do_variable_definition_2(NILF, pszDstVar, pszVal, pVar->value_length + 1 + pDeps->value_length + 1 + pSource->value_length, 1832 pVar->flavor == f_simple && pDeps->flavor == f_simple && pSource->flavor == f_simple,1834 !pVar->recursive && !pDeps->recursive && !pSource->recursive, 1833 1835 pszVal, o_file, f_simple, 0 /* !target_var */); 1834 1836 … … 1844 1846 do_variable_definition_2(NILF, pszDstVar, pszVal, 1845 1847 pVar->value_length + 1 + pDirDep->value_length + 1 + pOrderDeps->value_length, 1846 pVar->flavor == f_simple && pDirDep->flavor == f_simple && pOrderDeps->flavor == f_simple,1848 !pVar->recursive && !pDirDep->recursive && !pOrderDeps->recursive, 1847 1849 pszVal, o_file, f_simple, 0 /* !target_var */); 1848 1850 … … 1860 1862 do_variable_definition_2(NILF, "_OUT_FILES", pszVal, 1861 1863 pVar->value_length + 1 + pOutput->value_length + 1 + pOutputMaybe->value_length, 1862 pVar->flavor == f_simple && pOutput->flavor == f_simple && pOutputMaybe->flavor == f_simple,1864 !pVar->recursive && !pOutput->recursive && !pOutputMaybe->recursive, 1863 1865 pszVal, o_file, f_simple, 0 /* !target_var */); 1864 1866 … … 1868 1870 memcpy(pszDstVar + pTarget->value_length, "_OBJS_", sizeof("_OBJS_")); 1869 1871 do_variable_definition_2(NILF, pszDstVar, pObj->value, pObj->value_length, 1870 pObj->flavor == f_simple, 0, o_file, f_append, 0 /* !target_var */);1872 !pObj->recursive, 0, o_file, f_append, 0 /* !target_var */); 1871 1873 1872 1874 /* … … 1874 1876 */ 1875 1877 pVar = kbuild_get_recursive_variable("def_target_source_rule"); 1876 pszVal = allocated_variable_expand (pVar->value);1878 pszVal = allocated_variable_expand_2(pVar->value, pVar->value_length, NULL); 1877 1879 1878 1880 install_variable_buffer(&pszSavedVarBuf, &cchSavedVarBuf);
Note:
See TracChangeset
for help on using the changeset viewer.