์˜์–ดํ”„๋ž‘์Šค์–ด์ŠคํŽ˜์ธ์–ด

Ad


์˜จ์›์Šค ํŒŒ๋น„์ฝ˜

Metaconfig - ํด๋ผ์šฐ๋“œ์—์„œ์˜ ์˜จ๋ผ์ธ

Ubuntu Online, Fedora Online, Windows ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” MAC OS ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํ†ตํ•ด OnWorks ๋ฌด๋ฃŒ ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด์—์„œ Metaconfig๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

์ด๊ฒƒ์€ Ubuntu Online, Fedora Online, Windows ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” MAC OS ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๋ฌด๋ฃŒ ์˜จ๋ผ์ธ ์›Œํฌ์Šคํ…Œ์ด์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OnWorks ๋ฌด๋ฃŒ ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” Metaconfig ๋ช…๋ น์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ:

์ด๋ฆ„


Metaconfig - ๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ๊ธฐ

๊ฐœ์š”


๋ฉ”ํƒ€ ๊ตฌ์„ฑ [ -dhkmostvwGMV ] [ -L DIR ]

๊ธฐ์ˆ 


๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๋ฌด์—‡์„ ๋ชจ๋ฅธ๋‹ค๋ฉด
์Šคํฌ๋ฆฝํŠธ ๊ตฌ์„ฑ์€ ๋‹ค์Œ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ์„ธ์š”. ์ด์šฉ ๊ฐ€์ด๋“œ ์ด ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€์˜ ์„น์…˜. ๋„ค๊ฐ€ ์›ํ•œ๋‹ค๋ฉด
์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ „์ฒด(๊ณต์‹) ์„ค๋ช… ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๋ฐ ๊ทธ ๋‹จ์œ„๋Š” ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
๋ช…์‹œ ๋ถ€๋ถ„. ๋‹ค์Œ์€ ์ง€์‹์ด ํ’๋ถ€ํ•œ ๋ถ„๋“ค์„ ์œ„ํ•œ ๋น ๋ฅธ ์†Œ๊ฐœ ๋ฐ ์ฐธ๊ณ  ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž.

๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์„ธํŠธ์—์„œ ์ž‘๋™ ๋‹จ์œ„ Metaconfig๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ด์‹์„ฑ. ๊ฐ ๋‹จ์œ„๋Š” ๋…๋ฆฝ์ ์ด๋ฉฐ ์–ด๋””์—๋„ ๋“ฑ๋กํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๊ณต๊ฐœ U ๋””๋ ‰ํ† ๋ฆฌ๋‚˜ ๊ฐœ์ธ U ๋””๋ ‰ํ† ๋ฆฌ์— ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ ์™ธ์—๋Š”. ๋งŒ์•ฝ์—
dist ํŒจํ‚ค์ง€(metaconfig๊ฐ€ ์ผ๋ถ€์ž„)๊ฐ€ LIB์— ์„ค์น˜๋œ ๋‹ค์Œ ๊ณต์šฉ U
๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” LIB/dist/mcon/U์ž…๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์—์„œ LIB ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” /usr/share/dist์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์˜
๊ฐœ์ธ U ๋””๋ ‰ํ„ฐ๋ฆฌ(์žˆ๋Š” ๊ฒฝ์šฐ)๋Š” ํŒจํ‚ค์ง€์˜ ์ตœ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ฌ๋ฆฌ๊ธฐ ์ „์— ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ยท ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์—ฌ ํŒจํ‚ค์ง€์˜ ์ตœ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— .package ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํŒฉํ‚ค๋‹ˆํŠธ.
์ด ํ”„๋กœ๊ทธ๋žจ์€ ๊ท€ํ•˜์˜ ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด ์งˆ๋ฌธํ•˜๊ณ  ๊ท€ํ•˜๊ฐ€ ๋งํ•œ ๋‚ด์šฉ์„ ๊ธฐ์–ตํ•˜์—ฌ
๋ชจ๋“  dist ํ”„๋กœ๊ทธ๋žจ์€ ๋˜‘๋˜‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ยท ์šฉ์–ด์ง‘(LIB/dist/mcon)์„ ์ฐธ์กฐํ•˜๊ณ  ์‰˜ ์Šคํฌ๋ฆฝํŠธ์™€ C ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.
Metaconfig๊ฐ€ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋Š” ๊ธฐํ˜ธ ์ธก๋ฉด์—์„œ. ๊ตณ์ด ๋งํ•  ํ•„์š”๋Š” ์—†์–ด
Metaconfig๊ฐ€ ์–ด๋–ค ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”์ง€ ์•Œ์•„๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ยท ์ข…์†๋  Makefile ๋˜๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ .SH ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์„ฑ์— ์˜ํ•ด ์ •์˜๋œ ๊ฐ’์— ๋Œ€ํ•ด. ๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๋‹ค. makeSH ๋‹น์‹ ์„ ๋„์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ผ๋ฐ˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ script.SH ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ํŽธ์ง‘์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ .SH ํŒŒ์ผ์—์„œ ์ˆ˜ํ–‰๋˜์–ด ๋ณ€์ˆ˜ ๊ตฌ์„ฑ ๋ถ€๋ถ„์„
์Šคํฌ๋ฆฝํŠธ์˜ ์ƒ๋‹จ ๋ถ€๋ถ„(๋‹ค์Œ์— ์˜ํ•ด ์ƒ์„ฑ๋œ ์ธ๋ผ์ธ ์ฃผ์„ ์ฐธ์กฐ) makeSH .SH ๋‚ด์—์„œ
ํŒŒ์ผ).

ยท ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— MANIFEST.new ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ๋‹ค์Œ์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.
๋‹น์‹ ์˜ ํŒจํ‚ค์ง€. ์ด ํŒŒ์ผ์€ ๋น„๊ณต๊ฐœ๋กœ ์œ ์ง€๋˜๋ฉฐ ์ตœ์ข… ํŒŒ์ผ์˜ ์ผ๋ถ€๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ถ„ํฌ. (ํŽธ์˜์ƒ MANIFEST ํŒŒ์ผ์€ ๋‹ค์Œ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ if
์•„์ง MANIFEST.new ํŒŒ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค.) ํŒŒ์ผ ์ด๋ฆ„์€ ๊ฐ ํŒŒ์ผ์˜ ์ฒซ ๋ฒˆ์งธ ํ•„๋“œ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์„ . ๊ณต๋ฐฑ ๋’ค์— ํŒŒ์ผ์„ ์„ค๋ช…ํ•˜๋Š” ์งง์€ ์ฃผ์„์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค์ง
์†Œ์Šค ํŒŒ์ผ์ด ๊ฑฐ๊ธฐ์— ๋‚˜์—ด๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ˆ˜ ํŒŒ์ผ ํŒจ์น˜ ๋ ˆ๋ฒจ.h (์ด๊ฒƒ์€
ํŒจ์น˜ ๋„๊ตฌ์— ์˜ํ•ด ์ฒ˜๋ฆฌ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. -- ์ฐธ์กฐ ๊ผญ(1))์€
MANIFEST.new ํŒŒ์ผ์ด์ง€๋งŒ ์ผ๋ถ€ ๋„๊ตฌ์—์„œ๋Š” ์ž๋™์œผ๋กœ ๋ฌด์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝํ—˜์ƒ,
RCS์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ํŒŒ์ผ๋งŒ ์—ฌ๊ธฐ์— ๋‚˜์—ด๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŒจ์น˜ ๋ ˆ๋ฒจ.h ํŒŒ์ผ ์กด์žฌ
ํ•œ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์˜ˆ์™ธ.

ยท ์„ ํƒ์ ์œผ๋กœ ๋‚ด๋ณด๋‚ธ ๋ฒ„์ „์ด ๋  MANIFEST ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ท€ํ•˜์˜ MANIFEST.new. ํ•ด๋‹น ํŒŒ์ผ์€ ๋ฆด๋ฆฌ์Šค์˜ ์ผ๋ถ€๋กœ ๋งŒ๋“ค์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋‘ ๋ฆด๋ฆฌ์Šค ๋ชจ๋‘์— ๋‚˜์—ด๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
MANIFEST.new ๋ฐ MANIFEST ์ž์ฒด. ์ค‘ ํ•˜๋‚˜ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์œ ๋‹›์€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค
ํŒŒ์ผ์„ ํ™•์ธํ•˜๊ณ  ๊ตฌ์„ฑ์ด ๋ฆด๋ฆฌ์Šค ํ™•์ธ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๊ฐ•์ œํ•˜์—ฌ ๋ชจ๋“  ํŒŒ์ผ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
๋ฐฐํฌํŒ์˜ ์ผ๋ถ€๊ฐ€ ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. MANIFEST ๋ฐ MANIFEST.new ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋งํฌ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ตฌ๋ณ„๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ยท ์ˆ˜์ •ํ•˜๋ ค๋Š” .U ํŒŒ์ผ์„ ๊ฐœ์ธ U ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  .U ํŒŒ์ผ
๊ฐœ์ธ U ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๊ณต๊ฐœ U ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ณด๋‹ค ์šฐ์„ ์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฐฐ ๊ทœ์น™์„œ. ์˜ˆ๋ฅผ ๋“ค์–ด, ์–ด๋–ค ์œ ๋‹›์„ ๊ฐ•์ œ๋กœ ํฌํ•จ์‹œํ‚ค๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ End.U๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํŒŒ์ผ์„ .U ๋””๋ ‰ํ† ๋ฆฌ์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ข…์† ํ•ญ๋ชฉ์œผ๋กœ ์›ํ•˜๋Š” ์œ ๋‹›์˜ ์ด๋ฆ„์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.
?MAKE: ๋ผ์ธ์˜ ๋. ํŠน์ • ์œ ๋‹›์€ ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ๋งŒ ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Warn_*.U ๋ฐ Chk_*.U ํ˜•์‹์ž…๋‹ˆ๋‹ค. ํŠน์ • ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
Myinit.U๋ฅผ ํŒจํ‚ค์ง€์˜ ๊ฐœ์ธ U ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณต์‚ฌํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ 
ํ•ด๋‹น ๋‹จ์œ„์— ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋‹ฌ๋ฆด ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ. ๊ทธ๋Ÿฌ๋ฉด ๊ตฌ์„ฑ ํŒŒ์ผ ๋ฐ ์„ ํƒ์ ์œผ๋กœ
๊ตฌ์„ฑ_h.SH ํŒŒ์ผ(์†Œ์Šค์—์„œ C ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ) ์ƒ์„ฑ๋œ ํŒŒ์ผ์€
ํ•„์š”ํ•œ ๊ฒฝ์šฐ MANIFEST.new์— ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š”.
MANIFEST ํŒŒ์ผ.

์ƒˆ ์žฅ์น˜๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

ยท ์œ ์‚ฌํ•œ ์œ ๋‹›์„ ์ƒˆ๋กœ์šด .U ํŒŒ์ผ๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•œ ์ด๋ฆ„์€ ๋‹ค์Œ์˜ ์ด๋ฆ„์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์žฅ์น˜์—์„œ ์ƒ์„ฑ๋œ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋‹จ์ง€ ์‚ฌ์šฉ์ž์˜ ํŽธ์˜๋ฅผ ์œ„ํ•œ ๊ฒƒ์ผ ๋ฟ,
์š”๊ตฌ ์‚ฌํ•ญ. ํŒŒ์ผ ์ด๋ฆ„์ด ์ž˜๋ฆฌ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด 12์ž ์ดํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ RCS๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์•„๋งˆ๋„ 10๊ฐœ ์ดํ•˜๊ฐ€ ๋˜์–ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
a .U,v ๋์— ์ž˜๋ฆฌ์ง€ ์•Š๊ณ  ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Metaconfig๋Š” ์ฒซ ๊ธ€์ž์˜ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
์ด ์žฅ์น˜์—์„œ ์‹ค์ œ๋กœ ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋ฏ€๋กœ ๋Œ€๋ฌธ์ž๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์‰˜ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์œ ๋‹› ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

ยท ์›ํ•˜๋Š” ๋Œ€๋กœ ์ƒˆ .U ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ?MAKE: ๋ผ์ธ์€
์˜์กด์„ฑ; ์ตœ์ข… ๋ชฉ๋ก ์ฝœ๋ก  ์•ž์—๋Š” ์ด ์žฅ์น˜๊ฐ€ ์ •์˜ํ•˜๋Š” ๋ชจ๋“  ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋งˆ์ง€๋ง‰ ์ฝœ๋ก  ๋’ค์—๋Š” ์ด ๋‹จ์œ„๊ฐ€ ์˜์กดํ•˜๋Š” ๋ชจ๋“  ๋ณ€์ˆ˜(๋˜๋Š” ๋‹ค๋ฅธ ๋‹จ์œ„)๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์ด ๋ชฉ๋ก์ด ์ •ํ™•ํ•˜๋‹ค๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ข…์†์„ฑ์ด ์„ ํƒ์‚ฌํ•ญ์ด๊ณ 
๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ข…์†์„ฑ ์•ž์— '+' ๊ธฐํ˜ธ๋ฅผ ๋ถ™์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋งŒํผ
์‹ค์ œ๋กœ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ๊ธฐํ˜ธ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๋‹จ์œ„๊ฐ€ ๋กœ๋“œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ๋‹จ์œ„๋กœ.

ยท ๊ฐ€๋Šฅํ•œ ํ•œ, ๋‹ค์Œ์— ์ •์˜๋œ ์‰˜ ๋ณ€์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์น˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜ํ™”ํ•˜์‹ญ์‹œ์˜ค.
?INIT: ๋ผ์ธ. ๊ทธ๋Ÿฌ๋ฉด ๋ณ€์ˆ˜ ์ •์˜๊ฐ€ Init.U ์œ ๋‹›์œผ๋กœ ์ด๋™๋ฉ๋‹ˆ๋‹ค.
Init.U ๋‹ค์Œ์— ํฌํ•จ๋œ Myinit.U์˜ ์ •์˜์— ์˜ํ•ด ์žฌ์ •์˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ยท ?H: ๋ผ์ธ์œผ๋กœ ์›ํ•˜๋Š” C ๊ธฐํ˜ธ์˜ ์ •์˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ค„
?H:?%<: .U ํŒŒ์ผ์˜ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์ตœ์ข… config.h ํŒŒ์ผ์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
Metaconfig๋Š” ์ด ์žฅ์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. %<๋Š” ์žฅ์น˜ ์ด๋ฆ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
๋‹ค์Œ์„ ๋”ฐ๋ž๋‹ค๋ฉด ์ด๋Š” ํŒŒ์ผ ์ด๋ฆ„์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค(.U ์ œ์™ธ).
ํ˜‘์•ฝ. ๋ณ€์ˆ˜ ์ค‘ ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ ํ•ญ์ƒ ๊ฐ ?H: ํ–‰์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.
์ค„ ์•ž๋ถ€๋ถ„์˜ ๋Œ€์ฒด๋Š” ์ฃผ์„์„ ๋งˆ์น˜์ง€ ์•Š๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์‰˜
d_๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ด๋Ÿฐ ์ผ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•˜์„ธ์š”. ?%<:๋ฅผ ์ƒ๋žตํ•˜๋ฉด
Metaconfig๋Š” ์ •์˜๊ฐ€ ํ•„์š”ํ•œ ๊ธฐํ˜ธ๋ฅผ ์ง๊ด€ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
config.h์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

ยท ์šฉ์–ด์ง‘ ์ •์˜๋ฅผ ?S: ์‰˜ ๋ณ€์ˆ˜์šฉ ์ค„ ๋ฐ ?C: C์šฉ ์ค„๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
์ „์ฒ˜๋ฆฌ๊ธฐ ๋ณ€์ˆ˜. ์˜ˆ๋ฅผ ๋ณด๋ ค๋ฉด ํ˜„์žฌ ๋‹จ์œ„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค
๊ฐ ํ•ญ๋ชฉ์€ ์™ผ์ชฝ ๋งž์ถค ๊ธฐํ˜ธ ์ด๋ฆ„์œผ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๊ฐ ํ•ญ๋ชฉ์€ ?C:๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ๋˜๋Š”
?์—์Šค:. ์„ . C ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ ํ•ญ๋ชฉ์„ ๋ณ€ํ™˜ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
config.h์— ๋Œ€ํ•œ ์ฃผ์„ ์šฉ์–ด์ง‘์€ ์ด์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

ยท ๋ชจ๋“  ์ˆœ์„œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”. ๋ผ์ธ ๋งž์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

?RCS: ๋ฐ ?X: ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฃผ์„์ž…๋‹ˆ๋‹ค.
?MAKE: ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์ข…์†์„ฑ
?Y: ๋‹จ์œ„ ๋ ˆ์ด์•„์›ƒ ์ง€์‹œ๋ฌธ
?S: ์šฉ์–ด์ง‘ ์…ธ ์ •์˜
?C: ์šฉ์–ด์ง‘ C ์ •์˜
?H: config.h ์ •์˜
?M: confmagic.h ์ •์˜
?W: ์›ํ•˜๋Š” ๊ธฐํ˜ธ
?V: ๋ณด์ด๋Š” ๊ธฐํ˜ธ
?F: ๋ณธ ๊ธฐ๊ธฐ์—์„œ ์ƒ์„ฑ๋œ ํŒŒ์ผ
?T: ์‚ฌ์šฉ๋œ ์ž„์‹œ ์‰˜ ๊ธฐํ˜ธ
?D: ์„ ํƒ์  ์ข…์†์„ฑ ๊ธฐ๋ณธ๊ฐ’
?O: ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋‹จ์œ„๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
?LINT: ๊ธˆ์†์„ฑ ํžŒํŠธ
?INIT: ์‰˜ ๊ธฐํ˜ธ ์ดˆ๊ธฐํ™”

๋‹ค์Œ์€ ์ค„์˜ ์ˆœ์„œ์™€ ํ—ˆ์šฉ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ˜•์‹์„ ๋ณด์—ฌ์ฃผ๋Š” ์˜ˆ์ž…๋‹ˆ๋‹ค.

?RCS: $RCS-ID$
?RCS: ์ €์ž‘๊ถŒ ์ •๋ณด
?RCS: $RCS-๋กœ๊ทธ$
?์—‘์Šค:
?X: ์ธ์œ„์ ์ธ ์˜ˆ
?์—‘์Šค:
?MAKE:d_one XNUMX: XNUMX +XNUMX XNUMX
?MAKE: -$@% ์ถ”๊ฐ€ ์„ ํƒ
?Y:๊ธฐ๋ณธ๊ฐ’
?S:d_one:
?S: ์ฒซ ๋ฒˆ์งธ ์‰˜ ๊ธฐํ˜ธ, ์กฐ๊ฑด๋ถ€๋กœ ONE์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
?์—์Šค:.
?S:๋‘:
?S: ๋‘ ๋ฒˆ์งธ ์‰˜ ๊ธฐํ˜ธ, XNUMX์— ๋Œ€ํ•œ ๊ฐ’.
?์—์Šค:.
?์›๋ฟ”:
?C: ์ฒซ ๋ฒˆ์งธ C ๊ธฐํ˜ธ.
?์”จ:.
?C:๋‘˜:
?C: ๋‘ ๋ฒˆ์งธ C ๊ธฐํ˜ธ.
?์”จ:.
?H:#$d_one XNUMX /**/
?H:#define TWO "$two"
?H:#$d_one ONE_TWO "$two"
?์‹œ๊ฐ„:.
?M:ํ”Œ๋ฆฝ: HAS_FLIP
?M:#ifndef HAS_FLIP
?M:#define ํ”Œ๋ฆฝ(x) ํ”Œ๋กญ(x)
?M:#endif
?์ค‘:.
?W:%<:one_two
?V:p_XNUMX p_two:p_three
?F:ํŒŒ์ผ ./ftest !tmp
?T:tmp var
?D:two='undef'
?LINT:XNUMX๊ฐœ ๋ณ€๊ฒฝ
?INIT:two_init='2'
: ์œ ๋‹›์„ ๊ตฌํ˜„ํ•˜๋Š” ์‰˜ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
p_one='ํ•˜๋‚˜'
p_two='๋‘'
p_์„ธ=""

ํ•œ ๋ฒˆ ๋” ๋งํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ๋‹จ์œ„ ์ •์˜๋Š” ๋ชจ์กฐํ’ˆ ํ•˜๋‚˜๋งŒ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ๊ฒƒ
๋‹ค๋ฅธ ๊ฐ€๋Šฅ์„ฑ. ๊ทธ๋Ÿฐ ์œ ๋‹›์€ ์–ด์จŒ๋“  ๊ฑฐ์˜ ์“ธ๋ชจ๊ฐ€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค... ์ข€ ๋”
๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์€ ์—ฌ๊ธฐ์— ์„ค๋ช…๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๋ช…์‹œ ๋” ๋งŽ์€ ์„น์…˜
์™„์ „ํ•œ ์ •๋ณด.

ยท ์žฅ์น˜๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๊ณต์šฉ ๋˜๋Š” ๊ฐœ์ธ U ๋””๋ ‰ํ† ๋ฆฌ์— ๋„ฃ์Šต๋‹ˆ๋‹ค.

ยท ์žฌ๋ฐฉ์†ก ๋ฉ”ํƒ€ ๊ตฌ์„ฑ.

ยท ๊ท€ํ•˜์˜ ์žฅ์น˜๋ฅผ ๋‹ค์Œ์œผ๋กœ ๋ณด๋‚ด์‹ญ์‹œ์˜ค. [์ด๋ฉ”์ผ ๋ณดํ˜ธ] (Raphael Manfredi) ๋งˆ์Šคํ„ฐ ์นดํ”ผ์— ํฌํ•จ์‹œํ‚ค๊ธฐ ์œ„ํ•ด,
๊ทธ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ ๊ด€์‹ฌ์‚ฌ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋ฉด.

์ฐพ์„ ์ƒˆ ํ”„๋กœ๊ทธ๋žจ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

ยท Loc.U๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  ?MAKE: ์ค„(์ค„ ์‚ฌ์ด)์— ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๊ฐœ์˜ ์ฝœ๋ก ) ๋ฐ loclist ๋˜๋Š” trylist(ํ”„๋กœ๊ทธ๋žจ์ด ์ง€์›๋˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ค๋ฆ„)
ํ•„์ˆ˜ ์—ฌ๋ถ€).

ยท ๋ฉ”ํƒ€ ๊ตฌ์„ฑ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ยท ์ผ๋ฐ˜์ ์ธ ๋‚ด์šฉ์ด๋ผ๊ณ  ์ƒ๊ฐ๋˜๋ฉด ๋งˆ์Šคํ„ฐ ์นดํ”ผ์— ํฌํ•จ๋˜๋„๋ก ๊ท€ํ•˜์˜ ์žฅ์น˜๋ฅผ ๋‚˜์—๊ฒŒ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.
๊ด€์‹ฌ.

.U ํŒŒ์ผ ์ž‘์„ฑ ์‹œ ์ฐธ๊ณ  ์‚ฌํ•ญ:

* rm์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€ํ™”ํ˜•์ธ ์‹œ์Šคํ…œ์ด ์žˆ์œผ๋ฏ€๋กœ ํ•ญ์ƒ "rm -f"๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

* '--'๋Š” ๋ชจ๋“  ์‰˜์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ "set -- ..."๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. "์„ธํŠธ x ...;
์˜ฎ๊ธฐ๋‹ค".

* unset์€ ์™„์ „ํžˆ ์ด์‹ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ "unset ENV"๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋Œ€์‹  "ENV=''"๋ผ๊ณ  ๋งํ•˜์„ธ์š”.

* ์œ ๋‹ˆ์Šค ์‹œ์Šคํ…œ ๋•Œ๋ฌธ์— ํ•ญ์ƒ echo " "(๊ณต๋ฐฑ ํฌํ•จ)๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

*๋งŒ ์‚ฌ์šฉ test -r, -w, -f ๋˜๋Š” -d๊ฐ€ ์œ ์ผํ•œ ํœด๋Œ€์šฉ ์Šค์œ„์น˜์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ~ ์•ˆ์—
ํŠนํžˆ "test -x"๋Š” ํ”ผํ•˜์„ธ์š”.

* V7๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

* ์กฐ๊ฑด๋ถ€๋กœ grepํ•˜๋ ค๋Š” ๊ฒฝ์šฐ $contains๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋ชจ๋“  grep์ด
ํ•ฉ๋ฆฌ์ ์ธ ์ƒํƒœ. '>/dev/null์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ์„ /dev/null๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
2>&1'.

* ๋ชจ๋“  sh๊ฐ€ ํ›„์ž์˜ ๊ตฌ์„ฑ์„ ์•„๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— "if [...]" ๋Œ€์‹  "if test"๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

