āĻāĻāĻŋ āĻšāĻ˛ 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 āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