pmake - ക്ലൗഡിൽ ഓൺലൈനിൽ

Ubuntu Online, Fedora Online, Windows online emulator അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിങ്ങനെയുള്ള ഞങ്ങളുടെ ഒന്നിലധികം സൗജന്യ ഓൺലൈൻ വർക്ക്സ്റ്റേഷനുകളിലൊന്ന് ഉപയോഗിച്ച് OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ പ്രവർത്തിപ്പിക്കാവുന്ന കമാൻഡ് pmake ആണിത്.

പട്ടിക:

NAME


bmake - പ്രോഗ്രാം ഡിപൻഡൻസി നിലനിർത്തുക

സിനോപ്സിസ്


bmake [-BeikNnqrstWwX] [-C ഡയറക്ടറി] [-D വേരിയബിൾ] [-d ഫ്ലാഗുകൾ] [-f makefile] [-I ഡയറക്ടറി]
[-J സ്വകാര്യ] [-j പരമാവധി_ജോലികൾ] [-m ഡയറക്ടറി] [-T ഫയല്] [-V വേരിയബിൾ] [വേരിയബിൾ = മൂല്യം]
[ലക്ഷ്യം ...]

വിവരണം


bmake മറ്റ് പ്രോഗ്രാമുകളുടെ പരിപാലനം ലളിതമാക്കാൻ രൂപകൽപ്പന ചെയ്ത ഒരു പ്രോഗ്രാമാണ്. അതിന്റെ ഇൻപുട്ട് എ
പ്രോഗ്രാമുകളും മറ്റ് ഫയലുകളും ആശ്രയിക്കുന്ന ഫയലുകൾ സംബന്ധിച്ച സ്പെസിഫിക്കേഷനുകളുടെ ലിസ്റ്റ്. അല്ലെങ്കിൽ -f
makefile makefile ഓപ്ഷൻ നൽകിയിരിക്കുന്നു, bmake തുറക്കാൻ ശ്രമിക്കും'makefile'അപ്പോൾ'Makefile'ഇൻ
സ്പെസിഫിക്കേഷനുകൾ കണ്ടെത്താൻ ഓർഡർ. ഫയൽ എങ്കിൽ '.ആശ്രയിക്കുക' നിലവിലുണ്ട്, അത് വായിക്കുന്നു (കാണുക mkdep(1)).

ഈ മാനുവൽ പേജ് ഒരു റഫറൻസ് രേഖയായി മാത്രം ഉദ്ദേശിച്ചിട്ടുള്ളതാണ്. കൂടുതൽ വിശദമായ വിവരണത്തിന്
of bmake ഒപ്പം makefiles, ദയവായി റഫർ ചെയ്യുക പിഎംകെ - A ട്യൂട്ടോറിയൽ.

bmake യുടെ ഉള്ളടക്കങ്ങൾ മുൻനിർത്തും മേക്ക്ഫ്ലാഗുകൾ കമാൻഡ് ലൈനിലേക്കുള്ള പരിസ്ഥിതി വേരിയബിൾ
അവ പാഴ്‌സ് ചെയ്യുന്നതിന് മുമ്പുള്ള വാദങ്ങൾ.

ഓപ്ഷനുകൾ ഇപ്രകാരമാണ്:

-B ഓരോ കമാൻഡിനും ഒരു ഷെൽ എക്സിക്യൂട്ട് ചെയ്തുകൊണ്ട് പിന്നിലേക്ക് പൊരുത്തപ്പെടാൻ ശ്രമിക്കുക
ഒരു ഡിപൻഡൻസി ലൈനിന്റെ ഉറവിടങ്ങൾ ക്രമത്തിൽ നിർമ്മിക്കുന്നതിന് കമാൻഡുകൾ നടപ്പിലാക്കുന്നു.

-C ഡയറക്ടറി
മാറ്റുക ഡയറക്ടറി മേക്ക് ഫയലുകൾ വായിക്കുന്നതിനോ മറ്റെന്തെങ്കിലും ചെയ്യുന്നതിനോ മുമ്പ്. എങ്കിൽ
ഒന്നിലധികം -C ഓപ്‌ഷനുകൾ വ്യക്തമാക്കിയിട്ടുണ്ട്, ഓരോന്നും മുമ്പത്തേതിന് ആപേക്ഷികമായി വ്യാഖ്യാനിക്കപ്പെടുന്നു:
-C / -C തുടങ്ങിയവ എന്നതിന് തുല്യമാണ് -C /തുടങ്ങിയവ.

-D വേരിയബിൾ
നിർവ്വചിക്കുക വേരിയബിൾ ആഗോള പശ്ചാത്തലത്തിൽ 1 ആയിരിക്കണം.

-d [-]പതാകകൾ
ഡീബഗ്ഗിംഗ് ഓണാക്കുക, ഏതൊക്കെ ഭാഗങ്ങളുടെ ഭാഗങ്ങൾ വ്യക്തമാക്കുക bmake ഡീബഗ്ഗിംഗ് പ്രിന്റ് ചെയ്യുകയാണ്
വിവരങ്ങൾ. പതാകകൾക്ക് മുമ്പായി '-' ചേർത്തിട്ടില്ലെങ്കിൽ, അവ ലേക്ക് ചേർക്കും മേക്ക്ഫ്ലാഗുകൾ
എൻവയോൺമെന്റ് വേരിയബിൾ, ഏത് കുട്ടികളുടെ നിർമ്മാണ പ്രക്രിയകളും പ്രോസസ്സ് ചെയ്യും. സ്വതവേ,
ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ സ്റ്റാൻഡേർഡ് പിശകിലേക്ക് പ്രിന്റ് ചെയ്യപ്പെടുന്നു, എന്നാൽ ഇത് ഉപയോഗിച്ച് ഇത് മാറ്റാവുന്നതാണ്
The F ഡീബഗ്ഗിംഗ് ഫ്ലാഗ്. ഡീബഗ്ഗിംഗ് ഔട്ട്പുട്ട് എല്ലായ്പ്പോഴും അൺബഫർ ചെയ്യപ്പെടാത്തതാണ്; കൂടാതെ, എങ്കിൽ
ഡീബഗ്ഗിംഗ് പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിലും ഡീബഗ്ഗിംഗ് ഔട്ട്പുട്ട് സാധാരണ ഔട്ട്പുട്ടിലേക്ക് നയിക്കപ്പെടുന്നില്ല
സാധാരണ ഔട്ട്പുട്ട് ലൈൻ ബഫർ ആണ്. ഫ്ലാഗുകൾ ഇനിപ്പറയുന്നവയിൽ ഒന്നോ അതിലധികമോ ആണ്:

A സാധ്യമായ എല്ലാ ഡീബഗ്ഗിംഗ് വിവരങ്ങളും അച്ചടിക്കുക; എല്ലാം വ്യക്തമാക്കുന്നതിന് തുല്യമാണ്
ഡീബഗ്ഗിംഗ് ഫ്ലാഗുകൾ.

a ആർക്കൈവ് സെർച്ചിംഗും കാഷിംഗും സംബന്ധിച്ച ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ അച്ചടിക്കുക.

C നിലവിലെ പ്രവർത്തിക്കുന്ന ഡയറക്ടറിയെക്കുറിച്ചുള്ള ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ അച്ചടിക്കുക.

c സോപാധിക മൂല്യനിർണ്ണയത്തെക്കുറിച്ചുള്ള ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ അച്ചടിക്കുക.

d ഡയറക്‌ടറി തിരയലിനെയും കാഷിംഗിനെയും കുറിച്ചുള്ള ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ അച്ചടിക്കുക.

e പരാജയപ്പെട്ട കമാൻഡുകളെയും ലക്ഷ്യങ്ങളെയും കുറിച്ചുള്ള ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ അച്ചടിക്കുക.

F[+]ഫയലിന്റെ പേര്
ഡീബഗ്ഗിംഗ് ഔട്ട്പുട്ട് എവിടെയാണ് എഴുതിയതെന്ന് വ്യക്തമാക്കുക. ഇതായിരിക്കണം അവസാന പതാക,
കാരണം അത് വാദത്തിന്റെ ബാക്കി ഭാഗം ദഹിപ്പിക്കുന്നു. കഥാപാത്രമാണെങ്കിൽ
'F' ഫ്ലാഗ് '+' ആയതിന് ശേഷം, ഫയൽ തുറക്കപ്പെടും
അനുബന്ധ മോഡ്; അല്ലെങ്കിൽ ഫയൽ തിരുത്തിയെഴുതപ്പെടും. ഫയലിന്റെ പേര് ആണെങ്കിൽ
'stdout' അല്ലെങ്കിൽ 'stderr' അപ്പോൾ ഡീബഗ്ഗിംഗ് ഔട്ട്‌പുട്ട് സ്റ്റാൻഡേർഡിലേക്ക് എഴുതപ്പെടും
ഔട്ട്പുട്ട് അല്ലെങ്കിൽ സ്റ്റാൻഡേർഡ് പിശക് ഔട്ട്പുട്ട് ഫയൽ ഡിസ്ക്രിപ്റ്ററുകൾ യഥാക്രമം (ഒപ്പം '+'
ഓപ്ഷന് ഫലമില്ല). അല്ലെങ്കിൽ, ഔട്ട്പുട്ട് പേരുള്ളവർക്ക് എഴുതപ്പെടും
ഫയൽ. ഫയലിന്റെ പേര് '.%d' അവസാനിച്ചാൽ, '%d' എന്നതിന് പകരം പിഡ് ലഭിക്കും.

f ലൂപ്പ് മൂല്യനിർണ്ണയത്തെക്കുറിച്ചുള്ള ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ അച്ചടിക്കുക.

g1 എന്തെങ്കിലും ചെയ്യുന്നതിനുമുമ്പ് ഇൻപുട്ട് ഗ്രാഫ് പ്രിന്റ് ചെയ്യുക.

g2 എല്ലാം ഉണ്ടാക്കിയതിന് ശേഷം അല്ലെങ്കിൽ പിശക് കാരണം പുറത്തുകടക്കുന്നതിന് മുമ്പ് ഇൻപുട്ട് ഗ്രാഫ് പ്രിന്റ് ചെയ്യുക.

g3 പിശകിൽ നിന്ന് പുറത്തുകടക്കുന്നതിന് മുമ്പ് ഇൻപുട്ട് ഗ്രാഫ് പ്രിന്റ് ചെയ്യുക.

j ഒന്നിലധികം ഷെല്ലുകൾ പ്രവർത്തിപ്പിക്കുന്നതിനെക്കുറിച്ചുള്ള ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ അച്ചടിക്കുക.

l പ്രിഫിക്‌സ് ചെയ്‌തിട്ടുണ്ടോ ഇല്ലയോ എന്നത് പരിഗണിക്കാതെ തന്നെ Makefiles-ൽ കമാൻഡുകൾ പ്രിന്റ് ചെയ്യുക
'@' അല്ലെങ്കിൽ മറ്റ് "ശാന്തമായ" പതാകകൾ വഴി. "ഉച്ചത്തിലുള്ള" പെരുമാറ്റം എന്നും അറിയപ്പെടുന്നു.

M ടാർഗെറ്റുകളെക്കുറിച്ചുള്ള "മെറ്റാ" മോഡ് തീരുമാനങ്ങളെക്കുറിച്ചുള്ള ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ അച്ചടിക്കുക.

m മോഡിഫിക്കേഷൻ ഉൾപ്പെടെ ടാർഗെറ്റുകൾ നിർമ്മിക്കുന്നതിനെക്കുറിച്ചുള്ള ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ അച്ചടിക്കുക
തീയതികൾ.

n കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുമ്പോൾ സൃഷ്ടിച്ച താൽക്കാലിക കമാൻഡ് സ്ക്രിപ്റ്റുകൾ ഇല്ലാതാക്കരുത്.
ഈ താൽകാലിക സ്ക്രിപ്റ്റുകൾ റഫർ ചെയ്യുന്ന ഡയറക്‌ടറിയിൽ സൃഷ്‌ടിച്ചതാണ്
TMPDIR എൻവയോൺമെന്റ് വേരിയബിൾ, അല്ലെങ്കിൽ ഇൻ / tmp TMPDIR സജ്ജീകരിച്ചിട്ടില്ലെങ്കിലോ എന്നതിലേക്ക് സജ്ജമാക്കിയാലോ
ശൂന്യമായ ചരട്. താൽക്കാലിക സ്ക്രിപ്റ്റുകൾ സൃഷ്ടിച്ചത് mkstemp(3), ഉണ്ട്
ഫോമിന്റെ പേരുകൾ XXXXXX ഉണ്ടാക്കുക. കുറിപ്പ്: ഇതിന് TMPDIR-ൽ നിരവധി ഫയലുകൾ സൃഷ്ടിക്കാൻ കഴിയും അല്ലെങ്കിൽ
/ tmp, അതിനാൽ ശ്രദ്ധയോടെ ഉപയോഗിക്കുക.

p Makefile പാഴ്സിംഗിനെക്കുറിച്ചുള്ള ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ പ്രിന്റ് ചെയ്യുക.

s സഫിക്സ്-ട്രാൻസ്ഫോർമേഷൻ നിയമങ്ങളെക്കുറിച്ചുള്ള ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ അച്ചടിക്കുക.

t ടാർഗെറ്റ് ലിസ്റ്റ് മെയിന്റനൻസ് സംബന്ധിച്ച ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ പ്രിന്റ് ചെയ്യുക.

V നിർബന്ധിക്കുക -V വേരിയബിളുകളുടെ അസംസ്കൃത മൂല്യങ്ങൾ പ്രിന്റ് ചെയ്യുന്നതിനുള്ള ഓപ്ഷൻ.

v വേരിയബിൾ അസൈൻമെന്റിനെക്കുറിച്ചുള്ള ഡീബഗ്ഗിംഗ് വിവരങ്ങൾ അച്ചടിക്കുക.

x ഉപയോഗിച്ച് ഷെൽ കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുക -x അതിനാൽ യഥാർത്ഥ കമാൻഡുകൾ അതേപടി അച്ചടിക്കുന്നു
നടപ്പിലാക്കി.

-e എൻവയോൺമെന്റ് വേരിയബിളുകൾ മേക്ക് ഫയലുകൾക്കുള്ളിലെ മാക്രോ അസൈൻമെന്റുകളെ അസാധുവാക്കുന്നുവെന്ന് വ്യക്തമാക്കുക.

-f makefile
സ്ഥിരസ്ഥിതിക്ക് പകരം വായിക്കാൻ ഒരു മേക്ക് ഫയൽ വ്യക്തമാക്കുക 'makefile'. എങ്കിൽ makefile ആണ് '-',
സ്റ്റാൻഡേർഡ് ഇൻപുട്ട് വായിച്ചു. ഒന്നിലധികം മേക്ക് ഫയലുകൾ വ്യക്തമാക്കിയേക്കാം, അവ വായിക്കുന്നു
ക്രമം വ്യക്തമാക്കിയിട്ടുണ്ട്.

-I ഡയറക്ടറി
മേക്ക് ഫയലുകൾക്കും ഉൾപ്പെടുത്തിയിരിക്കുന്ന മേക്ക് ഫയലുകൾക്കുമായി തിരയേണ്ട ഒരു ഡയറക്ടറി വ്യക്തമാക്കുക. ദി
സിസ്റ്റം മേക്ക് ഫയൽ ഡയറക്ടറി (അല്ലെങ്കിൽ ഡയറക്ടറികൾ, കാണുക -m ഓപ്ഷൻ) സ്വയമേവയാണ്
ഈ പട്ടികയുടെ ഭാഗമായി ഉൾപ്പെടുത്തിയിട്ടുണ്ട്.

-i മേക്ക് ഫയലിൽ ഷെൽ കമാൻഡുകളുടെ പൂജ്യമല്ലാത്ത എക്സിറ്റ് അവഗണിക്കുക. വ്യക്തമാക്കുന്നതിന് തുല്യമാണ്
'-' makefile ലെ ഓരോ കമാൻഡ് ലൈനിനും മുമ്പായി.

-J സ്വകാര്യ
ഈ ഓപ്ഷൻ വേണം അല്ല ഉപയോക്താവ് വ്യക്തമാക്കണം.

എപ്പോഴാണ് j ഒരു റിക്കർസീവ് ബിൽഡിൽ ഓപ്‌ഷൻ ഉപയോഗത്തിലുണ്ട്, ഈ ഓപ്‌ഷൻ ഒരു മെയ്ക്ക് ടു വഴി കൈമാറുന്നു
ബിൽഡിലെ എല്ലാ നിർമ്മാണ പ്രക്രിയകളും ഒഴിവാക്കാൻ സഹകരിക്കാൻ കുട്ടി അനുവദിക്കുന്നു
സിസ്റ്റം ഓവർലോഡ് ചെയ്യുന്നു.

-j പരമാവധി_ജോലികൾ
പരമാവധി ജോലികളുടെ എണ്ണം വ്യക്തമാക്കുക bmake എപ്പോൾ വേണമെങ്കിലും പ്രവർത്തിച്ചേക്കാം. ദി
മൂല്യം സംരക്ഷിക്കപ്പെടുന്നു .തൊഴിൽ ഉണ്ടാക്കുക. ഇല്ലെങ്കിൽ, അനുയോജ്യത മോഡ് ഓഫാക്കുന്നു B പതാക ആണ്
എന്നും വ്യക്തമാക്കിയിട്ടുണ്ട്. കോംപാറ്റിബിലിറ്റി മോഡ് ഓഫായിരിക്കുമ്പോൾ, എയുമായി ബന്ധപ്പെട്ട എല്ലാ കമാൻഡുകളും
പരമ്പരാഗതമായതിൽ നിന്ന് വ്യത്യസ്തമായി ഒരൊറ്റ ഷെൽ ഇൻവോക്കേഷനിലാണ് ടാർഗെറ്റ് നടപ്പിലാക്കുന്നത്
ഓരോ വരിയിലും ഷെൽ ഇൻവോക്കേഷൻ. ഇത് മാറുന്ന പരമ്പരാഗത സ്ക്രിപ്റ്റുകൾ തകർക്കും
ഓരോ കമാൻഡിലെയും ഡയറക്‌ടറികൾ, തുടർന്ന് പുതിയതായി ആരംഭിക്കാൻ പ്രതീക്ഷിക്കുന്നു
അടുത്ത വരിയിൽ പരിസ്ഥിതി. സ്ക്രിപ്റ്റുകൾ തിരുത്തുന്നത് കൂടുതൽ കാര്യക്ഷമമാണ്
പിന്നിലേക്ക് അനുയോജ്യത ഓണാക്കുന്നതിനേക്കാൾ.

-k പിശകുകൾ നേരിട്ടതിന് ശേഷം പ്രോസസ്സിംഗ് തുടരുക, എന്നാൽ ആ ലക്ഷ്യങ്ങളിൽ മാത്രം
ആരുടെ സൃഷ്ടി പിശകിന് കാരണമായ ലക്ഷ്യത്തെ ആശ്രയിക്കുന്നില്ല.