* ์‰˜ ์ด์Šค์ผ€์ดํ”„ ๋ฐ ๊ธฐ๋ณธ๊ฐ’์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž…๋ ฅ์— myread ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
ํ‰๊ฐ€. ์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ๋Š”

์ผ€์ด์Šค "$grimble" in
'') dflt=452;;
*) dflt="$grimble";;
๊ทธ C
rp='๊ทธ๋ฆฌ๋ธ”์ด ๋ช‡ ๊ฐœ๋‚˜ ์žˆ๋‚˜์š”?'
. ./myread
๊ทธ๋ฆผ๋ธ”="$ans"

* ์„ ํƒ์‚ฌํ•ญ์„ ๊ฐ€์ง€๊ธฐ ์œ„ํ•ด ํŒŒ์ผ ๊ฒฝ๋กœ๋ช…์„ ์š”์ฒญํ•  ๋•Œ getfile ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
~ ์ด๋ฆ„ ํ™•์žฅ ๋ฐ ์˜จ์ „์„ฑ ๊ฒ€์‚ฌ. ์ „์ฒด ์„ค๋ช…์€ Getfile.U ์œ ๋‹›์„ ์ฐธ์กฐํ•˜์„ธ์š”.

* ํ•ญ์ƒ ๋„ฃ์–ด๋‘์„ธ์š”

$startsh

์‹œ์ž‘๋˜๊ฑฐ๋‚˜ ์ œ๊ณต๋  ๋ชจ๋“  ์ƒ์„ฑ๋œ ์Šคํฌ๋ฆฝํŠธ์˜ ์ƒ๋‹จ์—
๊ตฌ์„ฑ.

* ๊ฐ์ฒด ํŒŒ์ผ์ด ๋‹ค์Œ์œผ๋กœ ๋๋‚˜๋Š” ์‚ฌ์‹ค๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ UNIX-ism์„ ๊ฐ€์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. .o ๊ณผ
๋„์„œ๊ด€ ์ด๋ฆ„์ด ๋‹ค์Œ์œผ๋กœ ๋๋‚˜๋Š” ๊ฒƒ .a. ์‚ฌ์šฉ $_o ๊ณผ $_a ๋Œ€์‹  ๋ณ€์ˆ˜(์ฐธ์กฐ
์œ ๋‹‰์Šค.U).

* ์ปดํŒŒ์ผ-๋งํฌ-์‹คํ–‰ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ํ•ญ์ƒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.

$cc $ccflags $ldflags try.c -o $libs ์‹œ๋„

์ผ๋ถ€ ์‹œ์Šคํ…œ์—์„œ๋Š” ์ปดํŒŒ์ผํ•˜๊ธฐ ์ „์— ์—ฐ๊ฒฐ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
๋Œ€์ƒ(ํ›„ํ–‰ ์—ฐ๊ฒฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ์™ธ).

* ์ถœ๋ ฅ์„ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๊ธฐ ์œ„ํ•ด '>&4'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์„ค๋ช…์ž #4์— ์ค‘์š”ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ๋ฉ”์‹œ์ง€๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. -s ์Šค์œ„์น˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค ๊ตฌ์„ฑ ๋ฅผ ์‹œ์ฒญํ•˜์—ฌ ์ด์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ช…๋ น์ค„(์ž๋™ ๋ชจ๋“œ)

* ํ•ญ์ƒ ๊ฐ€์žฅ ๊ตฌ์ฒด์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๊ธฐ๋Šฅ์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜์‹ญ์‹œ์˜ค.
libc๋ฅผ grepํ•  ์ˆ˜ ์žˆ์œผ๋ฉด "if bsd"๋ผ๊ณ  ๋งํ•˜์„ธ์š”. ์‹œ์ค‘์—๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์‹œ์Šคํ…œ์ด ๋งŽ์ด ์žˆ์œผ๋ฉฐ,
๊ฐ ๊ธฐ๋Šฅ์€ ์ €์ ˆ๋กœ ์„œ๊ฑฐ๋‚˜ ๋–จ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

* ํ•ญ์ƒ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๊ธฐ๋Šฅ์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜์‹ญ์‹œ์˜ค.
๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋Š” ๊ท€ํ•˜์˜ ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

* ์˜์‹ฌ์Šค๋Ÿฌ์šด ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•˜๊ณ  ๋ฌธ์˜ํ•˜์„ธ์š”. ์•„๋ฌด๊ฒƒ๋„ ๊ฐ€์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

* ์‚ฌ์šฉ์ž๊ฐ€ ํ‹€๋ ธ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋ฉด, ๊ทธ ์‚ฌ์šฉ์ž๊ฐ€ ๋งž์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ธ์ •ํ•˜์‹ญ์‹œ์˜ค. ์„ ์œ„ํ•œ
์˜ˆ๋ฅผ ๋“ค์–ด, ๊ทธ๋Š” ์ž์‹ ์ด ์‚ฌ์šฉํ•  ์‹œ์Šคํ…œ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ ๊ตฌ์„ฑ์„ ์‹คํ–‰ ์ค‘์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ตœ์ข… ์ œํ’ˆ์—.

