āĻ‡āĻ‚āĻ°ā§‡āĻœāĻŋāĻĢāĻ°āĻžāĻ¸āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨āĻŋāĻļ

Ad


āĻ…āĻ¨āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ¸ āĻĢā§‡āĻ­āĻŋāĻ•āĻ¨

makepp_functions - āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨

āĻ‰āĻŦā§āĻ¨ā§āĻŸā§ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨, āĻĢā§‡āĻĄā§‹āĻ°āĻž āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨, āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻāĻŽā§āĻ˛ā§‡āĻŸāĻ° āĻŦāĻž MAC OS āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻāĻŽā§āĻ˛ā§‡āĻŸāĻ°ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ OnWorks āĻĢā§āĻ°āĻŋ āĻšā§‹āĻ¸ā§āĻŸāĻŋāĻ‚ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ¤ā§‡ makepp_functions āĻšāĻžāĻ˛āĻžāĻ¨

āĻāĻŸāĻŋ āĻšāĻ˛ makepp_functions āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¯āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡āĻ° āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ¸ā§āĻŸā§‡āĻļāĻ¨ āĻ¯ā§‡āĻŽāĻ¨ āĻ‰āĻŦā§āĻ¨ā§āĻŸā§ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨, āĻĢā§‡āĻĄā§‹āĻ°āĻž āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨, āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻāĻŽā§āĻ˛ā§‡āĻŸāĻ° āĻŦāĻž MAC OS āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻāĻŽā§āĻ˛ā§‡āĻŸāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ OnWorks āĻĢā§āĻ°āĻŋ āĻšā§‹āĻ¸ā§āĻŸāĻŋāĻ‚ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ¤ā§‡ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ•āĻžāĻ°ā§āĻ¯āĻ•ā§āĻ°āĻŽ:

NAME āĻāĻ°


makepp_functions -- makepp-āĻ āĻĢāĻžāĻ‚āĻļāĻ¨

āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻƒ


A: absolute_filename,
absolute_filename_nolink,
āĻ…āĻŦāĻ¸āĻĒāĻĨ,
āĻ¯ā§‹āĻ— āĻ‰āĻĒāĻ¸āĻ°ā§āĻ—,
āĻ¯ā§‹āĻ— āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ,
āĻāĻŦāĻ‚, B: āĻŽā§‚āĻ˛ āĻ¨āĻžāĻŽ, C: āĻ•āĻ˛, D: āĻšāĻ¯āĻŧ,
dir_noslash, E: āĻ¤ā§āĻ°ā§āĻŸāĻŋ, F: āĻĢāĻžāĻ‡āĻ˛āĻ¸āĻžāĻŦāĻ¸ā§āĻŸ,
āĻ›āĻžāĻāĻ•āĻ¨āĻŋ,
āĻ†āĻ˛āĻžāĻĻāĻž āĻ•āĻ°āĻž,
filter_out_dirs,
āĻĢāĻžāĻ‡āĻ˛ āĻŸāĻŋ āĻ–ā§āĻœā§‹,
āĻ–ā§āĻāĻœā§āĻ¨_āĻĒā§āĻ°āĻĨāĻŽ_āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡,
āĻ–ā§āĻāĻœā§āĻ¨_āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ,
āĻĢāĻžāĻ‡āĻ¨ā§āĻĄāĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚,
āĻ–ā§āĻāĻœā§‡_āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡,
āĻĒā§āĻ°āĻĨāĻŽ_āĻ‰āĻĒāĻ˛āĻŦā§āĻ§,
āĻĒā§āĻ°āĻĨāĻŽ āĻļāĻŦā§āĻĻ,
āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•āĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯, I: āĻ¯āĻĻāĻŋ,
āĻ¯āĻĻāĻŋ āĻ¸āĻ¤ā§āĻ¯,
infer_linker,
āĻ…āĻ¨ā§āĻŽāĻžāĻ¨_āĻŦāĻ¸ā§āĻ¤ā§,
āĻ¤āĻĨā§āĻ¯, J: āĻ¯ā§‹āĻ—āĻĻāĻžāĻ¨, M: āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž
āĻŽā§‡āĻ•āĻŽā§āĻ¯āĻžāĻĒ,
āĻŽā§‡āĻ•āĻĒāĻžāĻ°āĻ˛,
āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ°,
"mktemp", N: āĻ¨āĻžāĻĻāĻŋāĻ°, O: āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°_āĻ‰āĻ¤ā§āĻĒāĻ¨ā§āĻ¨,
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°_āĻ…āĻ˛āĻ•ā§āĻˇā§āĻ¯,
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°_āĻĢāĻ¨āĻŋ_āĻ˛āĻ•ā§āĻˇā§āĻ¯,
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°_āĻŦāĻžāĻ¸āĻŋ,
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°_āĻ˛āĻ•ā§āĻˇā§āĻ¯,
āĻŦāĻž,
āĻ‰ā§ŽāĻĒāĻ¤ā§āĻ¤āĻŋ, P: patsubst,
āĻĒāĻžāĻ°ā§āĻ˛,
āĻ¨āĻ•āĻ˛
āĻĒā§‚āĻ°ā§āĻŦāĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ,
āĻ›āĻžāĻĒāĻž, R: āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻĒāĻĨ,
āĻ†āĻĒā§‡āĻ•ā§āĻˇāĻŋāĻ•_āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ,
āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤, S: āĻļā§‡āĻ˛,
āĻ¸āĻžāĻœāĻžāĻ¨,
āĻĢāĻžāĻ˛āĻž,
āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨,
āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ, T: āĻ…āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€, W: āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž,
āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ,
āĻļāĻŦā§āĻĻ,
āĻļāĻŦā§āĻĻ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž,
āĻļāĻŦā§āĻĻ, X: xargs

"$(āĻ¨āĻžāĻŽ)" āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§‡āĻ° āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ "āĻ¨āĻžāĻŽ" āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ¨āĻ¯āĻŧ, āĻ…āĻĨāĻŦāĻž
"$(name arg1 arg2 arg3)" āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•āĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¨āĻžāĻŽā§‡āĻ° āĻ…āĻ•ā§āĻˇāĻ° āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡,
āĻ†āĻ¨ā§āĻĄāĻžāĻ°āĻ¸ā§āĻ•ā§‹āĻ°, āĻŦāĻž āĻšāĻžāĻ‡āĻĢā§‡āĻ¨; āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋ āĻāĻĄāĻŧāĻžāĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ‡āĻĢā§‡āĻ¨ āĻŦāĻž āĻ†āĻ¨ā§āĻĄāĻžāĻ°āĻ¸ā§āĻ•ā§‹āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨
āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧāĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻšāĻžāĻ‡āĻĢā§‡āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ†āĻ¨ā§āĻĄāĻžāĻ°āĻ¸ā§āĻ•ā§‹āĻ°ā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¯ā§‡āĻŽāĻ¨ āĻŽā§‚āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨
āĻāĻ•āĻŸāĻŋ āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻāĻ•āĻŸāĻŋ āĻĒāĻžāĻ°ā§āĻ˛ āĻ¸āĻžāĻŦāĻ°ā§āĻŸāĻŋāĻ¨ āĻ†āĻšā§āĻŦāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ¯āĻĻāĻŋ "āĻ¨āĻžāĻŽ" āĻāĻ° āĻ†āĻ—ā§‡ "&" āĻĨāĻžāĻ•ā§‡ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¯āĻŧ
makepp āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸ā§‡āĻ‡ āĻ¨āĻžāĻŽā§‡āĻ° āĻŦāĻŋāĻ˛ā§āĻŸāĻ‡āĻ¨ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻž āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ, āĻāĻŦāĻ‚ āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡
āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻžāĻ°ā§āĻ˛āĻŋāĻ“ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§āĻ˛ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻ¨āĻžāĻŽ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¨āĻžāĻŽ āĻ¨āĻž
āĻāĻŸāĻŋ āĻ•āĻ˛ā§‡āĻ° āĻ†āĻšā§āĻŦāĻžāĻ¨ā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤

āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻžāĻ›ā§‡ "$(āĻ¨āĻžāĻŽ ...)" āĻŦāĻž "${āĻ¨āĻžāĻŽ ...}" āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ†āĻ›ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻ¤ā§āĻŽāĻŋ āĻšāĻžāĻ“
āĻāĻ•āĻ‡ āĻŦāĻ¨ā§āĻ§āĻ¨ā§€ āĻāĻŽā§āĻŦā§‡āĻĄ āĻ•āĻ°ā§āĻ¨, āĻāĻŸāĻŋ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻœā§‹āĻĄāĻŧāĻž āĻšāĻ¤ā§‡ āĻšāĻŦā§‡, āĻ…āĻ¨ā§āĻ¯āĻŸāĻŋ āĻ•ā§‹āĻ¨ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ° āĻ¨āĻž: "$(āĻ¨āĻžāĻŽ
...(){..." āĻŦāĻž "${āĻ¨āĻžāĻŽ ...{}(...}"āĨ¤ (āĻ¤āĻŦā§‡ āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ° āĻāĻŦāĻ‚ āĻĒāĻžāĻ°ā§āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻ¨ā§āĻ§ āĻŦāĻ¨ā§āĻ§āĻ¨ā§€ āĻļā§‡āĻˇ āĻšāĻ¯āĻŧ
āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĨ¤) āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ•āĻ°āĻž āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ āĻŦāĻŋāĻ¸ā§āĻ¤ā§ƒāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻžāĻ‡āĻ¨āĻ—ā§āĻ˛ā§‹ āĻšāĻ˛ā§‹
āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸ā§āĻĒā§‡āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ "āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤" āĻŦā§āĻ¯āĻ¤ā§€āĻ¤āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ "$[āĻ¨āĻžāĻŽ ...]" āĻ†āĻ›ā§‡
āĻ…āĻĨāĻŦāĻž $[[āĻ¨āĻžāĻŽ ...]], āĻ¯āĻž āĻŽā§‡āĻ•āĻĢāĻžāĻ‡āĻ˛ āĻĒāĻĄāĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŽā§‚āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ—ā§āĻ°ā§‹āĻ•āĻŋāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻ†āĻ—ā§‡
āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖāĨ¤

Makepp āĻāĻ° āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ˛ā§āĻŸāĻ‡āĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻŸāĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŦ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡
GNU make-āĻāĻ° āĻŸā§‡āĻ•ā§āĻ¸āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻĢāĻžāĻ‚āĻļāĻ¨ (āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻœāĻžāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ GNU make-āĻāĻ° āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻĻā§‡āĻ–ā§āĻ¨), āĻāĻŦāĻ‚ āĻāĻ° āĻ•āĻŋāĻ›ā§
āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻž āĻ–ā§āĻļāĻŋ āĻ¤āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§āĻ˛ āĻ¸āĻžāĻŦāĻ°ā§āĻŸāĻŋāĻ¨ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ "āĻ¸āĻžāĻŦ" āĻŦāĻŋāĻŦā§ƒāĻ¤āĻŋ āĻĻā§‡āĻ–ā§āĻ¨
āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻœāĻžāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ makepp āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻ­āĻžāĻ—āĨ¤

āĻļāĻ°ā§āĻ¤āĻžāĻ§ā§€āĻ¨ āĻ•āĻžāĻ°ā§āĻ¯āĻžāĻŦāĻ˛ā§€
āĻāĻŦāĻ‚ āĻļāĻ°ā§āĻ¤1[, āĻļāĻ°ā§āĻ¤ 2 [, āĻļāĻ°ā§āĻ¤ 3...]]
āĻāĻŦāĻ‚ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻāĻ•āĻŸāĻŋ "āĻļāĻ°ā§āĻŸ āĻ¸āĻžāĻ°ā§āĻ•āĻŋāĻŸāĻŋāĻ‚" āĻāĻŦāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻšāĻ¯āĻŧ
āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤, āĻ•ā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻāĻ•āĻŸāĻŋ āĻ–āĻžāĻ˛āĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻ¸ā§āĻŸāĻĒ āĻāĻŦāĻ‚
āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻ˛ āĻ–āĻžāĻ˛āĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚āĨ¤ āĻ¯āĻĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻāĻ•āĻŸāĻŋ āĻ…-āĻ¤ā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻ–āĻžāĻ˛āĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻ˛ āĻļā§‡āĻˇ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖāĨ¤

if āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĢāĻ˛āĻžāĻĢāĻ˛-āĻ¯āĻĻāĻŋ-āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚-āĻ¨āĻž-āĻ–āĻžāĻ˛āĻŋ[, āĻĢāĻ˛āĻžāĻĢāĻ˛-āĻ¯āĻĻāĻŋ-āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚-āĻ–āĻžāĻ˛āĻŋ]
āĻ¯āĻĻāĻŋ āĻ¸āĻ¤ā§āĻ¯ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĢāĻ˛āĻžāĻĢāĻ˛-āĻ¯āĻĻāĻŋ-āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚-āĻ¸āĻ¤ā§āĻ¯[, āĻĢāĻ˛āĻžāĻĢāĻ˛-āĻ¯āĻĻāĻŋ-āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚-āĻĢāĻ˛āĻ¸]
"ifeq" āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻŦāĻŋāĻŦā§ƒāĻ¤āĻŋāĨ¤ āĻ¯āĻĻāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĢāĻžāĻāĻ•āĻž āĻ¨āĻž āĻšāĻ¯āĻŧ (āĻ…āĻ°ā§āĻĨāĻžā§Ž,
āĻļāĻ°ā§āĻ¤ āĻ¸āĻ¤ā§āĻ¯), āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ ("āĻ¤āĻžāĻ°āĻĒāĻ°" āĻ§āĻžāĻ°āĻž) āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ (āĻĒāĻ°ā§‡
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖ); āĻ¯āĻĻāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚āĻŸāĻŋ āĻĢāĻžāĻāĻ•āĻž āĻšāĻ¯āĻŧ, āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ ("āĻ…āĻ¨ā§āĻ¯" āĻ§āĻžāĻ°āĻž)
āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸ā§‡āĻ¨āĨ¤

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ,

CFLAGS := $(āĻ¯āĻĻāĻŋ $(āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° gcc egcc, $(CC)), -g -āĻ“āĻ¯āĻŧāĻžāĻ˛, -g)

CFLAGS āĻ•ā§‡ "-g -Wall" āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯āĻĻāĻŋ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ CC āĻšāĻ¯āĻŧ "gcc" āĻŦāĻž "egcc", āĻāĻŦāĻ‚ "-g"
āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ (āĻāĻŸāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻ—ā§āĻ˛āĻŋ āĻ•āĻ°ā§‡āĨ¤)

"iftrue" "if" āĻāĻ° āĻ…āĻ¨ā§āĻ°ā§‚āĻĒ, āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ 0 āĻ•ā§‡ āĻĢāĻžāĻāĻ•āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

or āĻļāĻ°ā§āĻ¤1[, āĻļāĻ°ā§āĻ¤ 2 [, āĻļāĻ°ā§āĻ¤ 3...]]
āĻŦāĻž āĻĢāĻžāĻ‚āĻļāĻ¨ āĻāĻ•āĻŸāĻŋ "āĻļāĻ°ā§āĻŸ āĻ¸āĻžāĻ°ā§āĻ•āĻŋāĻŸāĻŋāĻ‚" āĻŦāĻž āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ,
āĻ•ā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§‡. āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻāĻ•āĻŸāĻŋ āĻ…-āĻ–āĻžāĻ˛āĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻ¸ā§āĻŸāĻĒ āĻāĻŦāĻ‚
āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻ˛ āĻ¸ā§‡āĻ‡ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚āĨ¤ āĻ¯āĻĻāĻŋ, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¸āĻŦ
āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻŽāĻŋāĻĨā§āĻ¯āĻž (āĻ–āĻžāĻ˛āĻŋ), āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻ˛ āĻ–āĻžāĻ˛āĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚āĨ¤

āĻĢāĻžāĻ‡āĻ˛ āĻāĻŦāĻ‚ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ•āĻžāĻ°ā§āĻ¯āĻžāĻŦāĻ˛ā§€
absolute_filename āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°
abspath āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°
āĻ†āĻĒā§‡āĻ•ā§āĻˇāĻŋāĻ• āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒāĻ°āĻŽ āĻ›āĻžāĻĄāĻŧāĻžāĻ¯āĻŧ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§‡ . or ..āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ,
"$(absolute_filename xyz.c)" āĻĢāĻŋāĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ "/usr/src/our_project/subdir/xyz.c"āĨ¤

absolute_filename_nolink āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻĒāĻĨ āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°
absolute_filename āĻāĻ° āĻŽāĻ¤ā§‹, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤ā§€āĻ•ā§€ āĻ˛āĻŋāĻ™ā§āĻ•āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻŦā§‡āĻ¸āĻ¨āĻžāĻŽ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ
āĻŦā§‡āĻ¸āĻ¨ā§‡āĻŽ āĻšāĻ˛ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ (āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ¸āĻš), āĻāĻŦāĻ‚ āĻāĻ° āĻĒāĻ°ā§‡ āĻŸā§‡āĻ•ā§āĻ¸āĻŸ āĻŦāĻŋāĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§āĻ¨
āĻļā§‡āĻˇ āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ āĻ¸āĻšāĨ¤ āĻ¯ā§‡āĻŽāĻ¨, "$(basename myfile/version-1.0-module.c)" āĻšāĻ˛
"myfile/version-1.0-āĻŽāĻĄāĻŋāĻ‰āĻ˛"

Dir āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ
āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ…āĻ‚āĻļ āĻŦā§‡āĻ° āĻ•āĻ°ā§‡, āĻŸā§āĻ°ā§‡āĻ˛āĻŋāĻ‚ āĻ¸āĻš
āĻ¸ā§āĻ˛ā§āĻ¯āĻžāĻļ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ¨āĻž āĻĨāĻžāĻ•āĻ˛ā§‡ "./" āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ•āĻ°ā§‡āĨ¤

dir_noslash āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ
"$(dir )" āĻāĻ° āĻŽāĻ¤āĻ‡ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻ¤ā§€āĻ¤ āĻāĻŸāĻŋ āĻŸā§āĻ°ā§‡āĻ˛āĻŋāĻ‚ āĻ¸ā§āĻ˛ā§āĻ¯āĻžāĻļ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ āĻ¨āĻžāĨ¤

filesubst āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨, āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ, āĻļāĻŦā§āĻĻ
āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻāĻ‡ āĻ¯ā§‡ patsubst āĻĨā§‡āĻ•ā§‡ āĻ­āĻŋāĻ¨ā§āĻ¨
āĻ¯āĻ–āĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¨āĻžāĻŽ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻ¤āĻ–āĻ¨ āĻāĻŸāĻŋ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ (āĻ¯āĻ¤āĻĻāĻŋāĻ¨
āĻ¤āĻžāĻ°āĻž āĻļāĻ¤āĻžāĻ‚āĻļ āĻšāĻŋāĻšā§āĻ¨ā§‡āĻ° āĻ†āĻ—ā§‡)āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ,

$(filesubst ./src/%.c, %.o, $(āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ src/*.c))

filesubst āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ patsubst āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¨āĻ¯āĻŧāĨ¤

filter_out_dirs āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ
āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°ā§‡ āĻ¨āĻž āĻāĻŽāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻĢāĻžāĻ‡āĻ˛ āĻŸāĻŋ āĻ–ā§āĻœā§‹ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ, āĻĒāĻĨ
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ¯āĻŧ, āĻ…āĻĨāĻŦāĻž āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ PATH āĻ¯āĻĻāĻŋ āĻ•āĻŋāĻ›ā§āĻ‡ āĻ¨āĻž āĻĨāĻžāĻ•ā§‡
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻāĻŸāĻŋ āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°āĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻŦāĻž āĻĢāĻžāĻ‡āĻ˛ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ,

TCL_INCLUDE := -I$(dir_noslash $(findfile tcl.h, \
/usr/local/stow/tcl-8.4.5-nothread/include \
/usr/include/tcl8.4 /usr/include/tcl \
/net/na1/tcl8.4a3/include /net/na1/tcl8.4a3/include))

āĻāĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°ā§‡ tcl.h āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻĒāĻ°āĻŽ
āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻĒāĻžāĻĨ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° "$(dir_noslash )" āĻ¸ā§‡āĻ‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻŸāĻŋ āĻŦā§‡āĻ° āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ
āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻĒāĻžāĻĨ āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻžāĻ–āĻž āĻšāĻ¯āĻŧ.

āĻ–ā§āĻāĻœā§āĻ¨_āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻ¨āĻžāĻŽ
āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŸāĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĻāĻŋāĻ¨ āĻ¯āĻž PATH-āĻ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§‡āĨ¤ āĻāĻŸāĻŋ āĻĻāĻ°āĻ•āĻžāĻ°ā§€
āĻ¯āĻ–āĻ¨ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§ āĻšāĻžāĻ¨
āĻ¤āĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ›ā§āĻ¨ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ–āĻžāĻ¨ā§‡ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖā§‡āĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻ¸āĻ‚āĻœā§āĻžāĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡
āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽā§‡āĻ•āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ¨āĻž āĻ°āĻžāĻ–āĻ˛ā§‡ āĻ¯ā§‡ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛āĻ—ā§āĻ˛āĻŋ makepp āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°ā§‡:

CC = $(find_program gcc egcc pgcc c89 cc) # āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§‡āĻ• āĻ•āĻŋāĻ›ā§, āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡
F77 = $(find_program f77 g77 fort77)
CXX = $(find_program g++ c++ pg++ cxx CC aCC)

āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨ā§‹ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¨āĻž āĻ¯āĻžāĻ¯āĻŧ, "$(find_program )" āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋ āĻāĻŽāĻ¨ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ, āĻāĻŦāĻ‚
āĻ•āĻŋ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋ āĻ˛āĻ—. āĻāĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€ āĻŽā§‡āĻ•āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻŦā§‡ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ
āĻ†āĻ°āĻ“ āĻ­āĻžāĻ˛ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻĒā§āĻ°āĻŦāĻŖāĻ¤āĻž āĻĨāĻžāĻ•āĻŦā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ¨ āĻ•āĻŋāĻ›ā§ āĻ•āĻ°ā§‡āĻ¨
āĻāĻ‡:

%.o : %.c
$(CC) $(āĻ‡āĻ¨āĻĒā§āĻŸ) -o $(āĻ†āĻ‰āĻŸāĻĒā§āĻŸ)

āĻāĻŦāĻ‚ makepp āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ C āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻšā§āĻ›ā§‡ āĻ¨āĻž, āĻāĻŸāĻŋ āĻ¨āĻŸ-āĻĢāĻžāĻ‰āĻ¨ā§āĻĄā§‡āĻ° āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻšāĻŦā§‡āĨ¤
āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻļā§‡āĻ˛ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻĢāĻžāĻ‡āĻ˛ āĻāĻŦāĻ‚ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŦā§‡
āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ‡ āĻ…āĻĻā§āĻ­ā§āĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡.

āĻ–ā§āĻāĻœā§āĻ¨_āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ
āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¨āĻžāĻŽā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡ ., .., ../ .., ../../.., āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤
āĻ¯āĻ¤āĻ•ā§āĻˇāĻŖ āĻ¨āĻž āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻŦāĻž āĻ°ā§āĻŸ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻĒā§ŒāĻāĻ›āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧ āĻŦāĻž āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻŸāĻŋ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĨ¤ (āĻāĻ‡ āĻļā§‡āĻˇ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¸āĻ™ā§āĻ—ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ
āĻ…āĻŸā§‹āĻŽāĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ° āĻŦāĻž āĻšā§āĻ¯āĻžāĻ‚ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĨ¤) āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĨāĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ RootMakeppfile, āĻ¸ā§‡āĻŸāĻžāĻ“
āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ§āĻž āĻ¯āĻž āĻ‰āĻšā§āĻšāĻ¤āĻ° āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§‡ āĻŦāĻžāĻ§āĻž āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻ…āĻ¨ā§‡āĻ• āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ¸āĻžāĻŦāĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽā§‡āĻ•āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻāĻ‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ–āĻŖā§āĻĄāĻŸāĻŋ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§āĻ¨ (āĻ¯ā§‡āĻŽāĻ¨, "āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡
āĻŦāĻŋāĻŦā§ƒāĻ¤āĻŋ):

TOP_LEVEL_INCLUDE_DIR := $(find_upwards āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤)
# āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡
# āĻ¸āĻžāĻŦāĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤āĨ¤

%.o : %.c
$(CC) $(CFLAGS) -I$(TOP_LEVEL_INCLUDE_DIR) -c $(āĻ‡āĻ¨āĻĒā§āĻŸ) -o $(āĻ†āĻ‰āĻŸāĻĒā§āĻŸ)

āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¯āĻž "find_upwards" āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¤āĻž āĻšāĻ˛ āĻļā§€āĻ°ā§āĻˇ-āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨
āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻāĻŸāĻŋ āĻāĻ‡ āĻŽāĻ¤ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻž āĻĻāĻ°āĻ•āĻžāĻ°ā§€:

āĻļā§€āĻ°ā§āĻˇ:= ../../..

āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻ•āĻŋāĻ›ā§ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ¤āĻĨā§āĻ¯ āĻĨāĻžāĻ•ā§‡ āĻ¯āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻļā§€āĻ°ā§āĻˇ-āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§
āĻāĻŸāĻŋ āĻŦāĻœāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻž āĻ•āĻ āĻŋāĻ¨, āĻ•āĻžāĻ°āĻŖ ".." āĻāĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ˛āĻžāĻĻāĻž
āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ—āĻžāĻ›ā§‡āĻ°āĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ "find_upwards" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯āĻž
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻļā§€āĻ°ā§āĻˇ āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻŦāĻ˛ā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤āĨ¤ āĻ§āĻ°ā§āĻ¨, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¯ā§‡
āĻĢāĻžāĻ‡āĻ˛ "āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸" āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻļā§€āĻ°ā§āĻˇ āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ā§ˇ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

āĻļā§€āĻ°ā§āĻˇ := $(dir_noslash $(find_upwards LICENSE))

"$(find_upwards LICENSE)" āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻžāĻĨ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ;
"$(dir_noslash ...)" āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°ā§‡ āĻĻā§‡āĻ¯āĻŧ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧāĨ¤

(āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–ā§āĻ¯ āĻ¯ā§‡ "āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤" āĻŦāĻŋāĻŦā§ƒāĻ¤āĻŋāĻŸāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ‡ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡
āĻāĻ‡ āĻŽāĻ¤ āĻ•āĻŋāĻ›ā§ āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¨ā§‡āĻ‡:

$(find_upwards top_level_rules.mk) āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§āĻ¨

āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨

top_level_rules.mk āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§āĻ¨

āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ āĻŋāĻ• āĻāĻ•āĻ‡āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡āĨ¤)

āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ–ā§āĻāĻœā§‡ āĻ¨āĻž āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ—ā§‡āĻ˛ā§‡, "find_upwards" āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¸āĻš āĻŦāĻŋāĻ˛ā§āĻĄāĻŸāĻŋ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻ•āĻ°āĻŦā§‡āĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĢāĻžāĻ‡āĻ˛ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ find_upwards āĻĒā§āĻ°āĻĨāĻŽāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻŦā§‡
āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻāĻ•, āĻāĻŦāĻ‚ āĻ¤āĻžāĻ‡āĨ¤ āĻ…āĻ¨ā§āĻ¯ āĻ•āĻĨāĻžāĻ¯āĻŧ,

$(find_upwards file1 file2)

āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯

$(find_upwards file1) $(find_upwards file2)

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ–ā§āĻāĻœāĻ¤ā§‡ āĻšāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ "find_first_upwards" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨āĨ¤

āĻ–ā§āĻāĻœā§āĻ¨_āĻĒā§āĻ°āĻĨāĻŽ_āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ file1 file2 ...
āĻāĻ‡ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ "āĻĢāĻžāĻ‡āĻ¨ā§āĻĄ_āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡" āĻāĻ° āĻŽāĻ¤ā§‹ āĻ†āĻšāĻ°āĻŖ āĻ•āĻ°ā§‡ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ¯ā§‡āĻ•ā§‹āĻ¨āĻŸāĻŋāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ
āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻĢāĻžāĻ‡āĻ˛ āĻ¯āĻž āĻāĻŸāĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻŦāĻŋāĻļā§‡āĻˇāĻ¤, āĻāĻŸāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡
āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻ¯ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻĢāĻžāĻ‡āĻ˛, āĻāĻŦāĻ‚ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻŦāĻž āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŽāĻ¨ āĻĒā§āĻ°āĻĨāĻŽ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧāĨ¤
āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨āĻ“ āĻĢāĻžāĻ‡āĻ˛āĻ‡ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨āĻž āĻĨāĻžāĻ•ā§‡ āĻŦāĻž āĻ¸ā§‡āĻ‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡ .., āĻ¤āĻžāĻ°āĻĒāĻ°
../ .., āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ, āĻ¯āĻ¤āĻ•ā§āĻˇāĻŖ āĻ¨āĻž āĻāĻŸāĻŋ āĻšāĻ¯āĻŧ āĻ°ā§āĻŸ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻŦāĻž āĻāĻ•āĻŸāĻŋ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻĒā§ŒāĻāĻ›āĻžāĻ¯āĻŧ
āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤

first_available file1 file2 ...
āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻŦāĻž āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĻāĻŋāĻ¨āĨ¤ āĻāĻ‡ āĻœāĻ¨ā§āĻ¯ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽā§‡āĻ•āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽā§‡āĻļāĻŋāĻ¨ āĻŦāĻž āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ­āĻŋāĻ¯ā§‹āĻœāĻŋāĻ¤ āĻ•āĻ°āĻž, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡
āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻĢāĻžāĻ‡āĻ˛ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡. āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ–āĻžāĻ¨ā§‡ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨
āĻ†āĻŽāĻžāĻ° āĻŽā§‡āĻ•āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ:

TCL_LIB = $(first_available \
/usr/local/stow/tcl-8.4.5-nothread/lib/libtcl8.4.so \
/usr/lib/libtcl8.4.so /usr/lib/libtcl.so \
/net/na1/tcl8.4a3/lib/libtcl8.4.a \
/net/na1/tcl8.4a3/lib/libtcl8.4.sl)

āĻāĻ‡ āĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ Tcl āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻšā§‡āĻ• āĻ•āĻ°āĻŦā§‡, āĻāĻ–āĻžāĻ¨ā§‡ āĻĨāĻžāĻŽāĻŦā§‡
āĻĒā§āĻ°āĻĨāĻŽ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ¯āĻŧ. āĻ˛āĻŋāĻ™ā§āĻ• āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¤āĻžāĻ°āĻĒāĻ° $(TCL_LIB) āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻĒā§‡āĻ¤ā§‡
āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ Tcl āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĨ¤

infer_linker file1 file2 ...
āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ˛ā§‡ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ°āĻž āĻāĻ–āĻ¨āĻ“ āĻ¨āĻž āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ–ā§āĻāĻœā§āĻ¨
āĻ¤āĻžāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĢā§‹āĻ°ā§āĻŸāĻ°āĻžāĻ¨, C++ āĻŦāĻž āĻāĻ•āĻŸāĻŋ C āĻ‰ā§ŽāĻ¸ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ
āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° (āĻ¯āĻž "ld" āĻāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ˛āĻŋāĻ™ā§āĻ• āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ­āĻžāĻ˛ āĻœāĻžāĻ¨ā§‡)āĨ¤

infer_objects file1 file2 ..., āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨
$(infer_objects object1.o object2.o, *.o)

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻšā§‡āĻĄāĻžāĻ° āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ¸āĻ‚āĻ•ā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ•āĻ¨āĻ­ā§‡āĻ¨āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ makepp āĻ¸āĻ•ā§āĻˇāĻŽ
āĻ•ā§‹āĻ¨ ".o" āĻŦāĻž ".lo" āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ˛āĻŋāĻ™ā§āĻ• āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¤āĻž āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻžāĨ¤ āĻ†āĻŽāĻŋ āĻāĻ‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°
āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻĨā§‡āĻ•ā§‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻŦāĻžāĻ›āĻžāĻ‡ āĻ•āĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ
āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ ".a" āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ˛āĻŋāĻ™ā§āĻ•āĻžāĻ°āĻŸāĻŋ āĻŦā§‡āĻ›ā§‡ āĻ¨āĻŋāĻ¨
āĻĒā§āĻ°āĻžāĻ¸āĻ™ā§āĻ—āĻŋāĻ• āĻŽāĻĄāĻŋāĻ‰āĻ˛, makepp āĻ†āĻĒāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻ¸āĻ™ā§āĻ—āĻŋāĻ• āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻŦāĻžāĻ›āĻžāĻ‡ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ­āĻžāĻŦā§‡, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°
āĻĒā§āĻ°āĻžāĻ¸āĻ™ā§āĻ—āĻŋāĻ• āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ.

āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ Makepp āĻāĻ° āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽ āĻ•āĻ¨āĻ­ā§‡āĻ¨āĻļāĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡
āĻāĻ•āĻŸāĻŋ āĻšā§‡āĻĄāĻžāĻ° āĻĢāĻžāĻ‡āĻ˛ "xyz.h" āĻ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•ā§āĻ˛āĻžāĻ¸ āĻŦāĻž āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨
"xyz.o" (āĻŦāĻž "xyz.lo") āĻ¨āĻžāĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¤āĻžāĻ‡ makepp āĻāĻ° āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽ āĻœāĻ¨ā§āĻ¯
āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻž āĻāĻ• āĻŦāĻž āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻœāĻžāĻ¨āĻŋ āĻ¯ā§‡ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡
āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤āĨ¤ "#include"-āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•ā§‹āĻ¨ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻĻā§‡āĻ–ā§‡
āĻ¸ā§‡āĻ‡ āĻ‰āĻ¤ā§āĻ¸āĻ—ā§āĻ˛āĻŋ, āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡
āĻĢāĻžāĻ‡āĻ˛āĨ¤

"$(infer_objects )" āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨, āĻ¯ā§‡āĻŽāĻ¨
āĻāĻ‡:

myprog: $(infer_objects main.o other_object.o, \
**/*.o /other/library/dirs/**/*.o)
$(CXX) $(āĻ‡āĻ¨āĻĒā§āĻŸ) -o $(āĻ†āĻ‰āĻŸāĻĒā§āĻŸ) $(LIBS)

"$(infer_objects)" āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĻā§āĻŸāĻŋ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻ¨ā§‡āĻ¯āĻŧ (āĻāĻ•āĻŸāĻŋ āĻ•āĻŽāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§ƒāĻĨāĻ• āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯ā§‡āĻŽāĻ¨ āĻĻā§‡āĻ–āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡)āĨ¤
āĻĒā§āĻ°āĻĨāĻŽāĻŸāĻŋ āĻšāĻ˛ āĻāĻ• āĻŦāĻž āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻĢāĻžāĻ‡āĻ˛ āĻ¯āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻŦāĻ˛ā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ (āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻšāĻ˛
āĻāĻ–āĻžāĻ¨ā§‡ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤)āĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻŸāĻŋ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž (āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ†āĻĒāĻ¨āĻŋ a
āĻāĻ–āĻžāĻ¨ā§‡ āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ) āĻ¯āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡ āĻ˛āĻŋāĻ™ā§āĻ• āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ‡ āĻĨā§‡āĻ•ā§‡ āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨
āĻĢāĻžāĻ‚āĻļāĻ¨ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¯āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚
āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¤āĻžāĻĻā§‡āĻ° āĻĒāĻ°ā§‡, āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻĨāĻžāĻ•āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻŦāĻ¸ā§āĻ¤ā§
āĻ¯ā§‡āĻŸāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĨ¤

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ§āĻ°ā§āĻ¨ "main.o" āĻāĻ¸ā§‡āĻ›ā§‡ "main.cpp" āĻĨā§‡āĻ•ā§‡, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ "my_class.h"āĨ¤
"$(infer_objects)" "my_class.o" āĻ¨āĻžāĻŽā§‡āĻ° āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻ āĻŋāĻ• āĻ¤ā§‡āĻŽāĻ¨ āĻāĻ•āĻŸāĻž
āĻĢāĻžāĻ‡āĻ˛ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ, āĻāĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ (āĻ¯āĻĻāĻŋ āĻĻā§āĻŸāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻĢāĻžāĻ‡āĻ˛ "my_class.o" āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ
āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡, āĻāĻ•āĻŸāĻŋ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻŽā§āĻĻā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤) "infer_objects"āĻ“
"my_class.cpp" āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻāĻŸāĻŋ āĻ•āĻŋ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ•ā§€
āĻŠāĻšā§āĻ¯.

mktemp
mktemp āĻ‰āĻĒāĻ¸āĻ°ā§āĻ—
mktemp āĻ‰āĻĒāĻ¸āĻ°ā§āĻ—XXX āĻāĻ°
mktemp /
āĻāĻ•āĻŸāĻŋ āĻ…āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻ…āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡, āĻ¯āĻž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨ā§‡āĻ‡āĨ¤ āĻ¨āĻžāĻŽāĻšā§€āĻ¨
āĻāĻ•āĻ‡ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡ āĻĻā§āĻŦāĻžāĻ° āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ, āĻāĻŽāĻ¨āĻ•āĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ†āĻĒā§‡āĻ•ā§āĻˇāĻŋāĻ• āĻĒāĻžāĻĨ āĻĻāĻŋāĻ¯āĻŧā§‡āĻ“,
āĻāĻ•āĻŸāĻŋ āĻŽā§‡āĻ•āĻĒāĻŋāĻĒāĻŋ āĻ°āĻžāĻ¨ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ (āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋāĻŽā§‚āĻ˛āĻ• āĻŽā§‡āĻ• āĻŦāĻž āĻĒāĻžāĻ°ā§āĻ˛ āĻ›āĻžāĻĄāĻŧāĻž
āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ•ā§‹āĻĄ "f_mktemp" āĻ•āĻ˛)āĨ¤ āĻ¸āĻŦ āĻļā§‡āĻˇā§‡ āĻŽā§‡āĻ•āĻĒ āĻšāĻžāĻ˛āĻžāĻ¨
āĻāĻ‡ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻĻāĻŋ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĨāĻžāĻ•ā§‡ (āĻ†āĻŦāĻžāĻ° āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ›āĻžāĻĄāĻŧāĻž
āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻĒāĻžāĻ°ā§āĻ˛ āĻ•ā§‹āĻĄā§‡ āĻāĻ‡ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĢā§‡āĻ°āĻ¤)āĨ¤

āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻļā§‡āĻˇā§‡ āĻ¯ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻ• āĻŦāĻĄāĻŧ āĻšāĻžāĻ¤ā§‡āĻ° "X" āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ
āĻāĻ˛ā§‹āĻŽā§‡āĻ˛ā§‹ āĻ…āĻ•ā§āĻˇāĻ° āĻāĻŦāĻ‚ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĨ¤ āĻ¯āĻ¤ āĻŦā§‡āĻļāĻŋ āĻ†āĻ›ā§‡, āĻāĻ‡ āĻ¸āĻ‚āĻ˜āĻ°ā§āĻˇā§‡āĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻ¤āĻ¤ āĻ•āĻŽ
āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§‡, āĻ¤āĻžāĻ‡ āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĒāĻ¸āĻ°ā§āĻ— āĻĻā§‡āĻ¨ āĻ¯ā§‡āĻŽāĻ¨ "/tmp/abcāĨ¤", āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻšāĻ“āĻ¯āĻŧāĻž āĻ‰āĻšāĻŋāĻ¤
"X"s āĻ¯āĻĻāĻŋ āĻāĻ•āĻžāĻ§āĻŋāĻ• X āĻĨāĻžāĻ•ā§‡, āĻĒā§āĻ°āĻĨāĻŽ āĻ…āĻ•ā§āĻˇāĻ°āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ†āĻ‡āĻĄāĻŋ āĻĨā§‡āĻ•ā§‡ āĻ†āĻ¸ā§‡āĨ¤ āĻ¯āĻĻāĻŋ
āĻ•ā§‹āĻ¨āĻŸāĻŋ āĻ¨ā§‡āĻ‡, āĻŽāĻ¨ā§‡ āĻšāĻ¯āĻŧ āĻĻāĻļāĻŸāĻŋ āĻ›āĻŋāĻ˛, āĻ¯āĻž āĻ…āĻ¨ā§āĻŽāĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻ¯āĻĨā§‡āĻˇā§āĻŸ (8.4e17)
āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻŦāĻž Windows āĻ 3.7e15)āĨ¤ āĻ•ā§‹āĻ¨ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻ¨āĻž āĻĨāĻžāĻ•āĻ˛ā§‡, āĻ‰āĻĒāĻ¸āĻ°ā§āĻ—āĻŸāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻšāĻ¯āĻŧ
"tmp"āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡āĨ¤

āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻžāĻ¨ āĻ¨āĻžāĨ¤ āĻĻā§āĻ¯
āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻ āĻŋāĻ• āĻšāĻŦā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻ–āĻ¨āĻ‡ āĻŽā§‡āĻ•āĻĒ āĻšāĻžāĻ˛āĻžāĻ¨ āĻ¤āĻ–āĻ¨ āĻāĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤

āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻāĻŸāĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ†āĻ˛āĻžāĻĻāĻž, āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨ āĻ¤āĻŦā§‡āĻ‡ āĻāĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ•āĻ°ā§āĻŽā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤
":build_check ignore_action":

TMPFILE ;= $(mktemp) # 1 āĻ•āĻ˛; "=" āĻŽāĻžāĻ¨ā§‡ 3āĻŸāĻŋ āĻ•āĻ˛: 3āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§ˇ
A-count B-count: :build_check ignore_action
āĻ‰āĻ¤ā§āĻĒāĻžāĻĻāĻ¨-āĻāĻŦāĻ‚-āĻŦāĻŋāĻāĻ¸ >$(TMPFILE)
&grep -c /A/ $(TMPFILE) -o A-āĻ—āĻŖāĻ¨āĻž
&grep -c /B/ $(TMPFILE) -o āĻŦāĻŋ-āĻ—āĻŖāĻ¨āĻž

āĻ…āĻĨāĻŦāĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻāĻŸāĻŋ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻāĻŦāĻ‚ āĻļā§‡āĻ˛āĻ•ā§‡ āĻāĻŸāĻŋ āĻŽā§‚āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤:

TMPFILE āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻ•āĻ°ā§āĻ¨ ;= $(mktemp)
A-āĻ—āĻŖāĻ¨āĻž B-āĻ—āĻŖāĻ¨āĻž:
produce-As-and-Bs >$$TMPFILE # makepp var āĻŽāĻžāĻ¨ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ¯āĻŧ āĻ¨āĻž
fgrep -c A $$TMPFILE >A-āĻ—āĻŖāĻ¨āĻž
fgrep -c B $$TMPFILE >B-āĻ—āĻŖāĻ¨āĻž

āĻļā§‡āĻˇ āĻĢāĻ°ā§āĻŽāĻŸāĻŋ āĻ†āĻ—ā§‡āĻ° āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ā§‡āĻ° āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ‡ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

%.x: %.y
&grep foo $(āĻ‡āĻ¨āĻĒā§āĻŸ) -o $(mktemp)
&sed āĻŦāĻžāĻ° $(mktemp /)-o $(āĻ†āĻ‰āĻŸāĻĒā§āĻŸ) # &grep-āĻāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡

notdir āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ
āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ(āĻ—ā§āĻ˛āĻŋ) āĻāĻ° āĻ¨āĻ¨-āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ…āĻ‚āĻļ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ, āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻļā§‡āĻˇā§‡āĻ° āĻĒāĻ°ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§
āĻāĻ•āĻŸāĻŋ āĻĨāĻžāĻ•āĻ˛ā§‡ āĻ¸ā§āĻ˛ā§āĻ¯āĻžāĻļ āĻ•āĻ°ā§āĻ¨, āĻ…āĻĨāĻŦāĻž āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻĒā§āĻ°ā§‹ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽāĨ¤

only_generated āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ
āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§‡āĻ‡ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋ makepp āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĨā§‡āĻ•ā§‡ āĻ¨āĻ¯āĻŧā§ˇ
āĻŦāĻŋāĻ˛ā§āĻĄ āĻ‡āĻ¨āĻĢā§‹ āĻĢāĻžāĻ‡āĻ˛ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤āĨ¤

āĻāĻ‡ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° (āĻ¯āĻĻāĻŋāĻ“ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ "makeppclean" āĻšāĻ˛
āĻĒāĻ›āĻ¨ā§āĻĻā§‡āĻ° āĻŦā§ˆāĻ•āĻ˛ā§āĻĒāĻŋāĻ•):

$(āĻĢāĻ¨āĻŋ āĻ•ā§āĻ˛āĻŋāĻ¨):
&rm -f $(only_generated **/*)

only_nontargets āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ
āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§‡āĻ‡ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ āĻ¯ā§‡āĻ—ā§āĻ˛ā§‹ āĻ•ā§‹āĻ¨ā§‹ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ¨āĻ¯āĻŧ (āĻšāĻ¯āĻŧ
āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻŦāĻž āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ)āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ ("$(āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ)" āĻĻā§‡āĻ–ā§āĻ¨
makepp āĻāĻ° āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ†āĻ°ā§‹ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻœāĻžāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĢāĻžāĻ‚āĻļāĻ¨)āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ˛āĻ•ā§āĻˇā§āĻ¯, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

āĻĢā§‹āĻ¨āĻŋ: āĻŦāĻŋāĻ¤āĻ°āĻŖ

āĻŦāĻŋāĻ¤āĻ°āĻŖ:
&mkdir our_product-$(VERSION)
&cp $(filter-out %~, $(only_nontargets*)) our_product-$(VERSION)
tar cf - our_product-$(VERSION) | gzip -9c > our_product-$(VERSION).tar.gz

āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, "$(only_nontargets *)" āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ
āĻ¯ā§‡ āĻ•āĻŋāĻ›ā§ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻāĻ•āĻŸāĻŋ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ¨āĻ¯āĻŧ. "$(filter_out %~, ...)" āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ•āĻ•ā§‡ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ¯āĻŧ
āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒāĨ¤

"only_targets" āĻāĻ° āĻ…āĻ¨ā§āĻ°ā§‚āĻĒ (āĻ‰āĻĒāĻ°ā§‡ āĻĻā§‡āĻ–ā§āĻ¨), "only_nontargets" āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§‡āĻ‡ āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻœāĻžāĻ¨ā§‡ āĻ¯āĻž
āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻŸāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨
":=" āĻ…ā§āĻ¯āĻžāĻ¸āĻžāĻ‡āĻ¨āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡; āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻŦāĻž a āĻāĻ° āĻŦāĻĄāĻŋāĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨
āĻ¨āĻŋāĻ¯āĻŧāĻŽ, āĻ…āĻ¨ā§āĻ¯ āĻ¸āĻŦ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻĻā§‡āĻ–āĻž āĻšāĻŦā§‡.

āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°_āĻŦāĻžāĻ¸āĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ
āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§‡āĻ‡ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋ makepp āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĨā§‡āĻ•ā§‡ āĻ¨āĻ¯āĻŧā§ˇ
āĻŦāĻŋāĻ˛ā§āĻĄ āĻ‡āĻ¨āĻĢā§‹ āĻĢāĻžāĻ‡āĻ˛ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤, āĻ¤āĻŦā§‡ āĻ†āĻ° āĻ•ā§‹āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ¨āĻ¯āĻŧāĨ¤

āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ•ā§‹āĻ¨ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ¨ā§‡āĻ‡ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ‡ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°,
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻŦāĻŋāĻ˛ā§āĻĄ āĻœā§‹āĻ°āĻĒā§‚āĻ°ā§āĻŦāĻ• āĻ¨āĻž āĻ•āĻ°ā§‡:

$(āĻĢāĻ¨āĻŋ āĻĢā§āĻ˛āĻžāĻļ):
&rm -f $(only_stale**/*)

āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻĒāĻ•ā§āĻˇā§‡, āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ˛ā§‡āĻ–āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻ­āĻžāĻ˛ āĻ¯āĻž āĻŽā§‡āĻ•āĻĒāĻ•ā§‡ āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻ•āĻ˛ āĻ•āĻ°ā§‡
āĻŦāĻžāĻ¸āĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž, āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸ā§‡āĻ‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ­ā§āĻ•ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻ‡āĻ˛ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻ¤ā§‡ āĻšāĻŦā§‡
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ¨ā§‡āĻ‡, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸ āĻ•āĻ°āĻž āĻĢāĻžāĻ‡āĻ˛ āĻāĻ•āĻŸāĻŋ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ
āĻĢāĻžāĻ‡āĻ˛ Makepp-āĻ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻ¨ā§‡āĻ‡ āĻ•āĻžāĻ°āĻŖ makepp āĻšāĻ˛ (āĻāĻŦāĻ‚ āĻ¸āĻŽā§āĻ­āĻŦāĻ¤
āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ…āĻœā§āĻžā§‡āĻ¯āĻŧ āĻĨāĻžāĻ•āĻž āĻ‰āĻšāĻŋāĻ¤āĨ¤

āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°_āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ
āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§‡āĻ‡ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ āĻ¯ā§‡āĻ—ā§āĻ˛ā§‹ āĻ†āĻ¸āĻ˛ā§‡ āĻ•āĻŋāĻ›ā§ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯
(āĻšāĻ¯āĻŧ āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻŦāĻž āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ)āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ (āĻŽā§‡āĻ•āĻĒāĻĒ āĻ¸āĻš
āĻŦāĻŋāĻļā§‡āĻˇ āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ, "**") āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡āĨ¤ (āĻ†āĻ°ā§‹ āĻœāĻ¨ā§āĻ¯ "$(āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ )" āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĻā§‡āĻ–ā§āĻ¨
āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

āĻĢā§‹āĻ¨āĻŋ: āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ°

āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ°:
&rm -f $(only_targets*)

āĻāĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ "makepp āĻ•ā§āĻ˛āĻŋāĻ¨" āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻœāĻžāĻ¨ā§‡ āĻ¤āĻž āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻŦā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§
āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž, āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ "makeppclean" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨!

āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻœāĻžāĻ¯āĻŧāĻ—āĻž āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻāĻŸāĻŋ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¤āĻž āĻšāĻ˛ āĻŦāĻžāĻ¸āĻŋ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻāĻĄāĻŧāĻžāĻ¨ā§‹ .o āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĢāĻžāĻ‡āĻ˛
āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ‡āĻ°āĻ•āĻŽ āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ¨:

mylib.a: *.o
&rm -f $(āĻ†āĻ‰āĻŸāĻĒā§āĻŸ)
$(AR) cr $(āĻ†āĻ‰āĻŸāĻĒā§āĻŸ) $(āĻ‡āĻ¨āĻĒā§āĻŸ)

āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŋāĻ›ā§ āĻ‰ā§ŽāĻ¸ āĻĢāĻžāĻ‡āĻ˛ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛ā§āĻ¨ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻ¤ā§‡ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻž .o āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°,
āĻĻā§āĻ¯ .o āĻĢāĻžāĻ‡āĻ˛ āĻāĻ–āĻ¨āĻ“ āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻĨāĻžāĻ•āĻŦā§‡āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§‡ āĻ¤āĻžāĻ°āĻž āĻāĻ–āĻ¨āĻ“ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻŦā§‡
āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻāĻ‡ āĻ¸āĻ¤ā§āĻ¯ āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§‡āĻ“ āĻ¯ā§‡ āĻ¤āĻžāĻ°āĻž āĻ†āĻ° āĻ•ā§‹āĻ¨ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ¨āĻ¯āĻŧ. āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨
āĻāĻ‡ āĻŽāĻ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽ:

mylib.a: $(only_targets*.o)
&rm -f $(āĻ†āĻ‰āĻŸāĻĒā§āĻŸ)
$(AR) cr $(āĻ†āĻ‰āĻŸāĻĒā§āĻŸ) $(āĻ‡āĻ¨āĻĒā§āĻŸ)

āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤

āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§‡āĻ‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŦā§‹āĻāĻžāĻ¯āĻŧ āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ā§ˇ at āĻĻā§āĻ¯ āĻ¸āĻŽāĻ¯āĻŧ āĻ†āĻĒāĻ¨āĻŋ
āĻĄāĻžāĻ•āĻž "āĻļā§āĻ§ā§-āĻ˛āĻ•ā§āĻˇā§āĻ¯"āĨ¤ āĻ¯āĻĻāĻŋ "only_targets" a āĻāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻŦāĻž āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻ¨āĻŋāĻ¯āĻŧāĻŽ, āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸āĻŦ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻœāĻžāĻ¨āĻž āĻ¯āĻžāĻŦā§‡ āĻ•āĻžāĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻāĻŦāĻ‚ āĻ•āĻ°ā§āĻŽ āĻ¨āĻ¯āĻŧ
āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ¨āĻž āĻšāĻ“āĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŽā§‚āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¤āĻŦā§‡ āĻŽā§‚āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻ˛ā§‡ āĻŽā§‚āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§āĻ¨
āĻāĻ° āĻ†āĻ—ā§‡ āĻŽā§‡āĻ•āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻāĻ‡āĻ°āĻ•āĻŽ āĻāĻ•āĻŸāĻŋ ":=" āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¸āĻš:

ALL_TARGETS := $(only_targets*)

āĻ˛āĻ•ā§āĻˇā§āĻ¯ 1: āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž1
āĻ¸ā§āĻŸāĻ•

āĻ˛āĻ•ā§āĻˇā§āĻ¯ 2: āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž2
āĻ¸ā§āĻŸāĻ•

āĻ¤āĻžāĻšāĻ˛ā§‡ "only_targets" āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻœāĻžāĻ¨āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡ āĻ¨āĻžāĨ¤

āĻāĻ•āĻ‡āĻ­āĻžāĻŦā§‡, "only_targets" āĻŽā§‡āĻ•āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ‰āĻ¤ā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻœāĻžāĻ¨ā§‡ āĻ¨āĻž
āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤ āĻŽā§‡āĻ• āĻ¸āĻ™ā§āĻ—ā§‡ āĻ˛ā§‹āĻĄ. (āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻžāĻ‡āĻšā§‹āĻ• āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋāĻŽā§‚āĻ˛āĻ• āĻŽā§‡āĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ; āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨
"load_makefile" āĻŦāĻŋāĻŦā§ƒāĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨, āĻ…āĻĨāĻŦāĻž āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻŽā§‡āĻ•āĻĢāĻžāĻ‡āĻ˛ āĻ˛ā§‹āĻĄāĻŋāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨āĨ¤)

āĻ†āĻĒā§‡āĻ•ā§āĻˇāĻŋāĻ•_āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ file1 file2 āĻĢāĻžāĻ‡āĻ˛ā§Š[, āĻ¸ā§āĻ˛ā§āĻ¯āĻžāĻļ]
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻ¸ā§‡āĻ‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¨āĻžāĻŽ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ (āĻāĻ•āĻŸāĻŋ
makefile āĻ†āĻ›ā§‡)āĨ¤ āĻāĻŸāĻŋ āĻĨā§‡āĻ•ā§‡ āĻ…āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ "./" āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ†āĻŦāĻ°ā§āĻœāĻ¨āĻž āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡āĻ“ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻĒāĻĨ:

āĻĄāĻŋāĻ†āĻ‡āĻ†āĻ°:=āĨ¤
āĻ¸āĻžāĻŦāĻĄāĻŋāĻ° := ..
FNAME := $(DIR)/../otherdir/$(SUBDIR)/āĻĢāĻžāĻ‡āĻ˛
X := $(āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤_āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ $(FNAME))

If āĻļā§‹āĻ āĻļā§‹āĻ āĻļāĻŦā§āĻĻ āĻ•āĻ°āĻž āĻ¸āĻ¤ā§āĻ¯ (āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ 1) āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ˛ā§āĻ¯āĻžāĻļ āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻžāĻ° āĻ—ā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻŸāĻŋāĻ¯ā§āĻ•ā§āĻ¤
āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧ "./" āĻ†āĻ—ā§‡ āĻĨā§‡āĻ•ā§‡, āĻ¯āĻžāĻ¤ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋāĻ•ā§‡ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ āĻ¨āĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨
āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ•āĻž āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ“āĻ­āĻžāĻ°āĻ°āĻžāĻ‡āĻĄāĻŋāĻ‚ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻĒāĻĨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ‰āĻĻā§āĻŦā§‡āĻ—.

āĻ¯āĻĻāĻŋ āĻĒāĻžāĻĨ āĻ°ā§āĻŸ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻšāĻ¯āĻŧ āĻ†āĻĒāĻ¨āĻžāĻ° āĻšā§‹āĻŽ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ° āĻĒā§āĻ¯āĻžāĻ°ā§‡āĻ¨ā§āĻŸ āĻŦāĻž
āĻ†āĻĒāĻ¨āĻžāĻ° āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° "$(āĻ°ā§āĻŸ)", āĻ…āĻĨāĻŦāĻž āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœā§‡ āĻāĻ•āĻŸāĻŋ āĻĄā§āĻ°āĻžāĻ‡āĻ­ā§‡āĻ° āĻ°ā§āĻŸ (āĻāĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡
āĻĒāĻ°āĻŋāĻŦā§‡āĻļ, āĻāĻŸāĻŋ āĻœāĻ¨ā§āĻ¯āĻ“ āĻ˜āĻŸā§‡ /cygdrive/c or /c), āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŽ āĻĒāĻĨ āĻšāĻŦā§‡
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻĢāĻŋāĻ°ā§‡.

āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ file1 file2 āĻĢāĻžāĻ‡āĻ˛ā§Š[, āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ]
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻ¸ā§‡āĻ‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¨āĻžāĻŽ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ¯āĻ–āĻ¨ āĻ¯āĻžāĻ‡ āĻšā§‹āĻ• āĻ¨āĻž āĻ•ā§‡āĻ¨ āĻ†āĻĒāĻ¨āĻŋ a āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡
āĻ­āĻŋāĻ¨ā§āĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ (āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ):

source_backup.tar:
cd .. && tar cf $(relative_to $(output), ..) $(relative_to ., ..)

āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ āĻ¨āĻžāĻŽ...
āĻ¨āĻžāĻŽā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽā§‡āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ āĻŦā§‡āĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻŋāĻ°āĻŋāĻ¯āĻŧāĻĄ āĻĨāĻžāĻ•ā§‡,
āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ āĻšāĻ˛ āĻļā§‡āĻˇ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻļā§āĻ°ā§ āĻšāĻ“āĻ¯āĻŧāĻž āĻ¸āĻŦāĻ•āĻŋāĻ›ā§āĨ¤ āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ āĻšāĻ¯āĻŧ
āĻ–āĻžāĻ˛āĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚. āĻāĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻ…āĻ°ā§āĻĨ āĻšāĻ˛ āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻ¨āĻž āĻĨāĻžāĻ•āĻ˛ā§‡ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ–āĻžāĻ˛āĻŋ āĻšāĻŦā§‡,
āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻĨāĻžāĻ•ā§‡, āĻĢāĻ˛āĻžāĻĢāĻ˛ā§‡ āĻ•āĻŽ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ,

$(āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ src/foo.c src-1.0/bar.c āĻšā§āĻ¯āĻžāĻ•āĻ¸)

āĻĢāĻ˛āĻžāĻĢāĻ˛ ".c .c" āĻ‰ā§ŽāĻĒāĻ¨ā§āĻ¨ āĻ•āĻ°ā§‡āĨ¤

āĻ…āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻļāĻŦā§āĻĻ
makepp āĻ•ā§‡ āĻœāĻžāĻ¨āĻžāĻ¤ā§‡ āĻĻāĻŋāĻ¨ āĻ¯ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻ—ā§āĻ˛āĻŋ āĻ‰āĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ°āĻžāĻ¨ā§‹ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻ¤āĻžāĻĻā§‡āĻ° "āĻĢāĻ¨āĻŋ" āĻāĻ° āĻŽāĻ¤ā§‹, āĻ¯ā§‡āĻŸāĻŋ āĻ›āĻžāĻĄāĻŧāĻž āĻŽā§‡āĻ•āĻĒāĻĒ āĻ¸ā§‡āĻ‡ āĻ¨āĻžāĻŽā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ†āĻ¸āĻ˛ āĻĢāĻžāĻ‡āĻ˛ āĻ†āĻļāĻž āĻ•āĻ°ā§‡
āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡. āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ…āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻšāĻ˛ā§‡ āĻ¤āĻž āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž
āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¨ā§‹āĨ¤

āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨
āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡ āĻāĻŽāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻŦāĻžāĻ›āĻžāĻ‡ āĻ•āĻ°āĻž āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨, āĻŦāĻž āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ
āĻ¯ā§‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻāĻ–āĻ¨āĻ“ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨ā§‡āĻ‡ āĻ¤āĻŦā§‡ āĻŽā§‡āĻ•āĻĒāĻĒ āĻœāĻžāĻ¨ā§‡ āĻāĻŽāĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ¤ā§‡ āĻ¯āĻ–āĻ¨ āĻāĻŸāĻŋ āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋ āĻŽā§‚āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻļā§‡āĻˇ āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ¤ā§‡ āĻāĻŸāĻž āĻ­āĻŋāĻ¨ā§āĻ¨
āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ‡āĻ¨āĻĒā§āĻŸ āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻĨā§‡āĻ•ā§‡, āĻ¯āĻž āĻĒāĻ°ā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡āĻ“ āĻĒā§āĻ°āĻ¯ā§‹āĻœā§āĻ¯āĨ¤

Makepp āĻ¸āĻŦ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻļā§‡āĻ˛ āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ ("*", "?", āĻāĻŦāĻ‚ "[]") āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ†āĻ›ā§‡
āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ "**" āĻ¯āĻž āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻ• āĻšāĻ¸ā§āĻ¤āĻ•ā§āĻˇā§‡āĻĒāĻ•āĻžāĻ°ā§€ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡āĨ¤ (āĻāĻ‡ āĻ§āĻžāĻ°āĻŖāĻž āĻ›āĻŋāĻ˛
zsh āĻĨā§‡āĻ•ā§‡ āĻšā§āĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤) āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, "**/*.c" āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧ .c āĻ¸āĻŽāĻ—ā§āĻ° āĻ‰ā§ŽāĻ¸ā§‡ āĻĢāĻžāĻ‡āĻ˛
āĻ—āĻžāĻ› "objects/**/*.o" āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡ .o āĻĢāĻžāĻ‡āĻ˛ āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡
āĻ¸āĻžāĻŦāĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻŦāĻž āĻāĻ° āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ¸āĻžāĻŦāĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻŦāĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ¸āĻžāĻŦāĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĨ¤ āĻĻā§āĻ¯
"**" āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻ•ā§‹āĻ¨ā§‹ āĻ¸ā§āĻ¤āĻ°ā§‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ° āĻ¸āĻĢāĻŸ āĻ˛āĻŋāĻ™ā§āĻ• āĻ…āĻ¨ā§āĻ¸āĻ°āĻŖ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻž, āĻŦāĻž āĻ•āĻ°āĻŦā§‡ āĻ¨āĻž
āĻāĻŽāĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§āĻ¨ āĻ¯āĻž āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĒāĻĄāĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻĢāĻžāĻ‡āĻ˛ āĻāĻŦāĻ‚
āĻ¯ā§‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĒāĻĄāĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ "$(āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ)" āĻĻā§āĻŦāĻžāĻ°āĻž āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤

āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯āĻžāĻŦāĻ˛ā§€
āĻ‰āĻĒāĻ¸āĻ°ā§āĻ— āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ āĻ‰āĻĒāĻ¸āĻ°ā§āĻ—, āĻļāĻŦā§āĻĻ
āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻļāĻŦā§āĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒā§āĻ°āĻŋāĻĢāĻŋāĻ•ā§āĻ¸ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĒā§āĻ°āĻŋāĻĒā§‡āĻ¨ā§āĻĄ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ—āĻ‡ āĻœāĻŋāĻāĻ¨āĻ‡āĻ‰ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯
āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯ rc-āĻļā§ˆāĻ˛ā§€ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻāĻŸāĻŋ āĻ†āĻ°āĻ“ āĻĒāĻžāĻ āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĢā§āĻ¯āĻžāĻļāĻ¨ā§‡ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻāĻŸāĻžāĻ° āĻŽāĻ¤:

āĻŽāĻĄāĻŋāĻ‰āĻ˛ := abcd
X_OLD_STYLE := $(addprefix $(OBJDIR)/, $(addsuffix .o, $(MODULES)))
X_NEW_STYLE := $(OBJDIR)/$(MODULES).o # āĻĒāĻĄāĻŧāĻž āĻ•āĻŋ āĻ¸āĻšāĻœ āĻ¨āĻ¯āĻŧ?

āĻ¯ā§‹āĻ— āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ, āĻļāĻŦā§āĻĻ
āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻļāĻŦā§āĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— GNU āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯
āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯ rc-āĻļā§ˆāĻ˛ā§€ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻāĻŸāĻŋ āĻ†āĻ°āĻ“ āĻĒāĻžāĻ āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĢā§āĻ¯āĻžāĻļāĻ¨ā§‡ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻāĻŸāĻžāĻ° āĻŽāĻ¤:

X_OLD_STYLE := $(āĻ…ā§āĻ¯āĻžāĻĄāĻ¸āĻĢāĻŋāĻ•ā§āĻ¸ .o, $(āĻŽāĻĄāĻŋāĻ‰āĻ˛))
X_NEW_STYLE := $(MODULES).o

āĻ•āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ [, āĻļāĻŦā§āĻĻ]...
"āĻ•āĻ˛" āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ…āĻ¨āĻ¨ā§āĻ¯ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡
āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°āĻžāĻ‡āĻœāĻĄ āĻĢāĻžāĻ‚āĻļāĻ¨āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻœāĻŸāĻŋāĻ˛ āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻ†āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨
"āĻ•āĻ˛" āĻāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻ•ā§‡ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§ƒāĻ¤ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻļāĻŦā§āĻĻ āĻĒāĻ°ā§‡. āĻ­āĻŋāĻ¤āĻ°ā§‡
āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŽā§‡āĻ• āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ, āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻ¯āĻž āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻ¤ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧ
"āĻ•āĻ˛", āĻāĻ•āĻŸāĻŋ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹.

āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ…āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ $1, $2, "..." āĻĒāĻĄāĻŧā§āĻ¨
āĻ¤āĻžāĻ° āĻ†āĻšā§āĻŦāĻžāĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ "āĻ•āĻ˛" āĻ•ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸāĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ $0 āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻŦā§‡
āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹āĻ° āĻ¨āĻžāĻŽ (āĻ¯ā§‡āĻŽāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛) āĻ¯ā§‡ "āĻ•āĻ˛" āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻšāĻšā§āĻ›ā§‡ā§ˇ

āĻ•ā§‹āĻ¨ āĻ¸ā§€āĻŽāĻž āĻ¨ā§‡āĻ‡, āĻāĻ•āĻŸāĻŋ āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹ āĻ•āĻ¤ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻĻāĻŋāĻ¯āĻŧā§‡ "āĻ•āĻ˛" āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻŦāĻž āĻ•āĻ¤āĻ—ā§āĻ˛āĻŋ
āĻāĻ•āĻŸāĻŋ āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹ āĻ†āĻļāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ "āĻ•āĻ˛" āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻ°āĻ“ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻĒāĻžāĻ¸ āĻ•āĻ°ā§‡āĻ¨
āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤ āĻ•āĻŽ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻ˛ā§‡ āĻ•
āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹ āĻ†āĻļāĻž āĻ•āĻ°ā§‡, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ–āĻžāĻ˛āĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚āĻ¯āĻŧā§‡ āĻ­ā§‡āĻ™ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤

āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻšāĻœ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ:

āĻŦāĻžāĻ•āĻŋ = $(āĻļāĻŦā§āĻĻ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž 2, $(āĻļāĻŦā§āĻĻ $(1)),$(1))
āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž = ABCDE
āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻĨāĻŽ := $(āĻ•āĻ˛ āĻŦāĻŋāĻļā§āĻ°āĻžāĻŽ,$(āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž))

āĻāĻ–āĻžāĻ¨ā§‡, "$(butfirst)" āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡ "BCDE" āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĨāĻžāĻ•āĻŦā§‡āĨ¤

āĻāĻŦāĻ‚ āĻāĻ–āĻ¨ āĻ†āĻ°āĻ“ āĻœāĻŸāĻŋāĻ˛ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§€ āĻ¸āĻŽā§āĻ­āĻŦ āĻ¤āĻž āĻĻā§‡āĻ–āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯:

āĻŦāĻžāĻ•āĻŋ = $(āĻļāĻŦā§āĻĻ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž 2,$(āĻļāĻŦā§āĻĻ $(1)),${1})
mymap = $(āĻ¯āĻĻāĻŋ $2,$($1 āĻ•āĻ˛ āĻ•āĻ°ā§āĻ¨,$(āĻĒā§āĻ°āĻĨāĻŽ āĻļāĻŦā§āĻĻ $2)) $(āĻ•āĻ˛ $0,$1,$(āĻ•āĻ˛ āĻ°ā§‡āĻ¸ā§āĻŸ,$2)))
āĻĄāĻžāĻ‰āĻ¨āĻ•ā§‡āĻ¸ = ${makeperl lc("$1")}

UCWORDS = āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻļāĻŦā§āĻĻāĻ—ā§āĻ˛āĻŋ UPCASE
DCWORDS := $(āĻ•āĻ˛ mymap,downcase,$(UCWORDS))

āĻāĻ–āĻ¨ "$(DCWORDS)"-āĻ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ "āĻāĻ‡ āĻ¸āĻŦ āĻļāĻŦā§āĻĻ āĻ†āĻĒāĻ•ā§‡āĻ¸"āĨ¤ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻĻā§āĻŦāĻžāĻ°āĻž: āĻāĻŸāĻž āĻ¤ā§‹āĻ˛ā§‡ āĻ¨āĻž
āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻŋāĻ¨āĻž $1, "${1}" or "$(1)" āĻāĻ•āĻŸāĻŋ āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹āĻ° āĻŽāĻ§ā§āĻ¯ā§‡āĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯ā§‡āĻ¨ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ›āĻŋāĻ˛, āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻĨāĻžāĻ•ā§‡
āĻ¯ā§‡ āĻ¨āĻžāĻŽā§‡āĻ° āĻĢāĻžāĻ‚āĻļāĻ¨āĨ¤ āĻāĻŸāĻŋ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖāĻ­āĻžāĻŦā§‡ "āĻ•āĻ˛" āĻ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ‡ āĻāĻ‡āĻ—ā§āĻ˛āĻŋ
āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯:

āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž = $0 $1 $2 āĻ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ = $(āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻāĻ•āĻŸāĻŋ, āĻ¯ā§āĻ•ā§āĻ¤āĻŋ)
āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ = $(āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž, āĻāĻ•āĻŸāĻŋ, āĻ¯ā§āĻ•ā§āĻ¤āĻŋ)

"$[āĻ•āĻ˛]" āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹āĻ° "$[]" āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻŦāĻŋāĻ¤āĻ°ā§āĻ•āĻŋāĻ¤ āĻŽāĻ¨ā§‡ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋ, āĻŦāĻž āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻāĻ•āĻ‡ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ•āĻŋāĻ¨āĻž, āĻ¤āĻž āĻ¯ā§‡āĻ­āĻžāĻŦā§‡āĻ‡ āĻšā§‹āĻ• āĻ¨āĻž āĻ•ā§‡āĻ¨
āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ. āĻĒāĻ°ā§‡āĻ°āĻŸāĻŋ āĻŦā§‡āĻ›ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ•āĻžāĻ°āĻŖ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻŽā§‡āĻ• āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻŸāĻŋ āĻšāĻŦā§‡
"$[1], $[2]..." āĻāĻ•āĻŸāĻŋ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ…āĻ¸āĻŽā§āĻ­āĻŦ (āĻāĻ—ā§āĻ˛āĻŋ āĻ•āĻŋāĻ›ā§āĻ‡ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻŦā§‡ āĻ¨āĻž,
āĻ…ā§āĻ¯āĻžāĻ¸āĻžāĻ‡āĻ¨āĻŽā§‡āĻ¨ā§āĻŸ āĻāĻŽāĻ¨āĻ•āĻŋ āĻ¸āĻžā§āĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ†āĻ—ā§‡āĨ¤) āĻ¤āĻžāĻ‡, āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŽā§āĻ¯āĻžāĻ•ā§āĻ°ā§‹ āĻĨāĻžāĻ•ā§‡
āĻ¨āĻŋāĻ¯āĻŧāĻŽ, āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ¨ "$(āĻ†āĻ‰āĻŸāĻĒā§āĻŸ)" āĻāĻ° āĻŽāĻ¤ āĻāĻ•ā§āĻ¸āĻĒā§āĻ°ā§‡āĻļāĻ¨ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ• āĻ¯āĻ–āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŸāĻŋ āĻĒāĻžāĻ°ā§āĻ¸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ‡
āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¤āĻžāĻĻā§‡āĻ° "āĻ•āĻ˛" āĻĨā§‡āĻ•ā§‡ āĻ°āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡:

myrule āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨
$2: $1
mycommand $$(āĻ‡āĻ¨āĻĒā§āĻŸ)-āĻ“ $$(āĻ†āĻ‰āĻŸāĻĒā§āĻŸ)
endef
$[myrule myinput,myoutput]

āĻ›āĻžāĻāĻ•āĻ¨āĻŋ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨, āĻļāĻŦā§āĻĻ
āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻļāĻŦā§āĻĻ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ¸āĻšāĻœāĻ­āĻžāĻŦā§‡ āĻ…āĻ¨ā§āĻ¯ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻļāĻŦā§āĻĻ, āĻŦāĻž āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ (āĻ¯ā§‡āĻŽāĻ¨, "*", "?", āĻāĻŦāĻ‚ "[az]" āĻ¸ā§āĻŦā§€āĻ•ā§ƒāĻ¤), āĻ…āĻĨāĻŦāĻž āĻ¤āĻžāĻ°āĻž āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻāĻ•āĻŸāĻŋ "%" āĻ…āĻ•ā§āĻˇāĻ° āĻ†āĻ›ā§‡, āĻ¯āĻžāĻ° āĻ…āĻ°ā§āĻĨ āĻ¸ā§‡āĻ‡ āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ¤ā§‡ āĻ¯ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻŽā§‡āĻ˛ā§‡ ("*" āĻāĻ° āĻŽāĻ¤ā§‹)āĨ¤

āĻ†āĻ˛āĻžāĻĻāĻž āĻ•āĻ°āĻž āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨, āĻļāĻŦā§āĻĻ
āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻļāĻŦā§āĻĻ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ āĻ¯āĻž āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡ āĻ¨āĻžāĨ¤ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ¸āĻšāĻœāĻ­āĻžāĻŦā§‡ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻļāĻŦā§āĻĻ, āĻŦāĻž āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ (āĻ¯ā§‡āĻŽāĻ¨, "*", "?", āĻāĻŦāĻ‚ "[az]" āĻ¸ā§āĻŦā§€āĻ•ā§ƒāĻ¤), āĻ…āĻĨāĻŦāĻž
āĻ¤āĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ "%" āĻ…āĻ•ā§āĻˇāĻ° āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¯āĻžāĻ° āĻ…āĻ°ā§āĻĨ āĻ¸ā§‡āĻ‡ āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ¤ā§‡ āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻŽā§‡āĻ˛ā§‡ (āĻāĻ° āĻŽāĻ¤ā§‹
"*")āĨ¤

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

libproduction.a: $(filter_out test__*, $(wildcard*.o))

āĻ¸āĻŦ āĻ•āĻ°āĻž āĻšāĻŦā§‡ .o āĻ¯ā§‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻŦāĻž āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¸ā§‡āĻ‡āĻ—ā§āĻ˛āĻŋ āĻ›āĻžāĻĄāĻŧāĻž āĻ¯āĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§ˇ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž_,
āĻŽāĻ§ā§āĻ¯ā§‡ libproduction.a.

findstring āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨, in
āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ†āĻŦāĻŋāĻˇā§āĻ•āĻžāĻ°, āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻŦāĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻšāĻ¯āĻŧ in.

āĻĒā§āĻ°āĻĨāĻŽ āĻļāĻŦā§āĻĻ āĻļāĻŦā§āĻĻ
āĻĒā§āĻ°āĻĨāĻŽ āĻļāĻŦā§āĻĻāĻŸāĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĻāĻžāĻ“āĨ¤

āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ° āĻļāĻŦā§āĻĻ, āĻĒāĻžāĻ°ā§āĻ˛āĻ•ā§‹āĻĄ
āĻŽā§‡āĻ•āĻŽā§āĻ¯āĻžāĻĒ āĻļāĻŦā§āĻĻ, āĻĒāĻžāĻ°ā§āĻ˛āĻ•ā§‹āĻĄ
āĻāĻ•āĻ‡āĻ­āĻžāĻŦā§‡ āĻĒāĻžāĻ°ā§āĻ˛ā§‡āĻ° āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ°ā§‡ āĻĒā§āĻ°āĻ¯ā§‹āĻœā§āĻ¯ āĻĒāĻžāĻ°ā§āĻ˛āĻ•ā§‹āĻĄ āĻĒāĻžāĻ˛āĻžāĻ•ā§āĻ°āĻŽā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻļāĻŦā§āĻĻ āĻāĻŦāĻ‚ āĻĢā§‡āĻ°āĻ¤
āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻĨāĻŽ āĻŦā§ˆāĻ•āĻ˛ā§āĻĒāĻŋāĻ•āĻŸāĻŋ āĻĒā§āĻ˛ā§‡āĻ‡āĻ¨ āĻĒāĻžāĻ°ā§āĻ˛ āĻ•ā§‹āĻĄ, āĻ¯āĻ–āĻ¨ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ°ā§‚āĻĒāĻŸāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻžāĻ¸ āĻ•āĻ°ā§‡
āĻŽā§‡āĻ•-āĻ¸ā§āĻŸāĻžāĻ‡āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒāĻžāĻ°ā§āĻ˛āĻ•ā§‹āĻĄāĨ¤ āĻļāĻŦā§āĻĻ āĻĻā§āĻŸāĻŋāĻ¤ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤ā§ƒāĻ¤ āĻšāĻ¯āĻŧ
āĻŽāĻžāĻŽāĻ˛āĻžāĨ¤

āĻļāĻŦā§āĻĻāĻ—ā§āĻ˛āĻŋ $_-āĻ āĻ†āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ $_ undef āĻ¨āĻž āĻ•āĻ°āĻ˛ā§‡ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻŦā§‡āĨ¤ āĻāĻ‡ āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ "patsubst" āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻšāĻœā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ•āĻŽāĻž āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ­āĻžāĻœāĻ•,
āĻ…āĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨ āĻ…āĻ‚āĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻĒāĻžāĻ°ā§āĻ˛āĻ•ā§‹āĻĄ.

# āĻļāĻŦā§āĻĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻĄāĻŦāĻ˛ āĻĒā§āĻ¯āĻžāĻ°ā§‡āĻ¨, āĻĒāĻžāĻ°āĻ˛āĻ•ā§‹āĻĄā§‡ āĻĒā§āĻ¯āĻžāĻ°ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¤ā§‡, āĻ…āĻĨāĻŦāĻž ${} āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨:
X = $((āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ° $(VALUES), s/(.+)-(.+)/$2-$1/))
# āĻ†āĻĒāĻ¨āĻŋ āĻŽā§‡āĻ• āĻāĻ•ā§āĻ¸āĻĒā§āĻ°ā§‡āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻĒāĻžāĻ°ā§āĻ˛ $ āĻāĻ° āĻœāĻ¨ā§āĻ¯ $$ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡:
Y = $(āĻŽā§‡āĻ•āĻŽā§āĻ¯āĻžāĻĒ $(VALUES), tr/$(OLDCHARS)/$(NEWCHARS)/ āĻ…āĻĨāĻŦāĻž $$_ = 'āĻŦā§āĻ¯āĻ°ā§āĻĨ')
# āĻ†āĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻžāĻ°ā§āĻĨā§€āĻĻā§‡āĻ° āĻŦāĻžāĻĻ āĻĻāĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:
Y = $(āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ° $(VALUES), undef $_ if /no_good/)

āĻ¯ā§‹āĻ—āĻĻāĻžāĻ¨ā§‡āĻ° āĻļāĻŦā§āĻĻ1, āĻļāĻŦā§āĻĻ2
āĻĒā§āĻ°āĻĨāĻŽ āĻļāĻŦā§āĻĻ āĻāĻŦāĻ‚ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻļāĻŦā§āĻĻā§‡āĻ° āĻœā§‹āĻĄāĻŧāĻžāĻ¯āĻŧ āĻœā§‹āĻĄāĻŧāĻžāĻ¯āĻŧ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨āĨ¤

patsubst āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨, āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ, āĻļāĻŦā§āĻĻ
āĻļāĻŦā§āĻĻ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻļāĻŦā§āĻĻā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ•āĻŸāĻŋ "%" āĻ…āĻ•ā§āĻˇāĻ° āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹āĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡
āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§‡āĻ°āĻž āĻšāĻŋāĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ:

OBJS = $(patsubst %.c, object_dir/%.o, $(C_SOURCES))

C_SOURCES-āĻ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ¨ā§‡āĻ¯āĻŧ āĻāĻŦāĻ‚ object_dir-āĻ āĻāĻ•āĻŸāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧāĨ¤
āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ†āĻ°ā§‹ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤, āĻ¯ā§‡āĻŽāĻ¨, āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĒāĻžāĻ°ā§‡
āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ˛ā§‡āĻ–āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡

OBJS = $(C_SOURCES:%.c=object_dir/%.o)

āĻ¸āĻžāĻœāĻžāĻ¨ āĻļāĻŦā§āĻĻ1 āĻļāĻŦā§āĻĻ2 āĻļāĻŦā§āĻĻ3 ...
āĻļāĻŦā§āĻĻāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ†āĻ­āĻŋāĻ§āĻžāĻ¨āĻŋāĻ• āĻ•ā§āĻ°āĻŽā§‡ āĻ¸āĻžāĻœāĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸āĻĻā§ƒāĻļāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻĢāĻžāĻ˛āĻž āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚
āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĨā§‡āĻ•ā§‡ āĻ˛āĻŋāĻĄāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻŸā§āĻ°ā§‡āĻ‡āĻ˛āĻŋāĻ‚ āĻšā§‹āĻ¯āĻŧāĻžāĻ‡āĻŸāĻ¸ā§āĻĒā§‡āĻ¸ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡
āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸āĻš āĻāĻ• āĻŦāĻž āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻšā§‹āĻ¯āĻŧāĻžāĻ‡āĻŸāĻ¸ā§āĻĒā§‡āĻ¸ āĻ…āĻ•ā§āĻˇāĻ°ā§‡āĻ° āĻ•ā§āĻ°āĻŽāĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, "$(āĻ¸ā§āĻŸā§āĻ°āĻŋāĻĒ ab
āĻ—)" āĻāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ "abc"āĨ¤

āĻ¸āĻžāĻŦāĻ¸ā§āĻŸ āĻĨā§‡āĻ•ā§‡, āĻĨā§‡āĻ•ā§‡, āĻĒāĻžāĻ ā§āĻ¯
āĻŸā§‡āĻ•ā§āĻ¸āĻŸ āĻŸā§‡āĻ•ā§āĻ¸āĻŸā§‡ āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻ•ā§āĻ¸āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°ā§‡: from-āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ˜āĻŸāĻ¨āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻĻā§āĻŦāĻžāĻ°āĻž. āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•āĻ˛ āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧ. āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ,

$(subst ee,EE, āĻ°āĻžāĻ¸ā§āĻ¤āĻžāĻ¯āĻŧ āĻĢā§āĻŸ)

āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ "fEEt on the strEEt"āĨ¤

āĻļāĻŦā§āĻĻ n, āĻĒāĻžāĻ ā§āĻ¯
āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ nāĻ¤āĻŽ āĻļāĻŦā§āĻĻ āĻĒāĻžāĻ . āĻāĻ° āĻŦā§ˆāĻ§ āĻŽāĻžāĻ¨ n āĻļā§āĻ°ā§āĻ¤ā§‡ 1 āĻĨā§‡āĻ•ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§āĻ¨
āĻ…āĻĨāĻŦāĻž āĻļā§‡āĻˇā§‡ -1 āĻĨā§‡āĻ•ā§‡ āĻĒāĻŋāĻ›āĻ¨ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡āĨ¤ āĻ¯āĻĻāĻŋ n āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻļāĻŦā§āĻĻā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻŦāĻĄāĻŧ āĻĒāĻžāĻ , āĻĻā§āĻ¯
āĻŽāĻžāĻ¨ āĻ–āĻžāĻ˛āĻŋāĨ¤

āĻļāĻŦā§āĻĻ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¸ā§‚āĻšāĻ• āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž, āĻļāĻŦā§āĻĻ
āĻļāĻŦā§āĻĻ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§‚āĻšāĻ•, āĻļā§‡āĻˇ āĻ¸ā§‚āĻšāĻ•, āĻļāĻŦā§āĻĻ
āĻĒā§āĻ°āĻĨāĻŽ āĻĢāĻ°ā§āĻŽā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ¸ā§‚āĻšāĻ•āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°ā§‡āĻ¨ (āĻļā§āĻ°ā§āĻ¤ā§‡ 1 āĻĨā§‡āĻ•ā§‡ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻŦāĻž
āĻļā§‡āĻˇā§‡ -1 āĻĨā§‡āĻ•ā§‡ āĻĒāĻŋāĻ›āĻ¨ā§‡) āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ¨ āĻļāĻŦā§āĻĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°ā§āĻ¨. āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ°ā§‚āĻĒā§‡ āĻ†āĻĒāĻ¨āĻŋ
āĻ†āĻĒāĻ¨āĻŋ āĻ¯ā§‡ āĻļāĻŦā§āĻĻāĻ—ā§āĻ˛āĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻžāĻ¨ āĻ¤āĻžāĻ° āĻĒāĻ°āĻŋāĻ¸ā§€āĻŽāĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°ā§āĻ¨āĨ¤

āĻļāĻŦā§āĻĻ āĻĒāĻžāĻ 
āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻļāĻŦā§āĻĻā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻĒāĻžāĻ .

āĻŦāĻŋāĻŦāĻŋāĻ§ āĻ•āĻžāĻ°ā§āĻ¯āĻžāĻŦāĻ˛ā§€
āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ var, āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž, āĻĒāĻžāĻ ā§āĻ¯
āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻŸāĻŋ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ, Var āĻāĻŦāĻ‚ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž, āĻ…āĻ¨ā§āĻ¯ āĻ•āĻŋāĻ›ā§ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ; āĻŦāĻŋāĻƒāĻĻā§āĻ°āĻƒ
āĻ¯ā§‡ āĻļā§‡āĻˇ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ, āĻĒāĻžāĻ ā§āĻ¯, āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻļāĻŦā§āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯
āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻŽāĻžāĻ¨, var āĻāĻ° āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻŽāĻžāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻžāĻŽāĻ•āĻ°āĻŖ āĻ•āĻ°āĻž āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡
āĻ¯ā§‡ āĻļāĻŦā§āĻĻ, āĻāĻŦāĻ‚ āĻĒāĻžāĻ ā§āĻ¯ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ. āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻĒāĻžāĻ ā§āĻ¯āĻŸāĻŋāĻ¤ā§‡ āĻ¸ā§‡āĻ‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛āĻŸāĻŋāĻ° āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡,
āĻ¤āĻžāĻ‡ āĻāĻ° āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻšāĻŦā§‡āĨ¤

āĻāĻ‡ āĻ¸āĻšāĻœ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ
āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ dirs:

dirs:= abcd
āĻĢāĻžāĻ‡āĻ˛ := $(foreach dir,$(dirs),$(wildcard $(dir)/*))

āĻāĻ–āĻžāĻ¨ā§‡ āĻŸā§‡āĻ•ā§āĻ¸āĻŸ āĻšāĻ˛ "$(wildcard $(dir)/*)"āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ dir-āĻāĻ° āĻœāĻ¨ā§āĻ¯ "a" āĻŽāĻžāĻ¨ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ¯āĻŧ,
āĻ¤āĻžāĻ‡ āĻāĻŸāĻŋ "$(āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ a/*)" āĻāĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻ‡ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡; āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ‰āĻ¤ā§āĻĒāĻžāĻĻāĻ¨
"$(āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ b/*)" āĻāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛; āĻāĻŦāĻ‚ āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ, "$(āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ c/*)" āĻāĻ°āĨ¤

āĻāĻ‡ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻāĻ•āĻ‡ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ ("dirs" āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻ›āĻžāĻĄāĻŧāĻž) āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§‡:

āĻĢāĻžāĻ‡āĻ˛ := $(āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ a/* b/* c/* d/*)

āĻ¯āĻ–āĻ¨ āĻĒāĻžāĻ ā§āĻ¯ āĻœāĻŸāĻŋāĻ˛ āĻšāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĒāĻžāĻ āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨
āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛:

find_files = $(āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ $(dir)/*)
dirs:= abcd
āĻĢāĻžāĻ‡āĻ˛ := $(foreach dir,$(dirs),$(find_files))

āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ find_files āĻāĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋāĨ¤ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ˛ā§‡āĻ‡āĻ¨ "=" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ
āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤-āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖāĻļā§€āĻ˛ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛, āĻ¯āĻžāĻ¤ā§‡ āĻāĻ° āĻŽāĻžāĻ¨āĻŸāĻŋāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§ƒāĻ¤ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•āĻ˛ āĻĨāĻžāĻ•ā§‡
foreach āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž; āĻāĻ•āĻŸāĻŋ āĻ¸āĻšāĻœ-āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻž,
āĻ¯ā§‡āĻšā§‡āĻ¤ā§ find_files āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŦāĻžāĻ° āĻ•āĻ˛ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤

āĻĻā§āĻ°āĻˇā§āĻŸāĻŦā§āĻ¯: āĻāĻŸāĻŋāĻ•ā§‡ "$(foreach)" āĻŦāĻŋāĻļā§‡āĻˇ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻžāĨ¤

āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻ 
āĻ¸āĻ¤āĻ°ā§āĻ•āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ 
āĻ­ā§āĻ˛ āĻĒāĻžāĻ 
āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻŸā§‡āĻ•ā§āĻ¸āĻŸ āĻ•āĻŋāĻ›ā§āĻ‡ āĻĢā§‡āĻ°āĻ¤. āĻĒā§āĻ°āĻĨāĻŽāĻŸāĻŋ STDOUT-āĻ āĻ¯āĻžāĻ¯āĻŧ, āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻŸāĻŋ STDERR-āĻ,
āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧāĻŸāĻŋ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻ•āĻ°ā§‡āĨ¤

āĻĒā§‚āĻ°ā§āĻŦāĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻŽāĻžāĻ¤ā§āĻ°āĻž
āĻ•āĻ°āĻž āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻŽāĻžāĻ¤ā§āĻ°āĻž
āĻāĻŸāĻŋāĻ° āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨā§‡ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ­ā§āĻ•ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻĻāĻ°āĻ•āĻžāĻ°ā§€
āĻāĻ•āĻŸāĻŋ āĻŽā§‡āĻ• āĻāĻ•ā§āĻ¸āĻĒā§āĻ°ā§‡āĻļāĻ¨ āĻŽā§‚āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĢāĻžāĻ‡āĻ˛ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧ. āĻāĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ˜āĻŸā§‡
āĻ¯āĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ˛ā§āĻĄ āĻĨāĻžāĻ•ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻœāĻĄāĻŧāĻŋāĻ¤ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸ā§‡āĻŸ āĻ•āĻŋāĻ›ā§ āĻļā§‡āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ
āĻ†āĻĻā§‡āĻļ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ,

āĻĢāĻžāĻ‡āĻ˛_āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž :
# āĻļā§‡āĻ˛ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡ āĻ°āĻžāĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°ā§‡

my_program : $(&cat $(prebuild file_list))

āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ†āĻ°āĻ“ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻšāĻŦā§‡
āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ• āĻāĻ•āĻŦāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨:

āĻĢāĻžāĻ‡āĻ˛_āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž ;= $(&cat $(āĻĒā§āĻ°āĻŋ-āĻŦāĻŋāĻ˛ā§āĻĄ āĻĢāĻžāĻ‡āĻ˛_āĻ˛āĻŋāĻ¸ā§āĻŸ))

my_program1 : ao $(file_list)

my_program2 : bo $(file_list)

āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° "$(&cat file_list)" āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ makepp āĻœā§‹āĻ° āĻ•āĻ°āĻŦā§‡ āĻ¨āĻž
āĻĢāĻžāĻ‡āĻ˛_āĻ˛āĻŋāĻ¸ā§āĻŸ āĻļā§‡āĻ˛ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡ āĻ†āĻĒ-āĻŸā§-āĻĄā§‡āĻŸ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ "$(āĻĒā§āĻ°āĻŋ-āĻŦāĻŋāĻ˛ā§āĻĄ)" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡
āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻ¸ā§‡āĻ°āĻž āĻ‰āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒā§āĻ°āĻ˛ā§āĻŦā§āĻ§ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¯ā§‡āĻŽāĻ¨
āĻāĻ‡:

my_program : file_list $(&cat file_list)

āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻž āĻ•āĻžāĻ°āĻŖ "$(&cat file_list)" āĻŽā§‡āĻ•āĻĒāĻŋāĻĒ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡ āĻŽā§‚āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ
"āĻĢāĻžāĻ‡āĻ˛_āĻ˛āĻŋāĻ¸ā§āĻŸ" āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨āĨ¤

only_phony_targets āĻ¨āĻžāĻŽ
āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§‡āĻ‡ āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋ āĻ•āĻŋāĻ›ā§ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻ­ā§āĻ¯āĻŧāĻž āĻ˛āĻ•ā§āĻˇā§āĻ¯ (āĻšāĻ¯āĻŧ
āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻŦāĻž āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ)āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ (āĻŽā§‡āĻ•āĻĒāĻŋāĻĒā§‡āĻ° āĻŦāĻŋāĻļā§‡āĻˇ āĻ¸āĻš
āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ, "**") āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡āĨ¤ (āĻ†āĻ°ā§‹ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ "$(āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ)" āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨āĨ¤
āĻāĻŸāĻŋ āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻŦāĻ¸ā§āĻ¤ā§ āĻ—ā§āĻ°ā§āĻĒ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

$(āĻĢāĻ¨āĻŋ āĻŸā§‡āĻ¸ā§āĻŸ): $(only_phony_targets*/**/tests)

āĻ‰āĻ¤ā§āĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛
āĻāĻ•āĻŸāĻŋ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŦāĻ˛ā§‡ āĻ¯ā§‡ āĻāĻ° āĻŽāĻžāĻ¨ āĻ•ā§‹āĻĨāĻž āĻĨā§‡āĻ•ā§‡ āĻāĻ¸ā§‡āĻ›ā§‡āĨ¤

Perl āĻĒāĻžāĻ°ā§āĻ˛āĻ•ā§‹āĻĄ
makeperl āĻĒāĻžāĻ°ā§āĻ˛āĻ•ā§‹āĻĄ
āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ˛āĻ•ā§‡ āĻĒāĻžāĻ°ā§āĻ˛āĻ•ā§‹āĻĄ āĻŽā§‚āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻŦā§ˆāĻ•āĻ˛ā§āĻĒāĻŋāĻ• āĻĒā§āĻ˛ā§‡āĻ‡āĻ¨ āĻĒāĻžāĻ°ā§āĻ˛
āĻ•ā§‹āĻĄ, āĻ¯āĻ–āĻ¨ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻŽā§‡āĻ•-āĻ¸ā§āĻŸāĻžāĻ‡āĻ˛ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒāĻžāĻ°ā§āĻ˛āĻ•ā§‹āĻĄ āĻĒāĻžāĻ¸ āĻ•āĻ°ā§‡
āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖ.

āĻĻā§āĻ°āĻˇā§āĻŸāĻŦā§āĻ¯, āĻ¯ā§‡, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻŽāĻ¤ā§‹, āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĄāĻŋāĻ˛āĻŋāĻŽāĻŋāĻŸāĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¨āĻžāĻ“ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻāĻ•āĻ• āĻŦāĻž āĻĄāĻŦāĻ˛ āĻ‰āĻĻā§āĻ§ā§ƒāĻ¤ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻāĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ perlcode. āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨
āĻļā§‡āĻˇ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ:

VAR = 1
VAR1 = ${perl ($VAR + 1) * 3}
VAR2 = $(perl do { $VAR *= 3; āĻĢā§‡āĻ°āĻ¤ $VAR + 1 } āĻšāĻ˛ā§‡ $VAR)
VAR3 = $(makeperl $(VAR1) * 3 + $$VAR) # āĻāĻ•āĻŸāĻŋ Make var āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻĒāĻžāĻ°ā§āĻ˛ var
VAR = $((āĻĒāĻžāĻ°ā§āĻ˛ āĻ¯āĻĻāĻŋ(...) { ... }))

āĻ…āĻĒā§āĻ°āĻ•ā§ƒāĻ¤ āĻļāĻŦā§āĻĻ
āĻ‡āĻ™ā§āĻ—āĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻļāĻŦā§āĻĻā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ†āĻ¸āĻ˛ā§‡ āĻ­ā§āĻ¯āĻŧāĻž āĻ˛āĻ•ā§āĻˇā§āĻ¯, āĻāĻŦāĻ‚ āĻāĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡
āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻāĻŸāĻŋ āĻāĻ‡ āĻŽāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:

$(āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻŋāĻĨā§āĻ¯āĻž): my_program

$(āĻĢāĻ¨āĻŋ āĻ•ā§āĻ˛āĻŋāĻ¨):
&rm -f *.o my_program

āĻ†āĻĒāĻ¨āĻŋ āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻāĻ‡āĻ°āĻ•āĻŽ āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ• āĻŦāĻž āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻ•ā§‡ āĻ¨āĻ•āĻ˛ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻ˜ā§‹āĻˇāĻŖāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨
āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽā§‡āĻ•āĻĢāĻžāĻ‡āĻ˛:

āĻĢā§‹āĻ¨āĻŋ: āĻ¸āĻŦ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ°

āĻ›āĻžāĻĒāĻžāĻ¨ā§‹ āĻĒāĻžāĻ 
āĻŸā§‡āĻ•ā§āĻ¸āĻŸ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻĢā§‡āĻ°āĻ¤. āĻāĻŸāĻŋ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻ°āĻ•āĻžāĻ°ā§€, āĻ¯āĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻž āĻ•āĻ°ā§‡āĻ¨
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ•ā§‡āĻ¨ āĻ¤āĻž āĻ•āĻ°ā§‡ āĻ¤āĻž āĻŦā§āĻā§āĻ¨āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ,

XYZ := $(āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ $(patsubst %.c, %o, $(SOURCE_FILES)))

"patsubst" āĻ•āĻ˛ā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ āĻ•āĻ°āĻŦā§‡āĨ¤

XYZ := $(patsubst %.c, %o, $(āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ $(SOURCE_FILES)))

"patsubst" āĻ•āĻ˛ā§‡ āĻļā§‡āĻˇ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ āĻ•āĻ°āĻŦā§‡āĨ¤

āĻ–ā§‹āĻ˛ āĻļā§‡āĻ˛-āĻ•āĻŽāĻžāĻ¨ā§āĻĄ
āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻļā§‡āĻ˛ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĨā§‡āĻ•ā§‡ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ, āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻžāĻ‡āĻ¨ āĻ¸ā§āĻĒā§‡āĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤

āĻĻā§āĻ°āĻˇā§āĻŸāĻŦā§āĻ¯, āĻ¯ā§‡, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻŽāĻ¤ā§‹, āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĄāĻŋāĻ˛āĻŋāĻŽāĻŋāĻŸāĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¨āĻžāĻ“ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡
āĻāĻ•āĻ• āĻŦāĻž āĻĄāĻŦāĻ˛ āĻ‰āĻĻā§āĻ§ā§ƒāĻ¤ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻāĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻļā§‡āĻ˛-āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĨ¤ āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨
āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§‡:

āĻ¤āĻžāĻ°āĻŋāĻ– = $(āĻļā§‡āĻ˛ āĻ¤āĻžāĻ°āĻŋāĻ–) # āĻ†āĻ°āĻ“ āĻ­āĻžāĻ˛: $(āĻĒāĻžāĻ°ā§āĻ˛ āĻ¸ā§āĻ•ā§‡āĻ˛āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻ¸āĻŽāĻ¯āĻŧ)
VAR = ${{āĻļā§‡āĻ˛ f() { āĻ‡āĻ•ā§‹ āĻšā§āĻ¯āĻžāĻ˛ā§‹; }; f}}

xargs āĻ•āĻŽāĻžāĻ¨ā§āĻĄ, āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ[, āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ [, āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯]]
āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻžāĻ‡āĻ¨-āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ
āĻ•āĻŽāĻžāĻ¨ā§āĻĄ, āĻāĻŦāĻ‚ āĻ¯āĻ¤āĻŸāĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻ…āĻ¨ā§‡āĻ• āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§‡āĻˇ āĻ¨āĻž āĻ•āĻ°ā§‡ āĻļā§‡āĻˇ āĻ•āĻ°ā§āĻ¨
āĻ˛āĻŽā§āĻŦāĻž (āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ 1000) āĻ…āĻ•ā§āĻˇāĻ°āĨ¤

āĻāĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ āĻšāĻ˛ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯ā§‡āĻ° āĻ¸ā§€āĻŽāĻž āĻ…āĻ¤āĻŋāĻ•ā§āĻ°āĻŽ āĻ•āĻ°āĻž āĻāĻĄāĻŧāĻžāĻ¨ā§‹āĨ¤
āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¯āĻĻāĻŋ āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻĢāĻžāĻ‡āĻ˛ āĻĨāĻžāĻ•ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻ†āĻĒāĻ¨āĻžāĻ° āĻšāĻžāĻ‡āĻŦā§‡āĻ¨
āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ (āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻĨāĻžāĻ•āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ, āĻ•āĻžāĻ°āĻŖ "makeppclean" āĻ†āĻ°āĻ“ āĻĻāĻ•ā§āĻˇ)
āĻāĻ‡ āĻŽāĻ¤ āĻ•āĻŋāĻ›ā§ āĻĻā§‡āĻ–ā§āĻ¨:

$(āĻĢāĻ¨āĻŋ āĻ•ā§āĻ˛āĻŋāĻ¨):
$(xargs $(RM), $(only_targets**/*))

āĻāĻŸāĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻĒāĻžāĻ°ā§āĻļā§āĻŦ-āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ“ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯ā§‡ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĨāĻžāĻ•āĻ˛ā§‡ āĻ•ā§‹āĻ¨ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻšāĻ¯āĻŧ āĻ¨āĻž
āĻ–āĻžāĻ˛āĻŋ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻŦāĻŋāĻ˛ā§āĻŸāĻ‡āĻ¨ &rm āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ­āĻžāĻ˛ āĻšāĻŦā§‡,
āĻ•āĻžāĻ°āĻŖ āĻŦāĻŋāĻ˛ā§āĻŸāĻ‡āĻ¨ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻžāĻ°ā§āĻ˛ā§‡āĻ° āĻŽā§‡āĻŽāĻ°āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§:

$(āĻĢāĻ¨āĻŋ āĻ•ā§āĻ˛āĻŋāĻ¨):
&rm -f $(only_targets**/*)

āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒā§‹āĻ¸ā§āĻŸāĻĢāĻŋāĻ•ā§āĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ‡
āĻĒā§āĻ¨āĻƒāĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ• āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻ°āĻ•āĻžāĻ°ā§€, āĻ¯ā§‡āĻŽāĻ¨ (āĻ¯āĻĻāĻŋāĻ“ āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŦāĻžāĻ° &āĻ‡āĻ•ā§‹ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻŦā§‡):

āĻĒā§āĻ°āĻ•āĻžāĻļ:
&rm -f $@
$@ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ•āĻ°ā§āĻ¨
$(xargs echo, $(only_nontargets**/*), >> $@)

āĻāĻ‡ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡āĻ° āĻ•āĻŋāĻ›ā§ GNU āĻŽā§‡āĻ• āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡āĨ¤

āĻĻāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻŽā§‡āĻ•āĻĢāĻžāĻ‡āĻ˛ āĻ‡āĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•āĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§‡āĻŽāĻ¨
āĻāĻ•ā§āĻ¸āĻĒā§‹āĻ°ā§āĻŸ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖ, āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻŦāĻž āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ˛āĻžāĻ‡āĻ¨ āĻ¨āĻŽā§āĻŦāĻ° 0 āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸ āĻ•āĻ°āĻŦā§‡āĨ¤

onworks.net āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ makepp_functions āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨


āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻāĻŦāĻ‚ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ¸ā§āĻŸā§‡āĻļāĻ¨

āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœ āĻāĻŦāĻ‚ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ…ā§āĻ¯āĻžāĻĒ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨

āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ—ā§āĻ˛āĻŋ

Ad