-m ഡയറക്ടറി
വഴി ഉൾപ്പെടുത്തിയിട്ടുള്ള sys.mk, makefiles എന്നിവയ്ക്കായി തിരയേണ്ട ഒരു ഡയറക്ടറി വ്യക്തമാക്കുക
⟨ ⟨ ഡൗൺലോഡ്ഫയല്⟩-ശൈലിയിൽ പ്രസ്താവന ഉൾപ്പെടുന്നു. ദി -m a രൂപീകരിക്കാൻ ഓപ്ഷൻ ഒന്നിലധികം തവണ ഉപയോഗിക്കാം
തിരയൽ പാത. പാത്ത് ഉൾപ്പെടുന്ന സ്ഥിരസ്ഥിതി സിസ്റ്റത്തെ ഈ പാത്ത് അസാധുവാക്കും:
/usr/share/mk. കൂടാതെ, സിസ്റ്റത്തിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന പാത തിരയലിലേക്ക് കൂട്ടിച്ചേർക്കും
" എന്നതിന് ഉപയോഗിക്കുന്ന പാതഫയല്"-ശൈലിയിൽ പ്രസ്താവനകൾ ഉൾപ്പെടുന്നു (കാണുക -I ഓപ്ഷൻ).

ഒരു ഫയലോ ഡയറക്ടറിയുടെയോ പേരാണെങ്കിൽ -m വാദം (അല്ലെങ്കിൽ MAKESYSPATH പരിസ്ഥിതി
വേരിയബിൾ) ".../" എന്ന സ്ട്രിംഗിൽ ആരംഭിക്കുന്നു, തുടർന്ന് bmake വ്യക്തമാക്കിയത് തിരയും
ആർഗ്യുമെന്റ് സ്ട്രിംഗിന്റെ ശേഷിക്കുന്ന ഭാഗത്ത് പേരിട്ടിരിക്കുന്ന ഫയൽ അല്ലെങ്കിൽ ഡയറക്ടറി. അന്വേഷണം
Makefile-ന്റെ നിലവിലെ ഡയറക്‌ടറിയിൽ നിന്ന് ആരംഭിക്കുകയും തുടർന്ന് മുകളിലേക്ക് പ്രവർത്തിക്കുകയും ചെയ്യുന്നു
ഫയൽസിസ്റ്റത്തിന്റെ റൂട്ട്. തിരയൽ വിജയകരമാണെങ്കിൽ, ഫലമായുണ്ടാകുന്ന ഡയറക്ടറി
എന്നതിലെ ".../" സ്പെസിഫിക്കേഷൻ മാറ്റിസ്ഥാപിക്കുന്നു -m വാദം. ഉപയോഗിക്കുകയാണെങ്കിൽ, ഈ സവിശേഷത അനുവദിക്കുന്നു
bmake ഇഷ്‌ടാനുസൃതമാക്കിയ sys.mk ഫയലുകൾക്കായി നിലവിലെ ഉറവിട ട്രീയിൽ എളുപ്പത്തിൽ തിരയാൻ (ഉദാ,
ഒരു ആർഗ്യുമെന്റായി ".../mk/sys.mk" ഉപയോഗിച്ച്).

-n എക്സിക്യൂട്ട് ചെയ്യപ്പെടുമായിരുന്ന കമാൻഡുകൾ പ്രദർശിപ്പിക്കുക, എന്നാൽ യഥാർത്ഥത്തിൽ അവ എക്സിക്യൂട്ട് ചെയ്യരുത്
ലക്ഷ്യം .MAKE പ്രത്യേക ഉറവിടത്തെ ആശ്രയിക്കുന്നില്ലെങ്കിൽ (ചുവടെ കാണുക).

-N എക്സിക്യൂട്ട് ചെയ്യപ്പെടുമായിരുന്ന കമാൻഡുകൾ പ്രദർശിപ്പിക്കുക, എന്നാൽ യഥാർത്ഥത്തിൽ ഒന്നും എക്സിക്യൂട്ട് ചെയ്യരുത്
അവരിൽ; ഉയർന്ന തലത്തിലുള്ള മേക്ക്ഫയലുകളിലേക്ക് ഇറങ്ങാതെ തന്നെ ഡീബഗ്ഗ് ചെയ്യാൻ ഉപയോഗപ്രദമാണ്
ഉപഡയറക്‌ടറികൾ.

-q കമാൻഡുകൾ ഒന്നും എക്സിക്യൂട്ട് ചെയ്യരുത്, എന്നാൽ നിർദ്ദിഷ്ട ടാർഗെറ്റുകൾ കാലികമാണെങ്കിൽ 0-ൽ നിന്ന് പുറത്തുകടക്കുക
1, അല്ലാത്തപക്ഷം.

-r സിസ്റ്റം makefile-ൽ വ്യക്തമാക്കിയ ബിൽറ്റ്-ഇൻ നിയമങ്ങൾ ഉപയോഗിക്കരുത്.

-s കമാൻഡുകളൊന്നും എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ പ്രതിധ്വനിക്കരുത്. വ്യക്തമാക്കുന്നതിന് തുല്യമാണ് '@'മുമ്പ്
makefile ലെ ഓരോ കമാൻഡ് ലൈനും.

-T ട്രേസ് ഫയൽ
കൂടെ ഉപയോഗിക്കുമ്പോൾ -j ഫ്ലാഗ്, ഒരു ട്രെയ്സ് റെക്കോർഡ് കൂട്ടിച്ചേർക്കുക ട്രേസ് ഫയൽ ആരംഭിച്ച ഓരോ ജോലിക്കും
പൂർത്തിയാക്കുകയും ചെയ്തു.

-t makefile-ൽ വ്യക്തമാക്കിയിട്ടുള്ള ഒരു ടാർഗെറ്റ് പുനർനിർമ്മിക്കുന്നതിന് പകരം, അത് സൃഷ്ടിക്കുക അല്ലെങ്കിൽ അപ്ഡേറ്റ് ചെയ്യുക
അത് കാലികമായി ദൃശ്യമാക്കുന്നതിനുള്ള അതിന്റെ പരിഷ്‌ക്കരണ സമയം.

-V വേരിയബിൾ
അച്ചടിക്കുക bmakeന്റെ മൂല്യത്തെക്കുറിച്ചുള്ള ആശയം വേരിയബിൾ, ആഗോള പശ്ചാത്തലത്തിൽ. പണിയരുത്
ഏതെങ്കിലും ലക്ഷ്യങ്ങൾ. ഈ ഓപ്ഷന്റെ ഒന്നിലധികം സന്ദർഭങ്ങൾ വ്യക്തമാക്കിയേക്കാം; വേരിയബിളുകൾ ചെയ്യും
ഓരോ വരിയിലും ഒരെണ്ണം വീതം പ്രിന്റ് ചെയ്യണം, ഓരോ ശൂന്യതയ്ക്കും അല്ലെങ്കിൽ നിർവചിക്കാത്ത വേരിയബിളിനും ഒരു ശൂന്യ ലൈൻ. എങ്കിൽ
വേരിയബിൾ ഒരു '$' അടങ്ങിയിരിക്കുന്നു, തുടർന്ന് മൂല്യം അച്ചടിക്കുന്നതിന് മുമ്പ് വിപുലീകരിക്കപ്പെടും.

-W മേക്ക്‌ഫൈൽ പാഴ്‌സിംഗ് സമയത്ത് എന്തെങ്കിലും മുന്നറിയിപ്പുകൾ പിശകുകളായി പരിഗണിക്കുക.

-w ഡയറക്‌ടറി സന്ദേശങ്ങൾ നൽകുന്നതും വിടുന്നതും പ്രിന്റ് ചെയ്യുക, പ്രീ-പോസ്റ്റ് പ്രോസസ്സിംഗ്.

-X കമാൻഡ് ലൈനിൽ കൈമാറുന്ന വേരിയബിളുകൾ പരിസ്ഥിതിയിലേക്ക് വ്യക്തിഗതമായി കയറ്റുമതി ചെയ്യരുത്.
കമാൻഡ് ലൈനിൽ കൈമാറുന്ന വേരിയബിളുകൾ ഇപ്പോഴും ഇതുവഴി കയറ്റുമതി ചെയ്യുന്നു മേക്ക്ഫ്ലാഗുകൾ
പരിസ്ഥിതി വേരിയബിൾ. ചെറിയ പരിധിയുള്ള സിസ്റ്റങ്ങളിൽ ഈ ഓപ്ഷൻ ഉപയോഗപ്രദമാകും
കമാൻഡ് ആർഗ്യുമെന്റുകളുടെ വലുപ്പത്തിൽ.

വേരിയബിൾ = മൂല്യം
വേരിയബിളിന്റെ മൂല്യം സജ്ജമാക്കുക വേരിയബിൾ ലേക്ക് മൂല്യം. സാധാരണയായി, എല്ലാ മൂല്യങ്ങളും കൈമാറുന്നു
പരിസ്ഥിതിയിലെ ഉപ-നിർമ്മാണങ്ങളിലേക്ക് കമാൻഡ് ലൈൻ കയറ്റുമതി ചെയ്യുന്നു. ദി -X പതാക
ഈ സ്വഭാവം പ്രവർത്തനരഹിതമാക്കുന്നു. വേരിയബിൾ അസൈൻമെന്റുകൾ POSIX-നുള്ള ഓപ്ഷനുകൾ പിന്തുടരേണ്ടതാണ്
അനുയോജ്യത, എന്നാൽ ക്രമപ്പെടുത്തലുകളൊന്നും നടപ്പിലാക്കിയിട്ടില്ല.

ഒരു മേക്ക് ഫയലിൽ ഏഴ് വ്യത്യസ്ത തരം ലൈനുകൾ ഉണ്ട്: ഫയൽ ഡിപൻഡൻസി സ്പെസിഫിക്കേഷനുകൾ,
ഷെൽ കമാൻഡുകൾ, വേരിയബിൾ അസൈൻമെന്റുകൾ, പ്രസ്താവനകൾ, സോപാധിക നിർദ്ദേശങ്ങൾ, ലൂപ്പുകൾക്കായി,
അഭിപ്രായങ്ങളും.