Metaconfig๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋‹ค์Œ ์ด๋ฆ„์„ ์˜ˆ์•ฝํ•˜๋ฉฐ, ๊ทธ๋Ÿฌํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ฉด
๋ฐฉํ•ด๋ฅผ ๋ฐ›๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.์‚ฐ/*
๊ตฌ์„ฑ
๊ตฌํ•จ
์‹œ๋Œ€์— ๋’ค ๋–จ์–ด์ง„
๊ตฌ์„ฑ
๊ตฌ์„ฑ_h.SH
confmagic.h
์œ /*
๋งค๋‹ˆํŽ˜์ŠคํŠธ.new

๋˜ํ•œ ๊ตฌ์„ฑ์€ ์‹คํ–‰๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ด๋Ÿฌํ•œ ์ด๋ฆ„์„ ๋ฐฉํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ /*
config.sh
๊ตฌ์„ฑ.h

์˜ต์…˜


๋‹ค์Œ ์˜ต์…˜์€ ๋‹ค์Œ์—์„œ ์ธ์‹๋ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ:

-d ๋””๋ฒ„๊ทธ ๋ชจ๋“œ๋ฅผ ์ผญ๋‹ˆ๋‹ค. ๋””๋ฒ„๊น…์„ ํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ณ„๋กœ ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ
์ž์ฒด.

-h ๋„์›€๋ง ๋ฉ”์‹œ์ง€๋ฅผ ์ธ์‡„ํ•˜๊ณ  ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

-k ์ž„์‹œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์œ ์ง€ํ•˜์—ฌ ๋‹ค์Œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ž‘์—… ํŒŒ์ผ์„ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๋‹น์‹ ์„ ๊ตฌ์ถ• ๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ. ๋””๋ฒ„๊น…ํ•  ๋•Œ๋งŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋‹จ์œ„.

-m ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ์™€ ์Šค์™‘ ๊ณต๊ฐ„์„ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ธฐํ˜ธ ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.
๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํฌ์ƒํ•˜๋ฉด์„œ ์ƒ๋‹นํ•œ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋Š” ์†Œ์Šค ํŒŒ์ผ
์†Œ๋น„...

-o ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ธฐํ˜ธ๋ฅผ ์ƒˆ ๊ธฐํ˜ธ์— ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ์—ฌ์œ ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
์†Œ์Šค ์ฝ”๋“œ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ธฐํ˜ธ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ œ๊ฑฐ๋ฅผ ์›ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†์Œ
์ง€๊ธˆ์€ ๊ทธ๋“ค์ž…๋‹ˆ๋‹ค. ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ธฐํ˜ธ๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.
๋‹น์‹ ์—๊ฒŒ ๊ฒฝ๊ณ ๋ฅผ ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ๋ฉ”ํƒ€ ๊ตฌ์„ฑ.

-s ๋ฌด์Œ ๋ชจ๋“œ๋ฅผ ์ผœ์„ธ์š”.

-t ๋ฐœ๊ฒฌ๋œ ๊ธฐํ˜ธ๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

-v ์ƒ์„ธ ๋ชจ๋“œ๋ฅผ ์ผญ๋‹ˆ๋‹ค.

-w ์›ํ•˜๋Š” ํŒŒ์ผ์ด ์ตœ์‹ ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„๊ณผ ๊ธฐ์–ต์„ ๊ฑด๋„ˆ๋›ฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
์†Œ์Šค ์ฝ”๋“œ ์Šค์บ๋‹ ๋‹จ๊ณ„๋ฅผ ์†Œ๋น„ํ•˜๊ณ  ์•Œ๋ ค์ง„ ๊ธฐํ˜ธ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฑธ ์จ
์†Œ์Šค ํŒŒ์ผ์ด ๋‹ค์Œ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ
์ˆ˜์˜์žฅ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์‚ฌ์šฉ๋œ ๊ธฐํ˜ธ.

-G GNU๋„ ์ œ๊ณตํ•˜์„ธ์š” ๊ตฌ์„ฑ-์ƒ์„ฑ๋œ ํ”„๋ŸฐํŠธ ์—”๋“œ์™€ ์œ ์‚ฌ ๊ตฌ์„ฑ
์Šคํฌ๋ฆฝํŠธ๋„ ๋ฐฐํฌํŒ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฑด ํฌ์žฅ์ง€์ผ ๋ฟ์ด์•ผ
์ฃผ๋ณ€ ๊ตฌ์„ฑ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜์ง€๋งŒ ์ต์ˆ™ํ•œ ์‚ฌ๋žŒ๋“ค์ด
์ƒˆ๋กœ์šด ๋ฐฐํฌํŒ์„ ์ ‘ํ•  ๋•Œ GNU ๋„๊ตฌ๋Š” ์†์‹ค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-L DIR ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์œ„์น˜๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ metaconfig์—๋งŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์œ ์ง€๋ณด์ˆ˜ ๋‹ด๋‹น์ž๋Š” ๊ฐœ๋ฐœ ์ค‘์ธ ์žฅ์น˜๋ฅผ ๋กœ์ปฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹ 
๊ณต๊ฐœ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒƒ๋“ค. NS DIR ์ง€์ •๋œ ๊ฒƒ์€ ๋‹จ์œ„๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค
U ๋””๋ ‰ํ† ๋ฆฌ.

-M ์ƒ์‚ฐ์„ ํ—ˆ์šฉ confmagic.h ์ผ๋ถ€ ์›ฐ์„ ์ž๋™์œผ๋กœ ๋‹ค์‹œ ๋งคํ•‘ํ•˜๋Š” ํŒŒ์ผ
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ๋Œ€์•ˆ์œผ๋กœ ์•Œ๋ ค์ง„ ๊ธฐํ˜ธ b์นดํ”ผ() ์žฌ๋งคํ•‘ ์ค‘
ํˆฌ๋ช…ํ•˜๊ฒŒ memcpy () ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ. ์ด ์˜ต์…˜์ด ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
๋•Œ ์ž๋™์œผ๋กœ confmagic.h ํŒŒ์ผ์ด ์ตœ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์„ ์˜๊ตฌ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ํ•ด๋‹น ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

-V ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ธ์‡„ํ•˜๊ณ  ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

์ด์šฉ ๊ฐ€์ด๋“œ


์ด (๊ธด) ์„น์…˜์€ ๋‹ค์Œ์— ๋Œ€ํ•œ ์†Œ๊ฐœ์ž…๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ, ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋ฐฐ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค
๊ธฐ์ดˆ. ์‚ฌ์šฉ๋ฒ•์„ ์ด๋ฏธ ์•Œ๊ณ  ๊ณ„์‹œ๋‹ค๋ฉด ๋ฉ”ํƒ€ ๊ตฌ์„ฑ, ๋‹ค์Œ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์•ˆ๋‚ด

์‚ดํŽด๋ณด๊ธฐ
์ผ๋ฐ˜์ ์œผ๋กœ ํŠน์ • ํ”Œ๋žซํผ์—์„œ ์ปดํŒŒ์ผํ•  ์†Œ์Šค ํŒจํ‚ค์ง€๋ฅผ ์–ป์œผ๋ ค๋ฉด
๊ธฐ๋ณธ Makefile์„ ํŽธ์ง‘ํ•˜๋ ค๋ฉด(์žˆ๋Š” ๊ฒฝ์šฐ) C ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์„ ํƒํ•˜๊ณ 
์ ์ ˆํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ–๊ณ  ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ํ™•์ธ ๋ช…๋ น. ํŒจํ‚ค์ง€๊ฐ€ ํ•ฉ๋ฆฌ์ ์ด๋ผ๋ฉด
์ž˜ ์ž‘์„ฑ๋˜๋ฉด ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค(๊ฒฝ๊ณ  ์˜ต์…˜ ์—†์ด :-). ๊ทธ ์ž์ฒด๋กœ ๋งˆ์ง€๋ง‰
์˜ค๋Š˜๋‚  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋‹ค์–‘ํ•œ UNIX ํ”Œ๋žซํผ์„ ๊ณ ๋ คํ•˜๋ฉด ๋ฌธ์žฅ์€ ์‹ค์ œ ์„ฑ๋Šฅ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ง›์˜ ๋‹ค์–‘์„ฑ์€ ํŒจํ‚ค์ง€ ์ž‘์„ฑ์ž๊ฐ€ ๊นŠ์ด ๊ด€์—ฌํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
ํ‘œ์ค€์ ์ธ ์‹œ๋„, ์ถ”์ธก ๋ฐ ์กฐ์ž‘์„ ํ†ตํ•ด ์˜ฌ๋ฐ”๋ฅธ ์„ ํƒ์„ ์ฐพ๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช์Šต๋‹ˆ๋‹ค.
์‹œ์Šคํ…œ ํฌํ•จ ๋ฐ ์œ ํ˜•์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ทธ์˜ ๋ชจ๋“  ์žฌ๋Šฅ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ €์ž๋Š” ์–ด๋–ค ์‹œ์Šคํ…œ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ๊นจ์กŒ๊ฑฐ๋‚˜ ์ผ๋ถ€ ์‹œ์Šคํ…œ ๊ตฌ์กฐ์— ํ‘œ์ค€ ํ•„๋“œ๊ฐ€ ํ•˜๋‚˜๋„ ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜
๋‹จ์ˆœํžˆ ์ฃผ์–ด์ง„ ํฌํ•จ ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ์•”์‹œ์ ์ธ ๊ฒƒ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
์— ์˜ํ•ด ๋ฐ˜ํ™˜๋œ ์œ ํ˜•๊ณผ ๊ฐ™์€ ๊ฐ€์ • malloc () ๊ธฐ๋Šฅ์ด๋‚˜ ์กด์žฌ
์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ () ๋ช‡ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ๋“ค๋ฉด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ์ ์ธ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๋ ค๋ฉด ๊ทธ๋Ÿฌํ•œ ์ง€์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
ํœด๋Œ€ ์„ฑ.

์ด์ œ ์šฐ๋ฆฌ ์ž์‹ ์„ ํ•™๋Œ€ํ•˜์ง€ ๋ง™์‹œ๋‹ค. ํ•ด๋‹น ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋” ํฐ ๊ธฐ์ˆ ์ด ํ•„์š”ํ•˜์ง€๋งŒ
์‹œ์Šคํ…œ ๋…๋ฆฝ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ž‘์„ฑ๋˜๋ฏ€๋กœ ๋” ๋งŽ์€ ์ด์‹ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
ํŠน์ • ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ผ๋ถ€ ๊ฐ€์ •์ด ์ฐธ์ด๊ฑฐ๋‚˜ ๊ฑฐ์ง“์ด๋ผ๋Š” ์‚ฌ์‹ค์—๋งŒ ์˜์กดํ•ฉ๋‹ˆ๋‹ค.
๊ฐ ๊ฐ€์ •์€ ์„œ๋กœ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
BSD ์‹œ์Šคํ…œ์ด๊ฑฐ๋‚˜ USG ์‹œ์Šคํ…œ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌดํŠผ ์š”์ฆ˜์€ ๋„ˆ๋ฌด ๋ชจํ˜ธํ•ด์š”. ์•„๋‹ˆ, ์šฐ๋ฆฌ๋Š” ์›ํ•ด์š”
์†Œ์Šค ์ฝ”๋“œ์— ๋งํ•ด๋ณด์„ธ์š”: ์ด ์‹œ์Šคํ…œ์—๋Š” ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ () ์‹œ์Šคํ…œ ํ˜ธ์ถœ๊ณผ malloc ()
๋ฅผ ๋ฐ˜ํ™˜ (๋ฌดํšจ์˜ *) ๊ฐ’.

Metaconfig๋Š” ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ง„ํ–‰๋œ๋‹ค๋ฉด Makefile์„ ์ง์ ‘ ํŽธ์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ํ•˜์—ฌ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ, ๋‹น์‹ ์€
๋ช…๋ช…๋œ ์‰˜ ์Šคํฌ๋ฆฝํŠธ ๊ตฌ์„ฑ. ๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ์— ๋งŽ์€ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์˜€์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ์กด ์‰˜์˜ 99%์—์„œ ์‹คํ–‰๋˜๋„๋ก ๋ณด์žฅํ•˜๋Š” ๋‚ด๋ถ€
๊ธ€์“ฐ๊ธฐ. ๊ตฌ์„ฑ์€ ๋Œ€์ƒ ์‹œ์Šคํ…œ์„ ์กฐ์‚ฌํ•˜์—ฌ ์˜์‹ฌ์Šค๋Ÿฌ์šด ๊ฒฝ์šฐ ์งˆ๋ฌธํ•˜๊ณ 
ํ•˜๋‚˜์˜ ๋‹จ์ผ ์‰˜ ํŒŒ์ผ์— ๋ชจ๋“  ๋‹ต๋ณ€์„ ๋ชจ์•„ ๋‹ค์Œ ์ž‘์—…์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ตฌ์„ฑ๋œ Makefile ๋ฐ C ํฌํ•จ ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์‰˜ ์Šคํฌ๋ฆฝํŠธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํ˜ธ ์„ธํŠธ๋Š” ์ œํ•œ์ ์ด์ง€๋งŒ ๋งค์šฐ ํฝ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  C ํ”„๋กœ๊ทธ๋žจ. ๊ทธ๊ฒƒ๋“ค์€ ๋ชจ๋‘ ์šฉ์–ด์ง‘ ํŒŒ์ผ์— ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ดํ•ด์•ผ ํ•  ์ผ์€ ๋ฐฐ์šฐ๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.
์ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์‹์„ฑ ๋ฐ ๊ตฌ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค. ๊ทธ ๋‹ค์Œ์—,
์‹คํ–‰ํ•˜์—ฌ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ, ํŒจํ‚ค์ง€์— ์ ํ•ฉํ•œ ๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ๋Š” ์—ฌ๋Ÿฌ ๋‹จ์œ„(300๊ฐœ ์ด์ƒ)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ๊ฐ ๋‹จ์œ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์†Œ์ˆ˜์˜ ์‰˜ ๋ฐ/๋˜๋Š” C ๊ธฐํ˜ธ๋ฅผ ์ •์˜ํ•˜๋Š” ์ผ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์œ ๋‹›์ด ์กฐ๋ฆฝ๋ฉ๋‹ˆ๋‹ค.
๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์—์„œ ํ•จ๊ป˜ ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„๋ฅผ ์กด์ค‘ํ•ฉ๋‹ˆ๋‹ค(ํ•˜๋‚˜์˜ ๋‹จ์œ„์—๋Š” ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ).
์Šคํฌ๋ฆฝํŠธ ์ด์ „์— ๋ฐฐ์น˜๋˜๋Š” ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์œ ๋‹›์˜ ๊ฒฝ์šฐ)

๊ธฐํ˜ธ
๊ธฐํ˜ธ๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์„ธ๊ณ„. ๊ทธ๋“ค์€ ๊ฐ€์žฅ ์ž‘์Šต๋‹ˆ๋‹ค
์ผ๋ฐ˜์ ์œผ๋กœ ๋‹จ์–ด๋กœ ์ธ์‹๋˜๋Š” ์—”ํ„ฐํ‹ฐ์ด๋ฉฐ ๊ตฌ์„ฑ์ด ๋๋‚  ๋•Œ ๊ฐ’์„ ๋ถ€์—ฌ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‹คํ–‰. ์˜ˆ๋ฅผ ๋“ค์–ด C ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ๋Š” HAS_RENAME ํ•˜๋Š” ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๊ทธ ์ƒ์ง•
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์ •์˜๋˜๋Š” ๊ฒƒ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ () ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋น„์Šทํ•˜๊ฒŒ,
์ „์—, $ranlib ์‰˜ ๋ณ€์ˆ˜๋Š” ':' ๋˜๋Š” 'ranlib'๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
์— ์ „ํ™” ๋ž€๋ฆฝ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์„ ์ฃผ๋ฌธํ•˜๋ ค๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€๋Š” ์•„๋‹™๋‹ˆ๋‹ค.
์ง€๊ธˆ์œผ๋กœ์„œ๋Š” ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ด๋Ÿฌํ•œ ๊ธฐํ˜ธ์— ์ƒํ™œ
(์ฆ‰, ๊ฐ’) ๊ตฌ์„ฑ ์‹คํ–‰.

๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋น„๊ต์  ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. C ์†Œ์Šค ํŒŒ์ผ์—์„œ๋Š” ๊ฐ„๋‹จํžˆ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
์ „์ฒ˜๋ฆฌ๊ธฐ ์ง€์‹œ์–ด๋กœ ๊ฐ’(์˜ˆ: #ifdef HAS_RENAME) ๋˜๋Š” ๊ธฐํ˜ธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
value๋Š” C์—์„œ ๋งคํฌ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‰˜ ํŒŒ์ผ์ด๋‚˜
Makefile์—์„œ๋Š” ์‰˜ ๊ธฐํ˜ธ๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค, ๊ฑฐ์ง“๋ง์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋‹จ๋ฝ๋งŒํผ ์™„์ „ํžˆ ๋งˆ์ˆ ์ ์ด์ง€๋Š” ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์†Œ๋ฆฌ๊ฐ€ ๋‚  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. C ํŒŒ์ผ์—๋Š” ๊ตฌ์„ฑ ์ƒ์„ฑ์„ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ.h ํŒŒ์ผ, ๊ทธ๋ฆฌ๊ณ 
์‰˜ ์Šคํฌ๋ฆฝํŠธ๋‚˜ Makefile์„ .SH ํŒŒ์ผ๋กœ ๋ž˜ํ•‘ํ•ด์•ผ ํ•˜๋ฉฐ ์‰˜์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•ด๋‹น .SH ํŒŒ์ผ์˜ ๋ณ€์ˆ˜ ๋Œ€์ฒด ๋ถ€๋ถ„์—๋งŒ ๊ธฐํ˜ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ๋‚˜์ค‘์— ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ ํŒŒ์ผ
๊ธฐํ˜ธ๋Š” ์ œํ•œ๋œ ์†Œ์Šค ํŒŒ์ผ ์„ธํŠธ์—๋งŒ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ~ ๋งŒ
์•Œ๋ ค์ง„ ๊ธฐํ˜ธ๋ฅผ ์ฐพ์„ ๋•Œ ์ด๋ฅผ ์Šค์บ”ํ•˜์—ฌ ํ•„์š”ํ•œ ๋‹จ์œ„๋ฅผ ์•Œ์•„๋‚ด์‹ญ์‹œ์˜ค.
C ์†Œ์Šค ํŒŒ์ผ, ์ฆ‰ .c, .h, .y or .l ํ™•์žฅ ๋ฐ
์‰˜ ๊ธฐํ˜ธ๋Š” .SH ํŒŒ์ผ์—์„œ๋งŒ ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค.

๊ธฐํ˜ธ์˜ ๊ฐ’์„ ์–ป์œผ๋ ค๋ฉด C ํŒŒ์ผ์— ํŠน์ˆ˜ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ.h
์— ์˜ํ•ด ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ ๊ตฌ์„ฑ C ๊ธฐํ˜ธ๊ฐ€ ์žˆ์„ ๋•Œ. ๊ทธ๋ฆฌ๊ณ  .SH ํŒŒ์ผ์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
์‰˜์„ ํ†ตํ•ด ์ƒˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ .SH ํŒŒ์ผ์˜ ์ƒ๋‹จ ์„น์…˜์—๋Š”
ํŠน๋ณ„ํ•œ config.sh ํŒŒ์ผ(๋˜ํ•œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์—ฌ ์ƒ์„ฑ๋จ) ๊ตฌ์„ฑ)๋Š” ์†Œ์Šค์ด๋ฉฐ ๊ฐ€๋ณ€์ ์ž…๋‹ˆ๋‹ค.
๋Œ€์ฒด๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ, ๊ตฌ์„ฑ.h ์„ ์‹คํ–‰ํ•˜์—ฌ ์ƒ์‚ฐ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ์ƒ์‚ฐ
๊ตฌ์„ฑ_h.SH ํŒŒ์ผ์—์„œ ๋‹ค์‹œ ๋ณ€์ˆ˜ ๋Œ€์ฒด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์‚ดํŽด๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค
์ด๊ฒƒ์ด ์ „์ฒด์˜ ํ•ต์‹ฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ๊ตฌ์„ฑ ๊ณ„ํš...

๋ณ€ํ•˜๊ธฐ ์‰ฌ์šด ์น˜ํ™˜
๋ผ๋Š” ์‰˜ ๊ตฌ์กฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ง€๊ธˆ ํ™•์ธํ•ด ๋ณด์„ธ์š”. ๋ฌธ์„œ ๋ช…๋ น์ด ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ
์Šคํฌ๋ฆฝํŠธ ์ž์ฒด ๋‚ด์—์„œ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ž…๋ ฅ์€ ์‰˜์— ์˜ํ•ด ์ด์ค‘์œผ๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค.
here ๋ฌธ์„œ์˜ ํ˜•์‹์— ๋”ฐ๋ผ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์ธ ๋ฌธ์ž์—ด ๋˜๋Š” ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์ธ ๋ฌธ์ž์—ด
์‚ฌ์–‘.

here ๋ฌธ์„œ๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด '<<' ํ† ํฐ๊ณผ ๊ทธ ๋’ค์— ๋‹จ์ผ ์‹๋ณ„์ž๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์—์„œ
๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜๋จธ์ง€ ์Šคํฌ๋ฆฝํŠธ ์ค„์€ ์—ฌ๊ธฐ๊นŒ์ง€ ๋ช…๋ น์— ๋Œ€ํ•œ ์ž…๋ ฅ์„ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์„œ๊ฐ€ ํ•œ ์ค„์— ๋‹จ๋…์œผ๋กœ ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‰˜ ๋Œ€์ฒด(์‰˜ ๋ณ€์ˆ˜ ํฌํ•จ)
๋Œ€์ฒด)๋Š” ์‹๋ณ„์ž๊ฐ€ ์ž‘์€๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์ด์ง€ ์•Š๋Š” ํ•œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

var='์ฒซ๋ฒˆ์งธ'
tar = '๋‘ ๋ฒˆ์งธ'
echo "--> ๋จผ์ € ์—ฌ๊ธฐ ๋ฌธ์„œ:"
๊ณ ์–‘์ด <
var='$var'
ํƒ€๋ฅด='$tar'
EOM
echo "--> ๋‘ ๋ฒˆ์งธ ๋ฌธ์„œ:"
๊ณ ์–‘์ด <<'์—„'
์—์ฝ” $var
์—์ฝ” $tar
EOM
์—์ฝ” "--> ๋."

์‰˜์„ ํ†ตํ•ด ์‹คํ–‰๋  ๋•Œ ๋‹ค์Œ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

--> ์ฒซ ๋ฒˆ์งธ ๋ฌธ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
var='์ฒซ๋ฒˆ์งธ'
tar = '๋‘ ๋ฒˆ์งธ'
--> ๋‘ ๋ฒˆ์งธ ๋ฌธ์„œ:
์—์ฝ” $var
์—์ฝ” $tar
--> ๋.

์ฒซ ๋ฒˆ์งธ ์—ฌ๊ธฐ ๋ฌธ์„œ์˜ ๋‚ด์šฉ์€ ํ•ด์„๋œ ๋ฐ˜๋ฉด ๋‘ ๋ฒˆ์งธ ๋ฌธ์„œ๋Š” ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๊ฐ€ ๊ณง ๋ณด๊ฒŒ ๋  ๊ฒƒ์ฒ˜๋Ÿผ ๋‘˜ ๋‹ค .SH ์Šคํฌ๋ฆฝํŠธ์—์„œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ .์‰ฟ ์Šคํฌ๋ฆฝํŠธ
.SH ์Šคํฌ๋ฆฝํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. MakeSH ๊ธฐ์กด ํŒŒ์ผ๊ณผ ๋‹ค๋ฅธ ์Šคํฌ๋ฆฝํŠธ,
๋ณ€ํ™” ํŒŒ์ผ ์— ํŒŒ์ผ.SH. ํ•œ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์ž‘์€ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
(์ „ํ™”ํ•˜์ž intsize) ๋‹จ์ผ ๋ฉ”์‹œ์ง€๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. INT C์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•
๋ถˆํ–‰ํžˆ๋„ ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

#!/ ๋นˆ / SH
intsize='4'
echo "์ด ์ปดํ“จํ„ฐ์—์„œ๋Š” int ์œ ํ˜•์ด $intsize ๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค."

๋›ฐ์ž makeSH ๊ทธ๊ฒƒ์— '๋ฅผ ์ž…๋ ฅํ•˜์—ฌmakeSH intsize'. ์šฐ๋ฆฌ๋Š” ์‹ฑ๊ธ€์„ ์–ป์Šต๋‹ˆ๋‹ค intsize.SH ํŒŒ์ผ
๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ž…๋‹ˆ๋‹ค.

$CONFIG์˜ ๊ฒฝ์šฐ
'')
ํ…Œ์ŠคํŠธ -f config.sh์ธ ๊ฒฝ์šฐ; ๊ทธ๋Ÿผ TOP=.;
elif ํ…Œ์ŠคํŠธ -f ../config.sh; ๊ทธ๋Ÿฌ๋ฉด TOP=..;
elif ํ…Œ์ŠคํŠธ -f ../../config.sh; ๊ทธ๋Ÿผ TOP=../ ..;
elif ํ…Œ์ŠคํŠธ -f ../../../config.sh; ๊ทธ๋Ÿผ TOP=../../..;
elif ํ…Œ์ŠคํŠธ -f ../../../../config.sh; ๊ทธ๋Ÿผ TOP=../../../..;
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
echo "config.sh๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."; 1๋ฒˆ ์ถœ๊ตฌ
fi
. $TOP/config.sh
;;
๊ทธ C
: SH ํŒŒ์ผ์ด SH ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋Œ€์ƒ์„ ์ƒ์„ฑํ•˜๋„๋ก ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.
: ์ด๋Š” make๊ฐ€ ํ•ญ์ƒ SH ํŒŒ์ƒ ์ƒํ’ˆ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ผ€์ด์Šค "$0"
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
๊ทธ C
echo "intsize ์ถ”์ถœ ์ค‘(๋ณ€์ˆ˜ ๋Œ€์ฒด ํฌํ•จ)"
: ํŒŒ์ผ์˜ ์ด ์„น์…˜์—๋Š” ๋ณ€์ˆ˜ ๋Œ€์ฒด๊ฐ€ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
: ๊ตฌ์„ฑ ํ•˜์œ„๊ฐ€ ํ•„์š”ํ•œ ํ•ญ๋ชฉ์„ !NO!SUBS์—์„œ ์ด๋™ํ•˜์„ธ์š”! ์„น์…˜์„ !GROK!THIS!๋กœ ๋ณ€๊ฒฝํ•˜์„ธ์š”.
: ํ•ด์„์„ ์›ํ•˜์ง€ ์•Š๋Š” ๋‹ฌ๋Ÿฌ ๊ธฐํ˜ธ์™€ ๋ฐฑํ‹ฑ์„ ๋ณดํ˜ธํ•˜์„ธ์š”.
: ์•ž์— ๋ฐฑ์Šฌ๋ž˜์‹œ๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ด ๋Œ“๊ธ€์€ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$spitshell >intsize <
$startsh
!๊ทธ๋กœํฌ!์ด๊ฒƒ!

: ๋‹ค์Œ ๋‹ฌ๋Ÿฌ์™€ ๋ฐฑํ‹ฑ์—๋Š” ์ถ”๊ฐ€ ๋ฐฑ์Šฌ๋ž˜์‹œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
$spitshell >>intsize <<'!NO!SUBS!'
intsize='4'
echo "์ด ์ปดํ“จํ„ฐ์—์„œ๋Š” int ์œ ํ˜•์ด $intsize ๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค."
!์•ˆ๋ผ!์„œ๋ธŒ์Šค!
chmod 755 int ํฌ๊ธฐ
$eunicefix intsize

์ด ์Šคํฌ๋ฆฝํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„( ์ผ€์ด์Šค ์ง„์ˆ )์ด ํ•ด๋‹น ํ•ญ๋ชฉ์„ ์ฐพ์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. config.sh
ํŒŒ์ผ์„ ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด. ๊ทธ๋งŒํผ $CONFIG ๋ณ€์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ false์ด๊ณ , ๋‹ค์Œ ๊ฒฝ์šฐ์—๋Š” true์ž…๋‹ˆ๋‹ค.
config.sh ์ด๋ฏธ ์†Œ์Šค๊ฐ€ ์ œ๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ด ํŒŒ์ผ์ด ๋‹ค์Œ์—์„œ ์‹คํ–‰๋œ ๊ฒฝ์šฐ๊ฐ€ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค).
์ด๋‚ด ๊ตฌ์„ฑ ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋ฅผ ํ˜ผ๋™ํ•˜์ง€ ๋งˆ์„ธ์š”).

ํ•œ ๋ฒˆ config.sh ํŒŒ์ผ์€ ์†Œ์Šค์˜€์œผ๋ฉฐ ๋ชจ๋“  ์‰˜ ๊ธฐํ˜ธ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ์ •์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ are
์„ธํŠธ. ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋‘ ๋ฒˆ์งธ ์‚ฌ๋ก€ ์„ค๋ช…์— ๋„๋‹ฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฒฝ๋กœ๋Š” ์ด ํ”„๋กœ๊ทธ๋žจ์— ๋„๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด 'sh ../scripts/intsize.SH', ์šฐ๋ฆฌ
๋จผ์ € ์‹คํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค 'cd ../์Šคํฌ๋ฆฝํŠธ' ๊ณ„์†ํ•˜๊ธฐ ์ „์—). ์ด๊ฒƒ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค๋ฉด ํ•˜์ง€ ๋งˆ์„ธ์š”.
๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•˜์‹ญ์‹œ์˜ค.

์—ฌ๊ธฐ์— ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” $spitshell ๊ฐ€๋ณ€์ ์ด๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ...์•„์ง์€์š”. ์šฉ์–ด์ง‘ ํŒŒ์ผ์„ ์‚ดํŽด๋ณด๋ฉด,
์ด๊ฒƒ์€ ์•Œ๋ ค์ง„ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ. ์ด ํŒŒ์ผ์„ ๋ฐฐํฌ์˜ ์ผ๋ถ€๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ
(MANIFEST.new ํŒŒ์ผ์— ํฌํ•จ์‹œ์ผœ์„œ ๋‚˜์ค‘์— ๋‹ค์‹œ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค) ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”ํƒ€ ๊ตฌ์„ฑ, ๊ทธ ๋‹ค์Œ์— ๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ด ๋ณ€์ˆ˜์— ์ ํ•ฉํ•œ ๊ฐ’์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€์— ์„ค์ •๋ฉ๋‹ˆ๋‹ค config.sh. ๊ฐ™์€ ๊ฒฝ์šฐ $startsh ๊ทธ๋ฆฌ๊ณ  ์‹ ๋น„ํ•œ $eunicefix at
๋. ํ•ฉ๋ฆฌ์ ์ธ ์‹œ์Šคํ…œ์—์„œ ๊ด€๋ จ ๋ถ€๋ถ„์€ config.sh ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

spitshell='๊ณ ์–‘์ด'
startsh='#!/ ๋นˆ / SH'
์œ ๋‹ˆ์Šคํ”ฝ์Šค=':'

์•„! ์šฐ๋ฆฌ๋Š” ๊ฑฐ๊ธฐ์— ๋„์ฐฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ๋Š” ์ต์ˆ™ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์‹ฑ๊ธ€์„ ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๋ฐฉ๋ฒ• ๋ˆ„๊ตฌ์˜ ๋ช…๋ น์„
์ž…๋ ฅ์€ ๋ณ€์ˆ˜๋กœ ์‚ฝ์ž…๋œ ์—ฌ๊ธฐ ๋ฌธ์„œ์—์„œ ๋‚˜์˜ค๋ฉฐ ์ถœ๋ ฅ์€ ๋‹ค์Œ์œผ๋กœ ๋ฆฌ๋””๋ ‰์…˜๋ฉ๋‹ˆ๋‹ค.
intsize. ๊ทธ ๊ฐ€์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค. $startsh, ์ฆ‰ '#!/ ๋นˆ / SH'. ์ง€๊ธˆ๊นŒ์ง€๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์Šคํฌ๋ฆฝํŠธ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์—์„œ ๋‘ ๋ฒˆ์งธ ๋ฌธ์„œ ํ™•์žฅ์— ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์—ฌ๊ธฐ ๋ฌธ์„œ ๊ธฐํ˜ธ๋Š” ์ž‘์€๋”ฐ์˜ดํ‘œ๋กœ ๋‘˜๋Ÿฌ์‹ธ์—ฌ ์žˆ์œผ๋ฏ€๋กœ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์— ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ์ฒจ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. intsize ํŒŒ์ผ. ๊ทธ๋ž˜์„œ '๋ฅผ ์‹คํ–‰ํ•˜์—ฌsh intsize.SH', ์šฐ๋ฆฌ๋Š”
๋‹ค์Œ ์ถœ๋ ฅ:

intsize ์ถ”์ถœ(๋ณ€์ˆ˜ ๋Œ€์ฒด ์‚ฌ์šฉ)

์ƒ์„ฑ๋œ intsize ํŒŒ์ผ์„ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#!/ ๋นˆ / SH
intsize='4'
echo "์ด ์ปดํ“จํ„ฐ์—์„œ๋Š” int ์œ ํ˜•์ด $intsize ๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค."

์ด๊ฒƒ์ด ๋ฐ”๋กœ ์šฐ๋ฆฌ๊ฐ€ ์ฒ˜์Œ์— ๊ฐ€์กŒ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋ฌด์ž‘๋™ ์ ˆ์ฐจ์ธ๋ฐ...
๊ทธ๋Ÿฌ๋‚˜ ์–ผ๋งˆ๋‚˜ ๋†€๋ผ์šด ์ผ์ธ๊ฐ€! ๊ทธ๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค(์ˆœ์ „ํ•œ ์šฐ์—ฐ์˜ ์ผ์น˜์ž…๋‹ˆ๋‹ค. ์ €๋ฅผ ๋ฏฟ์œผ์„ธ์š”!). ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์•Œ๊ณ ์žˆ๋‹ค
์— ๋Œ€ํ•œ $intsize ์‰˜ ๊ธฐํ˜ธ. intsize์˜ ์ดˆ๊ธฐํ™”๋ฅผ ๋ณ€์ˆ˜๋กœ ์ด๋™ํ•˜์—ฌ
.SH ์Šคํฌ๋ฆฝํŠธ์˜ ๋ณด๊ฐ„๋œ ์˜์—ญ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ-๊ณ„์‚ฐ๋œ ๊ฐ’,
์ด์ œ ์ถ”๊ฐ€๋œ ์“ธ๋ชจ์—†๋Š” ๋Œ“๊ธ€์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. makeSH, ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.

$CONFIG์˜ ๊ฒฝ์šฐ
'')
ํ…Œ์ŠคํŠธ -f config.sh์ธ ๊ฒฝ์šฐ; ๊ทธ๋Ÿผ TOP=.;
elif ํ…Œ์ŠคํŠธ -f ../config.sh; ๊ทธ๋Ÿฌ๋ฉด TOP=..;
elif ํ…Œ์ŠคํŠธ -f ../../config.sh; ๊ทธ๋Ÿผ TOP=../ ..;
elif ํ…Œ์ŠคํŠธ -f ../../../config.sh; ๊ทธ๋Ÿผ TOP=../../..;
elif ํ…Œ์ŠคํŠธ -f ../../../../config.sh; ๊ทธ๋Ÿผ TOP=../../../..;
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
echo "config.sh๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."; 1๋ฒˆ ์ถœ๊ตฌ
fi
. $TOP/config.sh
;;
๊ทธ C
์ผ€์ด์Šค "$0"
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
๊ทธ C
echo "intsize ์ถ”์ถœ ์ค‘(๋ณ€์ˆ˜ ๋Œ€์ฒด ํฌํ•จ)"
$spitshell >intsize <
$startsh
intsize='$intsize'
!๊ทธ๋กœํฌ!์ด๊ฒƒ!

$spitshell >>intsize <<'!NO!SUBS!'
echo "์ด ์ปดํ“จํ„ฐ์—์„œ๋Š” int ์œ ํ˜•์ด $intsize ๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค."
!์•ˆ๋ผ!์„œ๋ธŒ์Šค!
chmod 755 int ํฌ๊ธฐ
$eunicefix intsize

๋ฌผ๋ก , ์‰˜์„ ํ†ตํ•ด ์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋™์ผํ•œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‹ค์‹œ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ
์šฐ๋ฆฌ๋Š” ๋‹ฌ๋ฆฐ๋‹ค ๊ตฌ์„ฑ ๊ธฐ๊ณ„์—์„œ INT 64๋น„ํŠธ ์ˆ˜๋Ÿ‰์œผ๋กœ ์ €์žฅ๋˜๋ฉฐ, config.sh ์˜์ง€
์„ธํŠธ intsize 8 ๋ฐ intsize ์Šคํฌ๋ฆฝํŠธ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’์„ ๊ฐ–๊ณ  ๋‹ค์Œ์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋จธ์‹ ์—์„œ int ์œ ํ˜•์€ 8๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค.

๋งž์Šต๋‹ˆ๋‹ค. ์ถ•ํ•˜ํ•ด์š”! ๋ฐฉ๊ธˆ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค !!

์ƒ์‚ฐ ๊ตฌ์„ฑ.h
์ด์ œ ์šฐ๋ฆฌ๋Š” ๊ทธ ๊ธธ์„ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๊ตฌ์„ฑ.h ์—์„œ ์ƒ์‚ฐ๋ฉ๋‹ˆ๋‹ค ๊ตฌ์„ฑ_h.SH. ์šฐ๋ฆฌ๋Š” ์•Œ๊ณ 
๋‹ฌ๋ฆฌ๋Š” ๊ตฌ์„ฑ ์ƒ์‚ฐ config.sh ์Šคํฌ๋ฆฝํŠธ(์ •ํ™•ํžˆ ์ˆ˜ํ–‰๋˜๋Š” ๋ฐฉ๋ฒ•์€ ์—„๊ฒฉํžˆ
์—ฌ๊ธฐ์— ๊ด€๋ จ์ด ์žˆ์ง€๋งŒ ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์„ ์œ„ํ•ด ์—ฌ๊ธฐ์— ๋˜ ๋‹ค๋ฅธ ๋ฌธ์„œ ๋Œ€์ฒด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ตฌ์„ฑ ๊ทธ ์ž์ฒด). ๊ทธ๋งŒํผ ๊ตฌ์„ฑ_h.SH ๊ทธ ์ž์ฒด๋Š” ๋‹ค์Œ์— ์˜ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๋™์‹œ์—
๊ตฌ์„ฑ ์†Œ์Šค ๋‚ด์—์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ C ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

๋ฌด์ž‘์œ„๋กœ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ_h.SH ์‹ค์ œ๋กœ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

$CONFIG์˜ ๊ฒฝ์šฐ
'')
ํ…Œ์ŠคํŠธ -f config.sh์ธ ๊ฒฝ์šฐ; ๊ทธ๋Ÿผ TOP=.;
elif ํ…Œ์ŠคํŠธ -f ../config.sh; ๊ทธ๋Ÿฌ๋ฉด TOP=..;
elif ํ…Œ์ŠคํŠธ -f ../../config.sh; ๊ทธ๋Ÿผ TOP=../ ..;
elif ํ…Œ์ŠคํŠธ -f ../../../config.sh; ๊ทธ๋Ÿผ TOP=../../..;
elif ํ…Œ์ŠคํŠธ -f ../../../../config.sh; ๊ทธ๋Ÿผ TOP=../../../..;
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
echo "config.sh๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."; 1๋ฒˆ ์ถœ๊ตฌ
fi
. $TOP/config.sh
;;
๊ทธ C
์ผ€์ด์Šค "$0"
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
๊ทธ C
echo "config.h ์ถ”์ถœ ์ค‘(๋ณ€์ˆ˜ ๋Œ€์ฒด ํฌํ•จ)"
sed < config.h -e 's!^#undef!/define!' -e 's!^#un-def!#undef!'
/*
* ์ด ํŒŒ์ผ์€ config_h.SH ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฉฐ,
* ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” config.sh์—์„œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
* ๊ตฌ์„ฑ์„ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.
*
* ํ•„์š”์— ๋”ฐ๋ผ ์ž์œ ๋กญ๊ฒŒ ์ˆ˜์ •ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฐธ๊ณ ํ•˜์„ธ์š”.
* config.h.SH๋ฅผ ๋‹ค์‹œ โ€‹โ€‹์‹คํ–‰ํ•˜๋ฉด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ชจ๋‘ ์ง€์›Œ์ง‘๋‹ˆ๋‹ค.
* ๋ณด๋‹ค ์˜๊ตฌ์ ์ธ ๋ณ€๊ฒฝ์„ ์œ„ํ•ด์„œ๋Š” config.sh๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  config.h.SH๋ฅผ ๋‹ค์‹œ โ€‹โ€‹์‹คํ–‰ํ•˜์„ธ์š”.
*/

/* ๊ตฌ์„ฑ ์‹œ๊ฐ„: $cf_time
* ๊ตฌ์„ฑ์ž: $cf_by
* ๋Œ€์ƒ ์‹œ์Šคํ…œ: $myuname
*/

#ifndef _config_h_
#define_config_h_

/* ๋ณต์‚ฌ:
* bcopy() ๋ฃจํ‹ด์ด ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด ๊ธฐํ˜ธ๋Š” memcpy์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
* ๋ฌธ์ž์—ด ๋ณต์‚ฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
*/
/* HAS_BCOPY:
* ์ด ๊ธฐํ˜ธ๋Š” bcopy() ๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
* ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์— ์ด ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
* ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์—์„œ๋Š” ๋Œ€์‹  bcopy()๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์„ธ์š”.
* bcopy๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ memcpy()์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
*/
#$d_bcopy HAS_BCOPY /**/
#ifndef HAS_BCOPY
#ifdef bcopy
#un-def bcopy
#endif
#define bcopy(s,d,l) memcpy((d),(s),(l)) /* memcpy์— ๋งคํ•‘๋จ */
#endif

/* HAS_DUP2:
* ์ด ๊ธฐํ˜ธ๊ฐ€ ์ •์˜๋œ ๊ฒฝ์šฐ dup2 ๋ฃจํ‹ด์ด ๋‹ค์Œ๊ณผ ๊ฐ™์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
* ํŒŒ์ผ ์„ค๋ช…์ž๋ฅผ ๋ณต์ œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
*/
#$d_dup2 HAS_DUP2 /**/

/* I_STRING:
* ์ •์˜๋œ ๊ฒฝ์šฐ ์ด ๊ธฐํ˜ธ๋Š” C ํ”„๋กœ๊ทธ๋žจ์— ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
* ํฌํ•จํ•˜๋‹ค (USG ์‹œ์Šคํ…œ) ๋Œ€์‹  (BSD ์‹œ์Šคํ…œ).
*/
#$i_string I_STRING /**/

#endif
!๊ทธ๋กœํฌ!์ด๊ฒƒ!

ํŒŒ์ผ ์ƒ๋‹จ์—์„œ ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ‘œ์ค€ .SH ๊ตฌ์„ฑ์„ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.
์ž์„ธํžˆ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์—ฌ๊ธฐ ๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ํŒŒ์ผ ์ž์ฒด๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ณ€์ˆ˜ ๋Œ€์ฒด. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์„œ๋Š” ์ผ๋ฐ˜ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ• ๊ทธ๋Ÿฌ๋‚˜ SED ๋Œ€์‹ , ์ดํ›„
์ฆ‰์„์—์„œ ์ถ”๊ฐ€ ํŽธ์ง‘์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋‚˜์ค‘์— ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์žŠ์–ด๋ฒ„๋ฆฌ์„ธ์š”.
์ง€๊ธˆ ๋‹น์žฅ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด.

์ด์ œ ์ฒซ ๋ฒˆ์งธ ์ฃผ์„์— ๋„๋‹ฌํ–ˆ์œผ๋ฉฐ ํŒŒ์ผ์— ๊ตฌ์„ฑ ์‹œ๊ฐ„ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋Œ€์ƒ ์‹œ์Šคํ…œ ๋“ฑ... (์†Œ์Šค์—์„œ ์˜ค๋Š” ๋ณ€์ˆ˜ config.sh ํŒŒ์ผ์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์— ์˜ํ•ด ์„ค์ • ๊ตฌ์„ฑ). ํ•ด๋‹น ์ฃผ์„ ํ—ค๋” ๋’ค์—๋Š” ๋ณดํ˜ธ๋ฅผ ์œ„ํ•œ '#ifndef' ๋ณดํ˜ธ๊ฐ€ ์˜ต๋‹ˆ๋‹ค.
์ด ํŒŒ์ผ์ด ์—ฌ๋Ÿฌ ๊ฐœ ํฌํ•จ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํŒŒ์ผ์˜ ํ•ต์‹ฌ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์„ ์•„๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋œ๋‹ค $d_* ๊ณผ $i_* ๋ณ€์ˆ˜๋Š” '๋ฐํžˆ๋‹ค'๋˜๋Š”'์–ธ๋ฐํ”„' ์— ์˜ํ•ด
๊ตฌ์„ฑ, ๊ธฐ๋Šฅ์ด๋‚˜ ํฌํ•จ ํŒŒ์ผ์ด ์‹œ์Šคํ…œ์— ์กด์žฌํ•˜๋Š”์ง€ ๋˜๋Š”
์•„๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

#$d_bcopy HAS_BCOPY /**/

์ค„์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.

#define HAS_BCOPY /**/

$d_bcopy ๋ณ€์ˆ˜๊ฐ€ 'define'์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ ๋˜๋Š”:

#undef HAS_BCOPY /**/

$d_bcopy๊ฐ€ 'undef'๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์— ๋ฌด์—‡์ด ์“ฐ์—ฌ์ง€๋‚˜์š”? ๊ตฌ์„ฑ.h ํŒŒ์ผ ๋•Œ๋ฌธ์— SED ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฏธ ๋ณธ ํ•„ํ„ฐ,
๋‘ ๋ฒˆ์งธ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

/*#define HAS_BCOPY /**/

๋‚˜์ค‘์— ํŽธ์ง‘ํ•  ๋•Œ ํŽธ๋ฆฌํ•œ ์–‘์‹์ž…๋‹ˆ๋‹ค. ๊ตฌ์„ฑ.h ์ œ๊ฑฐ๋งŒ ํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์—
์žฌ์ •์˜ํ•˜๋ ค๋ฉด ์•ž์— '/*'๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”. ๊ตฌ์„ฑ๋‹˜์˜ ์„ ํƒ์ž…๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹จ์ผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŠน์ • ๊ธฐํ˜ธ์˜ ์ •์˜๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด '#define' ์ค„ ์‹œ์ž‘ ๋ถ€๋ถ„์— '/*'๋ฅผ ๋ถ™์ž…๋‹ˆ๋‹ค.
์ด๊ฒƒ์ด ๊ฐ ๊ธฐํ˜ธ ์ •์˜๊ฐ€ ํ›„ํ–‰ '/**/'๋กœ ๋ณดํ˜ธ๋˜์–ด ์„ ํ–‰ ๊ธฐํ˜ธ๋ฅผ ๋‹ซ๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.
'/*'๋กœ ์—ด๋ฆฐ ์ฃผ์„์ž…๋‹ˆ๋‹ค(์ฃผ์„์€ C์— ์ค‘์ฒฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

์ด์ œ '#undef'๋ฅผ '/*#define'์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ ์‹ค์ œ๋กœ
'#undef', ์šฐ๋ฆฌ๋Š” ๊ผผ์ง ๋ชปํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค... '#un-def'๋กœ ์ž‘์„ฑํ•˜๊ณ  ๊ทธ๋Œ€๋กœ ๋‘์ง€ ์•Š์œผ๋ฉด SED ์ด๋ฅผ '#undef'๋กœ ์ˆ˜์ •ํ•˜์„ธ์š”.
์ƒ์‚ฐํ•˜๋Š” ๋™์•ˆ ๊ตฌ์„ฑ.h, ์ด๊ฒƒ์ด ์‹ค์ œ๋กœ ์—ฌ๊ธฐ์„œ ์ˆ˜ํ–‰๋˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.

๋™์ผํ•œ ์ข…๋ฅ˜์˜ ์ถ”๋ก ์ด ํ•ด๋‹น ๋‘ ์ค„์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

#$d_dup2 HAS_DUP2 /**/
#$i_string I_STRING /**/

๊ทธ๋ฆฌ๊ณ  ๊ฐ€์ • config.sh ์ •์˜:

d_dup2='์ •์˜'
i_string='undef'

์šฐ๋ฆฌ๋Š” ์ƒ์‚ฐ์— ๋“ค์–ด๊ฐˆ ๊ฒƒ์ด๋‹ค ๊ตฌ์„ฑ.h:

#HAS_DUP2 ์ •์˜ /**/
/*#define I_STRING /**/

ํ๋ฅด๋Š” ๋ฌผ์ฒ˜๋Ÿผ ๋ง‘์•„์š”? ์ข‹์€!

์ด์ œ ๋‹ค์Œ์„ ํฌํ•จํ•˜๋ฉด ๋‹ค์Œ์ด ๋ถ„๋ช…ํ•ด์ง‘๋‹ˆ๋‹ค. ๊ตฌ์„ฑ.h ๋ชจ๋“  C ์†Œ์Šค ํŒŒ์ผ์—์„œ
๋ฌด์—‡์„ ์•Œ๊ณ  ๊ตฌ์„ฑ ๊ท€ํ•˜์˜ ์‹œ์Šคํ…œ์—์„œ ์ถ”์ธกํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํ•ด๋‹น ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด
๊ตฌ์„ฑ๋œ C ์ฝ”๋“œ ์ž‘์„ฑ, ์ดํ›„ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๋‹น์‹ ์—๊ฒŒ ๊ทธ ๊ธฐํ˜ธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ ํ•ฉํ•œ ์ƒ์„ฑ ๊ตฌ์„ฑ_h.SH ํŒŒ์ผ๊ณผ ํ•„์š”ํ•œ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑ ์—
(๊ด€๋ จ ์‰˜ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜์—ฌ) ์ ์ ˆํ•œ ๊ฐ’์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ฌ๋ฆฌ๋Š” ๋ฉ”ํƒ€ ๊ตฌ์„ฑ
์— ์ง‘์ค‘ํ•˜์ž ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹จ์œ„๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ž ์‹œ ๋™์•ˆ
ํ•„์š”ํ•œ ๋ชจ๋“  ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ƒˆ๋กœ ์“ฐ์‹ค ์ƒ๊ฐ์ด๋ผ๋ฉด
๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ „์ฒด ๊ณ„ํš์„ ์ž˜ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MANIFEST.new ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ, ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๋Œ€์‹  MANIFEST ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
ํŽธ์˜์ƒ. MANIFEST.new๋ฅผ ์–ธ๊ธ‰ํ•˜๋Š” ๋ชจ๋“  ๊ณณ์—์„œ๋Š” MANIFEST๋กœ ์ดํ•ด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒจํ‚ค์ง€ ๋ฃจํŠธ์— MANIFEST.new ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ.

MANIFEST.new ํŒŒ์ผ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋˜์–ด ์žˆ๊ณ  ์›ํ•˜๋Š” ๋ชจ๋“  ์†Œ์Šค ํŒŒ์ผ์ด ๋‚˜์—ด๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ท ๋ฃจํŠธ ์†Œ์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ์—
ํŒจํ‚ค์ง€ ํŒŒ์ผ, ๋‹น์‹ ์€ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ์„ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค:

$ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ
์žฅ์น˜๋ฅผ ์ฐพ๋Š” ์ค‘...
312๊ฐœ ๋‹จ์œ„์—์„œ ์ข…์†์„ฑ ๋ชฉ๋ก์„ ์ถ”์ถœํ•˜๋Š” ์ค‘...
MANIFEST.new์—์„œ ํŒŒ์ผ ์ด๋ฆ„(*.[chyl] ๋ฐ *.SH) ์ถ”์ถœ ์ค‘...
์›ํ•˜๋Š” ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ์ค‘...
.[chyl] ํŒŒ์ผ์—์„œ ๊ธฐํ˜ธ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ์ค‘...
.SH ํŒŒ์ผ์—์„œ ๊ธฐํ˜ธ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ์ค‘...
์ตœ์ ์˜ ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ค‘...
๋น„๊ณต๊ฐœ make ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ์ค‘...
๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ๋‹จ์œ„ ๊ฒฐ์ • ์ค‘...
make ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ค‘...
๋‹จ์œ„์˜ ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ค‘...
๊ตฌ์„ฑ ์ƒ์„ฑ ์ค‘...
๋งŒ๋“ค๊ธฐ

์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ๋Š” ๊ณต์šฉ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๋ชจ๋“  ๋‹จ์œ„ ํŒŒ์ผ(.U๋กœ ๋๋‚จ)์„ ์ฐพ์Šต๋‹ˆ๋‹ค.
๋จผ์ €, ๊ทธ ๋‹ค์Œ์—๋Š” ๊ฐœ์ธ์šฉ์œผ๋กœ. ๋น„๊ณต๊ฐœ U ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๊ณต๊ฐœ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๋Š” ๊ฒฝ์šฐ
(์ฆ‰, ํŒจํ‚ค์ง€์˜ ์ตœ์ƒ์œ„ ์ˆ˜์ค€์— ์žˆ๋Š” U๋ผ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ) ๊ณต๊ฐœ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
๋ฒ„์ „. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋‹จ์œ„ ๋ชฉ๋ก์ด ์žˆ์œผ๋ฉด ์ด๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ๋ชจ๋“  ๋‹จ์œ„๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
?MAKE: ๋ผ์ธ์€ ์ข…์†์„ฑ๊ณผ ์•Œ๋ ค์ง„ ์‰˜ ๊ธฐํ˜ธ์— ๋Œ€ํ•ด ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ๋˜ํ•œ
?H: ๋ผ์ธ์— ์ดˆ์ ์„ ๋งž์ถฐ C ๊ธฐํ˜ธ์™€ ์–ด๋–ค ์‰˜ ๊ธฐํ˜ธ๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋Š”์ง€ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.
ํ•ด๋‹น C ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•ด ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค(๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๋˜ ๋‹ค๋ฅธ ์ˆ˜์ค€์˜ ์ข…์†์„ฑ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค).
์ด๋ฆฌ).

๋‹ค์Œ์œผ๋กœ MANIFEST.new ํŒŒ์ผ์—์„œ ์ ์ ˆํ•œ ํŒŒ์ผ ์ด๋ฆ„์ด ์ถ”์ถœ๋˜๊ณ  ๊ตฌํ•จ ํŒŒ์ผ์€
build: ํ•ด๋‹น ํŒŒ์ผ์—๋Š” ํ•ด๋‹น ํŒจํ‚ค์ง€์— ํ•„์š”ํ•œ ๋ชจ๋“  C ๊ธฐํ˜ธ์™€ ์…ธ ๊ธฐํ˜ธ๊ฐ€ ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ
๋จผ์ € C ๊ธฐํ˜ธ์— ๋Œ€ํ•œ C ์œ ํ˜• ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•œ ๋‹ค์Œ ํ•ด๋‹น ํŒŒ์ผ์— ์ข…์†์„ฑ์„ ์ „ํŒŒํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์‰˜ ๊ธฐํ˜ธ(?H: ํ–‰์—์„œ ์ˆ˜์ง‘). ๋‹ค์Œ .SH ํŒŒ์ผ์ด ์Šค์บ”๋˜๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ
๋ชจ๋“  ์‰˜ ๊ธฐํ˜ธ๊ฐ€ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž„์‹œ Makefile์ด ๋นŒ๋“œ๋˜๊ณ  Metaconfig๊ฐ€ ๋‹ค์Œ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์‰˜ ๊ธฐํ˜ธ
์–ด๋–ค ๋ช…๋ น(๋‘ ๋ฒˆ์งธ ?MAKE: ์ค„์— ๋‚˜์—ด๋จ)์ด ์‹คํ–‰๋˜๊ณ , ๋”ฐ๋ผ์„œ ์–ด๋–ค ์žฅ์น˜๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๊นŒ?
์ •๋ง ํ•„์š”ํ•ด์š”. ๋‹ฌ๋ฆฌ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์„ ํƒ์  ๋‹จ์œ„๋Š” ์ œ๊ฑฐ๋˜๊ณ  ๋‘ ๋ฒˆ์งธ Makefile์€
์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๋ชจ๋“  ๋‹จ์œ„์™€ ํ•ด๋‹น ์ฃผ๋ฌธ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
์ œ๊ฑฐ๋œ ๋‹จ์œ„์™€ ํ•ด๋‹น ์‰˜ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ด ๊ณ„์‚ฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋งŒํผ
๊ตฌ์„ฑ ๊ทธ๋Ÿฐ ๋‹ค์Œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ_h.SH. ์ด์ œ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.

ํ˜‘์•ฝ
์ „์ฒด ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฑด์ „ํ•˜๊ฒŒ ๋งŒ๋“ค๋ ค๋ฉด ์ ์ ˆํ•œ ๊ทœ์น™์„ ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค
๋‹จ์œ„ ๊ทœ์น™ ๋ฐ ๋ณ€์ˆ˜ ๋ช…๋ช… ๊ทœ์น™.

๋ชจ๋“  ๋‹จ์œ„๋Š” ํŠน๋ณ„ํ•œ ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ํ•œ ์ฒซ ๊ธ€์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์— ์˜ํ•ด
ํŠน๋ณ„ํ•˜๋‹ค๋Š” ๊ฒƒ์€ ๊ทธ๋“ค์ด ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ์‰˜ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์ž์‹ ์˜ .SH ํŒŒ์ผ์— ์žˆ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ์Šคํฌ๋ฆฝํŠธ๋‚˜ ์‰˜ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.
๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ. ์ „ํ˜•์ ์ธ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค ์ด๋‹ˆํŠธ์œ  ํŒŒ์ผ์€
์ฃผ์š” ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”, ๋˜๋Š” ๋งˆ์ด๋ฆฌ๋“œ.์œ  ์ด๋Š” ๋‚ด ์ฑ… ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ
์–ด๋””์—๋‚˜ ๊ตฌ์„ฑ ์‚ฌ์šฉ์ž์—๊ฒŒ ์งˆ๋ฌธ์„ ํ•  ๋•Œ.

๋น„ํŠน์ˆ˜ ๋‹จ์œ„๋Š” ๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ๊ทธ๋ฃน์œผ๋กœ ์„ธ๋ถ„ํ™”๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.
์ž์ฒด ์‰˜ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” C ๊ธฐํ˜ธ ๋ฐ ๋‹จ์œ„์™€ ์—ฐ๊ด€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ทธ๋ฃน
ํฌํ•จ ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜๋กœ ๋” ๋‚˜๋‰ฉ๋‹ˆ๋‹ค(์ด๋ฆ„์€ i_) and
๋‹ค๋ฅธ ์ •์˜์™€ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜(์ด๋ฆ„์€ d_). ๋‘ ๋ฒˆ์งธ ๊ทธ๋ฃน์€
์˜ˆ๋ฅผ ๋“ค์–ด, ๊ทธ ์ž์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ด๋ฆ„ cc.U ์ •์˜ $cc ๊ฐ’์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‰˜ ๋ณ€์ˆ˜
์‚ฌ์šฉํ•  C ์ปดํŒŒ์ผ๋Ÿฌ.

ํŠน์ˆ˜ ์œ ๋‹›์€ ๋•Œ๋•Œ๋กœ ๋ฏธ๋ฆฌ ์ •์˜๋œ ๋ณ€์ˆ˜๋ฅผ ์˜ˆ์•ฝํ•˜๊ณ  "๊ฒฐ๊ณผ"๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์ž˜ ์•Œ๋ ค์ง„ ๋ณ€์ˆ˜์—์„œ. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‚ด ์ฑ… Myread.U์—์„œ ์ œ์ž‘ํ•œ ์Šคํฌ๋ฆฝํŠธ
ํ”„๋กฌํ”„ํŠธ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค $rp, ๊ธฐ๋ณธ ๋‹ต๋ณ€์€ $dflt ์‚ฌ์šฉ์ž ๋‹ต๋ณ€์„ $ans.
์ด๋Š” ์ด ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€์— ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง์ ‘ ๊ฐ€์„œ ์žฅ์น˜ ์ž์ฒด๋ฅผ ์‚ดํŽด๋ณด์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์–ด๋–ค ๋ณ€์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋˜๋Š”์ง€, ๋‹จ์œ„๊ฐ€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ XNUMXD๋ดํƒˆ์˜ ์šฉ์–ด์‚ฌ์ „
์šฉ์–ด์ง‘ ํŒŒ์ผ์€ ๋‹ค์Œ์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์ดํฌ๊ธ€๋กœ์Šค ์ถ”์ถœํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ
?S:, ?C: ๋ฐ ?MAKE: ํ–‰์˜ ์ •๋ณด๋ฅผ ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ๋‹ค์‹œ ํฌ๋งทํ•ฉ๋‹ˆ๋‹ค.
์ •๋ ฌ๋œ ์šฉ์–ด์ง‘. ์ž์‹ ์ด ์†ํ•œ ๊ธฐํ˜ธ์— ๋Œ€ํ•ด ์•Œ๊ธฐ ์œ„ํ•ด ์šฉ์–ด์ง‘์„ ์ฝ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฉ์–ด์ง‘์—์„œ๋Š” ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต์€ ๊ทธ๋ ‡์ฃ 
๋‹น์‹ ์—๊ฒŒ ๋‹ฌ๋ ธ์Šต๋‹ˆ๋‹ค.

์–ธ์  ๊ฐ€ ๋‹น์‹ ์€ ์•„๋งˆ๋„ ์ž์‹ ๋งŒ์˜ ๋‹จ์œ„๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๊ณ , ๋‹ค์Œ์— ๋Œ€ํ•ด ์ถฉ๋ถ„ํžˆ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ
์‹ ์†ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ž‘์—… ๋‚ด์šฉ์„ ์ ์ ˆํ•˜๊ฒŒ ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
?S: ๋ฐ ?C: ์ค„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์— ๋Œ€ํ•ด ๊ธฐ์–ตํ•˜์„ธ์š”
์ฒ˜์Œ์—๋Š” ์šฉ์–ด์ง‘๊ณผ ์ด ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€๋งŒ ์žˆ์œผ๋ฉด ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 
์ด์ œ ๋‹น์‹ ์€ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ์ฝ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์ˆ  ์„น์…˜, ๋‹ค์Œ
๊ฑด๋„ˆ๋›ฐ๊ธฐ ๋ช…์‹œ ํ—ˆ์šฉ๋˜๋Š” ๋ชจ๋“  ์„ธ๋ถ€ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋Š” ์„น์…˜
๋‹จ์œ„ ์ œ์–ด ๋ผ์ธ('?'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ผ์ธ) ๋˜๋Š” ๋ณ„๋„์˜ MAKE ๋ช…๋ น์— ๋Œ€ํ•œ ๊ตฌ๋ฌธ
๋‹น์‹ ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…์‹œ


์ด ์„น์…˜์—์„œ๋Š” ๋‚ด๋ถ€ ๋‚ด์šฉ์„ ๋ฌธ์„œํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ, ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹จ์œ„ ๊ตฌ๋ฌธ, ํŠน์ˆ˜
์•Œ์•„์•ผ ํ•  ๋‹จ์œ„์™€ ํžŒํŠธ ํŒŒ์ผ.

์ผ๋ฐ˜ ๋‹จ์œ„ ํ†ต์‚ฌ๋ก 
๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๋‹จ์œ„๋Š” ๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ํ—ค๋” ์„น์…˜(์‹œ์ž‘ํ•˜๋Š” ์ค„
'?' ํฌํ•จ) ๋ฐ ์‰˜ ์„น์…˜( ๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ). ๊ทธ๊ฒƒ์€
์œ ๋‹› ๋‚ด์˜ ์–ด๋Š ๊ณณ์—๋‚˜ '?X:' ์ฃผ์„์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ '?' ๋ผ์ธ(๋˜ํ•œ
๋ผ๋Š” ์ œ์–ด ๋ผ์ธ) ์—„๊ฒฉํ•œ ์ฃผ๋ฌธ ์ •์ฑ…์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ์–ด์„ ์ด ๋„ˆ๋ฌด ๊ธธ๋ฉด ์ตœ์ข…์„ ํƒˆ์ถœํ•˜์—ฌ ์—ฐ์†์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐฑ์Šฌ๋ž˜์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ์ค„๋กœ ๊ณ„์†๋˜๋Š” ์ƒˆ ์ค„(๊ทธ ๋‹ค์Œ ๋“ค์—ฌ์“ฐ๊ธฐํ•ด์•ผ ํ•จ)
๊ณต๋ฐฑ์ด๋‚˜ ํƒญ์œผ๋กœ).

๋‹ค์Œ์€ ๊ฐ ์ œ์–ด ๋ผ์ธ์— ๋Œ€ํ•œ ๊ณต์‹์ ์ธ ์„ค๋ช…์ž…๋‹ˆ๋‹ค. ๋ช…์‹œ๋˜์ง€ ์•Š๋Š” ํ•œ
๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด ํ”„๋ ˆ์  ํ…Œ์ด์…˜์˜ ์ˆœ์„œ๋Š” ๋‹จ์› ๋‚ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ˆœ์„œ์ž…๋‹ˆ๋‹ค.

?RCS: ๋น„์–ด ์žˆ๋Š” ๋ณธ๋ฌธ
์œ ๋‹› ์ƒ๋‹จ์˜ RCS ๋Œ“๊ธ€์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

?์—‘์Šค: ์–ด๋–ค ๋ณธ๋ฌธ
๋ฒ”์šฉ ์ฃผ์„. ๋‹จ์œ„์˜ ์–ด๋Š ์œ„์น˜์—๋‚˜ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์ง€๋งŒ ์™ผ์ชฝ ์ •๋ ฌ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
RCS ์˜๊ฒฌ์˜ ๊ฒฝ์šฐ ?RCS: ์˜๊ฒฌ ์–‘์‹์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

?๋งŒ๋“ค๋‹ค:์ƒ์ง• ๋ช…๋ถ€: ์˜์กด ๋ช…๋ถ€ [+์„ ํƒ์‚ฌํ•ญ]
์ด๊ฒƒ์ด ์ฒซ ๋ฒˆ์งธ ์ข…์†์„ฑ ๋ผ์ธ์ž…๋‹ˆ๋‹ค. ์ฒซ๋ฒˆ์งธ ์ƒ์ง• ๋ช…๋ถ€ ๋ชจ๋“  ๊ธฐํ˜ธ๋ฅผ ๋‚˜์—ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด ์žฅ์น˜์— ์˜ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค(์ฆ‰, ๊ทธ ๊ฐ’์€ ์žฅ์น˜์˜ ์‰˜ ์„น์…˜์— ์˜ํ•ด ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค).
๊ธฐํ˜ธ๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ •์˜๋œ ๊ธฐํ˜ธ๊ฐ€ ๋‚ด๋ถ€ ์šฉ๋„๋กœ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ
์ƒ์„ฑ๋œ ํ•ญ๋ชฉ์— ํ‘œ์‹œ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. config.sh ํŒŒ์ผ ์•ž์—๋Š” ๋‹ค์Œ์ด ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.
'+'(์ดํ›„์— ์ •์˜๋˜๋Š” ์„ ํƒ์  ์ข…์†์„ฑ๊ณผ ํ˜ผ๋™ํ•˜์ง€ ๋งˆ์„ธ์š”). ๋‘๋ฒˆ์งธ
๋ชฉ๋ก์˜ ์ผ๋ถ€(๊ฐ€์šด๋ฐ ':' ๋’ค)๋Š” ๋‹จ์œ„ ์ข…์†์„ฑ์ž…๋‹ˆ๋‹ค. ๋ชจ๋‘ ๋‚˜์—ด๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค
ํ•„์š”ํ•œ ํŠน์ˆ˜ ๋‹จ์œ„์™€ ์‰˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ๊ธฐํ˜ธ
๊ตฌํ˜„. ๊ธฐํ˜ธ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์ง€๋งŒ ํ•ด๋‹น ๊ตฌ์„ฑ ๊ฐ’์ด ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
์•ž์— '+'๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๊ฒฝ์šฐ ์กฐ๊ฑด๋ถ€ ์ข…์†์„ฑ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ์žฅ์น˜๋Š” ํ•ด๋‹น ๊ธฐํ˜ธ๊ฐ€ ์‹ค์ œ๋กœ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.
์›ํ•จ; ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