പൊതുവേ, ഒരു വരിയിൽ നിന്ന് അടുത്ത വരിയിലേക്ക് ഒരു ബാക്ക്സ്ലാഷ് ഉപയോഗിച്ച് അവസാനിപ്പിച്ച് വരികൾ തുടരാം
('\'). പിന്നിലുള്ള ന്യൂലൈൻ പ്രതീകവും ഇനിപ്പറയുന്ന വരിയിലെ പ്രാരംഭ വൈറ്റ്‌സ്‌പെയ്‌സും ഇവയാണ്
ഒരൊറ്റ സ്പെയ്സിലേക്ക് ചുരുക്കിയിരിക്കുന്നു.

FILE ആശ്രിതത്വം നിർദേശങ്ങൾ


ഡിപൻഡൻസി ലൈനുകളിൽ ഒന്നോ അതിലധികമോ ടാർഗെറ്റുകൾ, ഒരു ഓപ്പറേറ്റർ, പൂജ്യമോ അതിലധികമോ ഉറവിടങ്ങൾ എന്നിവ അടങ്ങിയിരിക്കുന്നു.
ലക്ഷ്യങ്ങൾ ഉറവിടങ്ങളെ "ആശ്രയിക്കുന്നതും" സാധാരണയായി ആയിരിക്കുന്നതുമായ ഒരു ബന്ധം ഇത് സൃഷ്ടിക്കുന്നു
അവരിൽ നിന്ന് സൃഷ്ടിച്ചു. ലക്ഷ്യവും ഉറവിടവും തമ്മിലുള്ള കൃത്യമായ ബന്ധം നിർണ്ണയിക്കപ്പെടുന്നു
അവരെ വേർതിരിക്കുന്ന ഓപ്പറേറ്റർ മുഖേന. മൂന്ന് ഓപ്പറേറ്റർമാർ ഇനിപ്പറയുന്നവയാണ്:

: ഒരു ടാർഗെറ്റ് അതിന്റെ പരിഷ്‌ക്കരണ സമയം ഏതെങ്കിലും സമയത്തേക്കാൾ കുറവാണെങ്കിൽ കാലഹരണപ്പെട്ടതായി കണക്കാക്കുന്നു
അതിന്റെ ഉറവിടങ്ങൾ. ഒരു ലക്ഷ്യത്തിനായുള്ള സ്രോതസ്സുകൾ ഡിപൻഡൻസി ലൈനുകളിലൂടെ ശേഖരിക്കപ്പെടുന്നു
ഓപ്പറേറ്റർ ഉപയോഗിക്കുന്നു. എങ്കിൽ ലക്ഷ്യം നീക്കം ചെയ്യപ്പെടും bmake തടസ്സപ്പെട്ടു.

! ലക്ഷ്യങ്ങൾ എല്ലായ്‌പ്പോഴും പുനഃസൃഷ്ടിക്കപ്പെടുന്നു, എന്നാൽ എല്ലാ സ്രോതസ്സുകളും പരിശോധിച്ച് വീണ്ടും-
ആവശ്യാനുസരണം സൃഷ്ടിച്ചു. ഒരു ലക്ഷ്യത്തിനായുള്ള സ്രോതസ്സുകൾ ഡിപൻഡൻസി ലൈനുകളിലൂടെ ശേഖരിക്കപ്പെടുന്നു
ഓപ്പറേറ്റർ ഉപയോഗിക്കുന്നു. എങ്കിൽ ലക്ഷ്യം നീക്കം ചെയ്യപ്പെടും bmake തടസ്സപ്പെട്ടു.

:: ഉറവിടങ്ങളൊന്നും വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, ലക്ഷ്യം എല്ലായ്പ്പോഴും പുനഃസൃഷ്ടിക്കപ്പെടുന്നു. അല്ലെങ്കിൽ, ഒരു ലക്ഷ്യം
അതിന്റെ ഏതെങ്കിലും ഉറവിടങ്ങൾ ഈയടുത്ത് പരിഷ്കരിച്ചിട്ടുണ്ടെങ്കിൽ കാലഹരണപ്പെട്ടതായി കണക്കാക്കുന്നു
ലക്ഷ്യം. ഒരു ലക്ഷ്യത്തിനായുള്ള സ്രോതസ്സുകൾ ഇങ്ങനെ ചെയ്യുമ്പോൾ ഡിപൻഡൻസി ലൈനുകളിലൂടെ ശേഖരിക്കപ്പെടുന്നില്ല
ഓപ്പറേറ്റർ ഉപയോഗിക്കുന്നു. എങ്കിൽ ലക്ഷ്യം നീക്കം ചെയ്യപ്പെടില്ല bmake തടസ്സപ്പെട്ടു.

ടാർഗെറ്റുകളിലും ഉറവിടങ്ങളിലും ഷെൽ വൈൽഡ്കാർഡ് മൂല്യങ്ങൾ '?', '*', '[]', '{}' എന്നിവ അടങ്ങിയിരിക്കാം. ദി
'?', '*', '[]' എന്നീ മൂല്യങ്ങൾ ടാർഗെറ്റിന്റെ അന്തിമ ഘടകത്തിന്റെ ഭാഗമായി മാത്രമേ ഉപയോഗിക്കാവൂ അല്ലെങ്കിൽ
ഉറവിടം, നിലവിലുള്ള ഫയലുകൾ വിവരിക്കാൻ ഉപയോഗിക്കേണ്ടതാണ്. മൂല്യം '{}' ആയിരിക്കണമെന്നില്ല
നിലവിലുള്ള ഫയലുകൾ വിവരിക്കാൻ ഉപയോഗിക്കുന്നു. വിപുലീകരണം ഡയറക്ടറി ക്രമത്തിലാണ്, അക്ഷരമാലാക്രമത്തിലല്ല
ഷെല്ലിൽ ചെയ്തു.

ഷെൽ കമാൻഡുകൾ


ഓരോ ലക്ഷ്യവും, സാധാരണയായി ഉപയോഗിക്കുന്ന ഒന്നോ അതിലധികമോ ഷെൽ കമാൻഡുകൾ അതുമായി ബന്ധപ്പെട്ടിരിക്കാം
ലക്ഷ്യം സൃഷ്ടിക്കാൻ. ഈ സ്ക്രിപ്റ്റിലെ ഓരോ വരികളും ആവശമാകുന്നു മുമ്പായി ഒരു ടാബ്. (വേണ്ടി
ചരിത്രപരമായ കാരണങ്ങളാൽ, സ്‌പെയ്‌സുകൾ അംഗീകരിക്കപ്പെടുന്നില്ല.) അതേസമയം ടാർഗെറ്റുകൾ പല ആശ്രിതത്വത്തിലും ദൃശ്യമാകും
വരികൾ വേണമെങ്കിൽ, ഡിഫോൾട്ടായി ഈ നിയമങ്ങളിലൊന്ന് മാത്രമേ ക്രിയേഷൻ സ്ക്രിപ്റ്റ് പിന്തുടരുകയുള്ളൂ.
എങ്കിൽ '::' ഓപ്പറേറ്റർ ഉപയോഗിക്കുന്നു, എന്നിരുന്നാലും, എല്ലാ നിയമങ്ങളിലും സ്ക്രിപ്റ്റുകളും സ്ക്രിപ്റ്റുകളും ഉൾപ്പെട്ടേക്കാം
കണ്ടെത്തിയ ക്രമത്തിൽ നടപ്പിലാക്കി.

ഓരോ വരിയും ഒരു പ്രത്യേക ഷെൽ കമാൻഡായി കണക്കാക്കുന്നു, വരിയുടെ അവസാനം a ഉപയോഗിച്ച് രക്ഷപ്പെടുന്നില്ലെങ്കിൽ
ബാക്ക്‌സ്ലാഷ് ('\') ഈ സാഹചര്യത്തിൽ ആ വരിയും അടുത്തതും കൂടിച്ചേർന്നതാണ്. ആദ്യ കഥാപാത്രങ്ങളാണെങ്കിൽ
കമാൻഡിന്റെ ഏതെങ്കിലും സംയോജനമാണ് '@','+', അഥവാ '-', കമാൻഡ് പ്രത്യേകം പരിഗണിക്കുന്നു. എ
'@' കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നതിനുമുമ്പ് പ്രതിധ്വനിക്കാതിരിക്കാൻ കാരണമാകുന്നു. എ'+' എന്ന കമാൻഡിന് കാരണമാകുന്നു
എപ്പോൾ പോലും നടപ്പിലാക്കും -n കൊടുത്തു. ഇത് .MAKE സ്പെഷ്യലിന്റെ ഫലത്തിന് സമാനമാണ്
ഉറവിടം, ഒരു സ്ക്രിപ്റ്റിന്റെ ഒരു വരിയിൽ മാത്രം പ്രഭാവം പരിമിതപ്പെടുത്താം. എ'-'ഇൻ
കോംപാറ്റിബിലിറ്റി മോഡ് കമാൻഡ് ലൈനിന്റെ പൂജ്യമല്ലാത്ത എക്സിറ്റ് സ്റ്റാറ്റസ് അവഗണിക്കുന്നതിന് കാരണമാകുന്നു.

എപ്പോൾ bmake ഉപയോഗിച്ച് ജോബ്സ് മോഡിൽ പ്രവർത്തിക്കുന്നു -j പരമാവധി_ജോലികൾ, ലക്ഷ്യത്തിനായുള്ള മുഴുവൻ സ്ക്രിപ്റ്റും ഫീഡ് ചെയ്യുന്നു
ഷെല്ലിന്റെ ഒരൊറ്റ ഉദാഹരണം. കോംപാറ്റിബിലിറ്റി (ജോബ്സ് അല്ലാത്തത്) മോഡിൽ, ഓരോ കമാൻഡും എയിൽ പ്രവർത്തിക്കുന്നു
പ്രത്യേക പ്രക്രിയ. കമാൻഡിൽ ഏതെങ്കിലും ഷെൽ മെറ്റാ പ്രതീകങ്ങൾ ഉണ്ടെങ്കിൽ
('#=|^(){};&<>*?[]:$`\\n') ഇത് ഷെല്ലിലേക്ക് കൈമാറും; അല്ലാത്തപക്ഷം bmake ശ്രമിക്കും
നേരിട്ടുള്ള നിർവ്വഹണം. ഒരു വരി ആരംഭിക്കുകയാണെങ്കിൽ '-' കൂടാതെ ഷെൽ ErrCtl പ്രവർത്തനക്ഷമമാക്കി, തുടർന്ന് പരാജയം
കോംപാറ്റിബിലിറ്റി മോഡിലെന്നപോലെ കമാൻഡ് ലൈനിനെ അവഗണിക്കും. അല്ലങ്കിൽ'-'യെ ബാധിക്കുന്നു
മുഴുവൻ ജോലിയും; പരാജയപ്പെടുന്ന ആദ്യ കമാൻഡ് ലൈനിൽ സ്ക്രിപ്റ്റ് നിർത്തും, പക്ഷേ ടാർഗെറ്റ് ചെയ്യും
പരാജയപ്പെട്ടതായി കണക്കാക്കരുത്.

മേക്ക്ഫയലുകൾ എഴുതണം അങ്ങനെ മോഡ് bmake പ്രവർത്തനം മാറ്റില്ല
പെരുമാറ്റം. ഉദാഹരണത്തിന്, സാധ്യതയില്ലാതെ "cd" അല്ലെങ്കിൽ "chdir" ഉപയോഗിക്കേണ്ട ഏതെങ്കിലും കമാൻഡ്
തുടർന്നുള്ള കമാൻഡുകൾക്കായി ഡയറക്‌ടറി മാറ്റുന്നത് പരാൻതീസിസിൽ ഇടണം, അങ്ങനെ അത് എക്സിക്യൂട്ട് ചെയ്യുന്നു
ഒരു ഉപഷെല്ലിൽ. ഒരു ഷെല്ലിന്റെ ഉപയോഗം നിർബന്ധമാക്കുന്നതിന്, ലൈൻ ബ്രേക്കുകളിൽ നിന്ന് രക്ഷപ്പെടുക
മുഴുവൻ സ്ക്രിപ്റ്റ് ഒരു കമാൻഡ്. ഉദാഹരണത്തിന്:

ഒഴിവാക്കാൻ-chdir-പാർശ്വഫലങ്ങൾ:
`pwd`-ൽ @echo ബിൽഡിംഗ് $@
@(cd ${.CURDIR} && ${MAKE} $@)
@echo വീണ്ടും `pwd`-ൽ

ഉറപ്പാക്കുക-ഒരു ഷെൽ-പരിഗണിക്കാതെ-ഓഫ്-മോഡ്:
@echo ബിൽഡിംഗ് $@ ൽ `pwd`;
(സിഡി ${.CURDIR} && ${MAKE} $@);
`pwd` എന്നതിൽ തിരികെ പ്രതിധ്വനിക്കുക

മുതലുള്ള bmake ഉദ്ദേശിക്കുന്ന chdir(2) മുതൽ '.OBJDIRഏതെങ്കിലും ലക്ഷ്യങ്ങൾ നടപ്പിലാക്കുന്നതിന് മുമ്പ്, ഓരോ കുട്ടിയും പ്രോസസ്സ് ചെയ്യുന്നു
അതിന്റെ നിലവിലെ പ്രവർത്തന ഡയറക്‌ടറിയായി അത് ആരംഭിക്കുന്നു.

വേരിയബിൾ നിയമനങ്ങൾ


ഉണ്ടാക്കുന്ന വേരിയബിളുകൾ ഷെല്ലിലെ വേരിയബിളുകൾ പോലെയാണ്, പാരമ്പര്യമനുസരിച്ച്, എല്ലാം ഉൾക്കൊള്ളുന്നു
വലിയ അക്ഷരങ്ങൾ.

വേരിയബിൾ നിയമനം മോഡിഫയറുകൾ
വേരിയബിളുകൾക്ക് മൂല്യങ്ങൾ നൽകുന്നതിന് ഉപയോഗിക്കാവുന്ന അഞ്ച് ഓപ്പറേറ്റർമാർ ഇനിപ്പറയുന്നവയാണ്:

= വേരിയബിളിന് മൂല്യം നൽകുക. മുമ്പത്തെ ഏത് മൂല്യവും അസാധുവാക്കിയിരിക്കുന്നു.

+= വേരിയബിളിന്റെ നിലവിലെ മൂല്യത്തിലേക്ക് മൂല്യം കൂട്ടിച്ചേർക്കുക.

?= ഇതിനകം നിർവചിച്ചിട്ടില്ലെങ്കിൽ വേരിയബിളിന് മൂല്യം നൽകുക.

:= വിപുലീകരണത്തോടെ അസൈൻ ചെയ്യുക, അതായത് വേരിയബിളിലേക്ക് അസൈൻ ചെയ്യുന്നതിന് മുമ്പ് മൂല്യം വികസിപ്പിക്കുക.
സാധാരണയായി, വേരിയബിൾ പരാമർശിക്കുന്നതുവരെ വിപുലീകരണം നടക്കുന്നില്ല. കുറിപ്പ്: റഫറൻസുകൾ
നിർവചിക്കാത്ത വേരിയബിളുകൾ ആണ് അല്ല വിപുലപ്പെടുത്തി. വേരിയബിൾ ആകുമ്പോൾ ഇത് പ്രശ്നങ്ങൾ ഉണ്ടാക്കും
മോഡിഫയറുകൾ ഉപയോഗിക്കുന്നു.

!= മൂല്യം വികസിപ്പിക്കുകയും നിർവ്വഹണത്തിനായി ഷെല്ലിലേക്ക് കൈമാറുകയും ഫലം നൽകുകയും ചെയ്യുക
വേരിയബിൾ. ഫലത്തിലെ എല്ലാ പുതിയ ലൈനുകളും സ്‌പെയ്‌സുകൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു.

അസൈൻ ചെയ്തതിന് മുമ്പുള്ള ഏതെങ്കിലും വൈറ്റ്-സ്പെയ്സ് മൂല്യം നീക്കം ചെയ്തു; മൂല്യം കൂട്ടിച്ചേർക്കുകയാണെങ്കിൽ, a
വേരിയബിളിന്റെയും അനുബന്ധത്തിന്റെയും മുമ്പത്തെ ഉള്ളടക്കങ്ങൾക്കിടയിൽ ഒരൊറ്റ സ്പേസ് ചേർത്തിരിക്കുന്നു
മൂല്യം.

ചുരുണ്ട ബ്രേസുകൾ ('{}') അല്ലെങ്കിൽ വേരിയബിൾ നാമത്തെ ചുറ്റിപ്പറ്റിയാണ് വേരിയബിളുകൾ വികസിപ്പിക്കുന്നത്
പരാൻതീസിസും ('()') അതിനുമുമ്പുള്ള ഒരു ഡോളർ ചിഹ്നവും ('$'). വേരിയബിളിൽ പേരുണ്ടെങ്കിൽ
ഒരൊറ്റ അക്ഷരം മാത്രം, ചുറ്റുമുള്ള ബ്രേസുകളോ പരാൻതീസിസോ ആവശ്യമില്ല. ഇത് ചെറുതാണ്
ഫോം ശുപാർശ ചെയ്യുന്നില്ല.

വേരിയബിൾ നാമത്തിൽ ഒരു ഡോളർ അടങ്ങിയിട്ടുണ്ടെങ്കിൽ, പേര് തന്നെ ആദ്യം വിപുലീകരിക്കും. ഇത് അനുവദിക്കുന്നു
ഏതാണ്ട് ഏകപക്ഷീയമായ വേരിയബിൾ പേരുകൾ, എന്നിരുന്നാലും ഡോളർ, ബ്രേസുകൾ, പരാന്തീസിസ് അല്ലെങ്കിൽ
വൈറ്റ്‌സ്‌പേസ് ശരിക്കും ഒഴിവാക്കുന്നതാണ് നല്ലത്!

ഒരു വേരിയബിൾ വികസിപ്പിക്കുന്നതിന്റെ ഫലത്തിൽ ഒരു ഡോളർ ചിഹ്നം ('$') അടങ്ങിയിട്ടുണ്ടെങ്കിൽ, സ്ട്രിംഗ് വിപുലീകരിക്കപ്പെടും
വീണ്ടും.

വേരിയബിൾ എവിടെയാണെന്നതിനെ ആശ്രയിച്ച് മൂന്ന് വ്യത്യസ്ത സമയങ്ങളിൽ വേരിയബിൾ സബ്സ്റ്റിറ്റ്യൂഷൻ സംഭവിക്കുന്നു
ഉപയോഗിക്കുന്നു.

1. ലൈൻ വായിക്കുന്നതിനനുസരിച്ച് ഡിപൻഡൻസി ലൈനുകളിലെ വേരിയബിളുകൾ വികസിക്കുന്നു.

2. ഷെൽ കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ ഷെൽ കമാൻഡുകളിലെ വേരിയബിളുകൾ വിപുലീകരിക്കപ്പെടുന്നു.

3. ".for" ലൂപ്പ് ഇൻഡക്സ് വേരിയബിളുകൾ ഓരോ ലൂപ്പ് ആവർത്തനത്തിലും വിപുലീകരിക്കുന്നു. മറ്റൊന്ന് ശ്രദ്ധിക്കുക
ലൂപ്പിനുള്ളിൽ വേരിയബിളുകൾ വികസിപ്പിച്ചിട്ടില്ല, അതിനാൽ ഇനിപ്പറയുന്ന ഉദാഹരണ കോഡ്:

.1 2 3-ൽ ഞാൻ
a+= ${i}
j= ${i}
b+= ${j}
.endfor

എല്ലാം:
@എക്കോ ${a}
@എക്കോ ${b}

അച്ചടിക്കും:

1 2 3
3 3 3

കാരണം ${a} ലൂപ്പ് എക്‌സിക്യൂട്ട് ചെയ്‌തതിന് ശേഷം “1 2 3” അടങ്ങിയിരിക്കുമ്പോൾ, ${b} ൽ “${j} അടങ്ങിയിരിക്കുന്നു
${j} ${j}" ലൂപ്പ് പൂർത്തിയാക്കിയ ശേഷം "3" അടങ്ങിയിരിക്കുന്നതിനാൽ "3 3 3" ആയി വികസിക്കുന്നു.

വേരിയബിൾ ക്ലാസുകൾ
നാല് വ്യത്യസ്ത തരം വേരിയബിളുകൾ (മുൻഗണന വർദ്ധിപ്പിക്കുന്ന ക്രമത്തിൽ):

പരിസ്ഥിതി വേരിയബിളുകൾ
ഇതിന്റെ ഭാഗമായി നിർവചിച്ചിരിക്കുന്ന വേരിയബിളുകൾ bmakeന്റെ പരിസ്ഥിതി.

ആഗോള വേരിയബിളുകൾ
മേക്ക് ഫയലിലോ ഉൾപ്പെടുത്തിയിരിക്കുന്ന മേക്ക് ഫയലുകളിലോ നിർവചിച്ചിരിക്കുന്ന വേരിയബിളുകൾ.

കമാൻഡ് ലൈൻ വേരിയബിളുകൾ
കമാൻഡ് ലൈനിന്റെ ഭാഗമായി നിർവചിച്ചിരിക്കുന്ന വേരിയബിളുകൾ.

പ്രാദേശിക വേരിയബിളുകൾ
ഒരു നിശ്ചിത ലക്ഷ്യത്തിന് പ്രത്യേകമായി നിർവചിച്ചിരിക്കുന്ന വേരിയബിളുകൾ.

ലോക്കൽ വേരിയബിളുകൾ എല്ലാം അന്തർനിർമ്മിതമാണ്, അവയുടെ മൂല്യങ്ങൾ ടാർഗെറ്റിൽ നിന്ന് ടാർഗെറ്റിലേക്ക് മാന്ത്രികമായി വ്യത്യാസപ്പെടുന്നു. അത്
പുതിയ ലോക്കൽ വേരിയബിളുകൾ നിർവചിക്കാൻ നിലവിൽ സാധ്യമല്ല. ഏഴ് പ്രാദേശിക വേരിയബിളുകൾ ഇങ്ങനെയാണ്
താഴെ:

.ALLSRC ഈ ലക്ഷ്യത്തിനായുള്ള എല്ലാ ഉറവിടങ്ങളുടെയും ലിസ്റ്റ്; പുറമേ അറിയപ്പെടുന്ന '>'.

.ആർക്കൈവ് ആർക്കൈവ് ഫയലിന്റെ പേര്; പുറമേ അറിയപ്പെടുന്ന '!'.

.IMPSRC സഫിക്‌സ്-ട്രാൻസ്‌ഫോർമേഷൻ റൂളുകളിൽ, ഉറവിടത്തിന്റെ പേര്/പാത്ത്
ലക്ഷ്യം രൂപാന്തരപ്പെടണം ("സൂചിപ്പിച്ച" ഉറവിടം); പുറമേ അറിയപ്പെടുന്ന '<'. അത്
വ്യക്തമായ നിയമങ്ങളിൽ നിർവചിച്ചിട്ടില്ല.

.അംഗം ആർക്കൈവ് അംഗത്തിന്റെ പേര്; പുറമേ അറിയപ്പെടുന്ന '%'.

.OODATE കാലഹരണപ്പെട്ടതായി കണക്കാക്കിയ ഈ ലക്ഷ്യത്തിനായുള്ള ഉറവിടങ്ങളുടെ ലിസ്റ്റ്; എന്നും അറിയപ്പെടുന്നു
'?'.

.പ്രിഫിക്സ് ടാർഗെറ്റിന്റെ ഫയൽ പ്രിഫിക്‌സ്, ഫയൽ ഭാഗം മാത്രം അടങ്ങിയിരിക്കുന്നു, പ്രത്യയമില്ല
അല്ലെങ്കിൽ മുമ്പത്തെ ഡയറക്ടറി ഘടകങ്ങൾ; പുറമേ അറിയപ്പെടുന്ന '*'. പ്രത്യയം ആയിരിക്കണം
കൂടെ പ്രഖ്യാപിച്ച അറിയപ്പെടുന്ന പ്രത്യയങ്ങളിൽ ഒന്ന് .സഫിക്സുകൾ അല്ലെങ്കിൽ അതുണ്ടാകില്ല
അംഗീകരിച്ചു.

.ടാർഗെറ്റ് ലക്ഷ്യത്തിന്റെ പേര്; പുറമേ അറിയപ്പെടുന്ന '@'.

ചെറിയ രൂപങ്ങൾ ('>','!','<','%','?','*', ഒപ്പം '@') പിന്നാക്കക്കാർക്ക് അനുവദനീയമാണ്
ചരിത്രപരമായ മേക്ക് ഫയലുകളുമായുള്ള അനുയോജ്യതയും ലെഗസി POSIX ഉണ്ടാക്കുന്നതും ശുപാർശ ചെയ്തിട്ടില്ല.

വിരാമചിഹ്നങ്ങളോടുകൂടിയ ഈ വേരിയബിളുകളുടെ വകഭേദങ്ങൾ തൊട്ടുപിന്നാലെ 'D' അല്ലെങ്കിൽ 'F', ഉദാ
'$(@D)', ':H', ':T' മോഡിഫയറുകൾ ഉപയോഗിക്കുന്നതിന് തുല്യമായ ലെഗസി ഫോമുകളാണ്. ഈ രൂപങ്ങൾ
AT&T സിസ്റ്റം V UNIX മേക്ക് ഫയലുകൾ, POSIX എന്നിവയുമായുള്ള അനുയോജ്യതയ്ക്കായി അംഗീകരിച്ചു, എന്നാൽ അല്ല
ശുപാർശ ചെയ്ത.

പ്രാദേശിക വേരിയബിളുകളിൽ നാലെണ്ണം ഡിപൻഡൻസി ലൈനുകളിലെ സ്രോതസ്സുകളിൽ ഉപയോഗിച്ചേക്കാം, കാരണം അവ വികസിക്കുന്നു
ലൈനിലെ ഓരോ ലക്ഷ്യത്തിനും ശരിയായ മൂല്യത്തിലേക്ക്. ഈ വേരിയബിളുകൾ '.ടാർഗെറ്റ്','.പ്രിഫിക്സ്',
'.ആർക്കൈവ്', ഒപ്പം '.അംഗം'.

അധികമായ അന്തർനിർമ്മിതമാണ് വേരിയബിളുകൾ
ഇതുകൂടാതെ, bmake ഇനിപ്പറയുന്ന വേരിയബിളുകൾ സജ്ജമാക്കുന്നു അല്ലെങ്കിൽ അവയെക്കുറിച്ച് അറിയാം:

$ ഒരൊറ്റ ഡോളർ ചിഹ്നം '$', അതായത് '$$' ഒരു ഡോളർ ചിഹ്നത്തിലേക്ക് വികസിക്കുന്നു.

.എല്ലാ ടാർഗെറ്റുകളും Makefile-ൽ നേരിട്ട എല്ലാ ലക്ഷ്യങ്ങളുടെയും പട്ടിക. സമയത്ത് വിലയിരുത്തിയാൽ
Makefile parsing, ഇതുവരെ നേരിട്ട ആ ലക്ഷ്യങ്ങൾ മാത്രം ലിസ്റ്റുചെയ്യുന്നു.

.CURDIR ഡയറക്‌ടറിയിലേക്ക് ഒരു പാത bmake വധിക്കപ്പെട്ടു. വിവരണം കാണുക
കൂടുതൽ വിവരങ്ങൾക്ക് 'PWD'.

.ഉൾപ്പെടുത്തുക
ഈ Makefile ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഫയലിന്റെ ഡയറക്ടറി.

.ഇൻക്ലൂഡ് ഡിഫ്രോംഫിൽ
ഈ Makefile ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഫയലിന്റെ ഫയലിന്റെ പേര്.

ആ പേര് ഉണ്ടാക്കുക bmake ഉപയോഗിച്ച് നടപ്പിലാക്കി (argv[0]). അനുയോജ്യതയ്ക്കായി bmake
സജ്ജീകരിക്കുകയും ചെയ്യുന്നു .ഉണ്ടാക്കുക ഒരേ മൂല്യത്തോടെ. ഉപയോഗിക്കാൻ ഇഷ്ടപ്പെട്ട വേരിയബിൾ ആണ്
എൻവയോൺമെന്റ് വേരിയബിൾ ഉണ്ടാക്കുക, കാരണം ഇത് മറ്റ് പതിപ്പുകളുമായി കൂടുതൽ പൊരുത്തപ്പെടുന്നു
of bmake അതേ പേരിലുള്ള പ്രത്യേക ലക്ഷ്യവുമായി ആശയക്കുഴപ്പത്തിലാക്കാൻ കഴിയില്ല.

.MAKE.ഡിപെൻഡ്ഫിൽ
മേക്ക് ഫയലിന് പേരിടുന്നു (സ്ഥിരസ്ഥിതി'.ആശ്രയിക്കുക') അതിൽ നിന്നാണ് ജനറേറ്റഡ് ഡിപൻഡൻസികൾ
വായിക്കുക.

.MAKE.EXPAND_VARIABLES
യുടെ ഡിഫോൾട്ട് സ്വഭാവം നിയന്ത്രിക്കുന്ന ഒരു ബൂളിയൻ -V ഓപ്ഷൻ.

.നിർമ്മാണം.കയറ്റുമതി കയറ്റുമതി ചെയ്ത വേരിയബിളുകളുടെ ലിസ്റ്റ് bmake.

.തൊഴിൽ ഉണ്ടാക്കുക എന്ന വാദം -j ഓപ്ഷൻ.

.MAKE.JOB.PREFIX
If bmake കൂടെ പ്രവർത്തിക്കുന്നു j ഓരോ ടാർഗെറ്റിനുമുള്ള ഔട്ട്‌പുട്ട് ഒരു ടോക്കൺ ഉപയോഗിച്ച് പ്രിഫിക്‌സ് ചെയ്യുന്നു
'--- ടാർഗെറ്റ് ---' ഇതിലൂടെ നിയന്ത്രിക്കാൻ കഴിയുന്ന ആദ്യ ഭാഗം
.MAKE.JOB.PREFIX. എങ്കിൽ .MAKE.JOB.PREFIX ശൂന്യമാണ്, ടോക്കൺ പ്രിന്റ് ചെയ്തിട്ടില്ല.
ഉദാഹരണത്തിന്: .MAKE.JOB.PREFIX=${.newline}---${.MAKE:T}[${.MAKE.PID}]
ട്രാക്ക് ചെയ്യുന്നത് എളുപ്പമാക്കുന്ന '---[1234] ലക്ഷ്യം ---' പോലുള്ള ടോക്കണുകൾ നിർമ്മിക്കുക
സമാന്തരതയുടെ അളവ് കൈവരിക്കുന്നു.

MAKEFLAGS 'MAKEFLAGS' എന്ന പരിസ്ഥിതി വേരിയബിളിൽ എന്തും അടങ്ങിയിരിക്കാം
ന് വ്യക്തമാക്കിയിരിക്കുന്നു bmakeന്റെ കമാൻഡ് ലൈൻ. വ്യക്തമാക്കിയിട്ടുള്ള എന്തും bmakeയുടെ കമാൻഡ്
ലൈൻ 'MAKEFLAGS' വേരിയബിളിൽ ചേർത്തിരിക്കുന്നു, അത് പിന്നീട് അതിൽ പ്രവേശിക്കുന്നു
എല്ലാ പ്രോഗ്രാമുകൾക്കും പരിസ്ഥിതി bmake നിർവ്വഹിക്കുന്നു.

.MAKE.LEVEL ആവർത്തനത്തിന്റെ ആഴം bmake. പ്രാരംഭ ഉദാഹരണം bmake 0 ആയിരിക്കും, ഒപ്പം
ഒരു വർദ്ധിപ്പിച്ച മൂല്യം അടുത്തയാളെ കാണുന്നതിനായി പരിസ്ഥിതിയിലേക്ക് കൊണ്ടുവരുന്നു
തലമുറ. ഇത് പോലുള്ള പരിശോധനകൾ അനുവദിക്കുന്നു: .if ${.MAKE.LEVEL} == 0 പരിരക്ഷിക്കുന്നതിന്
പ്രാരംഭ ഘട്ടത്തിൽ മാത്രം വിലയിരുത്തേണ്ട കാര്യങ്ങൾ bmake.

.MAKE.MAKEFILE_PREFERENCE
മെയ്ക്ക് ഫയൽ പേരുകളുടെ ഓർഡർ ലിസ്റ്റ് (ഡിഫോൾട്ട്'makefile','Makefile') അത്
bmake അന്വേഷിക്കും.

.നിർമ്മാണം.നിർമ്മാണം
വായിച്ച മേക്ക് ഫയലുകളുടെ ലിസ്റ്റ് bmake, ഇത് ട്രാക്കിംഗിന് ഉപയോഗപ്രദമാണ്
ആശ്രിതത്വങ്ങൾ. ഓരോ മെയ്ക്ക് ഫയലും ഒരു തവണ മാത്രമേ രേഖപ്പെടുത്തിയിട്ടുള്ളൂ, എണ്ണം പരിഗണിക്കാതെ
വായിച്ച തവണ.

.MAKE.MODE എല്ലാ മേക്ക് ഫയലുകളും വായിച്ചതിനുശേഷം പ്രോസസ്സ് ചെയ്തു. മോഡിനെ ബാധിക്കാം bmake റൺസ്
ഇതിൽ നിരവധി കീവേഡുകൾ അടങ്ങിയിരിക്കാം:

കോംപാറ്റ് പോലെ -B, ഇടുന്നു bmake "compat" മോഡിലേക്ക്.

മെറ്റാ പുട്ട്സ് bmake "മെറ്റാ" മോഡിലേക്ക്, അവിടെ മെറ്റാ ഫയലുകൾ സൃഷ്ടിക്കപ്പെടുന്നു
കമാൻഡ് റൺ ക്യാപ്‌ചർ ചെയ്യാനുള്ള ഓരോ ടാർഗെറ്റും, ജനറേറ്റഡ് ഔട്ട്‌പുട്ടും
if ഫയൽമോൺ(4) സിസ്റ്റം കോളുകൾ ലഭ്യമാണ്
താൽപ്പര്യം bmake. ക്യാപ്‌ചർ ചെയ്‌ത ഔട്ട്‌പുട്ട് എപ്പോൾ വളരെ ഉപയോഗപ്രദമാകും
പിശകുകൾ കണ്ടുപിടിക്കുന്നു.

curdirOk= bf സാധാരണയായി bmake ' എന്നതിൽ .മെറ്റാ ഫയലുകൾ സൃഷ്ടിക്കില്ല.CURDIR'. ഈ
ക്രമീകരണം വഴി അസാധുവാക്കാൻ കഴിയും bf പ്രതിനിധീകരിക്കുന്ന ഒരു മൂല്യത്തിലേക്ക്
ശരിയാണ്.

അയക്കുക ഡീബഗ്ഗിംഗിനായി, പരിസ്ഥിതിയെ ഉൾപ്പെടുത്തുന്നത് ഉപയോഗപ്രദമാകും
.meta ഫയൽ.

വെർബോസ് "മെറ്റാ" മോഡിൽ ആണെങ്കിൽ, ടാർഗെറ്റ് നിർമ്മിക്കുന്നതിനെക്കുറിച്ചുള്ള ഒരു സൂചന പ്രിന്റ് ചെയ്യുക.
ബിൽഡ് നിശബ്ദമായി പ്രവർത്തിക്കുകയാണെങ്കിൽ ഇത് ഉപയോഗപ്രദമാണ്. ദി
സന്ദേശം അച്ചടിച്ച മൂല്യം: .MAKE.META.PREFIX.

അവഗണിക്കുക-cmd ചില മേക്ക് ഫയലുകൾക്ക് സ്ഥിരതയില്ലാത്ത കമാൻഡുകൾ ഉണ്ട്. ഈ
a എന്ന് നിർണ്ണയിക്കുന്നതിന് കീവേഡ് അവ അവഗണിക്കപ്പെടുന്നതിന് കാരണമാകുന്നു
"മെറ്റാ" മോഡിൽ ലക്ഷ്യം കാലഹരണപ്പെട്ടതാണ്. ഇതും കാണുക .NOMETA_CMP.

നിശബ്ദം= bf If bf ശരിയാണ്, ഒരു .meta ഫയൽ സൃഷ്‌ടിക്കുമ്പോൾ, ലക്ഷ്യം അടയാളപ്പെടുത്തുക
.സൈലന്റ്.

.MAKE.META.BAILIWICK
"മെറ്റാ" മോഡിൽ, ഡയറക്ടറികളുമായി പൊരുത്തപ്പെടുന്ന പ്രിഫിക്സുകളുടെ ഒരു ലിസ്റ്റ് നൽകുന്നു
നിയന്ത്രിച്ചത് bmake. പുറത്ത് സൃഷ്ടിച്ച ഒരു ഫയൽ ആണെങ്കിൽ .OBJDIR പക്ഷേ
ബെയ്‌ലിവിക്ക് നഷ്‌ടമായി, നിലവിലെ ലക്ഷ്യം പുറത്തായി കണക്കാക്കുന്നു-
തീയതി.

.MAKE.META.ക്രിയേറ്റഡ്
"മെറ്റാ" മോഡിൽ, ഈ വേരിയബിളിൽ അപ്ഡേറ്റ് ചെയ്ത എല്ലാ മെറ്റാ ഫയലുകളുടെയും ഒരു ലിസ്റ്റ് അടങ്ങിയിരിക്കുന്നു.
ശൂന്യമല്ലെങ്കിൽ, പ്രോസസ്സിംഗ് ട്രിഗർ ചെയ്യാൻ ഇത് ഉപയോഗിക്കാം .MAKE.META.FILES.

.MAKE.META.FILES
"മെറ്റാ" മോഡിൽ, ഈ വേരിയബിളിൽ ഉപയോഗിച്ച എല്ലാ മെറ്റാ ഫയലുകളുടെയും ഒരു ലിസ്റ്റ് അടങ്ങിയിരിക്കുന്നു
(അപ്‌ഡേറ്റ് ചെയ്‌തോ ഇല്ലയോ). മെറ്റാ ഫയലുകൾ പ്രോസസ്സ് ചെയ്യാൻ ഈ ലിസ്റ്റ് ഉപയോഗിക്കാം
ആശ്രിതത്വ വിവരം പുറത്തെടുക്കുക.

.MAKE.META.IGNORE_PATHS
അവഗണിക്കേണ്ട പാത്ത് പ്രിഫിക്സുകളുടെ ഒരു ലിസ്റ്റ് നൽകുന്നു; എന്തുകൊണ്ടെന്നാല്
ഉള്ളടക്കങ്ങൾ കാലത്തിനനുസരിച്ച് മാറുമെന്ന് പ്രതീക്ഷിക്കുന്നു. സ്ഥിരസ്ഥിതി പട്ടികയിൽ ഇവ ഉൾപ്പെടുന്നു: '/ dev
/തുടങ്ങിയവ / proc / tmp / var / റൺ / var / tmp'

.MAKE.META.PREFIX
"മെറ്റാ വെർബോസ്" എന്നതിൽ അപ്ഡേറ്റ് ചെയ്ത ഓരോ മെറ്റാ ഫയലിനും പ്രിന്റ് ചെയ്ത സന്ദേശം നിർവചിക്കുന്നു
മോഡ്. സ്ഥിര മൂല്യം ഇതാണ്:
കെട്ടിടം ${.TARGET:H:tA}/${.TARGET:T}

.മേക്ക്ഓവർറൈഡുകൾ ഈ വേരിയബിളിൽ നൽകിയിരിക്കുന്ന വേരിയബിളുകളുടെ പേരുകൾ രേഖപ്പെടുത്താൻ ഉപയോഗിക്കുന്നു
കമാൻഡ് ലൈൻ, അങ്ങനെ അവ 'MAKEFLAGS'-ന്റെ ഭാഗമായി കയറ്റുമതി ചെയ്യാം. ഈ
' എന്നതിന് ഒരു ശൂന്യമായ മൂല്യം നൽകി പെരുമാറ്റം പ്രവർത്തനരഹിതമാക്കാം.മേക്ക്ഓവർറൈഡുകൾ'
ഒരു മേക്ക് ഫയലിനുള്ളിൽ. ഒരു മേക്ക് ഫയലിൽ നിന്ന് അധിക വേരിയബിളുകൾ എക്‌സ്‌പോർട്ടുചെയ്യാനാകും
' എന്നതിലേക്ക് അവരുടെ പേരുകൾ കൂട്ടിച്ചേർക്കുന്നു.മേക്ക്ഓവർറൈഡുകൾ'. 'MAKEFLAGS' വീണ്ടും കയറ്റുമതി ചെയ്യുന്നു
എപ്പോഴെങ്കിലും '.മേക്ക്ഓവർറൈഡുകൾ' പരിഷ്കരിച്ചിരിക്കുന്നു.

.MAKE.PATH_FILEMON
If bmake ഉപയോഗിച്ചാണ് നിർമ്മിച്ചത് ഫയൽമോൺ(4) പിന്തുണ, ഇത് പാതയുടെ പാതയിലേക്ക് സജ്ജീകരിച്ചിരിക്കുന്നു
ഉപകരണ നോഡ്. ഈ പിന്തുണ പരീക്ഷിക്കാൻ മേക്ക് ഫയലുകളെ ഇത് അനുവദിക്കുന്നു.

.MAKE.PID എന്ന പ്രക്രിയ-ഐഡി bmake.

.MAKE.PPID പാരന്റ് പ്രോസസ്സ്-ഐഡി bmake.

.MAKE.SAVE_DOLLARS
മൂല്യം '$$' ചെയ്യുമ്പോൾ സംരക്ഷിക്കപ്പെടുന്ന കാലാവസ്ഥയെ നിയന്ത്രിക്കുന്ന ഒരു ബൂളൻ ആയിരിക്കണം
':=' അസൈൻമെന്റുകൾ. ബാക്ക്വേർഡ് കോംപാറ്റബിളിറ്റിക്ക് ഡിഫോൾട്ട് തെറ്റാണ്. സജ്ജമാക്കുക
മറ്റ് നിർമ്മാണങ്ങളുമായുള്ള അനുയോജ്യതയ്ക്ക് ശരിയാണ്. തെറ്റ് എന്ന് സജ്ജീകരിച്ചാൽ, '$$' ആയി മാറുന്നു
സാധാരണ മൂല്യനിർണ്ണയ നിയമങ്ങൾക്കനുസരിച്ച് '$'.

MAKE_PRINT_VAR_ON_ERROR
എപ്പോൾ bmake ഒരു പിശക് കാരണം നിർത്തുന്നു, അത് അതിന്റെ പേരും മൂല്യവും പ്രിന്റ് ചെയ്യുന്നു
'.CURDIR' എന്നതിൽ പേരിട്ടിരിക്കുന്ന ഏതെങ്കിലും വേരിയബിളുകളുടെ മൂല്യവും
'MAKE_PRINT_VAR_ON_ERROR'.

.പുതിയ വര ഈ വേരിയബിളിന് അതിന്റെ മൂല്യമായി ഒരു ന്യൂലൈൻ പ്രതീകം നൽകിയിരിക്കുന്നു. ഈ
ഉപയോഗിച്ച് വിപുലീകരണം അനുവദിക്കുന്നു :@ ആവർത്തനങ്ങൾക്കിടയിൽ ഒരു പുതിയ ലൈൻ ഇടാൻ മോഡിഫയർ
ഒരു സ്ഥലത്തേക്കാൾ ലൂപ്പിന്റെ. ഉദാഹരണത്തിന്, പ്രിന്റിംഗ്
'MAKE_PRINT_VAR_ON_ERROR' ആയി ചെയ്യാം
${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'${.newline}@}.

.OBJDIR ലക്ഷ്യങ്ങൾ നിർമ്മിച്ചിരിക്കുന്ന ഡയറക്ടറിയിലേക്കുള്ള ഒരു പാത. അതിന്റെ മൂല്യം
ശ്രമിച്ചുകൊണ്ട് നിശ്ചയിച്ചിരിക്കുന്നു chdir(2) ഇനിപ്പറയുന്ന ഡയറക്‌ടറികളിലേക്ക് ക്രമത്തിൽ ഒപ്പം
ആദ്യ പൊരുത്തം ഉപയോഗിച്ച്:

1. ${MAKEOBJDIRPREFIX}${.CURDIR}

('MAKEOBJDIRPREFIX' പരിസ്ഥിതിയിലോ കമാൻഡിലോ സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ മാത്രം
വരി.)

2. ${MAKEOBJDIR}

('MAKEOBJDIR' പരിസ്ഥിതിയിലോ കമാൻഡിലോ സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ മാത്രം
വരി.)

3. ${.CURDIR}/obj.${MACHINE}

4. ${.CURDIR}/obj

5. /usr/obj/${.CURDIR}

6. ${.CURDIR}

ഉപയോഗിക്കുന്നതിന് മുമ്പ് മൂല്യത്തിൽ വേരിയബിൾ വിപുലീകരണം നടത്തുന്നു, അതിനാൽ
തുടങ്ങിയ പദപ്രയോഗങ്ങൾ
${.CURDIR:S,^/ usr / src,/var/obj,}
ഉപയോഗിച്ചേക്കാം. 'MAKEOBJDIR'-ൽ ഇത് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്.

'.OBJDIR'പ്രത്യേക ടാർഗെറ്റ് വഴി മേക്ക്ഫയലിൽ മാറ്റം വരുത്താം'.OBJDIR'.
എല്ലാ സാഹചര്യങ്ങളിലും, bmake ഉദ്ദേശിക്കുന്ന chdir(2) നിർദ്ദിഷ്ട ഡയറക്‌ടറി നിലവിലുണ്ടെങ്കിൽ അതിലേക്ക്,
ഒപ്പം സജ്ജമാക്കുക'.OBJDIRഏതെങ്കിലും ടാർഗെറ്റുകൾ നടപ്പിലാക്കുന്നതിന് മുമ്പ് ആ ഡയറക്ടറിയിലേക്ക് ', 'PWD' എന്നിവ.

.പർസെദിർ നിലവിലെ ഡയറക്ടറിയിലേക്കുള്ള ഒരു പാതMakefile' പാഴ്‌സ് ചെയ്യുന്നു.

.പാഴ്സ്ഫിൽ നിലവിലുള്ളതിന്റെ അടിസ്ഥാനനാമം 'Makefile' പാഴ്‌സ് ചെയ്യുന്നു. ഈ വേരിയബിളും
'.പർസെദിർ'രണ്ടും സജ്ജീകരിക്കുമ്പോൾ മാത്രം'മേക്ക് ഫയലുകൾ' പാഴ്‌സ് ചെയ്യുന്നു. എങ്കിൽ
അവയുടെ നിലവിലെ മൂല്യങ്ങൾ നിലനിർത്താൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നു, അവ ഉപയോഗിച്ച് ഒരു വേരിയബിളിലേക്ക് അസൈൻ ചെയ്യുക
വിപുലീകരണത്തോടുകൂടിയ അസൈൻമെന്റ്: (':=').

.പാത്ത് ഡയറക്‌ടറികളുടെ പട്ടികയെ പ്രതിനിധീകരിക്കുന്ന ഒരു വേരിയബിൾ bmake അന്വേഷിക്കും
ഫയലുകൾക്കായി. ടാർഗെറ്റ് ഉപയോഗിച്ച് തിരയൽ ലിസ്റ്റ് അപ്ഡേറ്റ് ചെയ്യണം '.പാത്ത്'
വേരിയബിളിനേക്കാൾ.

നിലവിലെ ഡയറക്‌ടറിയിലേക്ക് PWD ഇതര പാത. bmake സാധാരണയായി സജ്ജീകരിക്കുന്നു'.CURDIR' വരെ
നൽകിയ കാനോനിക്കൽ പാത getcwd(3). എന്നിരുന്നാലും, പരിസ്ഥിതി വേരിയബിൾ ആണെങ്കിൽ
'PWD' സജ്ജീകരിച്ച് നിലവിലെ ഡയറക്ടറിയിലേക്ക് ഒരു പാത്ത് നൽകുന്നു bmake സെറ്റുകൾ
'.CURDIR' പകരം 'PWD' മൂല്യത്തിലേക്ക്. എങ്കിൽ ഈ സ്വഭാവം പ്രവർത്തനരഹിതമാണ്
'MAKEOBJDIRPREFIX' സജ്ജീകരിച്ചിരിക്കുന്നു അല്ലെങ്കിൽ 'MAKEOBJDIR'-ൽ ഒരു വേരിയബിൾ രൂപാന്തരം അടങ്ങിയിരിക്കുന്നു.
'PWD' എന്നതിന്റെ മൂല്യത്തിലേക്ക് സജ്ജീകരിച്ചിരിക്കുന്നു.OBJDIR' എല്ലാ പ്രോഗ്രാമുകൾക്കും bmake
നിർവ്വഹിക്കുന്നു.

.TARGETS കമാൻഡ് ലൈനിൽ വ്യക്തമായി വ്യക്തമാക്കിയിട്ടുള്ള ടാർഗെറ്റുകളുടെ ലിസ്റ്റ്, എന്തെങ്കിലും ഉണ്ടെങ്കിൽ.

VPATH കോളൻ-വേർതിരിക്കപ്പെട്ട (“:”) ഡയറക്‌ടറികളുടെ ലിസ്‌റ്റുകൾ bmake ഫയലുകൾക്കായി തിരയും.
പഴയ മെയ്ക്ക് പ്രോഗ്രാമുകളുമായി മാത്രം അനുയോജ്യതയ്ക്കായി വേരിയബിൾ പിന്തുണയ്ക്കുന്നു, ഉപയോഗിക്കുക
'.പാത്ത്' പകരം.

വേരിയബിൾ മോഡിഫയറുകൾ
വേരിയബിളിന്റെ ഓരോ വാക്കും തിരഞ്ഞെടുക്കുന്നതിനോ പരിഷ്ക്കരിക്കുന്നതിനോ വേരിയബിൾ വിപുലീകരണം പരിഷ്‌ക്കരിച്ചേക്കാം (ഇവിടെ a
"വാക്ക്" എന്നത് പ്രതീകങ്ങളുടെ വൈറ്റ്-സ്പെയ്സ് ഡിലിമിറ്റഡ് സീക്വൻസ് ആണ്). ഒരു വേരിയബിളിന്റെ പൊതുവായ ഫോർമാറ്റ്
വിപുലീകരണം ഇപ്രകാരമാണ്:

${variable[:modifier[:...]]}

ഓരോ മോഡിഫയറും ആരംഭിക്കുന്നത് കോളണിൽ നിന്നാണ്, അത് ഒരു ബാക്ക്‌സ്ലാഷ് ('\') ഉപയോഗിച്ച് രക്ഷപ്പെടാം.

ഒരു കൂട്ടം മോഡിഫയറുകൾ ഒരു വേരിയബിൾ വഴി ഇനിപ്പറയുന്ന രീതിയിൽ വ്യക്തമാക്കാം:

modifier_variable=modifier[:...]
${variable:${modifier_variable}[:...]}

ഈ സാഹചര്യത്തിൽ, മോഡിഫയർ_വേരിയബിളിലെ ആദ്യ മോഡിഫയർ കോളണിൽ ആരംഭിക്കുന്നില്ല
അത് റഫറൻസിങ് വേരിയബിളിൽ ദൃശ്യമാകണം. ലെ ഏതെങ്കിലും മോഡിഫയറുകൾ ഉണ്ടെങ്കിൽ
modifier_variable-ൽ ഒരു ഡോളർ ചിഹ്നം ('$') അടങ്ങിയിരിക്കുന്നു, നേരത്തെ ഒഴിവാക്കാൻ ഇവ ഇരട്ടിയാക്കണം
വിപുലീകരണം

പിന്തുണയ്ക്കുന്ന മോഡിഫയറുകൾ ഇവയാണ്:

:E വേരിയബിളിലെ ഓരോ വാക്കും അതിന്റെ പ്രത്യയം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു.

:H വേരിയബിളിലെ ഓരോ വാക്കും അവസാനത്തെ ഘടകം ഒഴികെ എല്ലാം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു.

:Mപാറ്റേൺ
പൊരുത്തപ്പെടുന്ന വാക്കുകൾ മാത്രം തിരഞ്ഞെടുക്കുക പാറ്റേൺ. സാധാരണ ഷെൽ വൈൽഡ്കാർഡ് പ്രതീകങ്ങൾ
('*', '?', '[]') എന്നിവ ഉപയോഗിക്കാം. വൈൽഡ്കാർഡ് പ്രതീകങ്ങൾ എ ഉപയോഗിച്ച് രക്ഷപ്പെട്ടേക്കാം
ബാക്ക്സ്ലാഷ് ('\'). മൂല്യങ്ങളെ വാക്കുകളായി വിഭജിക്കുന്ന രീതിയുടെ അനന്തരഫലമായി, പൊരുത്തപ്പെടുത്തുന്നു, ഒപ്പം
പിന്നെ ചേർന്നു, ഒരു നിർമ്മിതി പോലെ
${VAR:M*}
ഇന്റർ-വേഡ് സ്‌പെയ്‌സിംഗ് നോർമലൈസ് ചെയ്യും, എല്ലാ ലീഡിംഗും ട്രെയിലിംഗ് സ്‌പെയ്‌സും നീക്കം ചെയ്യും, കൂടാതെ
തുടർച്ചയായ ഒന്നിലധികം സ്‌പെയ്‌സുകളെ ഒറ്റ സ്‌പെയ്‌സുകളാക്കി മാറ്റുന്നു.

:Nപാറ്റേൺ
ഇത് സമാനമാണ് ':M', എന്നാൽ പൊരുത്തപ്പെടാത്ത എല്ലാ വാക്കുകളും തിരഞ്ഞെടുക്കുന്നു പാറ്റേൺ.

:O എല്ലാ വാക്കുകളും വേരിയബിളിൽ അക്ഷരമാലാക്രമത്തിൽ ക്രമീകരിക്കുക. വാക്കുകൾ വിപരീത ക്രമത്തിൽ അടുക്കാൻ, ഉപയോഗിക്കുക
':O:[-1..1]' മോഡിഫയറുകളുടെ സംയോജനം.

: കാള വേരിയബിളിൽ വാക്കുകൾ ക്രമരഹിതമാക്കുക. ഓരോ തവണയും നിങ്ങൾ പരാമർശിക്കുമ്പോൾ ഫലങ്ങൾ വ്യത്യസ്തമായിരിക്കും
പരിഷ്കരിച്ച വേരിയബിളിലേക്ക്; വിപുലീകരണത്തോടൊപ്പം അസൈൻമെന്റ് ഉപയോഗിക്കുക (':=') അത്തരം തടയാൻ
പെരുമാറ്റം. ഉദാഹരണത്തിന്,

LIST= uno due tre quattro
RANDOM_LIST= ${LIST:Ox}
STATIC_RANDOM_LIST:= ${LIST:Ox}

എല്ലാം:
@echo "${RANDOM_LIST}"
@echo "${RANDOM_LIST}"
@echo "${STATIC_RANDOM_LIST}"
@echo "${STATIC_RANDOM_LIST}"
ഇതുപോലുള്ള ഔട്ട്പുട്ട് ഉണ്ടാക്കാം:

quattro due tre uno
ട്രെ ഡ്യൂ ക്വാട്രോ യുനോ
കാരണം യുനോ ക്വാട്രോ ട്രെ
കാരണം യുനോ ക്വാട്രോ ട്രെ

:Q വേരിയബിളിലെ എല്ലാ ഷെൽ മെറ്റാ പ്രതീകങ്ങളും ഉദ്ധരിക്കുന്നു, അതുവഴി അത് സുരക്ഷിതമായി കൈമാറാനാകും
എന്ന ആവർത്തന ക്ഷണങ്ങളിലൂടെ bmake.

:R വേരിയബിളിലെ ഓരോ വാക്കും അതിന്റെ പ്രത്യയം ഒഴികെ എല്ലാം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു.

:ജിഎംടൈം
മൂല്യം ഒരു ഫോർമാറ്റ് സ്ട്രിംഗ് ആണ് strftime(3), കറന്റ് ഉപയോഗിച്ച് gmtime(3).

:ഹാഷ്
മൂല്യത്തിന്റെ 32ബിറ്റ് ഹാഷ് കണക്കാക്കി അതിനെ ഹെക്‌സ് അക്കങ്ങളായി എൻകോഡ് ചെയ്യുക.

:പ്രാദേശിക സമയം
മൂല്യം ഒരു ഫോർമാറ്റ് സ്ട്രിംഗ് ആണ് strftime(3), കറന്റ് ഉപയോഗിച്ച് പ്രാദേശിക സമയം(3).

:tA ഉപയോഗിച്ച് വേരിയബിളിനെ ഒരു കേവല പാതയിലേക്ക് പരിവർത്തനം ചെയ്യാനുള്ള ശ്രമം യഥാർത്ഥ പാത(3), അത് പരാജയപ്പെടുകയാണെങ്കിൽ,
മൂല്യം മാറ്റമില്ല.

:tl വേരിയബിളിനെ ചെറിയ അക്ഷരങ്ങളാക്കി മാറ്റുന്നു.

:ടി.എസ്c
വേരിയബിളിലെ വാക്കുകൾ സാധാരണയായി വിപുലീകരണത്തിൽ ഒരു ഇടം കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു. ഈ മോഡിഫയർ
പ്രതീകത്തിലേക്ക് സെപ്പറേറ്റർ സജ്ജമാക്കുന്നു c. എങ്കിൽ c ഒഴിവാക്കിയിരിക്കുന്നു, പിന്നെ സെപ്പറേറ്റർ ഉപയോഗിക്കില്ല.
സാധാരണ രക്ഷപ്പെടലുകൾ (ഒക്ടൽ ന്യൂമറിക് കോഡുകൾ ഉൾപ്പെടെ), പ്രതീക്ഷിച്ചതുപോലെ പ്രവർത്തിക്കുന്നു.

:tu വേരിയബിളിനെ വലിയക്ഷരങ്ങളാക്കി മാറ്റുന്നു.

:tW മൂല്യത്തെ ഒരൊറ്റ വാക്കായി കണക്കാക്കാൻ കാരണമാകുന്നു (ഒരുപക്ഷേ ഉൾച്ചേർത്ത വെള്ള അടങ്ങിയിരിക്കാം
സ്ഥലം). ഇതും കാണുക ':[*]'.

:tw വൈറ്റ് സ്പേസ് കൊണ്ട് വേർതിരിച്ച വാക്കുകളുടെ ഒരു ശ്രേണിയായി മൂല്യത്തെ കണക്കാക്കുന്നു. കാണുക
also ':[@]'.

:S/പഴയ_സ്ട്രിംഗ്/പുതിയ_സ്ട്രിംഗ്/[1gW]
ആദ്യ സംഭവം പരിഷ്കരിക്കുക പഴയ_സ്ട്രിംഗ് വേരിയബിളിന്റെ മൂല്യത്തിൽ, അത് മാറ്റിസ്ഥാപിക്കുന്നു
പുതിയ_സ്ട്രിംഗ്. പാറ്റേണിന്റെ അവസാന സ്ലാഷിൽ ഒരു 'g' ചേർത്തിട്ടുണ്ടെങ്കിൽ, എല്ലാ സംഭവങ്ങളും
ഓരോ വാക്കും മാറ്റിസ്ഥാപിക്കുന്നു. പാറ്റേണിന്റെ അവസാന സ്ലാഷിൽ ഒരു '1' ചേർത്തിട്ടുണ്ടെങ്കിൽ, മാത്രം
ആദ്യ വാക്ക് ബാധിക്കുന്നു. പാറ്റേണിന്റെ അവസാന സ്ലാഷിൽ ഒരു 'W' ചേർത്തിട്ടുണ്ടെങ്കിൽ,
തുടർന്ന് മൂല്യം ഒരൊറ്റ പദമായി കണക്കാക്കുന്നു (ഒരുപക്ഷേ ഉൾച്ചേർത്ത വൈറ്റ് സ്പേസ് അടങ്ങിയിരിക്കാം).
If പഴയ_സ്ട്രിംഗ് ഒരു കാരറ്റ് ഉപയോഗിച്ച് ആരംഭിക്കുന്നു ('^'), പഴയ_സ്ട്രിംഗ് തുടക്കത്തിൽ നങ്കൂരമിട്ടിരിക്കുന്നു
ഓരോ വാക്കും. എങ്കിൽ പഴയ_സ്ട്രിംഗ് ഒരു ഡോളർ ചിഹ്നത്തിൽ ('$') അവസാനിക്കുന്നു, അതിന്റെ അവസാനം നങ്കൂരമിട്ടിരിക്കുന്നു
ഓരോ വാക്കും. ഉള്ളിൽ പുതിയ_സ്ട്രിംഗ്, ഒരു ആമ്പർസാൻഡ് ('&') മാറ്റിസ്ഥാപിക്കുന്നു പഴയ_സ്ട്രിംഗ് (കൂടാതെ
ഏതെങ്കിലും '^' അല്ലെങ്കിൽ '$'). യുടെ ഭാഗങ്ങൾക്കായി ഏത് പ്രതീകവും ഒരു ഡിലിമിറ്ററായി ഉപയോഗിക്കാം
മോഡിഫയർ സ്ട്രിംഗ്. ആങ്കറിംഗ്, ആംപേഴ്സൻഡ്, ഡീലിമിറ്റർ പ്രതീകങ്ങൾ എന്നിവ ഉപയോഗിച്ച് രക്ഷപ്പെടാം
ഒരു ബാക്ക്സ്ലാഷ് ('\').

രണ്ടിനുള്ളിലും സാധാരണ രീതിയിൽ വേരിയബിൾ വികാസം സംഭവിക്കുന്നു പഴയ_സ്ട്രിംഗ് ഒപ്പം പുതിയ_സ്ട്രിംഗ്
ഒരു ഡോളറിന്റെ വികാസം തടയാൻ ഒരു ബാക്ക്സ്ലാഷ് ഉപയോഗിക്കുന്നു എന്ന ഒറ്റയൊഴികെ
അടയാളം ('$'), സാധാരണ പോലെ ഒരു മുൻ ഡോളർ ചിഹ്നമല്ല.

:C/പാറ്റേൺ/മാറ്റിസ്ഥാപിക്കുക/[1gW]
ദി :C മോഡിഫയർ പോലെയാണ് :S പഴയതും പുതിയതുമായ സ്ട്രിംഗുകൾ ഒഴികെയുള്ള മോഡിഫയർ,
ലളിതമായ സ്ട്രിംഗുകൾ എന്നതിനുപകരം, ഒരു വിപുലീകൃത പതിവ് പദപ്രയോഗമാണ് (കാണുക regex(3))
സ്ട്രിംഗ് പാറ്റേൺ ഒരു ed(1)-ശൈലി സ്ട്രിംഗ് മാറ്റിസ്ഥാപിക്കുക. സാധാരണയായി, ആദ്യ സംഭവം
പാറ്റേണിന്റെ പാറ്റേൺ മൂല്യത്തിന്റെ ഓരോ വാക്കിലും പകരം വയ്ക്കുന്നു മാറ്റിസ്ഥാപിക്കുക. ദി
'1' മോഡിഫയർ പകരം വയ്ക്കുന്നത് പരമാവധി ഒരു വാക്കിന് ബാധകമാക്കുന്നു; 'g' മോഡിഫയർ
സെർച്ച് പാറ്റേണിന്റെ പല സന്ദർഭങ്ങളിലും പകരം വയ്ക്കൽ ബാധകമാക്കുന്നു പാറ്റേൺ as
അത് കാണപ്പെടുന്ന വാക്കിലോ വാക്കുകളിലോ സംഭവിക്കുക; 'W' മോഡിഫയർ മൂല്യത്തിന് കാരണമാകുന്നു
ഒരൊറ്റ വാക്കായി കണക്കാക്കുന്നു (ഒരുപക്ഷേ ഉൾച്ചേർത്ത വൈറ്റ് സ്പേസ് അടങ്ങിയിരിക്കാം). '1' എന്നതും ശ്രദ്ധിക്കുക
'g' orthogonal ആണ്; ഒന്നിലധികം വാക്കുകൾക്ക് സാധ്യതയുണ്ടോ എന്ന് ആദ്യത്തേത് വ്യക്തമാക്കുന്നു
ഓരോന്നിലും ഒന്നിലധികം പകരക്കാർ ഉണ്ടാകാൻ സാധ്യതയുണ്ടോ എന്നതിനെ ബാധിച്ചു
ബാധിച്ച വാക്ക്.

പോലെ :S മോഡിഫയർ, ദി പാറ്റേൺ ഒപ്പം മാറ്റിസ്ഥാപിക്കുക വേരിയബിൾ വികാസത്തിന് വിധേയമാണ്
പതിവ് പദപ്രയോഗങ്ങളായി പാഴ്‌സ് ചെയ്യുന്നതിന് മുമ്പ്.

:T വേരിയബിളിലെ ഓരോ വാക്കും അതിന്റെ അവസാന ഘടകം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു.

:u അടുത്തുള്ള ഡ്യൂപ്ലിക്കേറ്റ് വാക്കുകൾ നീക്കം ചെയ്യുക (ഇത് പോലെ യൂണിക്(1)).

:?true_string:തെറ്റായ_സ്ട്രിംഗ്
വേരിയബിൾ നാമം (അതിന്റെ മൂല്യമല്ല) എങ്കിൽ, ഒരു .if സോപാധിക എക്സ്പ്രഷൻ ആയി പാഴ്‌സ് ചെയ്യുമ്പോൾ,
true ആയി വിലയിരുത്തുന്നു, അതിന്റെ മൂല്യമായി മടങ്ങുക true_string, അല്ലാത്തപക്ഷം തിരികെ നൽകുക
തെറ്റായ_സ്ട്രിംഗ്. പദപ്രയോഗമായി വേരിയബിൾ നാമം ഉപയോഗിക്കുന്നതിനാൽ, :? ഒന്നാമനായിരിക്കണം
വേരിയബിളിന്റെ പേരിനു ശേഷമുള്ള മോഡിഫയർ - തീർച്ചയായും അതിൽ സാധാരണയായി അടങ്ങിയിരിക്കും
വേരിയബിൾ വിപുലീകരണങ്ങൾ. പോലുള്ള പദപ്രയോഗങ്ങൾ ഉപയോഗിക്കാൻ ശ്രമിക്കുന്നതാണ് ഒരു സാധാരണ പിശക്
${NUMBERS:M42:?match:no}
യഥാർത്ഥത്തിൽ നിർവചിച്ചിരിക്കുന്ന (NUMBERS) ടെസ്റ്റുകൾ, "42" എന്നതിന് നിങ്ങൾക്ക് ആവശ്യമുള്ള ഏതെങ്കിലും വാക്കുകൾ പൊരുത്തപ്പെടുന്നുണ്ടോ എന്ന് നിർണ്ണയിക്കാൻ
ഇതുപോലുള്ള എന്തെങ്കിലും ഉപയോഗിക്കുക:
${"${NUMBERS:M42}" != "":?match:no}.

:old_string=new_string
ഇതാണ് AT&T സിസ്റ്റം V UNIX സ്റ്റൈൽ വേരിയബിൾ സബ്സ്റ്റിറ്റ്യൂഷൻ. അത് അവസാനത്തേതായിരിക്കണം
മോഡിഫയർ വ്യക്തമാക്കി. എങ്കിൽ പഴയ_സ്ട്രിംഗ് or പുതിയ_സ്ട്രിംഗ് പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ അടങ്ങിയിരിക്കരുത്
പ്രതീകം % അപ്പോൾ അവ ഓരോ വാക്കിന്റെയും അവസാനത്തിൽ നങ്കൂരമിട്ടിരിക്കുന്നു എന്ന് അനുമാനിക്കപ്പെടുന്നു, അതിനാൽ മാത്രം
സഫിക്സുകളോ മുഴുവൻ വാക്കുകളോ മാറ്റിസ്ഥാപിക്കാം. അല്ലെങ്കിൽ % എന്ന ഉപസ്‌ട്രിംഗ് ആണ് പഴയ_സ്ട്രിംഗ്
പകരം വയ്ക്കണം പുതിയ_സ്ട്രിംഗ്.

രണ്ടിനുള്ളിലും സാധാരണ രീതിയിൽ വേരിയബിൾ വികാസം സംഭവിക്കുന്നു പഴയ_സ്ട്രിംഗ് ഒപ്പം പുതിയ_സ്ട്രിംഗ്
ഒരു ഡോളറിന്റെ വികാസം തടയാൻ ഒരു ബാക്ക്സ്ലാഷ് ഉപയോഗിക്കുന്നു എന്ന ഒറ്റയൊഴികെ
അടയാളം ('$'), സാധാരണ പോലെ ഒരു മുൻ ഡോളർ ചിഹ്നമല്ല.

:@താൽക്കാലികം@സ്ട്രിംഗ്@
OSF ഡെവലപ്‌മെന്റ് എൻവയോൺമെന്റ് (ODE) നിർമ്മിക്കുന്ന ലൂപ്പ് എക്സ്പാൻഷൻ മെക്കാനിസമാണിത്.
വ്യത്യസ്തമായി .വേണ്ടി റഫറൻസ് സമയത്ത് ലൂപ്പുകളുടെ വികാസം സംഭവിക്കുന്നു. അസൈൻ ചെയ്യുക താൽക്കാലികം ഓരോ വാക്കിലേക്കും
വേരിയബിളിൽ, വിലയിരുത്തുക സ്ട്രിംഗ്. ODE കൺവെൻഷൻ അതാണ് താൽക്കാലികം ആരംഭിക്കുകയും വേണം
ഒരു കാലഘട്ടത്തോടെ അവസാനിക്കുന്നു. ഉദാഹരണത്തിന്.
${LINKS:@.LINK.@${LN} ${TARGET} ${.LINK.}@}

എന്നിരുന്നാലും, ഒരു പ്രതീക വേരിയബിൾ പലപ്പോഴും കൂടുതൽ വായിക്കാവുന്നതാണ്:
${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'${.newline}@}

:Uന്യൂവൽ
വേരിയബിൾ നിർവചിച്ചിട്ടില്ലെങ്കിൽ ന്യൂവൽ മൂല്യമാണ്. വേരിയബിൾ നിർവചിച്ചിട്ടുണ്ടെങ്കിൽ, the
നിലവിലുള്ള മൂല്യം തിരികെ നൽകുന്നു. ഇത് മറ്റൊരു ODE മേക്ക് സവിശേഷതയാണ്. ഇത് സജ്ജീകരിക്കാൻ സൗകര്യപ്രദമാണ്
ഓരോ ലക്ഷ്യത്തിനും CFLAGS ഉദാഹരണത്തിന്:
${_${.TARGET:T}_CFLAGS:U${DEF_CFLAGS}}
വേരിയബിൾ നിർവചിച്ചിട്ടില്ലെങ്കിൽ മാത്രം ഒരു മൂല്യം ആവശ്യമാണെങ്കിൽ, ഉപയോഗിക്കുക:
${VAR:D:Unewval}

:Dന്യൂവൽ
വേരിയബിൾ നിർവചിച്ചിട്ടുണ്ടെങ്കിൽ ന്യൂവൽ മൂല്യമാണ്.

:L വേരിയബിളിന്റെ പേര് മൂല്യമാണ്.

:P വേരിയബിളിന്റെ അതേ പേരുള്ള നോഡിന്റെ പാതയാണ് മൂല്യം. അങ്ങനെ ഇല്ലെങ്കിൽ
നോഡ് നിലവിലുണ്ട് അല്ലെങ്കിൽ അതിന്റെ പാത ശൂന്യമാണ്, തുടർന്ന് വേരിയബിളിന്റെ പേര് ഉപയോഗിക്കുന്നു. ക്രമത്തിൽ
ഈ മോഡിഫയർ പ്രവർത്തിക്കാൻ, പേര് (നോഡ്) കുറഞ്ഞത് ഒരു rhs-ൽ പ്രത്യക്ഷപ്പെട്ടിരിക്കണം
ആശ്രിതത്വം.

:!cmd!
ഓട്ടത്തിന്റെ ഔട്ട്പുട്ട് cmd മൂല്യമാണ്.

:sh വേരിയബിൾ ശൂന്യമല്ലെങ്കിൽ അത് ഒരു കമാൻഡായി പ്രവർത്തിപ്പിക്കുകയും ഔട്ട്പുട്ട് പുതിയതായി മാറുകയും ചെയ്യുന്നു
മൂല്യം.

::=str
വേരിയബിളിന് മൂല്യം നൽകിയിരിക്കുന്നു str പകരത്തിനു ശേഷം. ഈ മോഡിഫയറും അതിന്റെ
എപ്പോൾ വേരിയബിൾ സജ്ജീകരിക്കണം എന്നതുപോലുള്ള അവ്യക്തമായ സാഹചര്യങ്ങളിൽ വ്യതിയാനങ്ങൾ ഉപയോഗപ്രദമാണ്
ഷെൽ കമാൻഡുകൾ പാഴ്‌സ് ചെയ്യുന്നു. ഈ അസൈൻമെന്റ് മോഡിഫയറുകൾ എല്ലായ്‌പ്പോഴും ഒന്നുമില്ലാതെ വികസിക്കുന്നു,
അതിനാൽ ഒരു റൂൾ ലൈനിൽ സ്വയം പ്രത്യക്ഷപ്പെടുകയാണെങ്കിൽ സൂക്ഷിക്കാൻ എന്തെങ്കിലും മുൻ‌കൂട്ടി നൽകണം
bmake സന്തോഷം.

'::' AT&T സിസ്റ്റം V UNIX ശൈലിയുമായുള്ള തെറ്റായ പൊരുത്തങ്ങൾ ഒഴിവാക്കാൻ സഹായിക്കുന്നു := മോഡിഫയർ കൂടാതെ
പകരം എപ്പോഴും സംഭവിക്കുന്നതിനാൽ ::= ഫോം അവ്യക്തമായി ഉചിതമാണ്.

::?=str
വേണ്ടി ::= വേരിയബിളിന് ഇതിനകം ഒരു മൂല്യം ഇല്ലെങ്കിൽ മാത്രം.

::+=str
കൂട്ടിച്ചേർക്കുക str വേരിയബിളിലേക്ക്.

::!=cmd
യുടെ ഔട്ട്പുട്ട് അസൈൻ ചെയ്യുക cmd വേരിയബിളിലേക്ക്.

:[ശ്രേണി]
മൂല്യത്തിൽ നിന്ന് ഒന്നോ അതിലധികമോ വാക്കുകൾ തിരഞ്ഞെടുക്കുന്നു, അല്ലെങ്കിൽ ഇതുമായി ബന്ധപ്പെട്ട മറ്റ് പ്രവർത്തനങ്ങൾ ചെയ്യുന്നു
മൂല്യത്തെ വാക്കുകളായി വിഭജിക്കുന്ന രീതി.

സാധാരണഗതിയിൽ, ഒരു മൂല്യത്തെ വൈറ്റ് സ്പേസ് കൊണ്ട് വേർതിരിച്ച പദങ്ങളുടെ ഒരു ശ്രേണിയായി കണക്കാക്കുന്നു. ചിലത്
മോഡിഫയറുകൾ ഈ സ്വഭാവത്തെ അടിച്ചമർത്തുന്നു, ഇത് ഒരു മൂല്യത്തെ ഒറ്റവാക്കായി കണക്കാക്കുന്നു
(ഒരുപക്ഷേ ഉൾച്ചേർത്ത വൈറ്റ് സ്പേസ് അടങ്ങിയിരിക്കാം). ഒരു ശൂന്യമായ മൂല്യം, അല്ലെങ്കിൽ അടങ്ങുന്ന ഒരു മൂല്യം
പൂർണ്ണമായും വൈറ്റ്-സ്പേസ്, ഒരൊറ്റ വാക്കായി കണക്കാക്കുന്നു. ഉദ്ദേശ്യങ്ങൾക്കായി ':[]'
മോഡിഫയർ, പോസിറ്റീവ് പൂർണ്ണസംഖ്യകൾ ഉപയോഗിച്ച് വാക്കുകൾ രണ്ട് ഫോർവേഡും സൂചികയിലാക്കുന്നു (ഇവിടെ സൂചിക 1
ആദ്യ പദത്തെ പ്രതിനിധീകരിക്കുന്നു), നെഗറ്റീവ് പൂർണ്ണസംഖ്യകൾ ഉപയോഗിച്ച് പിന്നിലേക്ക് (ഇവിടെ സൂചിക -1
അവസാന വാക്ക് പ്രതിനിധീകരിക്കുന്നു).

ദി ശ്രേണി വേരിയബിൾ വികാസത്തിന് വിധേയമാണ്, വിപുലീകരിച്ച ഫലം പിന്നീട്
ഇനിപ്പറയുന്ന രീതിയിൽ വ്യാഖ്യാനിക്കുന്നു:

സൂചിക മൂല്യത്തിൽ നിന്ന് ഒരൊറ്റ വാക്ക് തിരഞ്ഞെടുക്കുന്നു.

തുടക്കം..അവസാനിക്കുന്നു
എന്നതിൽ നിന്ന് എല്ലാ വാക്കുകളും തിരഞ്ഞെടുക്കുന്നു തുടക്കം ലേക്ക് അവസാനിക്കുന്നു, ഉൾപ്പെടെ. ഉദാഹരണത്തിന്, ':[2..-1]' തിരഞ്ഞെടുക്കുന്നു
രണ്ടാമത്തെ വാക്ക് മുതൽ അവസാന വാക്ക് വരെയുള്ള എല്ലാ വാക്കുകളും. എങ്കിൽ തുടക്കം ഇതിനേക്കാൾ വലുതാണ് അവസാനിക്കുന്നു,
അപ്പോൾ വാക്കുകൾ വിപരീത ക്രമത്തിൽ ഔട്ട്പുട്ട് ചെയ്യുന്നു. ഉദാഹരണത്തിന്, ':[-1..1]' എല്ലാം തിരഞ്ഞെടുക്കുന്നു
അവസാനം മുതൽ ആദ്യം വരെയുള്ള വാക്കുകൾ.

* മൂല്യത്തെ ഒരൊറ്റ വാക്കായി കണക്കാക്കാൻ തുടർന്നുള്ള മോഡിഫയറുകൾ കാരണമാകുന്നു (ഒരുപക്ഷേ
ഉൾച്ചേർത്ത വൈറ്റ് സ്പേസ് അടങ്ങിയിരിക്കുന്നു). ബോണിലെ "$*" എന്നതിന്റെ ഫലത്തിന് സമാനമാണ്
ഷെൽ.

0 അർത്ഥമാക്കുന്നത് 'എന്നതിന് സമാനമാണ്:[*]'.

@ മൂല്യത്തെ വേർതിരിച്ച പദങ്ങളുടെ ഒരു ശ്രേണിയായി കണക്കാക്കാൻ തുടർന്നുള്ള മോഡിഫയറുകൾ കാരണമാകുന്നു
വൈറ്റ് സ്പേസ് വഴി. ബോൺ ഷെല്ലിലെ "$@" എന്നതിന്റെ ഫലത്തിന് സമാനമാണ്.

# മൂല്യത്തിലെ വാക്കുകളുടെ എണ്ണം നൽകുന്നു.

ഉൾപ്പെടുന്നു പ്രസ്താവനകൾ, നിബന്ധനകൾ ഒപ്പം വേണ്ടി ലൂപ്പുകൾ


മേക്ക്ഫിൽ ഉൾപ്പെടുത്തൽ, സോപാധിക ഘടനകൾ, സി പ്രോഗ്രാമിംഗിനെ അനുസ്മരിപ്പിക്കുന്ന ലൂപ്പുകൾ എന്നിവയ്ക്കായി
ഭാഷയിൽ നൽകിയിരിക്കുന്നു bmake. തുടങ്ങിയ എല്ലാ ഘടനകളും ഒരു ലൈൻ ഉപയോഗിച്ച് തിരിച്ചറിയുന്നു
ഒരൊറ്റ ഡോട്ട് ('.') പ്രതീകം. ഫയലുകൾ ഒന്നിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട് .ഉൾപ്പെടുന്നു ⟨ ⟨ ഡൗൺലോഡ്ഫയല്⟩ അഥവാ .ഉൾപ്പെടുന്നു
"ഫയല്". ആംഗിൾ ബ്രാക്കറ്റുകൾ അല്ലെങ്കിൽ ഇരട്ട ഉദ്ധരണികൾക്കിടയിലുള്ള വേരിയബിളുകൾ ഫയൽ രൂപപ്പെടുത്തുന്നതിന് വിപുലീകരിക്കുന്നു
പേര്. ആംഗിൾ ബ്രാക്കറ്റുകൾ ഉപയോഗിക്കുകയാണെങ്കിൽ, ഉൾപ്പെടുത്തിയിരിക്കുന്ന മേക്ക് ഫയൽ സിസ്റ്റത്തിലായിരിക്കുമെന്ന് പ്രതീക്ഷിക്കുന്നു
ഫയൽ ഡയറക്ടറി. ഇരട്ട ഉദ്ധരണികൾ ഉപയോഗിക്കുകയാണെങ്കിൽ, makefile-ന്റെ ഡയറക്ടറിയും മറ്റേതെങ്കിലും ഉൾപ്പെടെ
ഉപയോഗിച്ച് വ്യക്തമാക്കിയ ഡയറക്ടറികൾ -I സിസ്റ്റം makefile ഡയറക്ടറിക്ക് മുമ്പായി ഓപ്ഷൻ തിരയുന്നു.
യുടെ മറ്റ് പതിപ്പുകളുമായുള്ള അനുയോജ്യതയ്ക്കായി bmake 'ഫയൽ ഉൾപ്പെടുത്തുക...' എന്നതും സ്വീകരിക്കുന്നു.

ഉൾപ്പെടുത്തിയ പ്രസ്താവന ഇങ്ങനെ എഴുതിയിട്ടുണ്ടെങ്കിൽ .-ഉൾപ്പെടുന്നു അല്ലെങ്കിൽ പോലെ .ഉൾപ്പെടുത്തുക തുടർന്ന് കണ്ടെത്തുന്നതിൽ പിശകുകൾ കൂടാതെ/അല്ലെങ്കിൽ
തുറക്കുന്നത് ഉൾപ്പെടുന്ന ഫയലുകൾ അവഗണിക്കപ്പെടുന്നു.

ഉൾപ്പെടുത്തിയ പ്രസ്താവന ഇങ്ങനെ എഴുതിയിട്ടുണ്ടെങ്കിൽ .ഉൾപ്പെടുത്തുക പിശകുകൾ കണ്ടെത്തുന്നതിലും കൂടാതെ/അല്ലെങ്കിൽ തുറക്കുന്നതിലും മാത്രമല്ല
അവഗണിച്ച ഫയലുകൾ ഉൾപ്പെടുത്തുക, എന്നാൽ ഉൾപ്പെടുത്തിയ ഫയലിനുള്ളിലെ പഴകിയ ഡിപൻഡൻസികൾ അവഗണിക്കപ്പെടും
പോലെ .MAKE.ഡിപെൻഡ്ഫിൽ.

സോപാധിക പദപ്രയോഗങ്ങൾക്ക് മുമ്പായി ഒരു വരിയുടെ ആദ്യ പ്രതീകമായി ഒരൊറ്റ ഡോട്ട് ഉണ്ടായിരിക്കും.
സാധ്യമായ വ്യവസ്ഥകൾ ഇനിപ്പറയുന്നവയാണ്:

.പിശക് സന്ദേശം
മെയ്ക്ക് ഫയലിന്റെ പേരും ലൈൻ നമ്പറും സഹിതം സന്ദേശം പ്രിന്റ് ചെയ്യുന്നു
bmake പുറത്തുകടക്കും.

.കയറ്റുമതി വേരിയബിൾ ...
നിർദ്ദിഷ്ട ആഗോള വേരിയബിൾ കയറ്റുമതി ചെയ്യുക. വേരിയബിൾ ലിസ്റ്റ് നൽകിയിട്ടില്ലെങ്കിൽ, എല്ലാ ഗ്ലോബലും
ആന്തരിക വേരിയബിളുകൾ ഒഴികെ കയറ്റുമതി ചെയ്യുന്നു ('.' ൽ ആരംഭിക്കുന്നവ). ഇതല്ല
ബാധിച്ചത് -X പതാക, അതിനാൽ ജാഗ്രതയോടെ ഉപയോഗിക്കണം. അനുയോജ്യതയ്ക്കായി
മറ്റ് bmake 'കയറ്റുമതി വേരിയബിൾ=മൂല്യം' എന്ന പ്രോഗ്രാമുകളും സ്വീകരിക്കുന്നു.

ഒരു വേരിയബിൾ നാമം ചേർക്കുന്നു .നിർമ്മാണം.കയറ്റുമതി ഒരു വേരിയബിൾ കയറ്റുമതി ചെയ്യുന്നതിന് തുല്യമാണ്.

.export-env വേരിയബിൾ ...
വേരിയബിൾ ചേർത്തിട്ടില്ല എന്നതൊഴിച്ചാൽ '.എക്‌സ്‌പോർട്ട്' എന്നതിന് സമാനമാണ് .നിർമ്മാണം.കയറ്റുമതി.
ഉപയോഗിച്ചതിൽ നിന്ന് വ്യത്യസ്തമായ ഒരു മൂല്യം പരിസ്ഥിതിയിലേക്ക് കയറ്റുമതി ചെയ്യാൻ ഇത് അനുവദിക്കുന്നു
by bmake ആന്തരികമായി.

.കയറ്റുമതി-അക്ഷരാർത്ഥം വേരിയബിൾ ...
മൂല്യത്തിലെ വേരിയബിളുകൾ വികസിപ്പിച്ചിട്ടില്ല എന്നതൊഴിച്ചാൽ, '.export-env' പോലെ തന്നെ.

.info സന്ദേശം
മെയ്ക്ക് ഫയലിന്റെ പേരും ലൈൻ നമ്പറും സഹിതമാണ് സന്ദേശം പ്രിന്റ് ചെയ്തിരിക്കുന്നത്.

.undef വേരിയബിൾ
നിർദ്ദിഷ്‌ട ആഗോള വേരിയബിളിനെ അൺ-നിർവ്വചിക്കുക. ഗ്ലോബൽ വേരിയബിളുകൾ മാത്രം നിർവചിക്കാതെയിരിക്കാം.

.അൺ കയറ്റുമതി വേരിയബിൾ ...
'.കയറ്റുമതി'യുടെ വിപരീതം. വ്യക്തമാക്കിയ ആഗോള വേരിയബിൾ നിന്ന് നീക്കം ചെയ്യും
.നിർമ്മാണം.കയറ്റുമതി. വേരിയബിൾ ലിസ്റ്റ് നൽകിയിട്ടില്ലെങ്കിൽ, എല്ലാ ഗ്ലോബലുകളും കയറ്റുമതി ചെയ്യപ്പെടാത്തവയാണ്, കൂടാതെ
.നിർമ്മാണം.കയറ്റുമതി ഇല്ലാതാക്കി.

.unexport-env
മുമ്പ് കയറ്റുമതി ചെയ്ത എല്ലാ ഗ്ലോബുകളും കയറ്റുമതി ചെയ്യാതിരിക്കുകയും പാരമ്പര്യമായി ലഭിച്ച പരിസ്ഥിതിയെ മായ്‌ക്കുകയും ചെയ്യുക
രക്ഷിതാവ്. ഈ പ്രവർത്തനം യഥാർത്ഥ പരിസ്ഥിതിയുടെ മെമ്മറി ചോർച്ചയ്ക്ക് കാരണമാകും, അതിനാൽ
മിതമായി ഉപയോഗിക്കണം. എന്നതിനായുള്ള പരിശോധന .MAKE.LEVEL 0 ആകുന്നത് അർത്ഥമാക്കും. കൂടാതെ
പാരന്റ് എൻവയോൺമെന്റിൽ നിന്ന് ഉത്ഭവിച്ച ഏതെങ്കിലും വേരിയബിളുകൾ ആയിരിക്കണം എന്നത് ശ്രദ്ധിക്കുക
വേണമെങ്കിൽ വ്യക്തമായി സംരക്ഷിച്ചിരിക്കുന്നു. ഉദാഹരണത്തിന്:

.എങ്കിൽ ${.MAKE.LEVEL} == 0
പാത := ${PATH}
.unexport-env
.പാത്ത് കയറ്റുമതി ചെയ്യുക
.endif

ഏറ്റവും കുറഞ്ഞ ഉപയോഗപ്രദമായ 'PATH' മാത്രം അടങ്ങിയ ഒരു പരിതസ്ഥിതിയിൽ കലാശിക്കും
പരിസ്ഥിതി. യഥാർത്ഥത്തിൽ '.MAKE.LEVEL' പുതിയ പരിതസ്ഥിതിയിലേക്ക് തള്ളപ്പെടും.

.മുന്നറിയിപ്പ് സന്ദേശം
സന്ദേശം പ്രിഫിക്‌സ് ചെയ്തത് 'മുന്നറിയിപ്പ്:' മെയ്ക്ക് ഫയലിന്റെ പേരിനൊപ്പം അച്ചടിച്ചിരിക്കുന്നു
ലൈൻ നമ്പറും.

.എങ്കിൽ [!]പദപ്രയോഗം [ഓപ്പറേറ്റർ പദപ്രയോഗം ...]
ഒരു പദപ്രയോഗത്തിന്റെ മൂല്യം പരിശോധിക്കുക.

.ifdef [!]വേരിയബിൾ [ഓപ്പറേറ്റർ വേരിയബിൾ ...]
ഒരു വേരിയബിളിന്റെ മൂല്യം പരിശോധിക്കുക.

.ifndef [!]വേരിയബിൾ [ഓപ്പറേറ്റർ വേരിയബിൾ ...]
ഒരു വേരിയബിളിന്റെ മൂല്യം പരിശോധിക്കുക.

.ifmake [!]ലക്ഷ്യം [ഓപ്പറേറ്റർ ലക്ഷ്യം ...]
നിർമ്മിക്കുന്ന ലക്ഷ്യം പരിശോധിക്കുക.

.ifnmake [!] ലക്ഷ്യം [ഓപ്പറേറ്റർ ലക്ഷ്യം ...]
നിർമ്മിക്കുന്ന ലക്ഷ്യം പരിശോധിക്കുക.

.അല്ലാതെ അവസാനത്തെ വ്യവസ്ഥയുടെ അർത്ഥം വിപരീതമാക്കുക.

.എലിഫ് [!] പദപ്രയോഗം [ഓപ്പറേറ്റർ പദപ്രയോഗം ...]
ഒരു സംയോജനം '.അല്ലാതെ' പിന്തുടരുന്നു '.എങ്കിൽ'.

.എലിഫ്ദെഫ് [!]വേരിയബിൾ [ഓപ്പറേറ്റർ വേരിയബിൾ ...]
ഒരു സംയോജനം '.അല്ലാതെ' പിന്തുടരുന്നു '.ifdef'.

.elifndef [!]വേരിയബിൾ [ഓപ്പറേറ്റർ വേരിയബിൾ ...]
ഒരു സംയോജനം '.അല്ലാതെ' പിന്തുടരുന്നു '.ifndef'.

.എലിഫ്മേക്ക് [!]ലക്ഷ്യം [ഓപ്പറേറ്റർ ലക്ഷ്യം ...]
ഒരു സംയോജനം '.അല്ലാതെ' പിന്തുടരുന്നു '.ifmake'.

.elifnmake [!]ലക്ഷ്യം [ഓപ്പറേറ്റർ ലക്ഷ്യം ...]
ഒരു സംയോജനം '.അല്ലാതെ' പിന്തുടരുന്നു '.ifnmake'.

.endif സോപാധികയുടെ ശരീരം അവസാനിപ്പിക്കുക.

ദി ഓപ്പറേറ്റർ ഇനിപ്പറയുന്നവയിൽ ഏതെങ്കിലും ഒന്നായിരിക്കാം:

|| ലോജിക്കൽ OR.

&& ലോജിക്കൽ AND; "||" എന്നതിനേക്കാൾ ഉയർന്ന മുൻഗണന.

സിയിൽ ഉള്ളതുപോലെ, bmake ഒരു സോപാധികം നിർണ്ണയിക്കാൻ ആവശ്യമുള്ളിടത്തോളം മാത്രമേ അത് വിലയിരുത്തൂ
മൂല്യം. മൂല്യനിർണ്ണയ ക്രമം മാറ്റാൻ പരാൻതീസിസുകൾ ഉപയോഗിക്കാം. ബൂളിയൻ ഓപ്പറേറ്റർ'!'
ഒരു മുഴുവൻ സോപാധികവും യുക്തിപരമായി നിരാകരിക്കാൻ ഉപയോഗിച്ചേക്കാം. അതിനെക്കാൾ ഉയർന്ന മുൻഗണനയാണ്
'&&'.

ഇതിന്റെ മൂല്യം പദപ്രയോഗം ഇനിപ്പറയുന്നവയിൽ ഏതെങ്കിലും ആകാം:

നിർവചിച്ചിരിക്കുന്നത് ഒരു വേരിയബിൾ നെയിം ഒരു ആർഗ്യുമെന്റായി എടുക്കുകയും വേരിയബിൾ ആയിരുന്നെങ്കിൽ true ആയി വിലയിരുത്തുകയും ചെയ്യുന്നു
നിർവചിച്ചിരിക്കുന്നത്.

ഉണ്ടാക്കുക ഒരു ടാർഗെറ്റ് നാമം ഒരു ആർഗ്യുമെന്റായി എടുക്കുകയും ടാർഗെറ്റ് ആയിരുന്നെങ്കിൽ ശരിയാണെന്ന് വിലയിരുത്തുകയും ചെയ്യുന്നു
ഭാഗമായി വ്യക്തമാക്കിയിട്ടുണ്ട് bmakeന്റെ കമാൻഡ് ലൈൻ അല്ലെങ്കിൽ സ്ഥിരസ്ഥിതി ലക്ഷ്യമായി പ്രഖ്യാപിച്ചു
(ഒന്നുകിൽ പരോക്ഷമായോ പ്രത്യക്ഷമായോ, കാണുക .MAIN) അടങ്ങിയിരിക്കുന്ന വരിക്ക് മുമ്പ്
സോപാധിക.

ശൂന്യമാണ് സാധ്യമായ മോഡിഫയറുകളുള്ള ഒരു വേരിയബിൾ എടുക്കുകയും വിപുലീകരണമാണെങ്കിൽ ശരി എന്ന് വിലയിരുത്തുകയും ചെയ്യുന്നു
വേരിയബിളിന്റെ ഒരു ശൂന്യമായ സ്ട്രിംഗിൽ കലാശിക്കും.

നിലനിൽക്കുന്നു ഒരു ഫയലിന്റെ പേര് ഒരു ആർഗ്യുമെന്റായി എടുക്കുകയും ഫയൽ നിലവിലുണ്ടെങ്കിൽ ശരി എന്ന് വിലയിരുത്തുകയും ചെയ്യുന്നു. ദി
സിസ്റ്റം തിരയൽ പാതയിൽ ഫയൽ തിരയുന്നു (കാണുക .പാത്ത്).

ലക്ഷ്യം ടാർഗെറ്റ് നാമം ഒരു ആർഗ്യുമെന്റായി എടുക്കുകയും ടാർഗെറ്റ് ആയിരുന്നെങ്കിൽ ശരി എന്ന് വിലയിരുത്തുകയും ചെയ്യുന്നു
നിർവചിച്ചിരിക്കുന്നത്.

കമാൻഡുകൾ
ടാർഗെറ്റ് നാമം ഒരു ആർഗ്യുമെന്റായി എടുക്കുകയും ടാർഗെറ്റ് ആയിരുന്നെങ്കിൽ ശരി എന്ന് വിലയിരുത്തുകയും ചെയ്യുന്നു
നിർവചിക്കുകയും അതുമായി ബന്ധപ്പെട്ട കമാൻഡുകൾ ഉണ്ട്.

ആശയം ഒരു ഗണിത അല്ലെങ്കിൽ സ്ട്രിംഗ് താരതമ്യം കൂടിയാകാം. വേരിയബിൾ വിപുലീകരണം നടത്തുന്നു
താരതമ്യത്തിന്റെ ഇരുവശത്തും, അതിനുശേഷം അവിഭാജ്യ മൂല്യങ്ങൾ താരതമ്യം ചെയ്യുന്നു. ഒരു മൂല്യമാണ്
അതിന് മുമ്പായി 0x ആണെങ്കിൽ ഹെക്സാഡെസിമൽ ആയി വ്യാഖ്യാനിക്കുന്നു, അല്ലാത്തപക്ഷം അത് ദശാംശമാണ്; അഷ്ടസംഖ്യകൾ
പിന്തുണയ്ക്കുന്നില്ല. സ്റ്റാൻഡേർഡ് സി റിലേഷണൽ ഓപ്പറേറ്റർമാരെയെല്ലാം പിന്തുണയ്ക്കുന്നു. ശേഷം എങ്കിൽ
വേരിയബിൾ വികാസം, ഒന്നുകിൽ ഒരു 'ന്റെ ഇടത് അല്ലെങ്കിൽ വലത് വശം==' അഥവാ '!=' ഓപ്പറേറ്റർ ഒരു അല്ല
അവിഭാജ്യ മൂല്യം, തുടർന്ന് വിപുലീകരിച്ച വേരിയബിളുകൾക്കിടയിൽ സ്ട്രിംഗ് താരതമ്യം നടത്തുന്നു. അല്ലെങ്കിൽ
റിലേഷണൽ ഓപ്പറേറ്റർ നൽകിയിരിക്കുന്നു, വികസിപ്പിച്ച വേരിയബിൾ താരതമ്യം ചെയ്യുകയാണെന്ന് അനുമാനിക്കുന്നു
ഒരു സ്ട്രിംഗ് താരതമ്യത്തിന്റെ കാര്യത്തിൽ 0 അല്ലെങ്കിൽ ഒരു ശൂന്യമായ സ്ട്രിങ്ങിനെതിരെ.

എപ്പോൾ bmake ഈ സോപാധിക പദപ്രയോഗങ്ങളിലൊന്ന് വിലയിരുത്തുന്നു, അത് ഒരു (വെളുപ്പ്-
സ്പേസ് വേർതിരിക്കപ്പെട്ട) വാക്ക് അത് തിരിച്ചറിയുന്നില്ല, ഒന്നുകിൽ "നിർമ്മാണം" അല്ലെങ്കിൽ "നിർവചിച്ച" പദപ്രയോഗം
സോപാധിക രൂപത്തെ ആശ്രയിച്ച് അതിൽ പ്രയോഗിക്കുന്നു. ഫോം ആണെങ്കിൽ '.ifdef',
'.ifndef', അഥവാ '.എങ്കിൽ"നിർവചിച്ച" പദപ്രയോഗം പ്രയോഗിക്കുന്നു. അതുപോലെ, ഫോം ആണെങ്കിൽ
'.ifmake' അഥവാ '.ifnmake, The'"ഉണ്ടാക്കുക" എന്ന പ്രയോഗം പ്രയോഗിക്കുന്നു.

സോപാധിക മൂല്യനിർണ്ണയം ശരിയാണെങ്കിൽ, മേക്ക്‌ഫയലിന്റെ പാഴ്‌സിംഗ് മുമ്പത്തെപ്പോലെ തുടരും. എങ്കിൽ
തെറ്റായി വിലയിരുത്തുന്നു, ഇനിപ്പറയുന്ന വരികൾ ഒഴിവാക്കിയിരിക്കുന്നു. രണ്ട് സാഹചര്യങ്ങളിലും ഇത് a വരെ തുടരുന്നു
'.അല്ലാതെ' അഥവാ '.endif' കണ്ടുപിടിച്ചു.

ഫയലുകളുടെ ഒരു ലിസ്റ്റിലേക്ക് ഒരു കൂട്ടം നിയമങ്ങൾ പ്രയോഗിക്കാൻ ലൂപ്പുകൾ സാധാരണയായി ഉപയോഗിക്കുന്നു. a യുടെ വാക്യഘടന
ലൂപ്പിനുള്ളത്:

.വേണ്ടി വേരിയബിൾ [വേരിയബിൾ ...] in പദപ്രയോഗം
⟨നിയമങ്ങൾ ഉണ്ടാക്കുക⟩
.endfor

വേണ്ടി ശേഷം പദപ്രയോഗം വിലയിരുത്തപ്പെടുന്നു, അത് വാക്കുകളായി വിഭജിക്കപ്പെട്ടിരിക്കുന്നു. ഓരോ ആവർത്തനത്തിലും
ലൂപ്പ്, ഒരു വാക്ക് എടുത്ത് ഓരോന്നിനും നൽകിയിരിക്കുന്നു വേരിയബിൾ, ക്രമത്തിൽ, ഇവയും വേരിയബിളുകൾ ആകുന്നു
എന്നതിലേക്ക് പകരമായി നിയമങ്ങൾ ഉണ്ടാക്കുക ഫോർ ലൂപ്പിന്റെ ശരീരത്തിനുള്ളിൽ. വാക്കുകളുടെ എണ്ണം നിർബന്ധമാണ്
പുറത്തു വരിക; അതായത്, മൂന്ന് ആവർത്തന വേരിയബിളുകൾ ഉണ്ടെങ്കിൽ, നൽകിയിരിക്കുന്ന വാക്കുകളുടെ എണ്ണം
മൂന്നിന്റെ ഗുണിതമായിരിക്കണം.

COMMENTS


അഭിപ്രായങ്ങൾ ഒരു ഹാഷ് ('#') പ്രതീകത്തിൽ ആരംഭിക്കുന്നു, ഒരു ഷെൽ കമാൻഡ് ലൈനിൽ അല്ലാതെ എവിടെയും, കൂടാതെ
രക്ഷപ്പെടാത്ത പുതിയ വരിയുടെ അവസാനം വരെ തുടരുക.

പ്രത്യേക SOURCES (ഗുണവിശേഷങ്ങൾ)


.EXEC ടാർഗെറ്റ് ഒരിക്കലും കാലഹരണപ്പെട്ടതല്ല, എന്നാൽ എല്ലായ്‌പ്പോഴും കമാൻഡുകൾ എക്‌സിക്യൂട്ട് ചെയ്യുക.

.അവഗണിക്കുക ഈ ടാർഗെറ്റുമായി ബന്ധപ്പെട്ട കമാൻഡുകളിൽ നിന്നുള്ള എന്തെങ്കിലും പിശകുകൾ അവഗണിക്കുക
അവയ്‌ക്കെല്ലാം മുമ്പായി ഒരു ഡാഷ് ('-') ഉണ്ടായിരുന്നു.

.ഉണ്ടാക്കി ഈ ലക്ഷ്യത്തിന്റെ എല്ലാ ഉറവിടങ്ങളും കാലികമാണെന്ന് അടയാളപ്പെടുത്തുക.

.ഉണ്ടാക്കുക ഈ ടാർഗെറ്റുമായി ബന്ധപ്പെട്ട കമാൻഡുകൾ എക്സിക്യൂട്ട് ചെയ്യുക -n or -t ഓപ്ഷനുകൾ ആയിരുന്നു
വ്യക്തമാക്കിയ. ആവർത്തനത്തെ അടയാളപ്പെടുത്താൻ സാധാരണയായി ഉപയോഗിക്കുന്നു bmakes.

.META ടാർഗെറ്റിനായി ഒരു മെറ്റാ ഫയൽ സൃഷ്‌ടിക്കുക, അത് ഫ്ലാഗ് ചെയ്‌താലും .ഫോണി, .ഉണ്ടാക്കുക, അഥവാ
.സ്പെഷ്യൽ. എന്നിവയുമായി സംയോജിച്ച് ഉപയോഗം .ഉണ്ടാക്കുക ഏറ്റവും സാധ്യതയുള്ള കേസ്. "മെറ്റാ"യിൽ
മോഡ്, മെറ്റാ ഫയൽ നഷ്ടപ്പെട്ടാൽ ലക്ഷ്യം കാലഹരണപ്പെട്ടതാണ്.

.NOMETA ലക്ഷ്യത്തിനായി ഒരു മെറ്റാ ഫയൽ സൃഷ്ടിക്കരുത്. മെറ്റാ ഫയലുകളും ഇതിനായി സൃഷ്‌ടിച്ചതല്ല
.ഫോണി, .ഉണ്ടാക്കുക, അഥവാ .സ്പെഷ്യൽ ടാർഗെറ്റുകൾ.

.NOMETA_CMP
ലക്ഷ്യം കാലഹരണപ്പെട്ടതാണോ എന്ന് തീരുമാനിക്കുമ്പോൾ കമാൻഡുകളിലെ വ്യത്യാസങ്ങൾ അവഗണിക്കുക. ഇതാണ്
കമാൻഡിൽ എപ്പോഴും മാറുന്ന ഒരു മൂല്യം ഉണ്ടെങ്കിൽ ഉപയോഗപ്രദമാണ്. സംഖ്യയാണെങ്കിൽ
കമാൻഡുകൾ മാറുന്നു, എന്നിരുന്നാലും, ലക്ഷ്യം ഇപ്പോഴും കാലഹരണപ്പെട്ടതായിരിക്കും. അതേ പ്രഭാവം
വേരിയബിൾ ഉപയോഗിക്കുന്ന ഏത് കമാൻഡ് ലൈനിനും ബാധകമാണ് .OODATE, ഇതിനായി ഉപയോഗിക്കാം
മറ്റൊരുവിധത്തിൽ ആവശ്യമില്ലാത്തപ്പോൾ പോലും ആ ഉദ്ദേശ്യം:

ചിലർക്കായി താരതമ്യം ചെയ്യുക:
@എക്കോ ഇത് താരതമ്യം ചെയ്യും
@echo ഇത് ${.OODATE:M.NOMETA_CMP} ചെയ്യില്ല
@echo ഇതും താരതമ്യം ചെയ്യും

ദി :M പാറ്റേൺ അനാവശ്യ വേരിയബിളിന്റെ ഏതെങ്കിലും വികാസത്തെ അടിച്ചമർത്തുന്നു.

.നോപത്ത് വ്യക്തമാക്കിയ ഡയറക്‌ടറികളിൽ ലക്ഷ്യത്തിനായി തിരയരുത് .പാത്ത്.

.NOTMAIN സാധാരണയായി bmake ഡിഫോൾട്ട് ടാർഗെറ്റായി അത് നേരിടുന്ന ആദ്യ ടാർഗെറ്റ് തിരഞ്ഞെടുക്കുന്നു
ലക്ഷ്യമൊന്നും വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ നിർമ്മിച്ചതാണ്. ഈ ഉറവിടം ഈ ലക്ഷ്യത്തെ തടയുന്നു
തിരഞ്ഞെടുത്തു.

.ഓപ്ഷണൽ
ഈ ആട്രിബ്യൂട്ട് ഉപയോഗിച്ച് ഒരു ടാർഗെറ്റ് അടയാളപ്പെടുത്തിയിട്ടുണ്ടെങ്കിൽ ഒപ്പം bmake എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് മനസിലാക്കാൻ കഴിയില്ല
അത്, ഈ വസ്തുത അവഗണിക്കുകയും ഫയൽ ആവശ്യമില്ല അല്ലെങ്കിൽ ഇതിനകം നിലവിലുണ്ടെന്ന് കരുതുകയും ചെയ്യും.

.ഫോണി ലക്ഷ്യം ഒരു യഥാർത്ഥ ഫയലുമായി പൊരുത്തപ്പെടുന്നില്ല; അത് എല്ലായ്പ്പോഴും ആയി കണക്കാക്കപ്പെടുന്നു
കാലഹരണപ്പെട്ടു, ഒപ്പം സൃഷ്ടിക്കില്ല -t ഓപ്ഷൻ. പ്രത്യയം-പരിവർത്തനം
നിയമങ്ങൾ ബാധകമല്ല .ഫോണി ടാർഗെറ്റുകൾ.

.വിലയേറിയ
എപ്പോൾ bmake തടസ്സപ്പെട്ടു, ഇത് സാധാരണയായി ഭാഗികമായി നിർമ്മിച്ച ടാർഗെറ്റുകൾ നീക്കംചെയ്യുന്നു. ഈ
ലക്ഷ്യം നീക്കം ചെയ്യുന്നതിൽ നിന്ന് ഉറവിടം തടയുന്നു.

.ആനുകാലികം
എന്നതിന്റെ പര്യായപദം .ഉണ്ടാക്കുക.

.സൈലന്റ് ഈ ടാർഗെറ്റുമായി ബന്ധപ്പെട്ട ഒരു കമാൻഡും കൃത്യമായി പ്രതിധ്വനിക്കരുത്
എല്ലാത്തിനും മുമ്പായി ഒരു അറ്റ് ചിഹ്നം ('@') ഉണ്ടായിരുന്നു.

.ഉപയോഗിക്കുക ലക്ഷ്യം തിരിക്കുക bmakeമാക്രോയുടെ പതിപ്പ്. ലക്ഷ്യം a ആയി ഉപയോഗിക്കുമ്പോൾ
മറ്റൊരു ലക്ഷ്യത്തിനായുള്ള ഉറവിടം, മറ്റ് ലക്ഷ്യം കമാൻഡുകൾ, ഉറവിടങ്ങൾ, കൂടാതെ
ആട്രിബ്യൂട്ടുകൾ (ഒഴികെ .ഉപയോഗിക്കുക) ഉറവിടത്തിന്റെ. ലക്ഷ്യത്തിന് ഇതിനകം കമാൻഡുകൾ ഉണ്ടെങ്കിൽ,
The .ഉപയോഗിക്കുക ടാർഗെറ്റിന്റെ കമാൻഡുകൾ അവയിൽ ചേർത്തിരിക്കുന്നു.

.ഉപയോഗത്തിന് മുമ്പ്
കൃത്യമായി പോലെ .ഉപയോഗിക്കുക, എന്നാൽ മുൻകൂട്ടി നിശ്ചയിക്കുക .ഉപയോഗത്തിന് മുമ്പ് ലക്ഷ്യത്തിലേക്കുള്ള കമാൻഡുകൾ ലക്ഷ്യമിടുന്നു.

.കാത്തിരിക്കുക If .കാത്തിരിക്കുക ഒരു ഡിപൻഡൻസി ലൈനിൽ ദൃശ്യമാകുന്നു, അതിന് മുമ്പുള്ള ഉറവിടങ്ങൾ മുമ്പ് നിർമ്മിച്ചതാണ്
നിരയിൽ വിജയിക്കുന്ന ഉറവിടങ്ങൾ. ഫയലുകളുടെ ആശ്രിതർ അല്ലാത്തതിനാൽ
ഫയൽ നിർമ്മിക്കുന്നത് വരെ ഉണ്ടാക്കി, ഇത് ആശ്രിതരെ നിർത്തുന്നു
ആശ്രിത വൃക്ഷത്തിന്റെ മറ്റൊരു ശാഖയ്ക്ക് അവ ആവശ്യമില്ലെങ്കിൽ നിർമ്മിച്ചതാണ്. അങ്ങനെ നൽകിയിരിക്കുന്നു:

x: a .WAIT b
പ്രതിധ്വനി x
a:
പ്രതിധ്വനി എ
b: b1
പ്രതിധ്വനി ബി
b1:
പ്രതിധ്വനി b1

ഔട്ട്പുട്ട് എപ്പോഴും 'a', 'b1', 'b', 'x' ആണ്.
ഉത്തരവിട്ടത് .കാത്തിരിക്കുക സമാന്തര നിർമ്മാണത്തിന് മാത്രം പ്രസക്തമാണ്.

പ്രത്യേക ടാർഗെറ്റുകൾ


പ്രത്യേക ലക്ഷ്യങ്ങൾ മറ്റ് ലക്ഷ്യങ്ങൾക്കൊപ്പം ഉൾപ്പെടുത്തിയേക്കില്ല, അതായത് അവ മാത്രമായിരിക്കണം ലക്ഷ്യം
വ്യക്തമാക്കിയ.

.ആരംഭിക്കുന്നു ഈ ടാർഗെറ്റിലേക്ക് ഘടിപ്പിച്ചിരിക്കുന്ന ഏത് കമാൻഡ് ലൈനുകളും മറ്റെന്തെങ്കിലും ചെയ്യുന്നതിന് മുമ്പ് എക്സിക്യൂട്ട് ചെയ്യപ്പെടും
ചെയ്തു.

.ഡെഫോൾട്ട്
ഇത് ഒരു തരത്തിലുള്ളതാണ് .ഉപയോഗിക്കുക ഏത് ലക്ഷ്യത്തിനായുള്ള നിയമം (അത് ഒരു ഉറവിടമായി മാത്രം ഉപയോഗിച്ചു).
bmake സൃഷ്ടിക്കാൻ മറ്റൊരു വഴിയും കണ്ടുപിടിക്കാൻ കഴിയില്ല. ഷെൽ സ്ക്രിപ്റ്റ് മാത്രമാണ് ഉപയോഗിക്കുന്നത്.
ദി .IMPSRC പാരമ്പര്യമായി ലഭിക്കുന്ന ഒരു ലക്ഷ്യത്തിന്റെ വേരിയബിൾ .ഡെഫോൾട്ട്യുടെ കമാൻഡുകൾ എന്നതിലേക്ക് സജ്ജീകരിച്ചിരിക്കുന്നു
ലക്ഷ്യത്തിന്റെ സ്വന്തം പേര്.

.അവസാനിക്കുന്നു ഈ ടാർഗെറ്റിലേക്ക് ഘടിപ്പിച്ചിരിക്കുന്ന ഏത് കമാൻഡ് ലൈനുകളും എല്ലാം കഴിഞ്ഞതിന് ശേഷം എക്സിക്യൂട്ട് ചെയ്യപ്പെടും
ചെയ്തു.

.പിശക് ഈ ടാർഗെറ്റിലേക്ക് ഘടിപ്പിച്ചിട്ടുള്ള ഏത് കമാൻഡ് ലൈനുകളും മറ്റൊരു ടാർഗെറ്റ് പരാജയപ്പെടുമ്പോൾ എക്സിക്യൂട്ട് ചെയ്യപ്പെടും.
ദി .ERROR_TARGET പരാജയപ്പെട്ട ടാർഗെറ്റിലേക്ക് വേരിയബിൾ സജ്ജീകരിച്ചിരിക്കുന്നു. ഇതും കാണുക
MAKE_PRINT_VAR_ON_ERROR.

.അവഗണിക്കുക ഓരോ ഉറവിടവും ഉപയോഗിച്ച് അടയാളപ്പെടുത്തുക .അവഗണിക്കുക ആട്രിബ്യൂട്ട്. ഉറവിടങ്ങളൊന്നും വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ,
ഇത് വ്യക്തമാക്കുന്നതിന് തുല്യമാണ് -i ഓപ്ഷൻ.

.തടസ്സം
If bmake തടസ്സപ്പെട്ടു, ഈ ലക്ഷ്യത്തിനായുള്ള കമാൻഡുകൾ എക്സിക്യൂട്ട് ചെയ്യും.

.MAIN ലക്ഷ്യമൊന്നും വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ എപ്പോൾ bmake അഭ്യർത്ഥിക്കുന്നു, ഈ ലക്ഷ്യം നിർമ്മിക്കപ്പെടും.

.കൊടികൾ ഉണ്ടാക്കുക
ഈ ലക്ഷ്യം ഫ്ലാഗുകൾ വ്യക്തമാക്കുന്നതിനുള്ള ഒരു മാർഗം നൽകുന്നു bmake makefile ഉപയോഗിക്കുമ്പോൾ.
പതാകകൾ ഷെല്ലിൽ ടൈപ്പ് ചെയ്തതുപോലെയാണ് -f ഓപ്ഷൻ ഫലമുണ്ടാക്കില്ല.

.നോപത്ത് പ്രയോഗിക്കുക .നോപത്ത് ഏതെങ്കിലും നിർദ്ദിഷ്ട ഉറവിടങ്ങളിലേക്ക് ആട്രിബ്യൂട്ട് ചെയ്യുക.

.NOTPARALLEL
സമാന്തര മോഡ് പ്രവർത്തനരഹിതമാക്കുക.

.NO_PARALLEL
എന്നതിന്റെ പര്യായപദം .NOTPARALLEL, മറ്റ് pmake വേരിയന്റുകളുമായുള്ള അനുയോജ്യതയ്ക്കായി.

.OBJDIR ഉറവിടം ഒരു പുതിയ മൂല്യമാണ് '.OBJDIR'. അത് നിലവിലുണ്ടെങ്കിൽ, bmake ഉദ്ദേശിക്കുന്ന chdir(2) അതിലേക്ക്
' എന്നതിന്റെ മൂല്യം അപ്ഡേറ്റ് ചെയ്യുക.OBJDIR'.

.ഓർഡർ പേരിട്ട ലക്ഷ്യങ്ങൾ ക്രമത്തിലാണ് നിർമ്മിച്ചിരിക്കുന്നത്. ഈ ഓർഡറിംഗ് ടാർഗെറ്റുകൾ ഇതിലേക്ക് ചേർക്കുന്നില്ല
ഉണ്ടാക്കേണ്ട ലക്ഷ്യങ്ങളുടെ പട്ടിക. ഒരു ലക്ഷ്യത്തിന്റെ ആശ്രിതർ നിർമ്മിക്കപ്പെടാത്തതിനാൽ
ടാർഗെറ്റ് തന്നെ നിർമ്മിക്കുന്നത് വരെ, 'a' മറ്റൊരു ഭാഗം നിർമ്മിച്ചില്ലെങ്കിൽ
ഡിപൻഡൻസി ഗ്രാഫ്, ഇനിപ്പറയുന്നത് ഒരു ഡിപൻഡൻസി ലൂപ്പാണ്:

.ഓർഡർ: ബാ
b: എ

ഉത്തരവിട്ടത് .ഓർഡർ സമാന്തര നിർമ്മാണത്തിന് മാത്രം പ്രസക്തമാണ്.

.പാത്ത് സ്രോതസ്സുകൾ എന്നതിൽ കാണാത്ത ഫയലുകൾക്കായി തിരയേണ്ട ഡയറക്ടറികളാണ്
നിലവിലെ ഡയറക്ടറി. ഉറവിടങ്ങളൊന്നും വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, മുമ്പ് വ്യക്തമാക്കിയവ
ഡയറക്ടറികൾ ഇല്ലാതാക്കി. സ്രോതസ്സ് ആണെങ്കിൽ പ്രത്യേകം .DOTLAST ലക്ഷ്യം, പിന്നെ
നിലവിലെ പ്രവർത്തിക്കുന്ന ഡയറക്ടറി അവസാനം തിരഞ്ഞു.

.പാത്ത്.സഫിക്സ്
പോലെ .പാത്ത് എന്നാൽ ഒരു പ്രത്യേക സഫിക്സ് ഉള്ള ഫയലുകൾക്ക് മാത്രമേ ബാധകമാകൂ. പ്രത്യയം നിർബന്ധമാണ്
ഉപയോഗിച്ച് നേരത്തെ പ്രഖ്യാപിച്ചിരുന്നു .സഫിക്സുകൾ.

.ഫോണി പ്രയോഗിക്കുക .ഫോണി ഏതെങ്കിലും നിർദ്ദിഷ്ട ഉറവിടങ്ങളിലേക്ക് ആട്രിബ്യൂട്ട് ചെയ്യുക.

.വിലയേറിയ
പ്രയോഗിക്കുക .വിലയേറിയ ഏതെങ്കിലും നിർദ്ദിഷ്ട ഉറവിടങ്ങളിലേക്ക് ആട്രിബ്യൂട്ട് ചെയ്യുക. ഉറവിടങ്ങൾ ഇല്ലെങ്കിൽ
വ്യക്തമാക്കിയ, ദി .വിലയേറിയ ഫയലിലെ എല്ലാ ലക്ഷ്യങ്ങളിലും ആട്രിബ്യൂട്ട് പ്രയോഗിക്കുന്നു.

.ഷെൽ അത് ഷെൽ സജ്ജമാക്കുന്നു bmake കമാൻഡുകൾ എക്സിക്യൂട്ട് ചെയ്യാൻ ഉപയോഗിക്കും. ഉറവിടങ്ങൾ ഒരു കൂട്ടമാണ്
ഫീൽഡ്=മൂല്യം ജോഡി.

പേര് ഇതാണ് ഏറ്റവും കുറഞ്ഞ സ്പെസിഫിക്കേഷൻ, ബിൽറ്റിൻ തിരഞ്ഞെടുക്കാൻ ഉപയോഗിക്കുന്നു
ഷെൽ സവിശേഷതകൾ; sh, ksh, ഒപ്പം csh.

പാത ഷെല്ലിലേക്കുള്ള പാത വ്യക്തമാക്കുന്നു.

ErrCtl ഉണ്ട് പിശകിൽ പുറത്തുകടക്കാൻ ഷെൽ പിന്തുണയ്ക്കുന്നുണ്ടോ എന്ന് സൂചിപ്പിക്കുന്നു.

ചെക്ക് പിശക് പരിശോധന ഓണാക്കാനുള്ള കമാൻഡ്.

അവഗണിക്കുക പിശക് പരിശോധന പ്രവർത്തനരഹിതമാക്കാനുള്ള കമാൻഡ്.

എക്കോ എക്സിക്യൂട്ട് ചെയ്ത കമാൻഡുകളുടെ എക്കോയിംഗ് ഓണാക്കാനുള്ള കമാൻഡ്.

നിശബ്ദത എക്സിക്യൂട്ട് ചെയ്ത കമാൻഡുകളുടെ എക്കോയിംഗ് ഓഫ് ചെയ്യാനുള്ള കമാൻഡ്.

ഫിൽറ്റർ ചെയ്യുക ഇഷ്യൂ ചെയ്തതിന് ശേഷം ഫിൽട്ടർ ചെയ്യേണ്ട ഔട്ട്പുട്ട് നിശബ്ദത കമാൻഡ്. അത് സാധാരണമാണ്
സമാനമായത് നിശബ്ദത.

തെറ്റ് പതാക പിശക് പരിശോധിക്കുന്നത് പ്രവർത്തനക്ഷമമാക്കാൻ ഷെൽ കടന്നുപോകാനുള്ള ഫ്ലാഗ്.

echoFlag കമാൻഡ് എക്കോയിംഗ് പ്രവർത്തനക്ഷമമാക്കാൻ ഷെൽ കടന്നുപോകാനുള്ള ഫ്ലാഗ്.

പുതിയ വര ഒരൊറ്റ ന്യൂലൈനിൽ കലാശിക്കുന്ന ഷെല്ലിനെ കടത്തിവിടാൻ അക്ഷരാർത്ഥത്തിലുള്ള സ്ട്രിംഗ്
ഏതെങ്കിലും ഉദ്ധരണി പ്രതീകങ്ങൾക്ക് പുറത്ത് ഉപയോഗിക്കുമ്പോൾ പ്രതീകം.
ഉദാഹരണം:

.ഷെൽ: പേര്=ksh പാത=/bin/ksh hasErrCtl=true
check="set -e" അവഗണിക്കുക="set +e"
echo="set -v" quiet="set +v" filter="set +v"
echoFlag=v errFlag=e newline="'\n'"

.സൈലന്റ് പ്രയോഗിക്കുക .സൈലന്റ് ഏതെങ്കിലും നിർദ്ദിഷ്ട ഉറവിടങ്ങളിലേക്ക് ആട്രിബ്യൂട്ട് ചെയ്യുക. ഉറവിടങ്ങളൊന്നും വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ,
The .സൈലന്റ് ഫയലിലെ എല്ലാ കമാൻഡുകളിലും ആട്രിബ്യൂട്ട് പ്രയോഗിക്കുന്നു.

.STALE ഒരു ഡിപൻഡൻസി ഫയലിൽ പഴകിയ എൻട്രികൾ ഉള്ളപ്പോൾ ഈ ടാർഗെറ്റ് പ്രവർത്തിക്കുന്നു .ALLSRC
ആ ഡിപൻഡൻസി ഫയലിന്റെ പേരിലേക്ക് സജ്ജമാക്കുക.

.സഫിക്സുകൾ
ഓരോ ഉറവിടവും ഒരു പ്രത്യയം വ്യക്തമാക്കുന്നു bmake. ഉറവിടങ്ങളൊന്നും വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, ഏതെങ്കിലും
മുമ്പ് വ്യക്തമാക്കിയ സഫിക്സുകൾ ഇല്ലാതാക്കി. ഇത് പ്രത്യയം സൃഷ്ടിക്കാൻ അനുവദിക്കുന്നു-
പരിവർത്തന നിയമങ്ങൾ.

ഉദാഹരണം:

.സഫിക്സുകൾ: .o
.co:
cc -o ${.TARGET} -c ${.IMPSRC}

ENVIRONMENT


bmake ഇനിപ്പറയുന്ന പരിസ്ഥിതി വേരിയബിളുകൾ ഉപയോഗിക്കുന്നു, അവ നിലവിലുണ്ടെങ്കിൽ: MACHINE, MACHINE_ARCH,
MACHINE_MULTIARCH, നിർമ്മിക്കുക, പതാകകൾ നിർമ്മിക്കുക, MAKEOBJDIR, MAKEOBJDIRPREFIX, MAKESYSPATH, PWD, കൂടാതെ
ടിഎംപിഡിഐആർ.

MAKEOBJDIRPREFIX ഉം MAKEOBJDIR ഉം പരിസ്ഥിതിയിലോ കമാൻഡ് ലൈനിലോ മാത്രമേ സജ്ജീകരിക്കാൻ കഴിയൂ
bmake മേക്ക്‌ഫൈൽ വേരിയബിളുകൾ പോലെയല്ല; ' എന്നതിന്റെ വിവരണം കാണുക.OBJDIR'കൂടുതൽ വിവരങ്ങൾക്ക്.

onworks.net സേവനങ്ങൾ ഉപയോഗിച്ച് pmake ഓൺലൈനായി ഉപയോഗിക്കുക



ഏറ്റവും പുതിയ ലിനക്സ്, വിൻഡോസ് ഓൺലൈൻ പ്രോഗ്രാമുകൾ