?๋งŒ๋“ค๋‹ค:ํƒญ ๋ช…๋ น
์ดˆ๊ธฐ ์ข…์†์„ฑ ์ค„ ๋’ค์— ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ช…๋ น์ค„์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๊ฒƒ๋“ค
์žฅ์น˜๊ฐ€ ๋ช…๋ น์„ ๋กœ๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ช…๋ น์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ. ์ฐธ์กฐ
์ž์„ธํ•œ ๋‚ด์šฉ์€ make ๋ช…๋ น์— ๋Œ€ํ•œ ๋‹จ๋ฝ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ์ฐธ๊ณ ๋กœ ์„ ๋‘ ํƒญ
์•ž์— ๋ฌธ์ž๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น.

?์™€์ด:๋ ˆ์ด์•„์›ƒ
์ด ์œ ๋‹›์— ๋Œ€ํ•œ ๋ ˆ์ด์•„์›ƒ ์ง€์‹œ์–ด๋ฅผ ์„ ์–ธํ•˜์„ธ์š”. ํ•ด๋‹น ์ง€์‹œ์–ด๋Š” ๋ฌธ์ž์—ด ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ƒ๋‹จ, ๋””ํดํŠธ ๊ฐ’ or ๋ฐ”๋‹ฅ (๋Œ€์†Œ๋ฌธ์ž๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฒ ์ž๋กœ ํ‘œ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
๋Œ€๋ฌธ์ž). ์ƒ๋žตํ•˜๋Š” ๊ฒฝ์šฐ, ๋””ํดํŠธ ๊ฐ’ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ง€์‹œ๋ฌธ์€ ์žฅ์น˜๋ฅผ ์ƒ๋‹จ์ด๋‚˜ ํ•˜๋‹จ์— ๊ฐ•์ œ๋กœ ์ ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์ƒ์„ฑ๋œ ๊ตฌ์„ฑ ๋‹จ์œ„ ์ข…์†์„ฑ์ด ํ—ˆ์šฉํ•˜๋Š” ๋Œ€๋กœ ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ
๋”ฐ๋ผ์„œ ์ฒ˜์Œ์—๋Š” ์งˆ๋ฌธ์ด ๊ฐ•์š”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ ˆ์ด์•„์›ƒ ํด๋ž˜์Šค ๋‚ด์—์„œ ๋‹จ์œ„
d_* ๋ฐ i_* ๋‹จ์œ„์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.
๊ฐ๊ฐ ํ•ด๋‹น ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ๋ฐ ์ตœํ•˜์œ„์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ์ด๋“ค์€ ํ•ด๋‹น ํด๋ž˜์Šค์— ์†ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค).
๊ธฐ๋ณธ ํด๋ž˜์Šค).

๋‹ค๋ฅธ ๋ชจ๋“  ์žฅ์น˜๊ฐ€ ์ข…์†์„ฑ์„ ์š”๊ตฌํ•˜๋Š” ์žฅ์น˜๋ฅผ ๋งจ ์œ„์— ๊ฐ•์ œ๋กœ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ
๊ทธ ์ „์—๋Š” ํฅ๋ฏธ๋กœ์šด ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ์ง€์‹œ๋ฌธ์€ ์‹ค์ œ๋กœ
๋‹ค์ˆ˜์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ์ผ๋ถ€ ๋Œ€ํ™”ํ˜• ๋‹จ์œ„์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ด๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๊ฒฝ๋กœ ๊ด€๋ จ ์งˆ๋ฌธ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ๊ธฐํƒ€ ๊ธฐํ˜ธ์ž…๋‹ˆ๋‹ค.

?์—์Šค:๊ธฐํ˜ธ_์ด๋ฆ„ [(์‹œ๋Œ€์— ๋’ค ๋–จ์–ด์ง„ ์ƒ์ง• ๋ช…๋ถ€)]:
์‰˜ ๊ธฐํ˜ธ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฒซ ๋ฒˆ์งธ ์ค„์€ ๊ธฐํ˜ธ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ณ  ์„ ํƒ์ ์œผ๋กœ ๋’ค์— ๊ธฐํ˜ธ๊ฐ€ ๋ถ™์Šต๋‹ˆ๋‹ค.
๊ด„ํ˜ธ ์•ˆ์— ๋ชฉ๋ก์„ ๋„ฃ๊ณ  ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ•ด๋‹น ํ•ญ๋ชฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์“ธ๋ชจ์—†๋Š” ๊ฒƒ๋“ค
๊ธฐํ˜ธ๋Š” ์ƒˆ ๊ธฐํ˜ธ๋กœ ๋‹ค์‹œ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค. ๊ธฐํ˜ธ_์ด๋ฆ„ ๊ฒฝ์šฐ -o ์˜ต์…˜์ด ์ฃผ์–ด์ง„๋‹ค
๋ฉ”ํƒ€ ๊ตฌ์„ฑ.

?์—์Šค:์–ด๋–ค ๋ณธ๋ฌธ, for ์šฉ์–ด์‚ฌ์ „
๊ธฐ๋ณธ์ ์œผ๋กœ ์…ธ ๊ธฐํ˜ธ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ฃผ์„์œผ๋กœ ์ถ”์ถœ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์ดํฌ๊ธ€๋กœ์Šค
์šฉ์–ด์ง‘ ํŒŒ์ผ์—.

?์—์Šค:. ์‰˜ ๊ธฐํ˜ธ ์„ค๋ช…์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.

?์”จ:๊ธฐํ˜ธ_์ด๋ฆ„ [~ ๋ณ„๋ช…] [(์‹œ๋Œ€์— ๋’ค ๋–จ์–ด์ง„ ์ƒ์ง• ๋ช…๋ถ€)]:
์ƒˆ๋กœ์šด C ๊ธฐํ˜ธ๋ฅผ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋งŒํผ ๋ณ„๋ช… name์€ C ๊ธฐํ˜ธ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
ํ†ต์ œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ณ„๋ช… ๊ธฐํ˜ธ๋ฅผ ์›ํ•˜๋ฉด ํ•ด๋‹น C ๊ธฐํ˜ธ๊ฐ€ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.
FBI ์ฆ์˜ค ๋ฒ”์ฃ„ ๋ณด๊ณ ์„œ ๊ตฌ์„ฑ_h.SH ํŒŒ์ผ. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ณ„์นญ์€ '%<'(์žฅ์น˜ ์ด๋ฆ„์„ ๋‚˜ํƒ€๋ƒ„)์ž…๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  C ๊ธฐํ˜ธ๋ฅผ ?W: ๋ผ์ธ์— ๋งคํ•‘ํ•˜๋Š” ๋ผ์ธ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๋ช…. ๊ด€๋ จ ๋ถ€๋ถ„๋„
?H: ํ–‰์€ '?%<' ์กฐ๊ฑด์œผ๋กœ ๋ช…์‹œ์ ์œผ๋กœ ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค. ๊ธฐํ˜ธ ๋ณด๊ธฐ
์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•จ๋ฆฌ์–ด์‹ฑ ๋‹จ๋ฝ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๋‚˜๋จธ์ง€ ์ค„์€ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.
์‹œ๋Œ€์— ๋’ค ๋–จ์–ด์ง„ ์ƒ์ง• ๋ช…๋ถ€, ์ƒˆ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๊ธฐ์กด ํ•ญ๋ชฉ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ๊ธฐํ˜ธ_์ด๋ฆ„.

?์”จ:์–ด๋–ค ๋ณธ๋ฌธ, for ์šฉ์–ด์‚ฌ์ „ ๊ณผ ๊ตฌ์„ฑ_h.SH
๊ธฐ๋ณธ์ ์œผ๋กœ C ๊ธฐํ˜ธ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ฃผ์„์œผ๋กœ ์ถ”์ถœ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์ดํฌ๊ธ€๋กœ์Šค
์šฉ์–ด์ง‘ ํŒŒ์ผ์— ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๋กœ ๊ตฌ์„ฑ_h.SH ๊ธฐํ˜ธ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ํŒŒ์ผ
์›ํ•จ(๋˜๋Š” ๊ธฐํ˜ธ ์•จ๋ฆฌ์–ด์‹ฑ์„ ์‚ฌ์šฉํ•  ๋•Œ ํ•ด๋‹น ์•จ๋ฆฌ์–ด์Šค๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ).

?์”จ:. C ๊ธฐํ˜ธ ์„ค๋ช…์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.

?์‹œ๊ฐ„:?์ƒ์ง•:๊ตฌ์„ฑ_h.SH ๋ฌผ๊ฑด
๋‹ค์Œ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ํฌํ•จ ์š”์ฒญ์ž…๋‹ˆ๋‹ค. ๊ตฌ์„ฑ_h.SH. ์ด ์ค„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.
๊ฒฝ๋น„ ์ƒ์ง• ์ •๋ง๋กœ ์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ผ๋ฐ˜์ ์ธ ํ˜•์‹์€ C ๊ธฐํ˜ธ์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์•จ๋ฆฌ์–ด์‹ฑ์ด ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ "ํ‘œ์ค€" ์–‘์‹ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
๋ณดํ˜ธ๋Š” ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์ž์ฒด.

?์‹œ๊ฐ„:#$d_var VAR "$var"
์กฐ๊ฑด๋ถ€๋กœ ์ •์˜ VAR C ๊ธฐํ˜ธ๋กœ $var '๋กœ ์„ค์ •๋˜๋ฉด๋ฐํžˆ๋‹ค'. ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
'?VAR:' ๋ณดํ˜ธ ์ƒํƒœ, ๊ทธ๋ฆฌ๊ณ  ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์ž๋™์œผ๋กœ ๋งํฌ VAR ๋‘ ๊ฐœ์˜ ๊ป์งˆ์—
๋ณ€์ˆ˜ ์ข…์†์„ฑ(์˜ˆ: ๋‘˜ ๋‹ค $d_var ๊ณผ $var ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์› if VAR is
C ์†Œ์Šค์—์„œ ์‚ฌ์šฉ๋จ)

?H:#์ •์˜ VAR [์„ ํƒ ๋ณธ๋ฌธ]
ํ•ญ์ƒ ์ •์˜ VAR C ๊ธฐํ˜ธ๋ฅผ ์–ด๋–ค ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. '?VAR:' ๋ณดํ˜ธ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.
์žฅ์น˜ ์ž์ฒด์— ์ž๋™ ์…ธ ์ข…์†์„ฑ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

?H:#์ •์˜ ๋ณ€์ˆ˜(x,y,z) $var
ํ•ญ์ƒ ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. VAR ์˜ ๊ฐ€์น˜๊ฐ€ ๋˜๋„๋ก $var ๋ณ€ํ•˜๊ธฐ ์‰ฌ์šด. ๊ทธ๊ฒƒ์€ ์— ๋‹ฌ๋ ค์žˆ๋‹ค
๋ณด์žฅํ•˜๋Š” ๋‹จ์œ„ $var ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€์น˜๋ฅผ ์ง€๋‹ˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. C ๊ฐ„์˜ ์ž๋™ ์ข…์†์„ฑ
๋งคํฌ๋กœ VAR ์‰˜ ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜๊ณ  ์ „์ฒด ๋ผ์ธ์ด ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค.
์•”๋ฌต์ ์œผ๋กœ '?VAR:'.

?์‹œ๊ฐ„:#$d_var VAR
์กฐ๊ฑด๋ถ€๋กœ ์ •์˜ VAR if $d_var '๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.๋ฐํžˆ๋‹ค'. '?VAR:'๊ฒฝ๋น„
์ƒํƒœ. ์ž๋™ ์‰˜ ์ข…์†์„ฑ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. $d_war.

?H:#์ •์˜ VAR "$var"
๊ตฌ์„ฑ๋œ ๊ฐ’์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. VAR C ๊ธฐํ˜ธ. '?VAR:' ๋ณดํ˜ธ ์กฐ๊ฑด.
๋งํฌ๋ฅผ ์œ„ํ•ด ์ž๋™ ์…ธ ์ข…์†์„ฑ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. VAR ๊ณผ $var.

?์‹œ๊ฐ„:. ๋‹ซ๋Š”๋‹ค ๊ตฌ์„ฑ_h.SH ํฌํ•จ ์š”์ฒญ.

?์ค‘:C ์ƒ์ง•: C ์˜์กด์„ฑ
C ๊ธฐํ˜ธ์— ๊ด€ํ•œ ๋งˆ๋ฒ• ์ •์˜๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. confmagic.h, ๊ทธ๋ฆฌ๊ณ 
๋‚˜๋จธ์ง€ ?M: ์ •์˜์— ๋Œ€ํ•œ ๋ณดํ˜ธ ๊ธฐํ˜ธ์ž…๋‹ˆ๋‹ค. ์ด ์ค„์€ ์กฐ์šฉํžˆ ์•”์‹œํ•ฉ๋‹ˆ๋‹ค.
'?W:%<:C ์ƒ์ง•', ์ฆ‰ C ๊ธฐํ˜ธ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ์žฅ์น˜๊ฐ€ ๊ตฌ์„ฑ์— ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.
C ์†Œ์Šค ๋‚ด์—์„œ ๋งˆ๋ฒ•์ด ์‚ฌ์šฉ๋˜๋Š”์ง€ ์—ฌ๋ถ€. C ์ข…์†์„ฑ์ด ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋งˆ๋ฒ•์„ ์‚ฌ์šฉํ•  ๋•Œ ์ •์˜๋ฅผ ๊ฐ•์ œํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑ_h.SH. ๊ทธ๋Ÿฌ๋‚˜,
๋งˆ๋ฒ•์€ ์ง€์› ์‚ฌ์šฉ๋˜์—ˆ์ง€๋งŒ C ๊ธฐํ˜ธ๊ฐ€ ํ•„์š”ํ•œ C ์—†์ด ์†Œ์Šค์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
์ข…์†์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Wanted ํŒŒ์ผ์ด ๋นŒ๋“œ๋  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์ด์‹์„ฑ ๋ฌธ์ œ(๋˜ํ•œ ์žฅ์น˜๊ฐ€ ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ๋กœ๋“œ๋˜๊ธฐ ๋•Œ๋ฌธ์—)
C ๊ธฐํ˜ธ๊ฐ€ ์‚ฌ์šฉ๋  ๋•Œ๋งˆ๋‹ค ๋‹ค๋ฅธ ?C: ํ–‰์— ๊ด€๊ณ„์—†์ด ๊ตฌ์„ฑํ•˜์‹ญ์‹œ์˜ค.
๋‹จ์œ„).

?์ค‘:CPP ๋ฐํ”„
๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค confmagic.h์— ๋„์ž…๋  ๋งค์ง cpp ๋งคํ•‘์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐํ˜ธ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•”๋ฌต์ ์œผ๋กœ '?SYM'์–ด๋””๋ฅผ ์ง€ํ‚ค๊ณ  SYM ๊ธฐํ˜ธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค
์„ ํ–‰ ?M: ํ–‰์œผ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

?์ค‘:. ๋‹ซ๋Š”๋‹ค confmagic.h ํฌํ•จ ์š”์ฒญ.

?W:๊ป์งˆ ์ƒ์ง• ๋ช…๋ถ€:C ์ƒ์ง• ๋ช…๋ถ€
C ๊ธฐํ˜ธ์˜ ์šด๋ช…๊ณผ ์‰˜ ๊ธฐํ˜ธ์˜ ์šด๋ช…์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
๋‚˜์—ด๋œ ๊ธฐํ˜ธ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ๋ชจ๋“  ์‰˜ ๊ธฐํ˜ธ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์œ ์šฉํ•จ
์ผ๋ถ€ C๊ฐ€ ์กด์žฌํ•  ๋•Œ ๋‹จ์œ„('%<'๋กœ ์„ค์ •๋œ ์‰˜ ๊ธฐํ˜ธ ๋ชฉ๋ก)๋ฅผ ๊ฐ•์ œ๋กœ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
๊ธฐํ˜ธ๊ฐ€ ๊ฐ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ธก๋ฉด์—์„œ ์ด์ ์„ ์–ป์œผ๋ ค๋ฉด ์‰˜ ๊ธฐํ˜ธ ๋ชฉ๋ก์„ ๋น„์›Œ ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด์žฅ ์ „์ฒ˜๋ฆฌ๊ธฐ ๋‚ด C ๊ธฐํ˜ธ ์œ„์น˜์˜ ํšจ๊ณผ(๊ธฐํ˜ธ๋Š” ํ•œ์ •๋œ
์†Œ์Šค์— ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์ „์ฒ˜๋ฆฌ๊ธฐ์— ๋Œ€ํ•ด). ๊ณต๋ฐฑ์ด ์žˆ๋Š” ํŒจํ„ด์„ ์ฐพ์œผ๋ ค๋ฉด
๊ทธ ์•ˆ์—๋Š” 'struct'์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•œ ๋”ฐ์˜ดํ‘œ ์•ˆ์— C ๊ธฐํ˜ธ๋ฅผ ์ธ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์‹œ๊ฐ„๋Œ€ '.

?V:์ฝ๊ธฐ ์ „์šฉ ๊ธฐํ˜ธ:์ฝ๊ธฐ-์“ฐ๊ธฐ ๊ธฐํ˜ธ
์ด๊ฒƒ์€ ๋ฉ”ํƒˆ๋ฆฐํŠธ ํžŒํŠธ์ด๋ฉฐ ์ผ๋ถ€ ์‰˜์„ ๋‚ด๋ณด๋‚ด๋Š” ํŠน์ˆ˜ ์œ ๋‹›์—์„œ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ณ€์ˆ˜. ์ค‘๊ฐ„ ':' ์•ž์˜ ๋ณ€์ˆ˜๋Š” ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ๋‚ด๋ณด๋‚ด์ง‘๋‹ˆ๋‹ค(๋ณ€๊ฒฝ
๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค). ๋ฐ˜๋ฉด ๋‹ค๋ฅธ ๊ธฐํ˜ธ๋Š” ์ž์œ ๋กญ๊ฒŒ ์ฝ๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

?NS:ํŒŒ์ผ ๋งŒ๋“ 
์ด ์ค„์€ ๋‘ ๊ฐ€์ง€ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒˆ๋ฆฐํŠธ ํžŒํŠธ ๋ฐ ์ž๋ฆฌ ํ‘œ์‹œ์ž
๋ฏธ๋ž˜ ์ œ์ด๋ฉ”์ดํฌ ์‚ฌ์šฉํ•˜๋‹ค. ์„ธ ์ข…๋ฅ˜์˜ ํŒŒ์ผ์„ ๋‚˜์—ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž„์‹œ ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ƒ์„ฑ๋œ ๊ฐœ์ธ UU๋Š” ๋‚˜์ค‘์— UU ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ •๋…, ๊ณต๊ฐœ๋Š” ํŒจํ‚ค์ง€์˜ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค. ์ผ์‹œ์ ์ธ
ํŒŒ์ผ์€ ์•ž์— '!' ๋ฌธ์ž("์•„๋‹ˆ์š”! ์žฌ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋‚˜์ค‘์—!"), ๊ฐœ์ธ UU ํŒŒ์ผ ์•ž์— './'(์˜๋ฏธ: ์‚ฌ์šฉํ•˜๋ ค๋ฉด
./ํŒŒ์ผ์•„๋‹ˆ๋ผ ํŒŒ์ผ), ๊ณต๊ฐœ๋Š” ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

?NS:๊ป์งˆ ์ž„์‹œ
๋‹ค๋ฅธ ๋ฉ”ํƒˆ๋ฆฐํŠธ ํžŒํŠธ. ์ด ์ค„์—๋Š” ์ž„์‹œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ์‰˜ ๋ณ€์ˆ˜๊ฐ€ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.
์ด ์žฅ์น˜์˜ ์‰˜ ์„น์…˜ ๋‚ด์—์„œ.

?๋””:์ƒ์ง•='๊ฐ€์น˜'
์กฐ๊ฑด๋ถ€ ์ข…์†์„ฑ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐํ˜ธ์˜ ์ดˆ๊ธฐํ™” ๊ฐ’์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ?D: ๋ผ์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ฐœ๊ฒฌ๋˜๋ฉด null ๊ฐ’์ด ๋Œ€์‹  ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋งŒํผ ๋ฉ”ํƒˆ๋ฆฐํŠธ ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐํ˜ธ๊ฐ€ ์กฐ๊ฑด๋ถ€ ์ข…์†์„ฑ์œผ๋กœ ํ•œ ๋ฒˆ ์ด์ƒ ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฉฐ ์ ์ ˆํ•œ ๊ธฐํ˜ธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
?D: ์ดˆ๊ธฐํ™”. null์—๋„ ํ•ด๋‹น ์ค„์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
์ดˆ๊ธฐํ™”๋Š” ๊ธฐํ˜ธ์˜ ์„ ํƒ์  ํŠน์„ฑ์„ ๊ฐ•์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

?์˜ํ˜•:์–ด๋–ค ๋ฉ”์‹œ์ง€ ๋‹น์‹  ํ•„์š”
์ด ์ง€์นจ์€ ์ด ์žฅ์น˜๊ฐ€ ์ „์ฒด์ ์œผ๋กœ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•  ๋•Œ๋งˆ๋‹ค
ํ•ด๋‹น ๊ธฐํ˜ธ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋ฉด(๋˜๋Š” ์ข…์†์„ฑ์„ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ์‚ฌ์šฉ) ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
ํ™”๋ฉด (stderr์—์„œ). ํ•˜๋‚˜ ์ด์ƒ์˜ ์ค„์„ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ฐ ์ค„์€
์ˆœ์„œ๋Œ€๋กœ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

?๋ฆฐํŠธ:๋ฉ”ํƒˆ๋ฆฐํŠธ ํžŒํŠธ
์„ ์ฐธ์กฐ ๋ฉ”ํƒˆ๋ฆฐํŠธ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์œ ํ•œ ํžŒํŠธ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€
์ต์ˆ™ํ•œ.

?INIT:์ดˆ๊ธฐํ™” ์•”ํ˜ธ
์ด ์ค„์— ์ง€์ •๋œ ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๋Š”
๊ตฌ์„ฑ ๋‹จ์œ„๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์Šคํฌ๋ฆฝํŠธ.

C ์ƒ์ง• ์•จ๋ฆฌ์–ด์‹ฑ
๋•Œ๋กœ๋Š” ์˜์ง€ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค ๋ฉ”ํƒ€ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์ž์‹ ์˜ ๊ธฐ๋ณธ ์„ ํƒ ๊ตฌ์„ฑ_h.SH
์ฃผ์„ ๋ฐ C ๊ธฐํ˜ธ ์ •์˜. ์—ฌ๊ธฐ์„œ ์•จ๋ฆฌ์–ด์‹ฑ์ด ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์—
์„ค๋ช…ํ•˜๊ธฐ ๊นŒ๋‹ค๋กœ์šฐ๋ฏ€๋กœ ๊ธฐ๋ณธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ๋ฅผ ์—ฐ๊ตฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

d_const.U ์œ ๋‹›์€ C ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ const๋ฅผ
์˜ˆ์–ด. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ•ด๋‹น ํ‚ค์›Œ๋“œ๋ฅผ null ๋ฌธ์ž์—ด๋กœ ๋‹ค์‹œ ๋งคํ•‘ํ•˜์—ฌ
ํ”„๋กœ๊ทธ๋žจ ์ปดํŒŒ์ผ. ๋˜ํ•œ, ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. const๋ฅผ ์›Œ๋“œ
์‚ฌ์šฉ.

d_const.U ์œ ๋‹›์˜ ๊ด€๋ จ ๋ถ€๋ถ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

?MAKE:d_const: cat cc ccflags Setvar
?MAKE: -$@% ์ถ”๊ฐ€ ์„ ํƒ
?S:d_const:
?S: ์ด ๋ณ€์ˆ˜๋Š” HASCONST ๊ธฐํ˜ธ๋ฅผ ์กฐ๊ฑด๋ถ€๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
?S: ์ด C ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ C ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
?S: const ์œ ํ˜•.
?์—์Šค:.
?C:HASCONST ~ %<:
?C: ์ •์˜๋œ ๊ฒฝ์šฐ ์ด ๊ธฐํ˜ธ๋Š” ์ด C ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค์Œ ์‚ฌํ•ญ์„ ์•Œ๊ณ  ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
?C: const ์œ ํ˜•. ํ•ด๋‹น ๊ธฐํ˜ธ๋ฅผ ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.
?C: ํ”„๋กœ๊ทธ๋žจ ๋‚ด. "const" ํ‚ค์›Œ๋“œ๋งŒ ์‚ฌ์šฉํ•˜๋ฉด
?C: ํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
?์”จ:.
?H:?%<:#$d_const HASCONST /**/
?H:?%<:#ifndef HASCONST
?H:?%<:#define const
?H:?%<:#endif
?์‹œ๊ฐ„:.
?W:%<:const
?LINT:d_const ์„ค์ •
?LINT:์•Œ๋ ค์ง„ const
: const ํ‚ค์›Œ๋“œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”
์—์ฝ” " "
echo 'C ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ "const"์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ค‘...' >&4
/bin/๊ณ ์–‘์ด >const.c <<'EOCP'
๋ณธ๊ด€()
{
const char *foo;
}
EOCP
if $cc -c $ccflags const.c >/dev/null 2>&1 ; ๊ทธ ๋‹ค์Œ์—
val="$define"
echo "๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค."
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
val="$undef"
echo "์•„๋‹ˆ์š”, ๊ทธ๋ ‡์ง€ ์•Š์•„์š”."
fi
d_const๋ฅผ ์„ค์ •ํ•˜๋‹ค
ํ‰๊ฐ€ $setvar

๋จผ์ € ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ?W: ํ–‰์˜ ์‚ฌ์šฉ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. "์ด ์žฅ์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
const๋ฅผ ํ‚ค์›Œ๋“œ๋Š” C ํŒŒ์ผ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.". ์กฐ๊ฑด๋ถ€๋กœ ๋‹ค์‹œ ๋งคํ•‘ํ•˜๋ ค๋ฉด const๋ฅผ ๋„๋กœ
๋ฌธ์ž์—ด ๊ตฌ์„ฑ.h, ์กฐ๊ฑด๋ถ€ ์ •์˜๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. HASCONST ๋ฅผ ํ†ตํ•ด $d_const.

๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด HASCONST ๊ธฐํ˜ธ๋Š” ๋‹ค์Œ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ถœ์ฒ˜๋Š” ์˜ค์ง const๋ฅผ ํ† ํฐ์€. ๊ทธ๋ฆฌ๊ณ  ?H: ๋ผ์ธ ์ •์˜ HASCONST ์•”๋ฌต์ ์œผ๋กœ
'?HASCONST'๋กœ ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ช…์‹œ์ ์ธ '?%<' ์ œ์•ฝ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”ํƒ€ ๊ตฌ์„ฑ ํ•ด๋‹น ์ค„์ด ํฌํ•จ๋˜์–ด์•ผ ํ•จ ๊ตฌ์„ฑ_h.SH '%<' ๊ธฐํ˜ธ๊ฐ€ ๋‚˜ํƒ€๋‚  ๋•Œ๋งˆ๋‹ค
์ˆ˜๋ฐฐ๋จ(%<๋Š” ์œ ๋‹› ์ด๋ฆ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” d_const).

๊ฑฐ์˜ ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ?W: ๋ผ์ธ์ด ์›ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. d_const ๋•Œ๋งˆ๋‹ค const๋ฅผ ์‚ฌ์šฉ๋œ ๋‹ค์Œ
?H: ํ–‰์ด ๊ตฌ์„ฑ_h.SH ํŒŒ์ผ. ๊ทธ๋Ÿฌ๋‚˜ ์ฃผ์š” ๋Œ“๊ธ€(?C:
๋ผ์ธ)์— ์ฒจ๋ถ€ HASCONST ๊ทธ ์ž์ฒด๋„ ๋‹ค์Œ์„ ํ†ตํ•ด ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค. HASCONST, ์ฆ‰ ์•”์‹œ์ ์ธ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
'?HASCONST' ์ œ์•ฝ ์กฐ๊ฑด. ๋”ฐ๋ผ์„œ ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์•จ๋ฆฌ์–ด์‹ฑ ์ „์—, HASCONST ๊ธฐํ˜ธ๋ฅผ '%<'๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์œ ๋‹›์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„(์‰˜ ๋ถ€๋ถ„)์€ ์ •๋ง ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹จ์ˆœํžˆ
๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ˜ํ”Œ C ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. const๋ฅผ ์˜ˆ์–ด. ๊ทธ๋Ÿด ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ๋Ÿด ๊ฒƒ์ด๋‹ค.
๋ฐํžˆ๋‹ค $d_const ๋ฅผ ํ†ตํ•ด $์„ธํŠธ๋ฐ” ๊ธฐ๋Šฅ(๋‹ค์Œ์— ์˜ํ•ด ์ •์˜๋จ) Setvar.U ๋‹จ์œ„). ๋‹จ๋ฝ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค
์ž์„ธํ•œ ๋‚ด์šฉ์€ ํŠน์ˆ˜ ์œ ๋‹›์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์„ธ์š”.

ํ™•์ธ ๋ช…๋ น
?MAKE: ๋ช…๋ น์ค„์—์„œ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์‹คํ–‰๋˜๋„๋ก ์‰˜ ๋ช…๋ น์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŠน๋ณ„ํ•œ -์„ ํƒํ•˜๋‹ค ์— ์˜ํ•ด ํŠธ๋žฉ๋œ ๋ช…๋ น ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๊ทธ๋ฆฌ๊ณ  ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ๊ตฌ๋ฌธ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค.
์™„๋ฃŒ. ์•ž์— '-'๋Š” ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ™•์ธ ๋ช…๋ น์ด ๋ฐ˜ํ™˜๋  ๋•Œ ์‹คํŒจ๋กœ๋ถ€ํ„ฐ
XNUMX์ด ์•„๋‹Œ ์ƒํƒœ - '๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.ํ™•์ธ -n'๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด
์ข…์†์„ฑ์ด ์žˆ์ง€๋งŒ ํ–ฅํ›„ ๋ฒ„์ „์—์„œ ํ•„์ˆ˜๊ฐ€ ๋  ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
๊ตฌ๋ฌธ ์„ ํƒ ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค

-์„ ํƒํ•˜๋‹ค cmd๋ฅผ $@ target_file

์–ด๋””์— $@ ํ˜„์žฌ ๋Œ€์ƒ(์ด๋ฆ„)์„ ๋‚˜ํƒ€๋‚ด๋Š” Makefiles ๋‚ด์˜ ํ‘œ์ค€ ๋งคํฌ๋กœ์ž…๋‹ˆ๋‹ค.
์ตœ์ข… .U ํ™•์žฅ์ž๊ฐ€ ์ œ๊ฑฐ๋œ ์œ ๋‹›์˜ ๊ตฌ์„ฑ). ๊ทธ๋งŒํผ cmd๋ฅผ ๋ถ€๋ถ„์€
์‹ค์ œ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์‹คํ–‰ํ•  ๋ช…๋ น๊ณผ target_file ๋Š” ๋˜ ๋‹ค๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
ํ•ด์„์€ ์— ๋‹ฌ๋ ค์žˆ๋‹ค. cmd๋ฅผ ๊ทธ ์ž์ฒด. ๋˜ํ•œ ์ตœ์ข… .U ํ™•์žฅ์ž๊ฐ€ ์ œ๊ฑฐ๋˜๊ณ 
์ผ๋ฐ˜์ ์œผ๋กœ ์œ ๋‹› ํŒŒ์ผ์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, './'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์œ ๋‹› ํŒŒ์ผ์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.
์˜ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ '์˜ ์ œ์–ด ํŒŒ์ผ.์‚ฐ ๋””๋ ‰ํ† ๋ฆฌ.

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ target_file ์— ๊ตฌ์„ฑ.

์ถ”๊ฐ€.Config_sh
๊ทธ ๋ถ€๋ถ„์„ ์ฑ„์›Œ์ค€๋‹ค. ๊ตฌ์„ฑ ์ƒ์‚ฐ config.sh ํŒŒ์ผ. ๋งŒ ์‚ฌ์šฉ๋จ
๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜๊ณ  ์กฐ๊ฑด๋ถ€ ๋ณ€์ˆ˜(์กฐ๊ฑด๋ถ€ ์ข…์†์„ฑ์—์„œ ๋น„๋กฏ๋จ)๋Š”
๊ฑด๋„ˆ๋›ฐ์—ˆ๋‹ค.

add.Null ๋นˆ ๋ฌธ์ž์—ด์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ์‰˜ ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์„น์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

c_h_weed๋Š” ๊ตฌ์„ฑ_h.SH ํŒŒ์ผ. ํ•„์š”ํ•œ ์ค„๋งŒ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

cm_h_weed๋Š” confmagic.h ํŒŒ์ผ. ํ•„์š”ํ•œ ์ค„๋งŒ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -M ์Šค์œ„์น˜๊ฐ€ ์ฃผ์–ด์ง€๊ฑฐ๋‚˜ confmagic.h ํŒŒ์ผ
์ด๋ฏธ ์กด์žฌ ํ•จ.

๋‹ซ๊ธฐ.Config_sh
here ๋ฌธ์„œ๋ฅผ ๋๋‚ด๊ธฐ ์œ„ํ•ด ํ•œ ์ค„์— ๋งˆ์ง€๋ง‰ 'EOT' ๊ธฐํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
์ƒ์‚ฐํ•˜๋Š” ๊ฑด์„ค config.sh ํŒŒ์ผ.

prepend ๋Œ€์ƒ์˜ ๋‚ด์šฉ์„ target_file ํ•ด๋‹น ํŒŒ์ผ์ด ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ.

์žก์ดˆ์— ์œ ๋‹›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ๊ฐ™์€ ๋”ํ•˜๋‹ค ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ œ๊ฑฐํ•˜๋ ค๋ฉด '?์ƒ์ง•' ๊ทธ๋ฆฌ๊ณ  '%์ƒ์ง•' ๋ผ์ธ์—์„œ target_file ๊ธฐํ˜ธ๋ผ๋ฉด
์›ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์กฐ๊ฑด๋ถ€๋กœ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. '%' ํ˜•์‹์€ ๋‚ด๋ถ€์ ์œผ๋กœ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋ฉ”ํƒ€ ๊ตฌ์„ฑ '์—์„œ ์ž์ฒด .U ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๋™์•ˆ.์‚ฐ' ๋””๋ ‰ํ† ๋ฆฌ.

๋‹ฆ๋‹ค ๋”ํ•˜๋‹ค ์‹ค์ œ๋กœ๋Š” ์ถ”๊ฐ€ ๋งคํฌ๋กœ ๋Œ€์ฒด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋งŒํผ
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋งคํฌ๋กœ๋Š” ๊ณ ์ • ๋ฐฐ์„  ๋งคํฌ๋กœ ๋‹จ๋ฝ.

๋ถ€์ˆ˜์ ์œผ๋กœ, ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์ƒ์„ฑ -์กฐ๊ฑด ์กฐ๊ฑด๋ฌธ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ๋ช…๋ น
์˜์กด์„ฑ. ์ง์ ‘ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋˜์ง€๋งŒ ์Šค์บ”ํ•˜๋ฉด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์ƒ์„ฑ Makefile FBI ์ฆ์˜ค ๋ฒ”์ฃ„ ๋ณด๊ณ ์„œ .์‚ฐ ๋””๋ ‰ํ† ๋ฆฌ.

๊ณ ์ • ๋ฐฐ์„  ๋งคํฌ๋กœ
๋‹ค์Œ ๋งคํฌ๋กœ๋Š” ์—์„œ ์ธ์‹๋ฉ๋‹ˆ๋‹ค. ๋‹ฆ์Œ ๋ช…๋ น์— ํฌํ•จ๋˜๊ธฐ ์ „์— ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.
๊ตฌ์„ฑ:

๋‹ค์Œ์—์„œ ํŒŒ์ƒ๋œ ํŒจํ‚ค์ง€์˜ ๊ธฐ๋ณธ ๊ฐœ์ • ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€.

ํ˜„์žฌ ๋‚ ์งœ์ž…๋‹ˆ๋‹ค.


๊ท€ํ•˜๋กœ๋ถ€ํ„ฐ ํŒŒ์ƒ๋œ ์ด ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ
ํŒจํ‚ค์ง€.


ํŒจํ‚ค์ง€ ์ด๋ฆ„(๊ท€ํ•˜์˜ ์ด๋ฆ„์—์„œ ํŒŒ์ƒ๋จ) ํŒจํ‚ค์ง€ ํŒŒ์ผ.


ํŒจ์น˜ ์ˆ˜์ค€์€ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ํ”„๋กœ๊ทธ๋žจ (๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ ).


SVN ๊ฐœ์ • ์ˆ˜์ค€์€ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ํ”„๋กœ๊ทธ๋žจ)

๋ฒ„์ „ ๋ฒˆํ˜ธ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ํ”„๋กœ๊ทธ๋žจ)

์ด๋Ÿฌํ•œ ๋งคํฌ๋กœ๋Š” ์ฃผ๋กœ ๋‹ค์Œ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์ƒ์„ฑ๋œ ๋ฒ„์ „
ํŠน๋ณ„ํ•œ ๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ์™€ ์–ด๋–ค ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋˜์—ˆ๋Š”์ง€. ์ด๋ฉ”์ผ ์ฃผ์†Œ
์œ ์ง€๊ด€๋ฆฌ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์š” ์ง€์นจ์— ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์‹œ์ž‘ํ•  ๋•Œ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

์ตœ๊ทผ ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๋ฒ„์ „์€ ๋‹ค์Œ ํ˜•์‹์˜ ํ›จ์”ฌ ๋” ์ผ๋ฐ˜์ ์ธ ๊ตฌ๋ฌธ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

<$๋ณ€์ˆ˜>

์ด๋Š” ๊ตฌ์„ฑ ์ƒ์„ฑ ์‹œ๊ฐ„์— ๋‹ค์Œ ๊ฐ’์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜ ๋‹น์‹ ์—๊ฒŒ์„œ ๊ฐ€์ ธ์˜จ
ํŒจํ‚ค์ง€ ํŒŒ์ผ. ๊ฒฐ๊ตญ ๊ธฐ์กด์˜ ํ•˜๋“œ์™€์ด์–ด ๋งคํฌ๋กœ ํ˜•์‹์€ ์‚ฌ๋ผ์ง€๊ณ  <$baserev>
๋Œ€์ฒดํ•  ๊ฒƒ์ด๋‹ค ์ œ๊ณต๋œ ๋ชจ๋“  ๋‹จ์œ„์—์„œ.

์ด๋‹ฌ์˜ ์ŠคํŽ˜์…œ ๋‹จ์œ„
์ฝ”๋“œ๋ฅผ ์ธ์ˆ˜๋ถ„ํ•ดํ•˜๊ณ  ๋” ๋†’์€ ์ˆ˜์ค€์˜ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ˆ˜ ๋‹จ์œ„๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ. ๊ทธ๋“ค์€ ์†Œ์Šค๋กœ ์ œ๊ณต๋  ์ˆ˜ ์žˆ๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์‰˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋ณ€์ˆ˜๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค ํ‰๊ฐ€'ed. ๋งค๊ฐœ๋ณ€์ˆ˜ ์ „๋‹ฌ์€ ์ž˜ ์•Œ๋ ค์ง„ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
$1, $2 ๋“ฑ๊ณผ ๊ฐ™์€ ์ด๋ฆ„ ๋˜๋Š” ์ต๋ช…...(์…ธ์„ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ) ์„ธํŠธ
์šด์˜์ž). ์–ธ์ œ ๊ตฌ์„ฑ ์‹คํ–‰ํ•˜๊ณ , ์ƒ์„ฑํ•˜๊ณ , UU ๋””๋ ‰ํ† ๋ฆฌ, ๊ทธ๋ž˜์„œ ๋ชจ๋“ 
์ƒ์„ฑ๋œ ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฑฐ๊ธฐ์— ์žˆ์œผ๋ฉฐ ํŒจํ‚ค์ง€์˜ ํŒŒ์ผ์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•Œ์•„์•ผ ํ•  ํŠน๋ณ„ ๋‹จ์œ„์™€ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Cppsym.U
์ด ์œ ๋‹›์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. Cppsym, ์ด๋Š” ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชฉ๋ก์˜ ๊ธฐํ˜ธ๊ฐ€ C ์ „์ฒ˜๋ฆฌ๊ธฐ ๋˜๋Š” C ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ •์˜๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€
์ง€์ •. ๋ชจ๋“  ๊ธฐํ˜ธ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
(์†์„ฑ ๋ชฉ๋ก)์ด ๋” ์‰ฝ๊ฒŒ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

Csym.U
์ด๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” $csym ์‰˜ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด
์ฃผ์–ด์ง„ C ๊ธฐํ˜ธ๊ฐ€ ์ •์˜๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์šฉ๋„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ธฐํ˜ธ ๊ฒฐ๊ณผ ์„ค์ • [-fva] [์ด์ „]
ํ‰๊ฐ€ $csym

๊ทธ๋Ÿฌ๋ฉด ๊ฒฐ๊ณผ ํ•จ์ˆ˜ [-f], ๋ณ€์ˆ˜ [-v] ๋˜๋Š”
๋ฐฐ์—ด [-a]๊ฐ€ ์ •์˜๋˜์–ด ์žˆ๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 'false'์ž…๋‹ˆ๋‹ค. ์ด์ „ ๊ฐ’์ด ์ฃผ์–ด์ง€๊ณ  -r
์Šค์œ„์น˜๊ฐ€ ์ œ๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค ๊ตฌ์„ฑ (์ฐธ์กฐ ๊ตฌ์„ฑ ์˜ต์…˜ ๋‹จ๋ฝ) ๊ทธ๋Ÿฌ๋ฉด ๊ทธ
๊ฐ’์€ ์งˆ๋ฌธ ์—†์ด ์žฌ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ๊ณ„์‚ฐ์ด ์ˆ˜ํ–‰๋˜๋Š” ๋ฐฉ์‹์€ ์‚ฌ์šฉ์ž๊ฐ€ ์งˆ๋ฌธ์— ์ œ๊ณตํ•˜๋Š” ๋‹ต๋ณ€์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
๊ตฌ์„ฑ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฌป์Šต๋‹ˆ๋‹ค. nm ์ถ”์ถœ ์—ฌ๋ถ€. ๋งŒ์•ฝ
์ถ”์ถœ์ด ์ˆ˜ํ–‰๋˜๋ฉด ์žฅ์น˜๋Š” ๋‹จ์ˆœํžˆ ๊ธฐํ˜ธ ๋ชฉ๋ก์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ์ปดํŒŒ์ผ ๋งํฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. -r ์ด์ „์— ๊ณ„์‚ฐ๋œ ๊ฒƒ์„ ์žฌ์‚ฌ์šฉํ•˜๋„๋ก ์ฃผ์–ด์กŒ์Šต๋‹ˆ๋‹ค.
๊ฐ€์น˜๋Š” ๋‹น์—ฐํžˆ...

์—”๋“œ์œ 
์ด ์žฅ์น˜๋ฅผ ๊ฐœ์ธ์šฉ์œผ๋กœ ๋ณต์‚ฌํ•˜์—ฌ U ๋””๋ ‰ํ† ๋ฆฌ์— ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ 
?MAKE: ๋ผ์ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ์œ ๋‹›์„ ๊ฐ•์ œ๋กœ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ๊ทธ๋ ‡์ง€ ์•Š๋”๋ผ๋„
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์œ ๋‹›์€ ๊ฐ•์ œ๋กœ ๊ตฌ์„ฑ ๊ทธ๋Ÿฐ ์‹์œผ๋กœ.

Filexp.U
์ด ์žฅ์น˜๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค ํŒŒ์ผ์—‘์Šค ๋‹ค์Œ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒŒ์ผ ์ด๋ฆ„์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.
๋ฌผ๊ฒฐํ‘œ. ์ผ๋ฐ˜์ ์ธ ์šฉ๋„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

exp_name=`./fileexp $name`

ํ™•์žฅ๋œ ํŒŒ์ผ ์ด๋ฆ„์„ ํ• ๋‹นํ•˜๋ ค๋ฉด exp_name.

Findhdr.U
์ด ์žฅ์น˜๋Š” findhdr ํ—ค๋” ํŒŒ์ผ์„ ์ฐพ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ
$usrinc ๋˜๋Š” cpp ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ๋‚ฏ์„  ์žฅ์†Œ. ์Šคํฌ๋ฆฝํŠธ์—๋Š”
'stdio.h' ๋˜๋Š” 'sys/file.h'์™€ ๊ฐ™์€ ํŒŒ์ผ ๊ธฐ๋ณธ ์ด๋ฆ„์„ ํฌํ•จํ•˜๊ณ  ์ „์ฒด ๊ฒฝ๋กœ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
inlcude ํŒŒ์ผ๊ณผ 0 ์ƒํƒœ๊ฐ€ ๋ฐœ๊ฒฌ๋œ ๊ฒฝ์šฐ ๋˜๋Š” ๋นˆ ๋ฌธ์ž์—ด๊ณผ 0์ด ์•„๋‹Œ ์ƒํƒœ
ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ.

Getfile.U
์ด ์žฅ์น˜๋Š” ํŒŒ์ผ์„ ์–ป๊ธฐ ์œ„ํ•ด ์†Œ์Šค๋กœ ์ œ๊ณต๋˜์–ด์•ผ ํ•˜๋Š” ์•ฝ๊ฐ„์˜ ์‰˜ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ณ  ๊ฑด๊ฐ• ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์„ธ์š”. ์„ ํƒ์ ์œผ๋กœ ~name ํ™•์žฅ์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

๋ณธ ๊ธฐ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, $rp ๊ณผ $dflt ์งˆ๋ฌธ๊ณผ ๊ธฐ๋ณธ ๋‹ต๋ณ€์„ ๋ณด์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Œ€๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋‚ด ์ฑ… ์Šคํฌ๋ฆฝํŠธ(ํ–ฅํ›„ ์ฐธ์กฐ ๋งˆ์ด๋ฆฌ๋“œ.์œ ). $fn
๋ณ€์ˆ˜๋Š” ์ž‘์—…์„ ์ œ์–ดํ•˜๊ณ  ๊ฒฐ๊ณผ๋Š” $ans.

ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ฐพ์œผ๋ ค๋ฉด 'f' ๋˜๋Š” 'd'๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”. ์—ํ”„~/. '~'๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ~name
๋Œ€์ฒด๊ฐ€ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. '/'๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ์ ˆ๋Œ€ ๊ฒฝ๋กœ ์ด๋ฆ„๋งŒ ํ—ˆ์šฉ๋˜๋ฉฐ
~name ๋Œ€์ฒด๋Š” ํ•ญ์ƒ ๋ฐ˜ํ™˜๋˜๊ธฐ ์ „์— ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. '+'๋ฅผ ์ง€์ •ํ•˜๋ฉด
์กด์žฌ ํ™•์ธ์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ๋‚ด์— 'n'์ด ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ $fn, ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
'์—†์Œ'์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•˜์„ธ์š”.

์ผ๋ฐ˜์ ์œผ๋กœ ์ด์‹์„ฑ์„ ์š”์ฒญํ•˜์ง€ ์•Š๋Š” ํ•œ ์š”์ฒญ ์‹œ ~name ๋Œ€์ฒด๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ด์‹์„ฑ์„ ์šฐํšŒํ•˜๊ณ  ๊ฐ•์ œ๋กœ
์น˜ํ™˜. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด 'e' ๋ฌธ์ž(ํ™•์žฅ)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠน๋ณ„ํ•œ 'l'(์ฐพ๊ธฐ) ์œ ํ˜•์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ $fn ๋ณ€์ˆ˜๋Š” ':'์œผ๋กœ ๋๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ ๋’ค์— ํŒŒ์ผ ๊ธฐ๋ณธ ์ด๋ฆ„์ด ์˜ต๋‹ˆ๋‹ค. ๋Œ€๋‹ต์ด ๋””๋ ‰ํ„ฐ๋ฆฌ์ธ ๊ฒฝ์šฐ ํŒŒ์ผ ๊ธฐ๋ณธ ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํŒŒ์ผ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์ „์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ฐพ๊ธฐ ์Šคํƒ€์ผ ์งˆ๋ฌธ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ด๋ ‡๊ฒŒ :

dflt='~๋‰ด์Šค/lib'
: 'l'์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ 'd' ๋˜๋Š” 'f'๋ฅผ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
fn='l~:ํ™œ์„ฑ'
rp='ํ™œ์„ฑ ํŒŒ์ผ์€ ์–ด๋””์— ์žˆ์Šต๋‹ˆ๊นŒ?'
. ./getfile
ํ™œ์„ฑ="$ans"

๋˜ํ•œ 'p'(๊ฒฝ๋กœ) ๋ฌธ์ž๋ฅผ 'l'๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ์„ ์•Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒŒ์ผ ๊ฐ€์ ธ์˜ค๊ธฐ '/'๊ฐ€ ์—†๋Š” ๋‹ต๋ณ€์€ ํ—ˆ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด ๊ฐ’์ด ํ•„์š”ํ•  ๋•Œ ๋ชจ๋“  ์‚ฌ๋žŒ์˜ PATH์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ˆ˜๋ฝํ•ด์•ผ ํ•˜๋Š” ๋‹ต๋ณ€ ๋ชฉ๋ก์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ๊ฒ€์‚ฌ๋ฅผ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชฉ๋ก์€ ๊ด„ํ˜ธ์™€ ํ•ญ๋ชฉ ์•ˆ์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ณต๋ฐฑ ์—†์ด ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ธ์šฉํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š”.
๊ด„ํ˜ธ๋Š” ์‰˜์— ์˜๋ฏธ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

dflt='/bin/์„ค์น˜'
fn='/fe~(์„ค์น˜,./install)'
rp='์–ด๋–ค ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?'
. ./getfile
์„ค์น˜="$ans"

์‚ฌ์šฉ์ž๋Š” ๊ธฐ์กด ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜๋Š” ์ •๊ทœํ™”๋œ ๊ฒฝ๋กœ๋งŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ํŠน์ˆ˜ํ•œ "install" ๋ฐ "./install" ๋‹ต๋ณ€์€ ๊ทธ๋Œ€๋กœ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค(๋‹ค์Œ์„ ๊ฐ€์ •).
๋ฌผ๋ก  ๋‚˜์ค‘์— ์ฒด์ธ์—์„œ ํŠน๋ณ„ํžˆ ์ฒ˜๋ฆฌํ•  ์ผ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์ธ ์˜ˆ์ƒ ํ”„๋ ˆ์ž„๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์Œ).

์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋Œ€๋‹ต์ด '์—†์Œ'์ด๋ฉด ์กด์žฌ ํ™•์ธ์„ ๊ฑด๋„ˆ๋›ฐ๊ณ 
๋นˆ ๋ฌธ์ž์—ด์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ๊ทธ ์ดํ›„๋กœ ์ฐธ๊ณ ํ•˜์„ธ์š” ํŒŒ์ผ ๊ฐ€์ ธ์˜ค๊ธฐ ํ†ตํ™” ๋‚ด ์ฑ… ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ๋ชจ๋‘
ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ๋‚ด ์ฑ… ์—ฌ๊ธฐ์— ์‹ ์ฒญํ•˜์„ธ์š”.

์™„์ „ํžˆ ํ™•์žฅ๋œ ๊ฐ’์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ(์˜ˆ: Makefile์—์„œ) ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ „์—, $ansexp ํ•ญ์ƒ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋˜๋Š” ๋ณ€์ˆ˜ ํŒŒ์ผ ๊ฐ€์ ธ์˜ค๊ธฐ ํ™•์žฅ๋จ์— ๋”ฐ๋ผ
๋ฒ„์ „ $ans. ๋ฌผ๋ก , ~name์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ํ™•์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์—์„œ XNUMX ์œ„ $fn ๋ณ€ํ•˜๊ธฐ ์‰ฌ์šด.

Inhdr.U
์ด ์žฅ์น˜๋Š” $inhdr ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์‰˜ ๋ณ€์ˆ˜ ๊ตฌ์„ฑ ํ™•์ธํ•˜๋Š”
ํ—ค๋” ์„ธํŠธ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€. ์ผ๋ฐ˜์ ์ธ ์šฉ๋„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ—ค๋” i_header ์„ค์ • [ header2 i_header2 ... ]
ํ‰๊ฐ€ $inhdr

๊ทธ๋Ÿฌ๋ฉด ํ—ค๋”๋ฅผ ์ฐพ์•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ๋ฆฌ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์ธ์‡„๋˜๊ณ 
i_header ๊ทธ์— ๋”ฐ๋ผ ๊ฐ€๋ณ€์ ์ž…๋‹ˆ๋‹ค. ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ—ค๋”๊ฐ€ ์ง€์ •๋˜๊ณ  ์ฒซ ๋ฒˆ์งธ ํ—ค๋”๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ
ํ—ค๋”๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฉด ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ๊ฑฐ๋‚˜ ํ•˜๋‚˜๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ํ—ค๋”๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

Inlibc.U
์ด ์žฅ์น˜๋Š” $inlibc ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์‰˜ ๋ณ€์ˆ˜ ๊ตฌ์„ฑ ํ™•์ธํ•˜๋Š”
์ฃผ์–ด์ง„ C ํ•จ์ˆ˜๊ฐ€ ์ •์˜๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€. ์ผ๋ฐ˜์ ์ธ ์šฉ๋„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ•จ์ˆ˜ d_func ์„ค์ •
ํ‰๊ฐ€ $inlibc

๊ทธ๋Ÿฌ๋ฉด ํ•จ์ˆ˜๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ๋ฆฌ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์ธ์‡„๋˜๊ณ  ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
$d_func ๋”ฐ๋ผ์„œ. ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” $csym ์ผ์ƒ.

๋กœํฌ์œ 
์ด ์ค‘์š”ํ•œ ๋‹จ์œ„๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค LOC ์ด๋Š” ์–ด๋””์— ์žˆ๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์— ํŠน์ • ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋Š” ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋Š” ๊ฒ€์ƒ‰์ด ์‹คํŒจํ•  ๊ฒฝ์šฐ ๋ฐ˜ํ™˜๋  ํ•ญ๋ชฉ์ด๋ฉฐ,
reaming ์ธ์ˆ˜๋Š” ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์„ ์œ„ํ•œ
์˜ˆ:

dflt=`./loc sendmail.cf X ๋ฅผ / usr / lib์— /var/lib/sendmail / lib`

์„ค์ •ํ•  ๊ฒƒ์ด๋‹ค $dflt ์— X ์•„๋‹ˆ๋ผ๋ฉด sendmail.cf ํŒŒ์ผ์ด ๋‚˜์—ด๋œ ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์—์„œ ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋˜๋Š” ๋ญ”๊ฐ€ /usr/lib/sendmail.cf ์ผ๋ถ€ ์‹œ์Šคํ…œ์—์„œ๋Š”. ๋˜ํ•œ๋ณด์‹ญ์‹œ์˜ค Getfile.U.

๋ฉ”์ผ์ž‘์„ฑ์ž.U
์ด ์œ ๋‹›์„ ๋งŒ๋“ค๋ ค๋ฉด ๊ฐœ์ธ End.U์˜ ?MAKE: ๋ผ์ธ์— ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์œผ๋กœ ๊ตฌ์„ฑ. ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑ์ž์—๊ฒŒ ์ž์‹ ์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์ƒˆ ํŒจ์น˜๊ฐ€ ๋„์ฐฉํ•˜๋ฉด ์•Œ๋ฆผ์„ ๋ฐ›๊ฑฐ๋‚˜ ๋ฐœํ–‰๋  ๋•Œ ์ž๋™์œผ๋กœ ์ˆ˜์‹ ๋ฉ๋‹ˆ๋‹ค.
์„ค์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์ผ ์—์ด์ „ํŠธ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด(์ตœ์†Œ ๋ฒ„์ „ 3.0)

๋ฉ”์ผ๋ฆฌ์ŠคํŠธ.U
์ด ์œ ๋‹›์„ ๋งŒ๋“ค๋ ค๋ฉด ๊ฐœ์ธ End.U์˜ ?MAKE: ๋ผ์ธ์— ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์œผ๋กœ ๊ตฌ์„ฑ. ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌ๋…ํ•˜๊ฑฐ๋‚˜ ๊ตฌ๋… ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
ํŒจํ‚ค์ง€์™€ ๊ด€๋ จ๋œ ๋…ผ์˜๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค ํŒฉํ‚ค๋‹ˆํŠธ
๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ ๊ด€๋ จ ์งˆ๋ฌธ์— ๋‹ตํ•˜์—ฌ ์ ์ ˆํ•œ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์„ธ์š”.
ํŒจํ‚ค์ง€ ๋ณธ ์žฅ์น˜๊ฐ€ ์ž‘๋™ํ•˜๊ธฐ ์ „์—.

๋งˆ์ด๋‹ˆํŠธ.U
์ด ์žฅ์น˜๋ฅผ ๊ฐœ์ธ์šฉ์œผ๋กœ ๋ณต์‚ฌํ•˜์„ธ์š”. U ์ผ๋ถ€์— ์ž์‹ ์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ
๋‚ด๋ถ€ ๋ณ€์ˆ˜. ์ด ์žฅ์น˜๋Š” ๊ตฌ์„ฑ ๊ฒฐ๊ตญ ๊ธฐ๋ณธ๊ฐ’
์ดˆ๊ธฐํ™”๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ด๋ฆฌ๋“œ.์œ 
์ด ์žฅ์น˜๋Š” ๋‚ด ์ฑ… ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์†Œ์Šค๋กœ ์ œ๊ณต๋˜์–ด์•ผ ํ•˜๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ
์ฝ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‰˜ ์ด์Šค์ผ€์ดํ”„, ๊ธฐ๋ณธ ํ• ๋‹น ๋ฐ ๋งค๊ฐœ๋ณ€์ˆ˜ ํ‰๊ฐ€๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
Instruct.U ์œ ๋‹›์— ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ -d ์„ ํƒ๊ถŒ,
๋‚˜๋จธ์ง€ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ณธ ๊ธฐ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, $rp ์งˆ๋ฌธ์„ ํ’ˆ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฉฐ $dflt ๊ธฐ๋ณธ๊ฐ’์„ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
๋‹ต๋ณ€. ์งˆ๋ฌธ์€ ์Šคํฌ๋ฆฝํŠธ ์ž์ฒด์— ์˜ํ•ด ์ธ์‡„๋˜๊ณ  ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.
FBI ์ฆ์˜ค ๋ฒ”์ฃ„ ๋ณด๊ณ ์„œ $ans ๋ณ€ํ•˜๊ธฐ ์‰ฌ์šด.

์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

dflt='y'
rp='์งˆ๋ฌธ?'
. ./myread
๊ฐ’="$ans"

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์žฅ์น˜ ์ž์ฒด๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์˜ฌ๋“œ์ปจํ”ผ๊ทธ.U
์ด ์œ ๋‹›์€ ์ผ๋ถ€ ์œ ๋‹›์ด ์‹œ๋„ํ•  ๋•Œ ์ข…์†์„ฑ ?MAKE: ๋ผ์ธ์˜ ์ผ๋ถ€์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด์ „ ๊ธฐํ˜ธ ๊ฐ’์„ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ์œ„๋Š” ์ด์ „ ๋‹ต๋ณ€์„ ์–ป๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
์— config.sh ๋˜๋Š” ํŠน์ • ํ”Œ๋žซํผ์—์„œ ์‹คํ–‰ํ•  ๋•Œ ์œ ์šฉํ•œ ํžŒํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์ฒ˜์Œ์œผ๋กœ. ์ฐธ์กฐ ๊ตฌ์„ฑ ํžŒํŠธ ํžŒํŠธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹จ๋ฝ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ ‘๋‘์‚ฌ.U
์ด ์žฅ์น˜์˜ ๋ชฉ์ ์€ ์„ค์น˜ ์ ‘๋‘์‚ฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฐ์ง€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด์ „ ๋‹ต๋ณ€์—์„œ ์ ํ•ฉํ•œ ๊ธฐ๋ณธ๊ฐ’์„ ์ž๋™์œผ๋กœ ๋‹ค์‹œ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹ค์Œ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค
๊ฐ€์น˜ $oldprefix ์ด์ „ ์ ‘๋‘์‚ฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ณด์œ ํ•˜๋Š” ๋ณ€์ˆ˜
๋ณ€๊ฒฝ๋˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ ‘๋‘์‚ฌ๊ฐ€ ๋‹ค์Œ์—์„œ ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ /๊ณ ๋ฅด๋‹ค ์—
/ usr / local, ์ด์ „ ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ค์น˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ๋‹ค์Œ์—์„œ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
/์˜ต์…˜/๋นˆ ์— / usr / local / bin, ๋˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. /ํฐ ์ƒ์ž.

๋‹น์‹ ์€ ์ „ํ™”ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค ์„ธํŠธ ๋ฐœํ–‰ํ•˜๊ธฐ ์ „์— ํ‰๊ฐ€ on $prefixit๊ฐ™์€ :

dflt var [๋””๋ ‰ํ„ฐ๋ฆฌ] ์„ค์ •
ํ‰๊ฐ€ $prefixit

์–ด๋Š ๊ฒƒ์ด ์„ค์ •๋  ๊ฒƒ์ธ๊ฐ€ $dflt ์— $var or $์ ‘๋‘์‚ฌ/๋””๋ ‰ํ„ฐ๋ฆฌ ์ ‘๋‘์‚ฌ๊ฐ€ ๋‚จ์•„ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ
๊ฐ™๋“  ์•„๋‹ˆ๋“ . ๋งŒ์•ฝ์— DIR ๋ฌธ์ž์—ด์ด๋‹ค ์—†์Œ, ๋‹จ์ผ ๊ณต๊ฐ„ ๊ฐ’ $dflt ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
์ ‘๋‘์‚ฌ๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— DIR ์ƒ๋žต๋œ ๋‹ค์Œ $dflt ๋นˆ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค
์ ‘๋‘์‚ฌ๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ ๋ฌธ์ž์—ด $var ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด.

์ ‘๋‘์‚ฌ.U
์ด ์žฅ์น˜์˜ ์˜๋„๋Š” Prefixit.U์˜ ์˜๋„์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
์ ‘๋‘์‚ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ˆ˜์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‰˜ ๋ณ€์ˆ˜ $prefixup,
ํ‰๊ฐ€ ์‹œ ~name ํ™•์žฅ๋งŒ ๋ณต์›ํ•˜๋ฉฐ ์ ‘๋‘์‚ฌ์— ์ด๋Ÿฌํ•œ ์ด์Šค์ผ€์ดํ”„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๊ตฌ. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜์„ธ์š”:

dflt ์„ค์ •
ํ‰๊ฐ€ $prefixup

๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์ „์— ํŒŒ์ผ ๊ฐ€์ ธ์˜ค๊ธฐ ์˜ˆ๋ฅผ ๋“ค์–ด. ์ ‘๋‘์‚ฌ๊ฐ€ ~name์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
ํ™•์žฅํ•˜๋ฉด ์œ„์˜ ์ž‘์—…์€ ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. y ๊ฐ€๋ณ€์ ์ด์ฃ , ๋‹น์—ฐํžˆ.

Typedef.U
์ด ์žฅ์น˜๋Š” $typedef ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์‰˜ ๋ณ€์ˆ˜ ๊ตฌ์„ฑ ํ™•์ธํ•˜๋Š”
typedef๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€. ์ผ๋ฐ˜์ ์ธ ์šฉ๋„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

typedef val_t ๊ธฐ๋ณธ๊ฐ’ ์„ค์ • [ ํฌํ•จ ]
ํ‰๊ฐ€ $typedef

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. val_t ๊ฐ€์น˜์— ๋””ํดํŠธ ๊ฐ’ typedef๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ
๋‚˜์—ด๋œ ํฌํ•จ ํŒŒ์ผ ์ค‘ ๋˜๋Š” ํ˜•์‹ ์ •์˜ ๋ฐœ๊ฒฌ๋˜๋ฉด. ํฌํ•จ ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ
์ง€์ •ํ•˜๋ฉด ์žฅ์น˜๊ฐ€ ๋‹ค์Œ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ์˜ค์ง. ์ผ๋ถ€ ํฌํ•จ์„ ์ง€์ •ํ•˜๋ฉด
๊ทธ๊ฒƒ๋“ค์ด ๋ณด์ž…๋‹ˆ๋‹ค.

์œ ๋‹‰์Šค.U
์ด ๋‹จ์›์˜ ๋ชฉ์ ์€ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ UNIX-ism ์ค‘ ์ผ๋ถ€๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ช…๋ น์ค„์ด๋‚˜ ์ ์ ˆํ•œ ํžŒํŠธ ํŒŒ์ผ์„ ํ†ตํ•ด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ,
$_exe, $_o ๊ณผ $_a ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋‹จ์œ„๋Š” ์ฐธ์กฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค $_o ๊ทธ๋ฆฌ๊ณ ํ•˜์ง€ .o ์ง์ ‘.
'.' ์ด ๋ณ€์ˆ˜์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

Setvar.U
์ด ์žฅ์น˜๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์„ค์ •
๋ฐํžˆ๋‹ค/undef ํŠน์ • ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ๊ฐ’, ๊ฐ‘์ž๊ธฐ ๋ณ€๊ฒฝ๋˜๋ฉด ๊ฒฝ๊ณ  ํ‘œ์‹œ
์ด์ „ ๊ฐ’์—์„œ. ์˜ˆ๋ฅผ ๋“ค์–ด:

val="$define"
d_๋ณ€์ˆ˜ ์„ค์ •
ํ‰๊ฐ€ $setvar

์ด์ „์˜ ๊ฒฝ์šฐ $d_๋ณ€์ˆ˜ ๊ฐ’์ด null์ด ์•„๋‹ˆ๊ณ  $๊ฐ’ ๋‹ฌ๋ผ์š”, "์›Œ"
๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ๋ น๋ฉ๋‹ˆ๋‹ค.

์›Œ.์œ 
์ด ์žฅ์น˜๋Š” ์›Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ์Šคํฌ๋ฆฝํŠธ ๊ฐ€์น˜ ๋ณ€์ˆ˜์—
๋ˆ„๊ตฌ์˜ ์ด๋ฆ„์€ $var ์ด์ „์— ๋ณด์œ ํ–ˆ๋˜ ๊ฐ’๊ณผ ๋™์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. $์ด์—ˆ๋‹ค. ์—
๋ฐ˜ํ™˜, $td ๊ณผ $tu ์ ์ ˆํ•œ ๊ฐ’์„ ์œ ์ง€ ๋ฐํžˆ๋‹ค or ์–ธ๋ฐํ”„ ๋ณ€์ˆ˜. ๋ณด๋‹ค
์˜ ์˜ˆ Inlibc.U.

๋นŒํŠธ์ธ ์ „์ฒ˜๋ฆฌ๊ธฐ
ํฌํ•จ๋  ๊ฐ ๋‹จ์œ„ ๊ตฌ์„ฑ ๋‚ด์žฅ๋œ ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ํ†ตํ•ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์ „
ํ”„๋กœ์„ธ์„œ ๋ช…๋ น๋ฌธ์€ '@' ๋ฌธ์ž๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค('#'์€ ์‰˜ ์ฃผ์„์ž…๋‹ˆ๋‹ค).
์„ฑ๊ฒฉ). C ์ „์ฒ˜๋ฆฌ๊ธฐ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜์ง€๋งŒ ์‰˜๊ณผ ํŽ„์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํƒˆ์ถœํ•˜๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@๋งŒ์•ฝ์— ํ‘œํ˜„
If ํ‘œํ˜„ true์ธ ๊ฒฝ์šฐ @end, @elsif ๋˜๋Š” @else๊นŒ์ง€ ์ฝ”๋“œ๋ฅผ ๊ณ„์† ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

@์—˜์‹œํ”„ ํ‘œํ˜„
๋Œ€์ฒด ์„ ํƒ. ๋งŒ์•ฝ์— ํ‘œํ˜„ true์ธ ๊ฒฝ์šฐ @end๊นŒ์ง€ ์ฝ”๋“œ ๋กœ๋“œ๋ฅผ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.
๋˜ ๋‹ค๋ฅธ @elsif ๋˜๋Š” @else.

@else @if๊ฐ€ ๋กœ๋“œ๋˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์ฝ”๋“œ ํ‘œํ˜„ ๊ฑฐ์ง“์ด์—ˆ๊ณ  ๊ทธ ์–ด๋Š ๊ฒƒ๋„
์„ ํƒ์  @elsif๊ฐ€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. @end๊นŒ์ง€ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

@end @if๋กœ ์—ฐ ์กฐ๊ฑด๋ถ€ ๋กœ๋”ฉ ๋ฌธ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.

@์ •์˜ํ•˜๋‹ค ์ƒ์ง•
์ „์ฒ˜๋ฆฌ๊ธฐ์—๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ์ƒ์ง• ์ง€๊ธˆ๋ถ€ํ„ฐ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

์กฐ๊ฑด๋ถ€ ํ‘œํ˜„ ๊ธฐํ˜ธ ์ด๋ฆ„์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ธฐํ˜ธ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ฐ’์€ true์ž…๋‹ˆ๋‹ค.
์ •์˜๋ฅผ ํ†ตํ•ด @์ •์˜ํ•˜๋‹ค ๋˜๋Š” ์‰˜/ํŽ„์ด ์ด์Šค์ผ€์ดํ”„๋ฉ๋‹ˆ๋‹ค. ์ด ์›์ž๋“ค์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐํ•ฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ „ํ†ต์ ์ธ ๋ถ€์šธ ์—ฐ์‚ฐ์ž '!' ๋ถ€์ •์˜ ๊ฒฝ์šฐ '&&', ๋…ผ๋ฆฌ and์˜ ๊ฒฝ์šฐ '||' ๋…ผ๋ฆฌ์ ์ธ ๊ฒฝ์šฐ
๋˜๋Š”.

๋‹จ์ผ ๊ด„ํ˜ธ ์•ˆ์— ์žˆ๋Š” ํ…์ŠคํŠธ๋Š” ์‰˜ ํ…Œ์ŠคํŠธ์ด๊ณ , ์ด์ค‘ ๊ด„ํ˜ธ ์‚ฌ์ด์˜ ํ…์ŠคํŠธ๋Š” ์…ธ ํ…Œ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.
ํŽ„ ํ…Œ์ŠคํŠธ. ์ฆ‰, ํ‘œํ˜„์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

{ ๊ป์งˆ ๋ณธ๋ฌธ }
{{ ํŽ„ ๋ณธ๋ฌธ }}

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฒˆ์—ญ๋ฉ๋‹ˆ๋‹ค:

if ๊ป์งˆ ๋ณธ๋ฌธ >/dev/null 2>&1; ๊ทธ๋Ÿฐ ๋‹ค์Œ 0์„ ์ข…๋ฃŒํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 1๋ฒˆ ์ถœ๊ตฌ; fi
if (ํŽ„ ๋ณธ๋ฌธ) {์ถœ๊ตฌ 0;} ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด {์ถœ๊ตฌ 1;}

์ข…๋ฃŒ ์ƒํƒœ๋Š” ๋ถ€์šธ ๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•ด ํ‘œ์ค€ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, 0์€ true์ด๊ณ 
๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ๊ฑฐ์ง“์ž…๋‹ˆ๋‹ค. Perl์—์„œ๋Š” ๊ฐ„๋‹จํ•œ ์กฐ๊ฑด๋งŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ผ๋ถ€ ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด์žฅ๋œ ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ถ€ ์žฅ์น˜๋ฅผ ๋ฏธ์„ธ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ฐธ์กฐ: d_gethname.U A์— ๋Œ€ํ•œ
๋ณต์žกํ•œ ์˜ˆ) ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ํŒŒ์ผ์—์„œ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐํ˜ธ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„
๋ฐฐํฌํŒ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์˜ฌ๋“œ์ปจํ”ผ๊ทธ.U ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ…Œ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

@if {test -d ../ํžŒํŠธ}

๊ณผ ๊ตฌ์„ฑ ํžŒํŠธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ํžŒํŠธ ์ข…์† ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ํžŒํŠธ ์˜ ๋””๋ ‰ํ† ๋ฆฌ
ํŒจํ‚ค์ง€์˜ ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ. ํ…Œ์ŠคํŠธ๋Š” '.์‚ฐ' ๋””๋ ‰ํ† ๋ฆฌ,
๋”ฐ๋ผ์„œ ํ…Œ์ŠคํŠธ์— '../'๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐํ˜ธ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๋•Œ ์“ธ๋ชจ์—†๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•œ์ •๋œ. ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ธฐํ˜ธ๋ฅผ ์ •์˜ํ•˜๋Š” ๋‹จ์œ„๋Š” ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๋ณดํ˜ธ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋‹จ์œ„๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค).
@if/@end ์Œ ๋‚ด์—์„œ ๊ธฐํ˜ธ ์ข…์† ์ฝ”๋“œ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ์ „์ฒด์ ์œผ๋กœ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์„ ์œ„ํ•œ
์˜ˆ:

@if I_TIME || I_SYS_TIME || I_SYS_TIME_KERNEL
need_time_h='true'
@๋˜ ๋‹ค๋ฅธ
need_time_h='false'
@์ข…๋ฃŒ

์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹์„ธ ๊ฐ€์ง€ ๊ธฐํ˜ธ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.
์ „์—, ์‹œ๊ฐ„.h or sys/time.h ์ด์— ๋”ฐ๋ผ ์‰˜ ๊ธฐํ˜ธ๋ฅผ ํฌํ•จํ•˜๊ณ  ์ •์˜ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ์€ ์ค€๋‹ค
๊ตฌ์„ฑ ์†Œ์Šค์— ํ•„์š”ํ•œ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๊ณ  ์ˆ˜์ •์œผ๋กœ ์ธํ•œ ๋‹จ์ ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
๋ƒ‰๋™ ๋‹จ์œ„.

'?W:' ์ค„์„ ํ†ตํ•ด ํฅ๋ฏธ๋กœ์šด ์กฐํ•ฉ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•„์ดํƒ€์ž„.์œ  ๋‹จ์œ„
C ์†Œ์Šค๊ฐ€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด ์‹œ๊ฐ„๋Œ€ ์œ ํ˜•. ๊ทธ๋Ÿฌ๋ฏ€๋กœ,
๋ผ์ธ :

?W::์‹œ๊ฐ„๋Œ€

๊ธฐํ˜ธ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ถ€์ž‘์šฉ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋Œ€ ์ „์ฒ˜๋ฆฌ๊ธฐ์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋งŒํผ
๊ทธ๋Ÿฌ๋ฉด ๋‹จ์œ„ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@if ์‹œ๊ฐ„๋Œ€
'-DS_TIMEZONE' ''์˜ s_timezone์— ๋Œ€ํ•ด; ํ•˜๋‹ค
@๋˜ ๋‹ค๋ฅธ
s_timezone=''
@์ข…๋ฃŒ

... s_timezone์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ ...

@if ์‹œ๊ฐ„๋Œ€
ํ•œ
@์ข…๋ฃŒ

๋‘ ๊ฐœ์˜ ์—ฐ์† ๊ฐ’์„ ์‹œ๋„ํ•˜๋Š” ์ถ”๊ฐ€ ๋ฃจํ”„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. s_timezone ๊ฐ€๋ณ€์ ์ด์ง€๋งŒ ๋‹จ์ง€
ํ•„์š”ํ•œ ๊ฒฝ์šฐ.

์‹œ๋Œ€์— ๋’ค ๋–จ์–ด์ง„ ๊ธฐํ˜ธ
๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ธฐํ˜ธ๋Š” ์ด์ „ ๊ธฐํ˜ธ๋กœ ์‰ฝ๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์กด๋ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๋‹จ์œ„. ํ•˜์ง€ ์•Š๋Š” ํ•œ
์ „์—, -o ์Šค์œ„์น˜๊ฐ€ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๊ทธ๋“ค์€ ๋ฌด์‹œ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹œ๋Œ€์— ๋’ค ๋–จ์–ด์ง„ ํŒŒ์ผ์€
์ƒ์„ฑ๋˜์–ด ์–ด๋–ค ํŒŒ์ผ์ด ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€, ๋ฌด์—‡์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.
์‚ฌ์šฉํ•  ์ƒˆ๋กœ์šด ๊ธฐํ˜ธ์ž…๋‹ˆ๋‹ค.

๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ธฐํ˜ธ์˜ ์ˆ˜๋ช…์€ ํ•˜๋‚˜์˜ ์ „์ฒด ๊ฐœ์ •ํŒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ•ด๋‹น ๊ธฐํ˜ธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ ๊ธฐ๋ณธ ๊ฐœ์ •ํŒ์ด ๋ฐœํ–‰๋ฉ๋‹ˆ๋‹ค(ํŒจ์น˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ๋ฌผ๋ก  ํฌํ•จ๋˜์ง€ ์•Š์Œ). ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ทธ๊ฒƒ์€
๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์†Œ์Šค๋ฅผ ๋ฒˆ์—ญํ•˜๊ณ  ์ƒˆ๋กœ์šด ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ˜„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ํžŒํŠธ
๋‚ด๋ถ€ ๊ตฌ์„ฑ ๋…ผ๋ฆฌ๊ฐ€ ์ž˜๋ชป๋œ ์„ ํƒ์„ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ์œ„ํ•œ
์˜ˆ๋ฅผ ๋“ค์–ด ์ผ๋ถ€ ํ”Œ๋žซํผ์—์„œ๋Š” vfork () ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์กด์žฌํ•˜์ง€๋งŒ ์†์ƒ๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ง€์‹์„ ๋‹จ์œ„ ์ž์ฒด์— ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์ด๋Š” ๊ณต๊ธ‰์—…์ฒด๊ฐ€ ๊ฒฐ๊ตญ ํ•ด๊ฒฐํ•˜๊ฒŒ ๋  ์ผ์‹œ์ ์ธ ๋ฌธ์ œ์ผ ์ˆ˜๋„ ์žˆ๊ณ ,
์ƒˆ๋กœ์šด OS ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“  ์‹œ์Šคํ…œ์— ๋„ˆ๋ฌด ํŠน์ •์ ์ธ ์ž‘์€ ๋ฌธ์ œ๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ๋ฉ”ํƒ€ ๊ตฌ์„ฑ
ํžŒํŠธ ํŒŒ์ผ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํžŒํŠธ ์˜ ๋””๋ ‰ํ† ๋ฆฌ
ํŒจํ‚ค์ง€์˜ ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์ด๋ฉฐ ์‹คํ–‰ ์‹œ ์ด ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ. ๊ทธ๋Ÿฌ๋ฉด
ํžŒํŠธ ๊ด€๋ จ ๋ถ€๋ถ„ ์˜ฌ๋“œ์ปจํ”ผ๊ทธ.U.

๊ทธ๋•Œ๋ถ€ํ„ฐ ์ผ๋ถ€ ์‰˜ ๋ณ€์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ OS ํŠน์ •์—์„œ ์‚ฌ์šฉ
.sh ํŒŒ์ผ. ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด์žˆ์Šต๋‹ˆ๋‹ค ์˜ฌ๋“œ์ปจํ”ผ๊ทธ.U ์–ด๋–ค ํžŒํŠธ ํŒŒ์ผ์ด ํ•„์š”ํ•œ์ง€ ์ถ”์ธกํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
์‹œ์Šคํ…œ OS ์ด๋ฆ„, ์ปค๋„ ์ด๋ฆ„, ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ‘œ์ค€ ์ด๋ฆ„์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
๋ฒˆํ˜ธ ๋“ฑ... ์ด ์ •๋ณด๋Š” ๊ธ‰๋ณ€ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์—ฌ๊ธฐ. ์ฝ”๋“œ๋ฅผ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ฌ๋“œ์ปจํ”ผ๊ทธ.U.

ํŒจํ‚ค์ง€๋ฅผ ์ฒ˜์Œ ๋ฆด๋ฆฌ์Šคํ•  ๋•Œ ํžŒํŠธ ํŒŒ์ผ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ๋น„์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ
ํŒจํ‚ค์ง€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ๊ธฐ๋ณธ๊ฐ’์€
ํŠน์ • ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ์ด๊ฒƒ์ด ํ”Œ๋žซํผ ํŠน์ • ๋ฌธ์ œ์ธ์ง€ ์•„๋‹ˆ๋ฉด
์ผ๋ฐ˜ ๊ฒƒ. ์ „์ž์˜ ๊ฒฝ์šฐ์—๋Š” ์ƒˆ๋กœ์šด ํžŒํŠธ ํŒŒ์ผ์„ ์†Œ๊ฐœํ•  ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.
ํ›„์ž์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ๋‹จ์œ„๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, SGI ์‹œ์Šคํ…œ์€ ์†์ƒ๋œ ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. vfork () ์‹œ์Šคํ…œ ํ˜ธ์ถœ, ์ด๊ฒƒ์œผ๋กœ
๊ธ€์“ฐ๊ธฐ. ํ•ด๋‹น ํžŒํŠธ ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. sgi.sh. ๋”ฐ๋ผ์„œ ๋‹น์‹ ์ด ํ•ด์•ผ ํ•  ์ผ์€ ๋งŒ๋“ค๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
a ํžŒํŠธ/sgi.sh ๋‹น์‹ ์ด ์“ฐ๋Š” ํŒŒ์ผ :

d_vfork="$define"

ํ•ญ์ƒ ๋‹ค์‹œ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค vfork on ํฌํฌ (์ฐธ์กฐ d_vfork.U). SGI ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰ํ•  ๋•Œ
์ฒ˜์Œ์œผ๋กœ, ๊ตฌ์„ฑ ์žˆ์Œ์„ ๊ฐ์ง€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํžŒํŠธ/sgi.sh ํŒŒ์ผ์ด ์žˆ๊ณ  ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ์ž‘์—…์€
IRIX ๋จธ์‹ (์ปค๋„ ์ด๋ฆ„์€ ๋Œ€๊ฐœ /irix์ž„)์ด๋ฏ€๋กœ ๋‹ค์Œ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. SGI ๋“ฑ
๊ฐ€๋Šฅํ•œ ํžŒํŠธ. ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ ์ˆ˜๋ฝํ•œ ๊ฒฝ์šฐ, ์ดํ›„ $d_vfork ๊ฐ’์€ ๋‹ค์Œ์„ ํ†ตํ•ด ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค.
$์„ธํŠธ๋ฐ” ์ „ํ™”ํ•ด, ์•„ ์™€! ๊ฐ’์„ ์žฌ์ •์˜ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊ฒฝ๊ณ ํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ณด๋‚ด์ง‘๋‹ˆ๋‹ค.
์— ์˜ํ•ด ๊ณ„์‚ฐ ๊ตฌ์„ฑ.

์ œ๊ณตํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์•Œ๋ ค์ง„ ํžŒํŠธ ์˜ฌ๋“œ์ปจํ”ผ๊ทธ.U. ํžŒํŠธ ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ
๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•œ ์„ ํƒ์œผ๋กœ ์ œ์•ˆ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํœด๋ฆฌ์Šคํ‹ฑ ํ…Œ์ŠคํŠธ๋Š” ๊ณ„์‚ฐ์„ ์œ„ํ•ด ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๊ฐ€๋Šฅํ•œ ํžŒํŠธ ํ›„๋ณด๋Š” ๋ถˆ์•ˆ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ฐ’์ด๋‚˜ ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
๋‚˜ํ•œํ…Œ ๋ณด๋‚ด์ค˜...

์žฌ์ •์˜ ์„ ํƒ
๋‹น์‹ ์ด ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ ๊ตฌ์„ฑ.์˜ค๋ฒ„ ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ, ๊ตฌ์„ฑ ๋‹น์‹ ์ด ๋ฌผ์–ด๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค
๊ธฐ๋ณธ๊ฐ’์„ ๋ฌด์‹œํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๋“œํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ƒ์„ฑ ์ „์— ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
config.sh ํŒŒ์ผ์— ์ €์žฅ๋œ ๊ฐ’์„ ํŒจ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ €์žฅํ•˜๋Š” ๋กœ์ปฌ ํŒŒ์ผ์ด๋ผ๋Š” ์ ์—์„œ ํžŒํŠธ ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ž์‹ ์˜ ์šฉ๋„์— ๋งž๊ฒŒ ์ž์œ ๋กญ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒŒ์ผ์„ ์ง์ ‘ ์ œ๊ณตํ•ด์„œ๋Š” ์•ˆ ๋˜์ง€๋งŒ,
์‚ฌ์šฉ์ž๋Š” ์ด ๊ฐ€๋Šฅ์„ฑ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์˜ต์…˜
XNUMXD๋ดํƒˆ์˜ ๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ช…๋ น์ค„์— ์ง€์ •๋œ ์ผ๋ถ€ ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋™์ž‘์„ ์•ฝ๊ฐ„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜๋Š” ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

-d ๋ชจ๋“  ๋‹ต๋ณ€์— ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

-e ์ œ์ž‘ ๊ณผ์ •์„ ์ง€๋‚˜ ์งˆ๋ฌธ ์—†์ด ์ง„ํ–‰ํ•˜์„ธ์š”. config.sh.

-f ํŒŒ์ผ ์ง€์ •๋œ ํŒŒ์ผ์„ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด
๊ตฌ์„ฑ์€ ๋‹ค์Œ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. config.sh, ์กด์žฌํ•  ๋•Œ.

-h ๋„์›€๋ง ๋ฉ”์‹œ์ง€๋ฅผ ์ธ์‡„ํ•˜๊ณ  ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

-r ๊ฐ€๋Šฅํ•˜๋ฉด C ๊ธฐํ˜ธ ๊ฐ’์„ ์žฌ์‚ฌ์šฉํ•˜์„ธ์š”. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์ž‘์—…์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. nm ์ƒ์ง•
์ถ”์ถœ. ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ(์ด์ „ ๊ตฌ์„ฑ ํŒŒ์ผ ์—†์ด)
๊ตฌ์„ฑ ์— ๋Œ€ํ•ด ์•Œ๊ธฐ ์œ„ํ•ด ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผํ•˜๊ณ  ๋งํฌํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ธฐํ˜ธ์˜ ์กด์žฌ ๋˜๋Š” ๋ถ€์žฌ.

-s ๋ฌด์Œ ๋ชจ๋“œ. ํŒŒ์ผ ์„ค๋ช…์ž #4์— ์ธ์‡„๋œ ๋ฌธ์ž์—ด๋งŒ
ํ™”๋ฉด(์ค‘์š”ํ•œ ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค). ์™„์ „ํžˆ ๋Œ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค
์–ด๋–ค ์ถœ๋ ฅ์ด๋“  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ '๊ตฌ์„ฑ -ders > / dev / null 2> ๋ฐ 1' ๊ฐ€๋“ ์ฐจ๋‹ค
์ถœ๋ ฅ์ด๋‚˜ ์‚ฌ์šฉ์ž ์ƒํ˜ธ ์ž‘์šฉ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ผ๊ด„ ์‹คํ–‰์ž…๋‹ˆ๋‹ค.

-D ๊ธฐํ˜ธ=๊ฐ’
์‚ฌ์ „ ์ •์˜ ์ƒ์ง• ์ง€์ •๋œ ๊ฒƒ์„ ๊ฒฌ๋””๋‹ค ๊ฐ€์น˜. '๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.-D
์ƒ์ง•' ๊ธฐ๋ณธ๊ฐ’์ธ 'define'์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-E ๊ตฌ์„ฑ ์งˆ๋ฌธ์ด ๋๋‚˜๋ฉด ์ค‘์ง€ํ•˜์„ธ์š”.
config.sh. ์ด ์ž‘์—…์€ ''์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.ํ™•์ธ ๋”ฐ๋ผ' ๋˜๋Š” .SH ํŒŒ์ผ ์ถ”์ถœ.

-K ์ง€์‹์ด ํ’๋ถ€ํ•œ ์‚ฌ์šฉ์ž. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํ˜„์žฌ ์ˆ˜ํ–‰ ์ค‘์ธ ์ž‘์—…๊ณผ
๋”ฐ๋ผ์„œ config.sh ํŒŒ์ผ์€ ํ•ญ์ƒ ์˜๋„๋œ ๊ฒƒ์ฒ˜๋Ÿผ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
์™ธ๊ณ„ ์‹œ์Šคํ…œ์—์„œ ์ƒ์„ฑ๋˜์—ˆ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์žฌ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ค‘๋‹จ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” C ์ปดํŒŒ์ผ๋Ÿฌ ๋˜๋Š” ์ž˜๋ชป๋œ ์„ธํŠธ๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.
C ํ”Œ๋ž˜๊ทธ ์ค‘. ์ด ์˜ต์…˜์„ ํ†ตํ•ด ์ถ”๊ฐ€ ๋‹จ์ถ•ํ‚ค๋ฅผ ์ผค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฏธ๋ž˜. ์ด ์˜ต์…˜์€ ๋‹ค์Œ ๋ฌธ์„œ์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์‚ฌ์šฉ๋ฒ• ๋ฉ”์‹œ์ง€, ์šฐ๋ฆฌ์—๊ฒŒ ์ƒ๊ธฐ์‹œํ‚ค๊ธฐ ์œ„ํ•ด
๊ทธ๋Ÿฌ๋‚˜ ์ฃผ์–ด์ง„ ์„ค๋ช…์€ ์ถฉ๋ถ„ํžˆ ๋น„๋ฐ€์Šค๋Ÿฌ์šธ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.
:-)

-O ๋‹ค์Œ์„ ํ†ตํ•ด ์ง€์ •๋œ ๊ฐ’์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. -D or -U ๋กœ๋“œ๋œ ๋ชจ๋“  ์„ค์ •์„ ์žฌ์ •์˜ํ•˜๋ ค๋ฉด
๊ตฌ์„ฑ ํŒŒ์ผ. ์žฌ์ •์˜๋Š” ๊ธฐ๋ณธ ๋™์ž‘์ด ์•„๋‹™๋‹ˆ๋‹ค.
ํ˜„์žฌ ๋ณ€๊ฒฝ ์ค‘์ธ ๋ณ€์ˆ˜์—์„œ ํŒŒ์ƒ๋œ ๋ณ€์ˆ˜๋กœ ์ „ํŒŒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์—†์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ -O, ๊ตฌ์„ฑ ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ์„ค์ •์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
๋ฏธ๋ถ„๋ณ€์ˆ˜๊ฐ€ ์•„์ง ๊ณ„์‚ฐ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค...

-S ๋ชจ๋“  .SH ํŒŒ์ผ์— ๋Œ€ํ•ด ๋ณ€์ˆ˜ ๋Œ€์ฒด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์™€ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
-f ์›ํ•˜๋Š” ๊ตฌ์„ฑ์„ ์ „ํŒŒํ•˜๋„๋ก ์ „ํ™˜ํ•˜์„ธ์š”.

-U ๊ธฐํ˜ธ=
์‚ฌ์ „ ์„ค์ • ์ƒ์ง• ๋นˆ ๊ฐ’์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. '๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.-U ์ƒ์ง•'
์–ด๋Š ๊ฒƒ์ด ์„ค์ •๋  ๊ฒƒ์ธ๊ฐ€ ์ƒ์ง• 'undef'๋กœ.

-V ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ธ์‡„ํ•˜์„ธ์š”. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์ด๊ฒƒ์ด ์ด๊ฒƒ์„ ์ƒ์„ฑํ•œ ๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ
์ข…๋ฃŒํ•˜์‹ญ์‹œ์˜ค.

๋‹ฌ๋ฆฌ๋Š” ํ™˜๊ฒฝ
์‹œ์ž‘ํ•˜๋ฉด, ๊ตฌ์„ฑ ๋กœ์ปฌ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค UU ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ
๊ตฌ์„ฑ์ด ์ข…๋ฃŒ๋˜๋ฉด ์ œ๊ฑฐ๋˜์ง€๋งŒ ์ด๋Š” ๋‹ค์Œ ์œ„์น˜์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์ฆ‰, ์ฝ๊ธฐ ์ „์šฉ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ์•„๋‹Œ ์“ฐ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๊ตฌ์„ฑ ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์›๊ฒฉ์œผ๋กœ:

../ํŒจํ‚ค์ง€/๊ตฌ์„ฑ

๋กœ์ปฌ์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ๋ชจ๋“  ํŒŒ์ผ์€ ๋‹ค์Œ ์œ„์น˜์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ ์ค‘์ธ ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด ๋งˆ๋ฒ•์€ src.U ๋•๋ถ„์— ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.
์„ค์ •ํ•˜๊ณ  ์žˆ๋Š” ์œ ๋‹› $src ๊ณผ $rsrc ํŒจํ‚ค์ง€ ์†Œ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ์ €๊ฒƒ
๊ฒฝ๋กœ๋Š” ์ „์ฒด ๋˜๋Š” ์ƒ๋Œ€ ๊ฒฝ๋กœ์ธ์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์ „์ฒด ๋˜๋Š”
์ƒ๋Œ€ ๊ฒฝ๋กœ.

๋‚ด์—์„œ UU ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค $rsrc ์†Œ์Šค ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด(๋‹จ์œ„
์†Œ์Šค ํŒŒ์ผ ๋งํฌ ํžŒํŠธ๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ํ•ญ์ƒ ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ
ํŒŒ์ผ์€ ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค). ๋ชจ๋“  Makefile์€ $src ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋นŒ๋“œ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ƒ๋‹จ์˜ ์†Œ์Šค์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ(์—ฌ๊ธฐ์„œ ๊ตฌ์„ฑ ์‹คํ–‰๋จ),
์ง์ ‘ ๋˜๋Š” VPATH ์„ค์ •์„ ํ†ตํ•ด.

๋‹ฌ๋ฆฌ๊ธฐ ์ค‘์ผ ๋•Œ ๊ตฌ์„ฑ ์›๊ฒฉ์œผ๋กœ .SH ํŒŒ์ผ์€ ๋นŒ๋“œ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ถ”์ถœ๋ฉ๋‹ˆ๋‹ค.
์†Œ์Šค ํŠธ๋ฆฌ์—์„œ. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์ผ์ข…์˜ ํ™•์ธ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›
์†Œ์Šค๋Š” ๋‹ค๋ฅธ ๊ณณ์— ์žˆ์ง€๋งŒ ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋งˆ๋ฒ• ์žฌ์ •์˜
๋ฅผ ํ™œ์šฉํ•˜์—ฌ -M ์ „ํ™˜ํ•˜๋ฉด ์ผ๋ถ€ ๋งค์ง ์žฌ๋งคํ•‘์ด confmagic.h
ํŒŒ์ผ. ํ•ด๋‹น ํŒŒ์ผ์€ ๋‹ค์Œ์— ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ.h๋ฌผ๋ก , ํ•˜์ง€๋งŒ ๊ฒฐ๊ตญ์—๋„
๋‹ค๋ฅธ ํ•„์š”ํ•œ ํฌํ•จ ํŒŒ์ผ. ์ฆ‰:

#include "config.h"
...
... other ํฌํ•จ ...
...
#include "confmagic.h"

์ผ๋ฐ˜์ ์œผ๋กœ, confmagic.h ๋‹ค์‹œ ๋งคํ•‘ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค ๋น„๋ณต์‚ฌ() on memcpy () ์•„๋‹ˆ๋ผ๋ฉด ๋น„๋ณต์‚ฌ() is
๋กœ์ปฌ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฑฐ๋‚˜ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ vfork ์œผ๋กœ ํฌํฌ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ์“ธ๋ชจ๊ฐ€ ์—†๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
~์— ๋Œ€ํ•ด ์‹ ๊ฒฝ์“ฐ๋‹ค HAS_VFORK ์ƒ์ง•.

์ด ๊ตฌ์„ฑ ๋งค์ง์€ ์šฉ์–ด์ง‘ ํŒŒ์ผ์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์œ„ Canva์˜ ์ œ์ž‘๋œ ์ฑ„๋„์•„ํŠธ ํ…œํ”Œ๋ฆฟ์„
๋‹จ์œ„ ํ…œํ”Œ๋ฆฟ ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์ƒˆ๋กœ์šด ๋‹จ์œ„๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด (์•„์ง ์ž‘์„ฑ๋˜์ง€ ์•Š์€) ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ƒํ™ฉ. ์ด ๋ฏธ์™„์„ฑ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ฌธ์„œ๋Š” ์—†์ง€๋งŒ ์–ธ๊ธ‰ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
์ง์ ‘ ํ•ด๋ณด๊ณ  ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€์—์„œ...

์ž‘๊ฐ€


๋ž˜๋ฆฌ ์›”[์ด๋ฉ”์ผ ๋ณดํ˜ธ]> ๋ฒ„์ „ 2.0์˜ ๊ฒฝ์šฐ.
ํ• ๋ž€ ์Šคํ…[์ด๋ฉ”์ผ ๋ณดํ˜ธ]> ์ค‘์š”ํ•œ ์œ ๋‹› ํ™•์žฅ์˜ ๊ฒฝ์šฐ.
๋ผํŒŒ์—˜ ๋งŒํ”„๋ ˆ๋””[์ด๋ฉ”์ผ ๋ณดํ˜ธ]>.
๊ทธ ์™ธ ๋งŽ์€ ๊ธฐ์—ฌ์ž๋“ค ๋ฉ”ํƒ€ ๊ตฌ์„ฑ ๋‹จ์œ„. ๋ชฉ๋ก์€ ์‹ ์šฉ ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

onworks.net ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜จ๋ผ์ธ์œผ๋กœ Metaconfig ์‚ฌ์šฉ


๋ฌด๋ฃŒ ์„œ๋ฒ„ ๋ฐ ์›Œํฌ์Šคํ…Œ์ด์…˜

Windows ๋ฐ Linux ์•ฑ ๋‹ค์šด๋กœ๋“œ

Linux ๋ช…๋ น

Ad