ºÎ·Ï B. ¶óÀ̺귯¸® ±â´ÉµéÀÇ ¿ä¾à
ÀÌ ºÎ·ÏÀº GNU C ¶óÀ̺귯¸® ¾È¿¡¼ °ø±ÞµÇ´Â Çì´õÆÄÀϾȿ¡ ¼±¾ðµÈ ±â´ÉµéÀÇ ¿ÏÀüÇÑ ¸®½ºÆ®ÀÌ´Ù. °¢ ¿£Æ®¸®´Â ±× ±â´ÉÀÌ Ç¥ÁØÀÎÁö ¾Æ´Ï¸é ´Ù¸¥°ÍÀ¸·ÎºÎÅÍ ¿Ô´ÂÁö¸¦ Ç¥½ÃÇϰí, ±×°ÍÀ» ¾î¶»°Ô »ç¿ëÇÏ ´ÂÁö¿¡ ´ëÇÑ Á¤º¸¸¦ ÀÌ ¸Å´º¾óÀÇ ¾î´À ºÎºÐ¿¡¼ ãÀ»°ÍÀÎÁö¸¦ ¾Ë·ÁÁØ´Ù.
-----------------------------------------------------------
### Àá±ñ¸¸!!!
ÀÌ ºÎ·Ï B´Â ÇÔ¼öµéÀÇ ¸®½ºÆ®°¡ ³ª¿ÍÀÖ½À´Ï´Ù... ¹ø¿ªÀÌ ÇÊ¿äÄ¡ ¾Ê¾Æ¼ À§ÀÇ ÇÑ ¹®´Ü¸¸ ¹ø¿ªÇÏ°í ³Ñ ¾î°©´Ï´Ù.
-----------------------------------------------------------
ºÎ·Ï C. ¶óÀ̺귯¸® À¯Áöº¸¼ö
C.1 ¾î¶»°Ô GNU C ¶óÀ̺귯¸®¸¦ ÀνºÅçÇÒ°ÍÀΰ¡?
GNU C ¶óÀ̺귯¸®ÀÇ ÀνºÅçÀº ºñ±³Àû °£´ÜÇÏ´Ù. ÀνºÅçÇÏ·Á¸é ÃÖ±Ù ¹öÀüÀÇ GNU make°¡ ÇÊ¿äÇÏ ´Ù. ´Ù¸¥ make ÇÁ·Î±×·¥À» »ç¿ëÇØ¼ GNU C ¶óÀ̺귯¸®¸¦ °»½ÅÇÏ´Â °ÍÀº ½Ç·Î ¾î·Æ°í ¿ì¸®´Â ´ë½Å ¿¡ GNU make¸¦ »ç¿ëÇÒ °ÍÀ» ±ÇÀåÇÑ´Ù.
´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ¸Â´Â GNU C ¶óÀ̺귯¸®¸¦ Çü¼ºÇϱâ À§Çؼ´Â, ½© ½ºÅ©¸³Æ® `configure' ¿Í ÇÔ²² sh¸¦ ½ÇÇàÇ϶ó. ´ç½ÅÀÇ ½Ã½ºÅÛ ±¸¼ºÀ» À§ÇÑ °ü½ÀÀûÀÎ GNU À̸§À» Àμö·Î »ç¿ëÇ϶ó_¿¹¸¦µé¾î, `sparc-sun-sunos4.1'Àº Sunos 4.1ÀÌ ½ÇÇàµÇ´Â Sun 4¸¦ À§ÇÑ °ÍÀÌ´Ù. Ç¥ÁØ GNU ±¸¼º À̸§µéÀÇ ¿Ï ÀüÇÑ ¸í¼¼¸¦ º¸·Á¸é, GNU CC »ç¿ë°ú Æ÷ÆÃ¿¡ ÀÖ´Â "GNU CC ÀνºÅçÇϱâ" ÀýÀ» ÂüÁ¶Ç϶ó. ¸¸ÀÏ ´ç ½ÅÀÌ ±¸¼ºÀ̸§À» ºüÆ®¸®¸é, `configure'´Â ½ÇÇàÁßÀÎ ½Ã½ºÅÛÀ» Á¡°ËÇÔÀ¸·Î½á ÁüÀÛÇÏ·Á°í ½ÃµµÇÒ °ÍÀÌ ´Ù. ÁüÀÛÀ» ÇÒ ¼ö Àְųª, ¾ø°Å³ª, ¾Æ´Ï¸é ÁüÀÛÀÌ Æ²¸®°Å³ª ÇÒ °ÍÀÌ´Ù. `configure'´Â ÁøÇàÇϱâÀü¿¡ ¼±ÅÃµÈ ±¸¼ºÀÇ Á¤±ÔÀ̸§À» ¾Ë¸± °ÍÀÌ´Ù.
GNU C ¶óÀ̺귯¸®´Â ´ÙÀ½ ÆÐÅϵé°ú ¸Â´Â ±¸¼ºÀ» Áö¿øÇϰí ÀÖ´Ù.
alpha-dec-osf1
i386-anything-bsd4.3
i386-anything-gnu
i386-anything-sco3.2
i386-anything-sco3.2v4
i386-anything-sysv
i386-anything-sysv4
i386-sequent-bsd
m68k-hp-bsd4.3
m68k-sony-newsos
m68k-sun-sunos4.n
mips-dec-ultrix4.n
sparc-sun-solaris2.n
sparc-sun-sunos4.n
Áö¿øµÇÁö ¾ÊÀº ±¸¼ºµé¿¡¼, ±×µé ¸î °³¸¦ À§ÇÑ ´Ù¸¥ À̸§À» Æí¸®ÇÏ°Ô Áö¿øÇÑ´Ù. (±×µéÀº ¹°·Ð ´Ù¸¥ GNU ¼ÒÇÁÆ®¿þ¾î¿¡¼ µ¿ÀÛÇÑ´Ù.)
decstation
hp320-bsd4.3 hp300bsd
i386-sco
i386-sco3.2v4
i386-sequent-dynix
i386-svr4
news
sun3-sunos4.n sun3
sun4-solaris2.n sun4-sunos5.n
sun4-sunos4.n sun4
´ÙÀ½Àº configure¸¦ ½ÇÇà½Ãų ¶§ ´ç½ÅÀÌ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¸î °³ÀÇ ¿É¼ÇÀÌ´Ù.
`--with-gnu-ld'
¸¸ÀÏ ´ç½ÅÀÌ GNU C ¶óÀ̺귯¸®¿Í ÇÁ·Î±×·¥À» ¸µÅ©Çϱâ À§Çؼ GNU ld¸¦ »ç¿ëÇÒ °èȹÀ̶ó¸é ÀÌ ¿É¼ÇÀ» »ç¿ëÇ϶ó. (¿ì¸®´Â °·ÂÇÏ°Ô ´ç½ÅÀÌ À̰ÍÀ» Çϵµ·Ï ±ÇÀåÇÑ´Ù.)
`--with-gnu-as'
¸¸ÀÏ ´ç½ÅÀÌ GNU C ¶óÀ̺귯¸®¸¦ ¸¸µé¶§, GNU ¾î¼Àºí·¯ gas¸¦ »ç¿ëÇÏ·Á¸é ÀÌ ¿É¼ÇÀ» »ç¿ëÇ϶ó. ¾î¶² ½Ã½ºÅÛ¿¡¼, ¸¸ÀÏ ´ç½ÅÀÌ gas¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é ±× ¶óÀ̺귯¸®°¡ Àû´çÇÏ°Ô ¸¸µé¾îÁöÁö ¾ÊÀ» °ÍÀÌ´Ù.
`--nfp'
¸¸ÀÏ ´ç½ÅÀÇ ÄÄÇ»ÅͰ¡ Çϵå¿þ¾î¿¡¼ ÇÃ·ÎÆÃ Æ÷ÀÎÆ®¸¦ Áö¿øÇÏ´Â °ÍÀÌ ºÎÁ·ÇÏ´Ù¸é ÀÌ ¿É¼ÇÀ» »ç¿ëÇÏ ¶ó.
`--prefix=directory '
`directory'ÀÇ ¼ºêµð·ºÅ丮µé¾È¿¡ ±â°è-µ¶¸³ÀûÀÎ µ¥ÀÌÅÍ ÆÄÀϵéÀ» ÀνºÅçÇ϶ó. ( ´ç½ÅÀº ¶ÇÇÑ `configparms'·Î À̰ÍÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù; ¹ØÀ» º¸¶ó.)
`--exec-prefix=directory '
`directory'ÀÇ ¼ºêµð·ºÅ丮µé¾È¿¡ ¶óÀ̺귯¸®¿Í ±â°è-µ¶¸³ÀûÀÎ ÆÄÀϵéÀ» ÀνºÅçÇ϶ó. (´ç½ÅÀº ¶ÇÇÑ `configparms' ¸¦ »ç¿ëÇØ¼ À̰ÍÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù; ¹ØÀ» º¸¶ó.)
configure¸¦ ½ÇÇàÇϱâ À§ÇÑ °¡Àå °£´ÜÇÑ ¹æ¹ýÀº ¶óÀ̺귯¸® ¼Ò½º°¡ Æ÷ÇÔµÈ µð·ºÅ丮¿¡¼ ±×°ÍÀ» ½Ç ÇàÇÏ´Â °ÍÀÌ´Ù. À̰ÍÀº ±× µð·ºÅ丮¾È¿¡ ¶óÀ̺귯¸®¸¦ ¸¸µé±â À§ÇØ ÁغñÇÑ´Ù.
´ç½ÅÀº configure¸¦ ½ÇÇàÇÏ¿© ´Ù¸¥ µð·ºÅ丮·Î °¡¼ ±× ´Ù¸¥ µð·ºÅ丮¿¡ ¶óÀ̺귯¸®¸¦ ¸¸µé±âÀ§ÇÑ Áغñ¸¦ ÇÒ ¼ö ÀÖ´Ù.
mkdir ../hp320
cd ../hp320
../src/configure hp320-bsd4.3
configure´Â ´ç½ÅÀÌ Á¤ÇÑ µð·ºÅ丮°¡ ¹«¾ùÀÌ´øÁö configure ±× ÀÚü¸¦ ã±â À§Çؼ ¼Ò½ºµéÀ» ã´Â ´Ù. ÆÄÀÏ ½Ã½ºÅÛ¾ÈÀÇ ¾îµð¿¡ ¼Ò½º¿Í µð·ºÅ丮µéÀÌ ÀÖ´ÂÁö¿¡ »ó°ü¾øÀÌ ´ç½ÅÀÌ configure¸¦ ½ÇÇàÇÒ ¶§ ¼Ò½ºµð·ºÅ丮¸¦ Á¤ÇØÁֱ⸸ Çϸé, ´ç½ÅÀº Àû´çÇÑ °á°ú¸¦ ¾òÀ» ¼ö ÀÖÀ»°ÍÀÌ´Ù.
ÀÌ ±â´ÉÀº ´Ù¸¥ µð·ºÅ丮¿¡ ¼Ò½º¿Í ¹ÙÀ̳ʸ® ÆÄÀϵéÀ» ´Þ¸® °ü¸®ÇÒ ¼ö ÀÖ°í, °°Àº ¼Ò½º¸¦ °¡Áö°í ¿©·¯°³ÀÇ ´Ù¸¥ ±â°è¸¦ À§ÇÑ ¶óÀ̺귯¸®¸¦ ¸¸µé±â ½±°Ô ÇÑ´Ù. °¢ ¸ñÇ¥ ±â°è¸¦ À§ÇÑ ¶óÀ̺귯¸®°¡ µé ¾î°¥ µð·ºÅ丮¸¦ ¸¸µé°í, ±× µð·ºÅ丮¿¡¼ ¸ñÇ¥ ±â°èÀÇ ±¸¼º À̸§À» Á¤Çؼ configure¸¦ ½ÇÇàÇ϶ó.
¶óÀ̺귯¸®´Â ƯÁ¤ÇÑ-¸ñÀûÀÇ ±¸¼º ÆÄ¶ó¹ÌÅ͵éÀ» À§ÇÑ ¼ö¸¦ °¡Áö°í ÀÖ´Ù. ±×µéÀº `Makeconfig' ÆÄÀÏ ¿¡ Á¤ÀǵǾî ÀÖ´Ù; ÀÚ¼¼ÇÑ °ÍÀº ÆÄÀϾȿ¡ ÀÖ´Â ¼³¸íÀ» ÂüÁ¶Ç϶ó. ±×·¯³ª ´ç½ÅÀÌ `Makeconfig'ÆÄÀÏÀ» ÆíÁýÇØ¼´Â ¾ÈµÇ°í_´ë½Å¿¡ ´ç½ÅÀÌ ¶óÀ̺귯¸®¸¦ ¸¸µé¾î³õÀº µð·ºÅ丮¾È¿¡ `configparms'¶ó´Â ÆÄÀÏÀ» ¸¸µé°í, ´ç½ÅÀÌ ÁöÁ¤Çϱ⸦ ¿øÇÏ´Â ÆÄ¶ó¹ÌÅ͵éÀ» ±× ÆÄÀÏ¿¡ Á¤ÀÇÇØ³õÀ¸¸é µÈ´Ù. `configparms'´Â `Makeconfig'ÀÇ ÆíÁýµÈ º¹»çº»ÀÌ µÇ¾î¼´Â ¾ÈµÈ´Ù; ¿ÀÁ÷ ´ç½ÅÀÌ ¹«½ÃÇϱ⸦ ¿øÇÏ´Â ÆÄ¶ó¹ÌÅ͵鸸 Áö Á¤Ç϶ó.
ƯÁ¤ ±â°è-ÀÇÁ¸ÀûÀÎ Äڵ带 À§Çؼ´Â GNU C ÄÄÆÄÀÏ·¯¿¡ ÀÖ´Â È®ÀåµéÀ» »ç¿ëÇ϶ó, ±×·¯¹Ç·Î ´ç½Å Àº GCC·Î ¶óÀ̺귯¸®¸¦ ÄÄÆÄÀÏÇÒ Çʿ䰡 ÀÖÀ» °ÍÀÌ´Ù. (½ÇÁ¦·Î, ÇöÁ¸ÇÏ´Â ¿ÏÀüÇÑ Æ÷Æ®µéÀº ¸ðµÎ GCC¸¦ ÇÊ¿ä·ÎÇÑ´Ù.) C ¶óÀ̺귯¸®ÀÇ ÇöÀç ¹èÆ÷º»Àº ÄÄÆÄÀÏ·¯°¡ ÀϹÝÀûÀ¸·Î Á¦°øÇÏ´Â Çì´õÆÄÀϵéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù: `stddef.h', `stdarg.h' ±×¸®°í `va-machine.h' Çü½ÄÀÇ À̸§µéÀ» °¡Áø ¿©·¯°³ÀÇ ÆÄÀÏ µé. GCCÀÇ ¿À·¡µÈ ¹èÆ÷º»À¸·ÎºÎÅÍ ¿Â ±× ÆÄÀÏÀÇ ´Ù¸¥ ¹öÀüÀº GNU C ¶óÀ̺귯¸®¿¡¼ ¿Ã¹Ù¸£°Ô ÀÛ µ¿ÇÏÁö ¾Ê´Â´Ù. ¹èÆ÷º» 2.2.¿¡ ÀÖ´Â `stddef.h' ÆÄÀϰú GCCÀÇ ÃÖ±Ù°ÍÀº ¿Ã¹Ù¸£°Ô ÀÛµ¿ÇÑ´Ù. ¸¸ÀÏ ´ç½Å ÀÌ ¹èÆ÷º» 2.2. ¶Ç´Â ÃÖ±ÙÀÇ GCC¸¦ °¡Áö°í ÀÖ´Ù¸é, C ¶óÀ̺귯¸®¿¡ ÀÖ´Â °Í ´ë½Å¿¡ ±× ¹öÀüÀÇ `stddef.h'ÀÇ ÆÄÀÏÀ» »ç¿ëÇ϶ó. ±×·¸°ÔÇÏ·Á¸é, `configparms' ¾È¿¡ `override stddef.h = 'ÁÙÀ» ³Ö¾î ¶ó. ´Ù¸¥ ÆÄÀϵéÀº ¹èÆ÷º» 2.3°ú ÃÖ±ÙÀÇ GCC¿¡¼ ¼öÁ¤µÇ¾ú´Ù. `configure'´Â C ¶óÀ̺귯¸®¿Í ȣȯ ¼ºÀÌ ÀÖ´Â ÀνºÅçµÇ¾î ÀÖ´Â `stdarg.h'¿Í `va-machine.h' ÆÄÀϵéÀ» °Ë»öÇÏ°í ¸¸ÀÏ ±×°ÍµéÀÌ ¾ø´Ù¸é ÀÚ½ÅÀÇ °ÍÀ» »ç¿ëÇÑ´Ù.
¹èÆ÷º» 2.4ÀÇ ÀÌÀü¿¡ ÀÖ¾ú´ø GCC¿Í size_t ÇüÀº ¹®Á¦¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù. ANSI C ´Â size_t°¡ Ç×»ó unisgned ÇüÀÌ µÉ °ÍÀ» ¿ä±¸ÇÑ´Ù. ÇöÁ¸ÇÏ´Â ½Ã½ºÅÛ Çì´õÆÄÀϵé°úÀÇ È£È¯¼ºÀ» À§Çؼ, GCC´Â `sys/types.h'°¡ ±×°ÍÀ» ¹«¾ùÀ¸·Î Á¤ÀÇÇß´ÂÁö¿¡ µû¶ó¼ `stddef.h'¿¡ size_t¸¦ Á¤ÀÇÇÑ´Ù. ´ëºÎºÐÀÇ À¯ ´Ð½º ½Ã½ºÅÛµéÀº `sys/types.h'¿¡ size_t¸¦ Á¤ÀÇÇϰí, signed ÇüÀÌ µÇµµ·Ï ÇÑ´Ù. size_t°¡ unisgned ÇüÀ¸·Î µÇ¾îÀִ°Ϳ¡ ÀÇÁ¸ÇÏ´Â ¶óÀ̺귯¸® ¾È¿¡ ÀÖ´Â ¾î¶² ÄÚµåµéÀº, ¸¸ÀÏ ±×°ÍÀÌ signed°¡ µÈ´Ù¸é ¿Ã¹Ù¸£°Ô µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.
size_t°¡ unsigned·Î ¿¹»óµÇ´Â GNU C ¶óÀ̺귯ÄÚµå´Â ¿Ã¹Ù¸£´Ù. signed ÇüÀÎ size_t Á¤ÀÇ´Â ¿Ã¹Ù¸£ Áö ¾Ê´Ù. ¹öÀü 2.4 ¿Í ÃÖ±ÙÀÇ GCC´Â size_t¸¦ Ç×»ó unsigedÇüÀ¸·Î Á¤ÀÇÇϰí, GCCÀÇ `fixincludes' ½ºÅ©¸³Æ® ¸Þ½ÃÁö´Â ½Ã½ºÅÛÀÇ `sys/types.h'ÀÇ ºñÀ§¸¦ ¸ÂÃ߱⠶§¹®¿¡ ±×°Í°ú Ãæµ¹ÇÏÁö ¾Ê´Â´Ù. ±×µ¿¾È, ¿ì¸®´Â GNU C ¶óÀ̺귯¸®¸¦ ÄÄÆÄÀÏÇÒ ¶§ size_tÀÇ Å¸ÀÔÀ¸·Î unsigned ÇüÀ» »ç¿ëÇÒ°ÍÀ̶ó°í ¸í¹éÇÏ °Ô GCC¿¡°Ô ¾Ë¸²À¸·Î½á ÀÛ¾÷ÇÑ´Ù. `configure'´Â ¸¸ÀÏ ÇÊ¿äÇÏ´Ù¸é size_t¸¦ À§Çؼ GCC°¡ ¹«½¼ Çü À» »ç¿ëÇÒ °ÍÀÎÁö ÀÚµ¿ÀûÀ¸·Î °ËÃâÇÒ °ÍÀÌ´Ù.
¶óÀ̺귯¸®¸¦ ¸¸µé±â À§Çؼ, make lib¸¦ ÀÔ·ÂÇ϶ó. À̰ÍÀº make·ÎºÎÅÍ ¿¡·¯Ã³·³ º¸ÀÌ´Â ¸¹Àº ¾ç ÀÇ Ãâ·ÂÀ» ¸¸µé°ÍÀÌ´Ù(¿¡·¯´Â ¾Æ´Ï´Ù). make·ÎºÎÅÍ ³ª¿Â ¿¡·¯¸Þ¼¼Áö¿¡¼ `***'°¡ Æ÷ÇÔµÈ °ÍÀ» ã¾Æ ºÁ¶ó. ±×µéÁß ¾î¶² °ÍÀº ½ÇÁ¦·Î ¿¡·¯¸Þ¼¼ÁöÀÏ ¼ö ÀÖ´Ù. ¶óÀ̺귯¸®ÀÇ ±â´ÉµéÀ» ½ÃÇèÇϱâ À§Çؼ ¾î ¶² Å×½ºÆ® ÇÁ·Î±×·¥À» ¸¸µé°í ½ÇÇàÇÏ·Á¸é, make tests¸¦ ÀÔ·ÂÇ϶ó. À̰ÍÀº `program.out'°ú °°Àº ÀÌ ¸§À¸·Î ¿©·¯°³ÀÇ ÆÄÀϵéÀ» ¸¸µé °ÍÀÌ´Ù.
GNU C ¶óÀ̺귯¸® ·¹ÆÛ·±½º ¸Å´º¾óÀ» ÇÁ¸°ÆÃÇϱâ À§ÇÑ Çü½ÄÀ¸·Î ¸¸µé·Á¸é, make dvi¸¦ ÀÔ·ÂÇ϶ó. make info¸¦ ÀÔ·ÂÇϸé, Emacs ³ª info ÇÁ·Î±×·¥¿¡¼ C-h i·Î ¶óÀÎÀ» ÀÐÀ»¼ö ÀÖ´Â ¸Å´º¾ó Çü½ÄÀ¸·Î ¸¸µé¾îÁØ´Ù.
¶óÀ̺귯¸®¿Í ±× Çì´õÆÄÀϵéÀ» ÀνºÅçÇϰí, info ÇÁ·Î±×·¥À» À§ÇÑ ¸Å´º¾ó Çü½ÄÀ» ¸¸µé·¯¸é, `configparms'¿¡¼ ÀνºÅç µð·ºÅ丮µéÀ» ¼³Á¤ÇÑ ÈÄ¿¡, make installÀ» ÀÔ·ÂÇ϶ó. À̰ÍÀº ±×µéÀ» Àνº ÅçÇϱâ Àü¿¡ ÇÊ¿äÇѰ͵éÀ» ¸¸µé °ÍÀÌ´Ù.
C.2 ¹ö±×µéÀ» º¸°íÇϱâ.
GNU C ¶óÀ̺귯¸® ¾È¿¡´Â ¾Æ¸¶µµ ¹ö±×µéÀÌ ÀÖ°í, ÀÌ ¸Å´º¾ó ¾È¿¡µµ À߸øµÈÁ¡°ú »ý·«µÈ °ÍÀÌ ÀÖÀ» °ÍÀÌ´Ù.¸¸ÀÏ ´ç½ÅÀÌ ±×µéÀ» º¸°íÇÑ´Ù¸é, ±×µéÀº °íÃÄÁú °ÍÀÌ´Ù. ´ç½ÅÀÌ ±×·¸°Ô ÇÏÁö¾Ê´Â´Ù¸é, ¾Æ¹«µµ ±×µé¿¡ ´ëÇØ¼ ¾ËÁö¸øÇÒ°ÍÀÌ°í ±×µéÀº ¿µ¿øÅä·Ï Ʋ¸° »óÅ·ΠÀÖ°Ô µÉ °ÍÀÌ´Ù.
¹ö±×¸¦ º¸°íÇϱâ À§Çؼ, ù°·Î ´ç½ÅÀº ±×°ÍÀ» ¹ß°ßÇØ¾ß¸¸ ÇÑ´Ù. ´ÙÇེ·´°Ôµµ ¹ö±×¸¦ ¹ß°ßÇÏ´Â °ÍÀº ½¬¿îÀÏÀÌ ¾Æ´Ò °ÍÀÌ´Ù. ÀÏ´Ü ´ç½ÅÀÌ ¹ö±×¸¦ ¹ß°ßÇß´Ù¸é, ±×°ÍÀÌ ½ÇÁ¦·Î ¹ö±×ÀÎÁö¸¦ È®½ÇÈ÷ ¹à Çô¶ó. À̰ÍÀ» ¾Ë¾Æ³»±â À§ÇÑ ÁÁÀº ¹æ¹ýÀº ´Ù¸¥ C ¶óÀ̺귯¸®¿¡ ÀÖ´Â °°Àº ±â´ÉÀ» µ¿ÀÛ½ÃÄѺ¸°í GNU C ¶óÀ̺귯¸®ÀÇ °Í°ú ºñ±³Çغ¸´Â °ÍÀÌ´Ù. ±×µéÀÌ °°Àº µ¿ÀÛÀ» Çϸé, ¾Æ¸¶µµ ´ç½ÅÀÌ Æ²¸®°í ¶ó À̺귯¸®°¡ ¸ÂÀ» °ÍÀÌ´Ù. ¸¸ÀÏ ±×·¸Áö ¾Ê´Ù¸é, ¶óÀ̺귯¸®Áß¿¡ Çϳª°¡ Ʋ¸° °ÍÀÌ´Ù.
±×·±°úÁ¤À» ÅëÇØ¼ ÀÏ´Ü ´ç½ÅÀÌ ¹ß°ßÇÑ °ÍÀÌ ¹ö±×ÀÓÀÌ È®½ÇÇØÁö¸é, ±× ¹®Á¦¸¦ ÀÏÀ¸Å°´Â °æ¿ìÀÇ ¹ü À§¸¦ Á¼È÷µµ·Ï ½ÃµµÇ϶ó. C ¶óÀ̺귯¸®ÀÇ °æ¿ì¿¡, ¸¸ÀÏ °¡´ÉÇÏ´Ù¸é, ´ç½ÅÀº ½ÇÁ¦·Î ÇÑ °³ÀÇ ¶óÀÌºê ·¯¸® ÇÔ¼ö È£Ãâ·Î ±× ¹üÀ§¸¦ Á¼Èú Çʿ䰡 ÀÖ´Ù. À̰ÍÀÌ ±×¸® ¾î·ÆÁö´Â ¾ÊÀ» °ÍÀÌ´Ù.
´ç½ÅÀÌ ÇÒ ¼ö ÀÖ´Â °¡Àå °£´ÜÇÑ Å×½ºÆ® ÄÉÀ̽º(case)¸¦ °¡Áú ¶§ ¸¶Áö¸· ´Ü°è·Î½á ¹ö±×¸¦ º¸°íÇÏ´Ù. ¹ö±×¸¦ º¸°íÇÒ ¶§, ´ç½ÅÀÇ ½Ã½ºÅÛ Å¸ÀÔ°ú, ´ç½ÅÀÌ »ç¿ëÇÏ´Â GNU C ¶óÀ̺귯¸® ¹öÀü, ±×¸®°í ´ç½ÅÀÌ »ý°¢ÇÏ´Â ¹®Á¦´Â ¹«¾ùÀÎÁö, Å×½ºÆ® ÇÁ·Î±×·¥À» ÅëÇØ¼ ´ç½ÅÀÌ ¿¹»óÇß´ø °á°ú¿Í, ±×¸®°í ´ç½ÅÀÌ ¾ò¾ú ´ø °á°ú¸¦ Å×½ºÆ® ÇÁ·Î±×·¥°ú ÇÔ²² º¸³»¶ó. ¶ÇÇÑ `configure'¸¦ ½ÇÇàÇÔÀ¸·Î½á ¸¸µé¾îÁö´Â `config.status'¿Í `config.make' ÆÄÀϵ鵵 °°ÀÌ º¸³»¶ó; ±×µéÀº ´ç½ÅÀÌ ÇöÀç ¹«½¼ µð·ºÅ丮¿¡¼ `configure'¸¦ ½ÇÇà½ÃÄ×´ÂÁö¿¡ ´ëÇÑ °ÍÀÌ´Ù.
¸¸ÀÏ ´ç½ÅÀÌ ANSI ¿Í POSIX Ç¥Áصé (1.2Àý [Standards and Portability] 1 ÆäÀÌÁö ÂüÁ¶.)À» µû¸£Áö ¾Ê´Â GNU C ¶óÀ̺귯¸®¿¡ ÀÖ´Â ¾î¶² °ÍÀ» ¹ß°ßÇß´Ù¸é, ±×°ÍÀº ¸íÈ®È÷ ¹ö±×ÀÌ´Ù. ±×°ÍÀ» º¸°íÇ϶ó! ¹ö±× º¸°í¼¸¦ º¸³¾ ÀÎÅÍ³Ý ÁÖ¼Ò´Â `bug-glibc@prep.ai.mit.edu' ¶Ç´Â UUCP °æ·Î `mit-eddie!prep.ai.mit.edu!bug-glibc'ÀÌ´Ù. ¸¸ÀÏ ´ç½ÅÀÌ ÀνºÅç°úÁ¤À̳ª »ç¿ëÇϴµ¥ ´Ù¸¥ ¹®Á¦µéÀ» ¹ß°ßÇÏ°Ô µÈ´Ù¸é, ±×°Í ¶ÇÇÑ º¸°íÇ϶ó.
¸¸ÀÏ ´ç½ÅÀÌ ¾î¶² ÇÔ¼ö°¡ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö È®½ÇÈ÷ ¾Ë ¼ö ¾ø°í, ÀÌ ¸Å´º¾óÀÌ ±×°Í¿¡ ´ëÇØ¼ ¸»ÇÏ Áö ¾Ê´Â´Ù¸é ÀÌ ¸Å´º¾ó¿¡ ¹®Á¦°¡ ÀÖ´Â °ÍÀÌ´Ù. ±×°Í ¶ÇÇÑ º¸°íÇ϶ó! ¸¸ÀÏ ÇÔ¼öÀÇ µ¿ÀÛÀÌ ¸Å´º¾ó°ú ´Ù¸£´Ù¸é, ¶óÀ̺귯¸®³ª ¸Å´º¾óÁß¿¡ Çϳª°¡ ¹®Á¦°¡ Àִ°ÍÀ̹ǷΠ±×°ÍÀ» º¸°íÇ϶ó. ¸¸ÀÏ ´ç½ÅÀÌ ¸Å ´º¾ó¿¡¼ À߸øµÈÁ¡À̳ª »ý·«µÈ °ÍÀ» ¹ß°ßÇß´Ù¸é, ´ÙÀ½ ÀÎÅͳÝÁÖ¼Ò·Î ±×µéÀ» º¸°íÇØ´Þ¶ó.
`bug-glibc-manual@prep.ai.mit.edu' or UUCP °æ·Î `mit-eddie!prep.ai.mit.edu!bug-glibc-manual'.
C.3 »õ·Î¿î ÇÔ¼öµéÀ» ´õÇϱâ.
¶óÀ̺귯¸®¸¦ ¼³Ä¡ÇÏ´Â(build) ÇÁ·Î¼¼½º´Â GNU makeÀÇ Æ¯º°ÇÑ ±â´ÉµéÀ» ¾î·Æ°Ô »ç¿ëÇØ¼ ¸¸µå´Â ¸ÞÀÌÅ©ÆÄÀϵé(makefiles)¿¡ ÀÇÇØ Á¶Á¾µÈ´Ù. ¸ÞÀÌÅ©ÆÄÀϵéÀº ¸Þ¿ì º¹ÀâÇϰí, ´ç½ÅÀº ¾Æ¸¶µµ ±×°ÍÀ» ÀÌ ÇØÇÏ·Á ½ÃµµÇϱ⸦ ¿øÇÏÁö ¾ÊÀ»°ÍÀÌ´Ù. ±×·¯³ª ±×µéÀÌ ÇÏ´ÂÀÏÀº ±²ÀåÈ÷ °£´ÜÇÑ °ÍÀ¸·Î, ´ç½ÅÀÌ ¿Ã¹Ù ¸¥ À§Ä¡¿¡ Á¤ÀÇÇÑ ¸î °³ÀÇ º¯¼öµé¸¸À» ¿ä±¸ÇÑ´Ù.
¶óÀ̺귯¸® ¼Ò½º´Â ÁÖÁ¦(topic)¿¡ µû¶ó¼, ¼ºêµð·ºÅ丮·Î ³ª´©¾î¼ ¹¿©Á® ÀÖ´Ù. `string' ¼ºêµð ·ºÅ丮´Â ¸ðµç ¹®ÀÚ¿-ó¸® ÇÔ¼öµéÀ» °¡Áö°í ÀÖ°í, `stdio'´Â ¸ðµç Ç¥ÁØ I/O ÇÔ¼öµéÀ» °¡Áø´Ù.
°¢ ¼ºêµð·ºÅ丮´Â `Makefile'¶ó°í ºÒ¸®´Â °£´ÜÇÑ ¸ÞÀÌÅ©ÆÄÀÏÀ» °¡Áö°í Àִµ¥, ±× ÆÄÀÏÀº ¸î °³ÀÇ ¸ÞÀÌÅ© º¯¼öµéÀ» Á¤ÀÇÇϰí Àü¿ª ¸ÞÀÌÅ©ÆÄÀÏ `Rules'¸¦ ´ÙÀ½ ¶óÀΰú ÇÔ²² Æ÷ÇÔÇϰí ÀÖ´Ù.
include ../Rules
¼ºêµð·ºÅ丮 ¸ÞÀÌÅ©ÆÄÀÏÀ» Á¤ÀÇÇÏ´Â ±âº» º¯¼öµéÀº ´ÙÀ½°ú °°´Ù:
subdir
`stdio'¿Í °°Àº ¼ºêµð·ºÅ丮ÀÇ À̸§. ÀÌ º¯¼ö´Â ¹Ýµå½Ã Á¤ÀǵǾî¾ß¸¸ ÇÑ´Ù.
headers
`stdio.h'ó·³, ¶óÀ̺귯¸®ÀÇ ÇѺκÐÀ» ÀÌ·ç´Â Çì´õÆÄÀÏÀÇ À̸§.
routines
aux
¶óÀ̺귯¸®ÀÇ ÇÑ ºÎºÐÀ» ÀÌ·ç´Â ¸ðµâµéÀÇ À̸§(¼Ò½º ÆÄÀϵé) ±×µéÀº `strlen'°ú °°Àº °£´ÜÇÑ À̸§ÀÌ ´Ù ( `strlen.c'¿Í °°Àº ÆÄÀÏ À̸§º¸´Ù´Â °£´ÜÇÏ´Ù´Â ¸»). ¶óÀ̺귯¸®¾È¿¡ ÇÔ¼ö¸¦ Á¤ÀÇÇÏ´Â ¸ðµâµéÀ» À§Çؼ routines¸¦ »ç¿ëÇϰí, µ¥ÀÌÅÍ Á¤ÀÇ¿Í °°Àº °ÍµéÀ» Æ÷ÇÔÇϰí ÀÖ´Â º¸Á¶ ¸ðµâµéÀ» À§Çؼ´Â aux¸¦ »ç¿ëÇ϶ó. ±×·¯³ª routines ¿Í auxÀÇ °ªµéÀº ´ÜÁö ¿¬°áµÈ°ÍÀ̰í, ½ÇÁ¦·Î ¾Æ¹«·± ½ÇÁ¦ÀûÀÎ Â÷ ÀÌ´Â ¾ø´Ù.
tests
¶óÀ̺귯¸®¸¦ ±¸¼ºÇϰí ÀÖ´Â Å×½ºÆ® ÇÁ·Î±×·¥ÀÇ À̸§. ±×µéÀº `tester'°ú °°Àº °£´ÜÇÑ À̸§ÀÌ´Ù ( `tester.c'¿Í °°Àº ¿ÏÀüÇÑ ÆÄÀÏ À̸§º¸´Ù´Â ª´Ù´Â ¸».) `make tests'´Â Å×½ºÆ® ÇÁ·Î±×·¥À» ¼³Ä¡ÇÏ°í ½ÇÇàÇÒ °ÍÀÌ´Ù. ¸¸ÀÏ ÀÔ·ÂÀ» ÇÊ¿ä·Î ÇÏ´Â Å×½ºÆ® ÇÁ·Î±×·¥À̶ó¸é, `test-program.input' À̶ó ºÒ¸®´Â ÆÄÀϾȿ¡ Å×½ºÆ® Å×ÀÌŸ¸¦ ÀÔ·ÂÇ϶ó; ±×°ÍÀº Ç¥ÁØ ÀԷ»󿡼 Å×½ºÆ® ÇÁ·Î±×·¥À¸·Î ÀÔ·ÂµÉ °ÍÀÌ´Ù. ¸¸ÀÏ Å×½ºÆ® ÇÁ·Î±×·¥¿¡ Àμö¸¦ ³Ö¾î¼ ½ÇÇàÇÏ±æ ¿øÇÑ´Ù¸é, `test-program.args'¶ó°í ºÒ¸®´Â ÆÄÀÏ¾È ¿¡ Àμöµé(´ÜÀÏÇÑ ¶óÀÎÀ¸·Î)À» ³Ö¾î¶ó.
others
¶óÀ̺귯¸®¸¦ ±¸¼ººÎºÐ°ú ¿¬°üµÈ "others" ÇÁ·Î±×·¥µéÀÇ À̸§µéÀÌ´Ù. ±×µéÀº se¿¡ ´ëÇÏ¿© Å×½ºÆ®°¡ ¾ø´Â ÇÁ·Î±×·¥µéÀÌÁö¸¸, ¶óÀ̺귯¸®¿Í ÇÔ²² Æ÷ÇÔµÈ ÀÛÀº ÇÁ·Î±×·¥À» ¸»ÇÑ´Ù. ±×µéÀº `make others' ¿¡ ÀÇÇØ¼ ¸¸µé¾îÁø´Ù.
install-lib
install-data
install
`make install'¿¡ ÀÇÇØ ÀνºÅçµÇ´Â ÆÄÀϵé. `install-lib' ¾È¿¡ ¸ñ·ÏÀÌ ÀÖ´Â ÆÄÀϵéÀº `configparms' ¶Ç´Â `Makeconfig' (C.1Àý [Installation] 469 ÆäÀÌÁö ÂüÁ¶.) ¾È¿¡ `libdir'¿¡ ÀÇÇØ Á¤ÇØÁø µð·ºÅ丮¾È¿¡ ÀνºÅçµÈ´Ù. install-data ¾È¿¡ ¸ñ·ÏÀÌ ÀÖ´Â ÆÄÀϵéÀº `configparms' ¶Ç´Â `Makeconfig' ¿¡ ÀÖ´Â `datadir'¿¡ ÀÇÇØ Á¤ÇØÁø µð·ºÅ丮¾È¿¡ ÀνºÅçµÈ´Ù. install¾È¿¡ ¸ñ·ÏÀÌ ÀÖ´Â ÆÄÀϵéÀº `configparms' ¶Ç´Â `Makeconfig' ¾È¿¡ ÀÖ´Â `bindir' ¿¡ ÀÇÇØ¼ Á¤ÇØÁø µð·ºÅ丮¾È¿¡ ÀνºÅçµÈ´Ù.
distribute
°áÁ¡ÀÌ ÀÖ´Â ÆÄÀϾȿ¡ ³Ö°ÔµÉ ¼ºêµð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀϵé. ´ç½ÅÀº ¸ÞÀÌÅ©ÆÄÀÏ ÀÚü³ª ¼Ò½º ±×¸®°í ´Ù¸¥ Ç¥ÁØ º¯¼öµé·Î µî·ÏµÈ Çì´õÆÄÀϵéÀº À̰÷¿¡ ³ÖÀ» ¼ö ¾ø´Ù. ¿ÀÁ÷ ºñÁ¤»óÀûÀÎ ¹æ¹ýÀ¸·Î »ç¿ëµÇ ´Â ÆÄÀϵ鸸 À̰÷¿¡ Á¤ÀǵȴÙ.
generated
ÀÌ ¼ºêµð·ºÅ丮¾È¿¡¼ `Makefile'¿¡ ÀÇÇØ ¹ß»ýµÇ´Â ÆÄÀϵé. ±× ÆÄÀϵéÀº `make clean'¿¡ ÀÇÇØ¼ Á¦ °ÅµÇ°í, ±×µéÀº °áÄÚ ºñÁ¤»óÀûÀÎ ÆÄÀϾȿ¡ µé¾î°¥ ¼ö ¾ø´Ù.
extra-objs
ÀÌ ¼ºêµð·ºÅ丮 ¾È¿¡¼ `Makefile'¿¡ ÀÇÇØ¼ ¸¸µé¾îÁö´Â ¿©ºÐÀÇ ¿ÀºêÁ§Æ® ÆÄÀϵé. À̰ÍÀº `foo.o'¿Í °°Àº ÆÄÀÏÀ̸§ÀÇ ¸®½ºÆ®°¡ µÉ °ÍÀÌ´Ù; ±× ÆÄÀϵéÀº ¿ÀºêÁ§Æ® ÆÄÀϵéÀÌ ¸¸µé¾îÁø µð·ºÅ丮 ¾î´À°÷¿¡ ¼³ª ¹ß°ßµÉ °ÍÀÌ´Ù. ±× ÆÄÀϵéÀº `make clean' ¿¡ ÀÇÇØ¼ Á¦°ÅµÉ °ÍÀÌ´Ù. ÀÌ º¯¼ö´Â others ³ª tests ¸¦ ¸¸µé±â À§Çؼ ÇÊ¿äÇÑ ºÎÂ÷ÀûÀÎ ¿ÀºêÁ§Æ® ÆÄÀϵéÀ» À§Çؼ »ç¿ëµÈ´Ù.
C.4 GNU C Library Æ÷ÆÃÇϱâ
GNU C ¶óÀ̺귯¸®´Â ´Ù¾çÇÑ ±â°èµé°ú ¿î¿µÃ¼Á¦µé¿¡ ½±°Ô ÀÌ½ÄµÉ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁ³´Ù. ±â°è¿Í ¿î¿µÃ¼Á¦¿¡ ÀÇÁ¸ÀûÀÎ ÇÔ¼öµéÀº »õ·Î¿î ±â°è³ª ¿î¿µÃ¼Á¦¸¦ À§Çؼ ±â´ÉÀ» ´õÇϱ⠽±°Ô ¸¸µéµµ·Ï Àß ºÐ¸®µÇ¾ú´Ù. ÀÌ ÀýÀº ¶óÀ̺귯¸® ¼Ò½º Æ®¸®(tree)ÀÇ ¹èÄ¡¸¦ ¼³¸íÇÏ°í ±â°è ÀÇÁ¸ÀûÀÎ Äڵ带 ¼±ÅÃÇÏ ±â À§Çؼ »ç¿ëµÇ´Â ¸ÞÄ«´ÏÁò¿¡ ´ëÇØ¼ ¼³¸íÇϰí ÀÖ´Ù.
¶óÀ̺귯¸®¾È¿¡ ÀÖ´Â ¸ðµç ±â°è-¿Í ¿î¿µÃ¼Á¦-ÀÇÁ¸ÀûÀÎ ÆÄÀϵéÀº ÃÖ°í-´Ü°èÀÇ ¶óÀ̺귯¸® ¼Ò½º µð ·ºÅ丮¹Ø¿¡ `sysdeps'¶ó´Â ¼ºêµð·ºÅ丮¿¡ ÀÖ´Ù. ÀÌ µð·ºÅ丮´Â °èÃþÀûÀÎ ¼ºêµð·ºÅ丮µé·Î ±¸¼ºµÇ ¾î ÀÖ´Ù. (C.4.1Àý [Hierarchy Conventions] 454 ÆäÀÌÁö ÂüÁ¶.)
`sysdeps'ÀÇ °¢ ¼ºêµð·ºÅ丮´Â ƯÁ¤ÇÑ ±â°è³ª ¿î¿µÃ¼Á¦, ¶Ç´Â ±â°è³ª ¿î¿µÃ¼Á¦ÀÇ ºÎ·ù(¿¹¸¦µé¾î, ƯÁ¤ÇÑ °ø±ÞÀÚ¿¡ ÀÇÇÑ ½Ã½ºÅÛÀ̳ª, IEEE 754 ÇÃ·ÎÆÃ-Æ÷ÀÎÆ® Çü½ÄÀ» »ç¿ëÇÏ´Â ¸ðµç ±â°èµé)¸¦ À§ÇÑ ¼Ò½º ÆÄÀϵéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù. ±¸¼ºµµ´Â ±× ¼ºêµð·ºÅçµéÀÇ ¼ø¼ ¸®½ºÆ®¸¦ Á¤ÇÑ´Ù. °¢ ¼ºêµð·ºÅä ¸®µéÀº ¸®½ºÆ®¿¡¼ ºÎ¸ð µð·ºÅ丮 ¹Ø¿¡ ºÙ¿©Áø´Ù. ¿¹¸¦µé¾î, `unix/bsd/vax'¶ó°í Á¤ÇØÁø ¸®½ºÆ®´Â `unix/bsd/vax unix/bsd unix' ¸®½ºÆ®¿Í µ¿ÀÏÇÏ´Ù.
¼ºêµð·ºÅ丮´Â µð·ºÅ丮 °èÃþµµ¿¡¼ Á÷Á¢ÀûÀ¸·Î À§¿¡ ¾ø´Â ´Ù¸¥ ¼ºêµð·ºÅ丮µéÀ» ³»Æ÷Çϵµ·Ï Á¤ÇÒ ¼ö ÀÖ´Ù. ¸¸ÀÏ `Implies'ÆÄÀÏÀÌ ¼ºêµð·ºÅ丮 ¾È¿¡ Á¸ÀçÇÑ´Ù¸é, `sysdeps'ÀÇ ´Ù¸¥ ¼ºêµð·ºÅ丮 µéÀÇ ¸®½ºÆ®µéÀº `Implies' ÆÄÀÏÀÌ Æ÷ÇÔµÈ ¼ºêµð·ºÅ丮ÀÇ ¸®½ºÆ®¸¦ ¸¸µçÈÄ¿¡, ±× ¸®½ºÆ®¿¡ µ¡ºÙÀÎ ´Ù. `#' ¹®ÀÚ·Î ½ÃÀÛÇÏ´Â `Implies'ÆÄÀϾȿ¡ ¹®ÀÚ´Â ÁÖ¼®¹®À¸·Î ¹«½ÃµÈ´Ù. ¿¹¸¦µé¾î, `unix/bsd/Implies' ´Â ´ÙÀ½À» Æ÷ÇÔÇÑ´Ù:
# BSD has Internet-related things.
unix/inet
±×¸®°í `unix/Implies'´Â ´ÙÀ½À» Æ÷ÇÔÇÑ´Ù:
posix
±×·¡¼ ÃÖÁ¾ÀûÀÎ ¸®½ºÆ®´Â `unix/bsd/vax unix/bsd unix/inet unix posix'°¡ µÈ´Ù.
`sysdeps'´Â µÎ °³ÀÇ "Ưº°ÇÑ" ¼ºêµð·ºÅ丮¸¦ °¡Áö´Âµ¥, ±×°ÍÀº `generic' °ú `stub'ÀÌ´Ù. ±× µÎ °³´Â ¼ºêµð·ºÅ丮µéÀÇ ¸®½ºÆ®¿¡ Ç×»ó ¸íÈ®È÷ µ¡ºÙ¿©Áö¹Ç·Î, ´ç½ÅÀÌ `Implies' ÆÄÀϾȿ¡ ±×µéÀ» ³ÖÀ» Çʿ䰡 ¾ø°í, ´ç½ÅÀÌ ±× µð·ºÅ丮 ¹Ø¿¡ ´Ù¸¥ ¼ºêµð·ºÅ丮¸¦ ¸¸µé¾î¼´Â ¾ÈµÈ´Ù. `generic'Àº ´Ù¸¥ C ¶óÀ̺귯¸®¿¡ ÀÖ´Â ±â°è-µ¶¸³ ÇÔ¼öµéÀ» »ç¿ëÇÏ¿©, ±â°è-µ¶¸³ C¿¡¼ ±¸ÇöµÉ ¼ö ÀÖ´Â °ÍµéÀ» À§ÇÑ °ÍÀÌ´Ù. `stub'´Â ƯÁ¤ÇÑ ±â°è³ª ¿î¿µÃ¼Á¦¿¡¼ ÀÌÇàµÉ ¼ö ¾ø´Â ÇÔ¼öµéÀÇ Å丷 ¹öÀüµéÀÌ´Ù. ±× Å丷 ÇÔ¼öµéÀº Ç×»ó ¿¡·¯¸¦ ¸®ÅÏÇϰí, errno¸¦ ENOSYS·Î ¼³Á¤ÇÑ´Ù(ÇÔ¼ö°¡ ÀÌÇàµÇÁö ¾Ê´Â´Ù.). 2Àå [Error Reporting] 11 ÆäÀÌÁö ÂüÁ¶.
¼Ò½º ÆÄÀÏÀº `generic'³ª `stub'¿¡ ¼Ò½º ÆÄÀÏÀÇ °³Á¤ÆÇ(version)À» °¡ÁüÀ¸·Î½á ½Ã½ºÅÛ-µ¶¸³ÀûÀÌ µÇµµ ·Ï ¾Ë·ÁÁø´Ù; ¸ðµç ½Ã½ºÅÛ-µ¶¸³ ÇÔ¼ö´Â genericÀ̳ª stubÀÇ ±â´ÉÁß Çϳª¸¦ °¡Á®¾ß ÇÑ´Ù ( ±× µÑÀ» ¸ðµÎ °¡Á®µµ ¾Æ¹«·± ¹®Á¦°¡ ¾ø´Ù.)
¸¸ÀÏ ´ç½ÅÀÌ ¸ÞÀÎ ¼Ò½º µð·ºÅ丮(main source directories)µéÁßÀÇ Çϳª¿¡ ÀÖ´Â ¾î¶² ÆÄÀÏ¿¡ ´ëÇØ¼, ±×°ÍÀ» ±â°è- ¶Ç´Â ¿î¿µÃ¼Á¦-µ¶¸³ÀûÀ¸·Î ¸¸µé±â¸¦ ¿øÇÑ´Ù¸é, ±× ÆÄÀÏÀ» `sysdeps/generic'À¸·Î ¿Å±â °í Àû´çÇÑ ½Ã½ºÅÛ-ÁöÁ¤ ¼ºêµð·ºÅ丮¿¡ ÀÖ´Â »õ·Î¿î ÇÔ¼ö¸¦ »ç¿ëÇØ¼ ÆÄÀÏÀ» ¼öÁ¤Ç϶ó. ¸¸ÀÏ ¾î¶² ÆÄÀÏÀÌ ½Ã½ºÅÜ-µ¶¸³ÀûÀÌ µÇ¾ú´Ù¸é ±×°ÍÀ» ±â·ÏÇØ¼, ±×°ÍÀÌ ¸ÞÀÎ ¼Ò½º µð·ºÅ丮µéÁßÀÇ ¾î¶²°Í¿¡µµ ³ªÅ¸³ª¼´Â ¾ÈµÈ´Ù.
´ÙÀ½Àº `sysdeps'ÀÇ °¢ ¼ºêµð·ºÅ丮¿¡ Á¸ÀçÇÒ ¼ö ÀÖ´Â ¸î °³ÀÇ Æ¯º°ÇÑ ÆÄÀϵéÀÌ´Ù.
`Makefile'
±â°è³ª ¿î¿µÃ¼Á¦, ¶Ç´Â ±â°è³ª ¿î¿µÃ¼Á¦ÀÇ ºÎ·ù¸¦ À§ÇÑ ¸ÞÀÌÅ©ÆÄÀÏ. ÀÌ ÆÄÀÏÀº ÃÖ°í´Ü°è¿¡ ÀÖ´Â ¸Þ ÀÌÅ©ÆÄÀϰú ¼ºêµð·ºÅ丮¿¡ ÀÖ´Â ¸ÞÀÌÅ©ÆÄÀϵ鿡 ÀÇÇØ¼ »ç¿ëµÇ´Â ¶óÀ̺귯¸® ¸ÞÀÌÅ©ÆÄÀÏ `Makerules'¿¡ ÀÇÇØ¼ ÀÎŬ·çµåµÈ´Ù. Æ÷ÇÔµÈ ¸ÞÀÌÅ© ÆÄÀÏÀÇ º¯¼ö ¼³Á¤À» º¯°æÇϰųª »õ·Î¿î ±ÔÄ¢ À» ´õÇÒ ¼ö ÀÖ´Ù. ¶óÀ̺귯¸®ÀÇ ´Ù¸¥ ºÎºÐÀ» À§Çؼ º¯¼öµé°ú ±ÔÄ¢µéÀÇ ´Ù¸¥ ¼³Á¤À» ¼±ÅÃÇÏ·Á¸é (À§¸¦ º¸¶ó) º¯¼ö `subdir'¿¡ ±âÃÊÇÑ Á¶°ÇÀûÀÎ Áö½Ã·Î GNU make¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×°ÍÀº ¶ÇÇÑ ¶óÀÌºê ·¯¸®¿¡ Æ÷Ç﵃ ¿©ºÐÀÇ ¸ðµâµéÀ» Á¤Çϱâ À§Çؼ make º¯¼ö `sysdep-routines'¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ´ç ½ÅÀº `routines'ÀÌ ¸ÞÀÎ ¼Ò½º Æ®¸®(main source tree) °¢ ¼ºêµð·ºÅ丮¿¡ ¹«¾ùÀ» °ø±ÞÇÒ °ÍÀÎÁö¸¦ °á Á¤Çϴµ¥ »ç¿ëµÇ±â ¶§¹®¿¡ `routines'¿¡ ¸ðµâµéÀ» ´õÇϱ⠺¸´Ù´Â `sysdep-routines'¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù.
ã±â ½±µµ·Ï ¼ºêµð·ºÅ丮µéÀ» ¼ø¼´ë·Î ¸®½ºÆ®¸¦ ¸¸µç ¼ºêµð·ºÅ丮¾ÈÀÇ °¢ ¸ÞÀÌÅ©ÆÄÀÏÀº ¼ø¼´ë ·Î ÀÎŬ·çµåµÈ´Ù. ¿©·¯ ½Ã½ºÅÛ-ÀÇÁ¸ ¸ÞÀÌÅ©ÆÄÀϵéÀÌ ÀÎŬ·çµåµÇ¸é, °¢°¢Àº ±×°ÍÀ» °£´ÜÈ÷ ¼³Á¤Çϱ⠺¸´Ù´Â `sysdep-routines'¿¡ µ¡ºÙ¿© Áú °ÍÀÌ´Ù:
sysdep-routines := $(sysdep-routines) foobar
`Subdirs'
ÀÌ ÆÄÀÏÀº ÀÌ ½Ã½ºÅÛÀ» À§ÇØ ÀÎŬ·çµåµÇ¾îÁú ÃÖ°í-´Ü°èÀÇ ¶óÀ̺귯¸® ¼Ò½º Æ®¸®¹Ø¿¡ ÀÖ´Â ÀüüÀÇ ¼ºêµð·ºÅ丮µé¿¡ ¿¡ ´ëÇÑ À̸§µéÀ» °®°í ÀÖ´Ù. ±× ¼ºêµð·ºÅ丮µéÀº `stdio' ¿Í `math'ó·³, ¶óÀÌºê ·¯¸® ¼Ò½º Æ®¸®¾È¿¡ ÀÖ´Â ½Ã½ºÅÛ-µ¶¸³ ¼ºêµð·ºÅ丮µéó·³ Ãë±ÞµÈ´Ù.
`sysdeps' µµ±¸µéÀÇ ÀÌ ¼ºêµð·ºÅ丮 ½Ã½ºÅÛÀ» À§ÇÑ ¶óÀ̺귯¸®¾È¿¡ ³ÖÀ» ÇÔ¼öµé°ú Çì´õÆÄÀϵéÀ» ¿Ï ÀüÈ÷ »õ·Ó°Ô ¼³Á¤ÇϰíÀÚ ÇÒ ¶§ À̰ÍÀ» »ç¿ëÇ϶ó. ¿¹¸¦µé¾î, `sysdeps/unix/inet/Subdirs'´Â `inet'¸¦ Æ÷ÇÔÇÑ´Ù; `inet' µð·ºÅ丮´Â ÀÎÅͳÝÀ» Áö¿øÇÏ´Â ½Ã½ºÅÛ»ó¿¡¼ ¶óÀ̺귯¸®¿¡ ³ÖÀ»¸¸ÇÑ ´Ù¾çÇÑ ³×Æ®¿÷ -ÁöÇâ ¸í·ÉµéÀ» Æ÷ÇÔÇÑ´Ù.
`Dist'
ÀÌ ÆÄÀÏÀº distribution ¾È¿¡ Æ÷Ç﵃ ÆÄÀϵé( ±×°ÍÀÌ ÀÖ´Â `sysdeps'ÀÇ ¼ºêµð·ºÅ丮¿¡ °üÇÑ)ÀÇ À̸§ À» Æ÷ÇÔÇÑ´Ù. °°Àº µð·ºÅ丮ÀÇ `Makefile'¿¡ ÀÖ´Â ±ÔÄ¢µé¿¡ ÀÇÇØ ¾²¿©Áö´Â »õ·Î¿î ÆÄÀϵéÀ̳ª, ¶Ç´Â ±× µð·ºÅ丮ÀÇ ¼Ò½º ÆÄÀϵ鿡 ÀÇÇØ¼ »ç¿ëµÇ´Â Çì´õÆÄÀϵ鿡 ´ëÇÑ ¸ñ·ÏÀÌ´Ù. ´ç½ÅÀº ¸ÞÀÎ ¼Ò½º Æ® ¸®¿¡ ÀÖ´Â ±â°è-µ¶¸³ ¸ÞÀÌÅ©ÆÄÀϵ鿡¼ À̸§ÀÌ ºÎ¿©µÈ routinesÀÇ ±¸ÇöÀÎ ÆÄÀϵéÀ» ¸ñ·ÏÈÇÒ Çʿ䰡 ¾ø´Ù.
`configure'
ÀÌ ÆÄÀÏÀº ±¸¼º½Ã(configuration time)¿¡ ½ÇÇàµÇ´Â ½© ½ºÅ©¸³Æ® ºÎ¼ÓÀÌ´Ù. `configure' ½ºÅ©¸³Æ®´Â ¼ø ¼´ë·Î, ¼±ÅÃµÈ °¢ ½Ã½ºÅÛ-ÀÇÁ¸ µð·ºÅ丮¿¡¼ `configure' ÆÄÀÏÀ» Àбâ À§Çؼ shell . command¸¦ »ç ¿ëÇÑ´Ù. `configure' ÆÄÀϵéÀº Autoconf¸¦ »ç¿ëÇÏ´Â ÆÄÀϵé `configure.in'·ÎºÎÅÍ ¹ß»ýµÈ´Ù.
½Ã½ºÅÛ-ÀÇÁ¸Àû `configure' ½ºÅ©¸³Æ®´Â ½© º¯¼ö `DEFS'¿Í `config_vars'¿¡ ´õÇÒ °ÍÀÌ´Ù; ÀÚ¼¼ÇÑ °ÍÀº ÃÖ°í-¼öÁØ `configure' ½ºÅ©¸³Æ®¸¦ ÂüÁ¶Ç϶ó. ±× ½ºÅ©¸³Æ®´Â ÃÖ°í-¼öÁØ `configure'¿¡ ³ÖÀ» `--with-package' ¿É¼ÇµéÀ» À§Çؼ üũ ÇÒ ¼ö ÀÖ´Ù. `--with-package=value' ¿É¼Ç¿¡¼, `configure' ´Â °ªÀ¸·Î ½© º¯¼ö `with_package'(package¾ÈÀÇ ´ë½¬´Â ¾ð´õ½ºÄÚ¾î·Î º¯È¯µÈ´Ù)¸¦ ¼³Á¤ÇÑ´Ù; ¸¸ÀÏ ¿É¼ÇÀÌ ´ÜÁö `--with-package'·Î µÇ¾îÀÖ´Ù¸é(Àμö°¡ ¾øÀÌ), ±×°ÍÀº `yes'·Î `with_package'¸¦ ¼³Á¤ÇÑ ´Ù.
`configure.in'
ÀÌ ÆÄÀÏÀº ¼ºêµð·ºÅ丮ÀÇ `configure'ÆÄÀϾȿ¡¼ 󸮵DZâ À§ÇÑ Autoconf ÀÔ·Â ºÎºÐÀÌ´Ù. Autoconf¾È¿¡ ÀÖ´Â "Introduction"À» ÂüÁ¶Ç϶ó: AutoconfÀÇ ¸í¼¼´Â Generating Automatic Configuration Scripts. ´ç½ÅÀº `configure' ¶Ç´Â `configure.in'À» »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, ±× µÑÀ» ÇÔ²² »ç ¿ëÇØ¼´Â ¾ÈµÈ´Ù. `configure.in'ÀÇ Ã¹ ¹øÂ° ÁÙÀº m4 macroÀÎ `GLIBC_PROVIDES'¸¦ È£ÃâÇÏ¿©¾ßÇÑ ´Ù. ÀÌ ¸ÅÅ©·Î´Â ÃÖ°í-¼öÁØ `configure' ½ºÅ©¸³Æ®¿¡¼ »ç¿ëµÇ´Â Autoconf ¸ÅÅ©·Îµå¸¦ À§Çؼ ¿©·¯ `AC_PROVIDE'¸¦ È£ÃâÇÑ´Ù; À̰ÍÀÌ ¾øÀÌ´Â, ±× ¸ÅÅ©·ÎµéÀº Autoconf¿¡ ÀÇÇØ¼ ¾µ¸ð¾øÀÌ ´Ù½Ã È£Ãâ µÉ °ÍÀÌ´Ù.
±×°ÍÀº ¾î¶»°Ô ½Ã½ºÅÛ-ÀÇÁ¸ÀûÀÎ °ÍµéÀ» °í¸³½Ãų°ÍÀÎÁö¿¡ ´ëÇÑ ÀϹÝÀûÀÎ ½Ã½ºÅÛÀÌ´Ù. ´ÙÀ½ÀýÀº `sysdeps'¿¡ ¹«½¼ µð·ºÅ丮¸¦ »ç¿ëÇÒ°ÍÀÎÁö¸¦ ¾î¶»°Ô °áÁ¤ÇÏ´ÂÁö ¼³¸íÇÑ´Ù. ´Ù¾çÇÑ À¯´Ð½º ½Ã½ºÅÛ ¿¡ µû¶ó¼ ¶óÀ̺귯¸®¸¦ Æ÷ÆÃ(porting)ÇÏ´Â ÆÁ¿¡ ´ëÇÑ Á¤º¸´Â C.4.2Àý [Porting to Unix] 456 ÆäÀÌÁö ¸¦ ÂüÁ¶Ç϶ó.
C.4.1 `sysdeps' µð·ºÅ丮 °èÃþÀÇ ¹èÄ¡
GNU ±¸¼º À̸§Àº ¼¼ºÎºÐÀ¸·Î µÇ¾îÀÖ´Ù: CPU ŸÀÔ, Á¦ÀÛÀÚÀÇ À̸§, ±×¸®°í ¿î¿µÃ¼Á¦. `configure' ´Â ½Ã½ºÅÛ-ÀÇÁ¸ µð·ºÅ丮µéÀÇ ¸®½ºÆ®¸¦ °í¸£±â À§Çؼ ±×µéÀ» »ìÆìº¸´Âµ¥ »ç¿ëÇÑ´Ù. ¸¸ÀÏ `--nfp' ¿É¼ÇÀÌ `configure'¿¡ ÁÖ¾îÁöÁö ¾Ê¾Ò´Ù¸é, `machine/fpu' µð·ºÅ丮°¡ ¶ÇÇÑ »ç¿ëµÈ´Ù.
¿î¿µÃ¼Á¦´Â ±âº» ¿î¿µ üÁ¦¸¦ °®´Â´Ù; ¿¹¸¦µé¸é ¸¸ÀÏ ¿î¿µÃ¼Á¦°¡ `sunos4.1' À̶ó¸é, ±âº» ¿î¿µÃ¼Á¦ ´Â `unix/bsd'°¡ µÈ´Ù. µð·ºÅ丮ÀÇ ¸®½ºÆ®¸¦ °í¸£´Âµ¥ »ç¿ëµÇ´Â ¾Ë°í¸®ÁòÀº °£´ÜÇÏ´Ù: `configure'´Â ±âº» ¿î¿µÃ¼Á¦, Á¦ÀÛÀÚ, CPU ±×¸®°í ¿î¿µÃ¼Á¦ÀÇ ¸®½ºÆ®¸¦ ¼ø¼´ë·Î ¸¸µç´Ù. ±×°ÍÀº µð·ºÅ丮 À̸§ À» ¸¸µé¾î¼, ¼·Î ½½·¡½¬·Î ±¸ºÐµÇ¾î ¿¬°áµÇ¾î ÀÖ´Ù: ¿¹¸¦µé¸é, `sparc-sun-sunos4.1'Àº `unix/bsd/sun/sparc/sunos4.1'¿¡ ÀÖ´Ù. `configure' ´Â ¸®½ºÆ®ÀÇ °¢ ¿ä¼Ò¸¦ Á¦°ÅÇÏ·Á ½ÃµµÇϴµ¥, `unix/bsd/sparc' ¿Í `sun/sparc' ¶ÇÇÑ ´Ù¸¥ °Í »çÀÌ¿¡¼, ½ÃµµµÈ´Ù. ¿î¿µÃ¼Á¦ÀÇ Á¤¹ÐÇÑ ¹öÀü ¹øÈ£´Â ±×´ÙÁö Áß¿äÇÏÁö ¾Ê°í, ±×°ÍÀº ¸Å¿ì ºÒÆíÇÏ´Ù. ¿¹¸¦µé¾î, `sunos4.1.1'¿Í `sunos4.1.2' µð·ºÅ丮¸¦ ±¸ºÐ ÇÏ´Â °ÍÀº ºÒÆíÇϱ⠶§¹®¿¡ `configure'´Â Á¡(period)À¸·Î ½ÃÀ۵Ǵ Á¢¹Ì»ç¸¦ Á¦°ÅÇÔÀ¸·Î½á ´ú °áÁ¤ ÀûÀÎ ¿î¿µ ½Ã½ºÅÛ À̸§µéÀ» ½ÃµµÇÑ´Ù.
¿¹¸¦µé¾î, `sparc-sun-sunos4.1' ±¸¼ºÀ» À§Çؼ ½ÃµµµÆ´ø µð·ºÅ丮µéÀÇ ¿ÏÀüÇÑ ¸®½ºÆ®°¡ ÀÖ´Ù.
sparc/fpu
unix/bsd/sun/sunos4.1/sparc
unix/bsd/sun/sunos4.1
unix/bsd/sun/sunos4/sparc
unix/bsd/sun/sunos4
unix/bsd/sun/sunos/sparc
unix/bsd/sun/sunos
unix/bsd/sun/sparc
unix/bsd/sun
unix/bsd/sunos4.1/sparc
unix/bsd/sunos4.1
unix/bsd/sunos4/sparc
unix/bsd/sunos4
unix/bsd/sunos/sparc
unix/bsd/sunos
unix/bsd/sparc
unix/bsd
unix/sun/sunos4.1/sparc
unix/sun/sunos4.1
unix/sun/sunos4/sparc
unix/sun/sunos4
unix/sun/sunos/sparc
unix/sun/sunos
unix/sun/sparc
unix/sun
unix/sunos4.1/sparc
unix/sunos4.1
unix/sunos4/sparc
unix/sunos4
unix/sunos/sparc
unix/sunos
unix/sparc
unix
sun/sunos4.1/sparc
sun/sunos4.1
sun/sunos4/sparc
sun/sunos4
sun/sunos/sparc
sun/sunos
sun/sparc
sun
sunos4.1/sparc
sunos4.1
sunos4/sparc
sunos4
sunos/sparc
sunos
sparc
´Ù¸¥ ±â°è ±¸Á¶µéÀº °ü½ÀÀûÀ¸·Î `sysdeps' µð·ºÅ丮 Æ®¸®ÀÇ ÃÖ°í¼öÁØ¿¡ Á¸ÀçÇÑ´Ù. ¿¹¸¦µé¾î, `sysdeps/sparc'¿Í `sysdeps/m68k'. ±×µéÀº ±â°è ±¸Á¶¿¡ ´ëÇÑ ÆÄÀÏ ¸í¼¼¸¦ Æ÷ÇÔÇÏÁö¸¸, ¾î´À ƯÁ¤ ¿î¿µÃ¼Á¦¿¡ ´ëÇÑ ¸í¼¼´Â ¾Æ´Ï´Ù. `sysdeps/m68k/s8020' ó·³, ±× ±¸Á¶µéÀÇ ÇÑÁ¤À» À§ÇÑ ¼ºêµð·ºÅä ¸®µéÀÌ µÉ °ÍÀÌ´Ù. Ưº°ÇÑ ±â°è¿¡¼ »ç¿ëµÇ´Â ÇÃ·ÎÆÃ-Æ÷ÀÎÆ® ÄÚÇÁ·Î¼¼¼¿¡ ´ëÇÑ ¸í¼¼ ÄÚµå´Â `sysdeps/machin/fpu'¿¡ µé¾î°¡¾ßÇÑ´Ù.
´ÙÀ½Àº ƯÁ¤ÇÑ ±â°è ±¸¼ºµéÀ» À§ÇÑ °ÍÀÌ ¾Æ´Ñ `sysdeps' °èÃþÀÇ ÃÖ°í´Ü°è¿¡ ÀÖ´Â ¸î °³ÀÇ µð·ºÅ丮 ¿¡ °üÇÑ °ÍÀÌ´Ù.
`generic'
`stub'
À§¿¡ ¼³¸íµÈ°Íó·³ (C.4Àý [Proting] 452 ÆäÀÌÁö ÂüÁ¶.), ¸ðµç ±¸¼ºµéÀÌ ´Ù¸¥°Íµé ÈÄ¿¡ »ç¿ëÇÏ´Â µÎ °³ÀÇ ¼ºêµð·ºÅ丮µéÀÌ ÀÖ´Ù.
`ieee754'
À̰ÍÀº C ŸÀÔ float°¡ IEEE 754 ´ÜÁ¤µµ Çü½Ä°ú, double°¡ IEEE 754 ¹èÁ¤µµ Çü½ÄÀΰ÷¿¡¼, »ç¿ëµÇ´Â IEEE 754 ÇÃ·ÎÆÃ-Æ÷ÀÎÆ® Çü½Ä Äڵ带 À§ÇÑ µð·ºÅ丮ÀÌ´Ù. º¸Åë ÀÌ µð·ºÅ丮´Â `m68k/Implies'¿Í °° Àº, ±â°è ±¸Á¶-¸í¼¼ µð·ºÅ丮¿¡ÀÖ´Â `Implies'ÆÄÀÏ¿¡¼ ÂüÁ¶µÈ´Ù.
`posix'
ÀÌ µð·ºÅ丮´Â POSIX.1 ÇÔ¼öµéÀ» À§Çؼ ¶óÀ̺귯¸®¸¦ ±¸ÇöÇØ³õÀº°ÍµéÀ» Æ÷ÇÔÇÑ´Ù. À̰ÍÀº POSIX.1 ÇÔ¼öµé Áß ¾î¶² °ÍÀ» Æ÷ÇÔÇÑ´Ù. ¹°·Ð, POSIX.1Àº ±× ÀÚü¸¸À¸·Î ¿ÏÀüÈ÷ ±¸ÇöµÉ ¼ö ¾ø±â ¶§¹®¿¡, ´Ü Áö `poisx'¸¦ »ç¿ëÇÏ´Â ±¸¼ºÀº ¿ÏÀüÇÒ ¼ö ¾ø´Ù.
`unix'
À̰ÍÀº Unix¿Í °°Àº°ÍµéÀ» À§ÇÑ µð·ºÅ丮ÀÌ´Ù. C.4.2Àý [Porting to Unix] 456 ÆäÀÌÁö ÂüÁ¶. `unix' ´Â `posix'¸¦ ³»Æ÷ÇÑ´Ù. ´ÙÀ½Àº `unix'ÀÇ Æ¯º°ÇÑ-¸ñÀûÀ» À§ÇÑ ¼ºêµð·ºÅ丮ÀÌ´Ù.
`unix/common'
ÀÌ µð·ºÅ丮´Â BSD¿Í ½Ã½ºÅÛ V ¸±¸®Áî 4 ÀÌ µÑÀÇ commonÀ» À§ÇÑ °ÍÀÌ´Ù. `unix/bsd'¿Í `unix/sysv/sysv4' µÑÀº `unix/common'À» ³»Æ÷ÇÑ´Ù.
`unix/inet'
ÀÌ µð·ºÅ丮´Â ¼ÒÄϰú Unix ½Ã½ºÅÛ»óÀÇ ÇØ´ç ÇÔ¼öµéÀ» À§ÇÑ °ÍÀÌ´Ù. `inet' ÃÖ°í ´Ü°è ¼ºêµð·ºÅ丮 ´Â `unix/inet/Subdirs'¿¡ ÀÇÇØ °¡´ÉÇØÁø´Ù. `unix/common'Àº `unix/inet'¸¦ ³»Æ÷ÇÑ´Ù.
`mach'
À̰ÍÀº CMU·ÎºÎÅÍ(GNU ¿î¿µÃ¼Á¦°¡ Æ÷ÇÔµÈ) ¸¶ÇÏ(Mach) ¸¶ÀÌÅ©·ÎÄ¿³Î¿¡ ±âÃÊÇѰ͵éÀ» À§ÇÑ µð·º Å丮ÀÌ´Ù. ´Ù¸¥ ±âº»¿î¿µ½Ã½ºÅÛµé(¿¹¸¦µé¾î, VMS)Àº `sysdeps' °èÃþÀÇ ÃÖ°í ´Ü°è¿¡ ÀÖ´Â, `unix'¿Í `mach'¿Í À¯»çÇÑ, ±×µé ÀڽŸ¸ÀÇ µð·ºÅ丮µéÀ» °¡Áö°í ÀÖ´Ù.
C.4.2 GNU C ¶óÀ̺귯¸®¸¦ Unix ½Ã½ºÅÛµé·Î Æ÷ÆÃÇϱâ.
´ëºÎºÐÀÇ Unix ½Ã½ºÅÛµéÀº ±âº»ÀûÀ¸·Î ¸Å¿ì À¯»çÇÏ´Ù. Ä¿³Î¿¡ Á¦°øµÇ´Â ±â´Éµé°ú ¿©·¯ ±â°èµé »ç ÀÌ¿¡ Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù. ÇÏÁö¸¸ ¿î¿µÃ¼Á¦¿ÍÀÇ ÀÎÅÍ ÆäÀ̽º´Â ´ëºÎºÐ¿¡¼, ´ÜÀÏÇÏ°í °£´ÜÇÏ´Ù.
Unix ½Ã½ºÅÛµéÀ» À§ÇÑ ÄÚµå´Â `sysdeps' °èÃþÀÇ ÃÖ°í´Ü°è¿¡ ÀÖ´Â `unix' µð·ºÅ丮¿¡ ÀÖ´Ù. ÀÌ µð ·ºÅ丮´Â ´Ù¾çÇÑ Unix º¯ÇüÀ» À§ÇÑ ¼ºêµð·ºÅ丮 (±×¸®°í ¼ºêµð·ºÅ丮 Æ®¸®)µéÀ» Æ÷ÇÔÇÑ´Ù.
´ëºÎºÐ Unix ½Ã½ºÅÛ¿¡¼ ½Ã½ºÅÛ È£Ãâ ÇÔ¼öµéÀº `sysdeps/unix'¾È¿¡ ÀÖ´Â ÆÄÀϵ鿡 ¾î¼Àºí¸® ÄÚµå·Î ±¸ÇöµÇ¾î ÀÖ´Ù. ±× ÆÄÀϵéÀº `.S'ÀÇ Á¢¹Ì»ç·Î ³¡³ª´Â À̸§À» °¡Áö°í ÀÖ´Ù; ¿¹¸¦µé¸é, `__open.S'. `.S'·Î À̸§ÀÌ ³¡³ª´Â ÆÄÀϵéÀº ¾î¼Àºí·¯¿¡°Ô ÁÖ¾îÁö±â Àü¿¡ C ÇÁ¸®ÇÁ·Î¼¼¼¸¦ ÅëÇØ¼ ½ÇÇàµÈ´Ù.
±× ÆÄÀϵéÀº ¸ðµÎ `sysdep.h'¿¡ Á¤ÀÇµÈ ¸ÅÅ©·ÎµéÀÇ ¼³Á¤À» »ç¿ëÇÑ´Ù. `sysdeps/unix'¿¡ ÀÖ´Â `sysdep.h' ÆÄÀÏÀº Ưº°ÇÏ°Ô ±×µéÀ» Á¤ÀÇÇÑ´Ù; ´Ù¸¥ µð·ºÅ丮¾È¿¡ ÀÖ´Â `sysdep.h'ÆÄÀÏÀº ƯÁ¤ÇÑ ±â °è¿Í ¿î¿µÃ¼Á¦ÀÇ º¯ÇüÀ» À§Çؼ ±×µéÀ» Á¤ÀÇÇÏ´Â °ÍÀ» ³¡³»¾ß¸¸ ÇÑ´Ù. ¹«½¼ ¸ÅÅ©·ÎµéÀÌ ÀÖ°í ±×µé ÀÌ ¹«¾ùÀ» ÇÏ´ÂÁö ¾Ë±â À§Çؼ´Â `sysdeps/unix/sysdep.h'¿Í ±â°è-¸í¼¼ `sysdep.h' ¸¦ ÂüÁ¶Ç϶ó.
`unix' µð·ºÅ丮¸¦ À§ÇÑ ½Ã½ºÅÛ-¸í¼¼ ¸ÞÀÌÅ©ÆÄÀÏÀº (±×°ÍÀº, ÆÄÀÏ `sysdeps/unix/Makefile') ´ç½ÅÀÌ ¶óÀ̺귯¸®¸¦ ¸¸µé¾ú´ø (¶Ç´Â, ´ç½ÅÀÌ ¶óÀ̺귯¸®¸¦ ¸¸µé ¸ñÇ¥ ½Ã½ºÅÛÀ¸·Î °¡Á¤Ç϶ó.) Unix ½Ã½ºÅÛÀ¸ ·ÎºÎÅÍ ¿©·¯ ÆÄÀϵéÀ» ¹ß»ý½Ã۱â À§ÇѱÔÄ¢µéÀ» ºÎ¿©ÇÑ´Ù.
¸ðµç ¹ß»ýµÈ ÆÄÀϵéÀº ¿ÀºêÁ§Æ® ÆÄÀϵéÀÌ °ü¸®µÇ°í ÀÖ´Â µð·ºÅ丮¾È¿¡ µé¾î °£´Ù; ±×µéÀÚü´Â ¼Ò½º Æ®¸®¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê¾Æ¾ßÇÑ´Ù. ¹ß»ýµÈ ÆÄÀϵéÀº `icctl.h', `errnos.h', `sys/param.h' ±×¸®°í `errlist.c'ÀÌ´Ù ( ¶óÀ̺귯¸®¿¡ ÀÖ´Â `stdio' ºÎºÐÀ» À§ÇÑ).
C.5 GNU C ¶óÀ̺귯¸®ÀÇ °øÇåÀÚ.
GNU C ¶óÀ̺귯¸®´Â Áö±Ý ±×°ÍÀ» À¯Áöº¸¼öÇϰí ÀÖ´Â Roland McGrath¿¡ ÀÇÇØ °ÅÀÇ ¸¸µé¾îÁ³´Ù. ¶óÀ̺귯¸®ÀÇ ¾î¶² ºÎºÐÀº ´Ù¸¥ »ç¶÷µé¿¡ ÀÇÇØ¼ ÀÛ¾÷µÇ¾ú°Å³ª °øÇåÇѹ٠ÀÖ´Ù.
o getopt ÇÔ¼ö¿Í ±×¿Í ¿¬°üµÈ ÄÚµå´Â Richard Stallman, David J. MacKenzie, ±×¸®°í Roland McGrath¿¡ ÀÇÇØ ¸¸µé¾îÁ³´Ù.
o ´ëºÎºÐÀÇ ¼öÇÐÇÔ¼öµéÀº 4.4 BSD·ÎºÎÅÍ µû¿Â °ÍÀÌ´Ù; ±×µéÀº GNU C ¶óÀ̺귯¸®·Î ÀÛ¾÷Çϱâ À§ÇØ ¼ ¿ÏÀüÈ÷ °»½ÅµÇ¾ú´Ù. ÀÎÅͳÝ-°ü·Ã ÄÚµå ( ´ëºÎºÐ `inet' ¼ºêµð·ºÅ丮¿¡ ÀÖ´Â)¿Í ¿©·¯ ´Ù¸¥ Àâ´ÙÇÑ ÇÔ¼öµé°ú Çì´õÆÄÀÏÀº Á¶±Ý ¶Ç´Â °»½Å¾øÀÌ Æ÷ÇԵǾú´Ù.
4.4 BSD ·ÎºÎÅÍ ÇÕº´µÈ ¸ðµç ÄÚµåµéÀº ´ÙÀ½°ú °°Àº ÀúÀÛ±ÇÇÏ¿¡ ÀÖ´Ù.
Copyright Oc 1991 Regents of the University of California All rights reserved.
°»½ÅÀ» Çϰųª, ¶Ç´Â ÇÏÁö ¾Ê°í ¼Ò½º¿Í ¹ÙÀ̳ʸ® ÆÄÀϵéÀ» »ç¿ëÇϰí Àç¹èÆ÷ÇÏ´Â °ÍÀº, ´ÙÀ½°ú °°Àº »óȲÇÏ¿¡¼ °ø±ÞµÊÀÌ Çã°¡µÈ´Ù.
1. ¼Ò½ºÄÚµåÀÇ Àç¹èÆ÷´Â À§ÀÇ ÀúÀÛ±Ç, Á¶°ÇÀÇ ¸ñ·Ï°ú ´ÙÀ½ÀÇ °ÅºÎ °æ¿ì¸¦ ¼÷ÁöÇØ¾ß¸¸ ÇÑ´Ù.
2. ¹ÙÀ̳ʸ® Çü½Ä ÆÄÀÏÀÇ Àç¹èÆ÷´Â ¿ø·¡ °ø±ÞµÈ °Íµé°ú and/or ½ÃŲ ¹®¼¸¦ ÅëÇØ¼ À§ÀÇ ÀúÀÛ±Ç, Á¶ °ÇÀÇ ¸ñ·Ï°ú °ÅºÎÀÇ °æ¿ì¸¦ ´Ù½Ã ¸¸µé¾î¾ß¸¸ ÇÑ´Ù.
3. ¾ð±ÞµÇ´Â ±â´ÉµéÀ̳ª ÀÌ ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇÏ¿© ±¤°íµÇ´Â °Í¿¡´Â ´ÙÀ½À» Ç¥½ÃÇØ¾ß¸¸ ÇÑ´Ù. ÀÌ »ê ¹°Àº ͏®Æ÷´Ï¾Æ ´ëÇÐÀÇ, Berkeley¿Í ±× °øÇåÀڵ鿡 ÀÇÇØ¼ °³¹ßµÈ¼ÒÇÁÆ®¿þ¾î¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù.
4. ´ëÇÐÀÇ À̸§À̳ª °øÇåÀÚÀÇ À̸§Àº »ç¿ë ±ÇÇÑ¿¡ ¿ì¼±ÇÏ¿© ÀÌ ¼ÒÇÁÆ®¿þ¾î·ÎºÎÅÍ ¸¸µé¾îÁø »ê¹°À» ÈÄ¿øÇÏ°í µÞ¹ÞħÇϱâ À§Çؼ »ç¿ëµÉ °ÍÀÌ´Ù.
ÀÌ ¼ÒÇÁÆ®¿þ¾î´Â "as is"ÀÎ ÇùÀÇȸ³ª °øÇåÀڵ鿡 °ø±ÞµÇ°í ¾Æ¹«·± Á¦ÇÑÀº ¾øÁö¸¸, »ó¾÷ÀûÀ¸·Î »ç¿ëµÇ ´Â°Í¿¡ ´ëÇÑ °æ°í¿Í ƯÁ¤ÇÑ ¸ñÀû¿¡ ¸ÂÃß¾î ÁÙ ¼ö ¾øÀ½ µî¿¡ ´ëÇÑ °æ°íµéÀ» Æ÷ÇÔÇϰųª Ç¥½ÃµÇ¾î °ø ±ÞµÈ´Ù. ÇùÀÇȸ³ª °øÇåÀÚµéÀÌ ¾î¶°ÇÑ ¼ÕÇØµµ º¸»óÇÒ Ã¥ÀÓÀº ¾ø´Ù. ±×¸®°í±×¿Í °°Àº ¼ÕÇØÀÇ °¡´É¼º ¿¡ ´ëÇØ¼ Á¶¾ðÀ» ÇßÀ»Áö¶óµµ, ÀÌ ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇÒ¶§´Â ¾ËÁö¸øÇÏ´Â ¼ÕÇØ¸¦ ÀÔÀ» °¡´É¼ºÀ» Æ÷ÇÔ Çϰí ÀÖ´Ù.
o ·£´ý ¼ö¸¦ ¹ß»ý½ÃŰ´Â random, srandom, ststate, ±×¸®°í initstate ÇÔ¼ö´Â rand ¿Í srand¸¦ ±âÃÊ·Î ÇÏ¿©, ͏®Æ÷À̳ª¿¡ ÀÖ´Â ¹öŬ¸® ´ëÇÐÀÇ Earl T. Cohen¿¡ ÀÇÇØ ¸¸µé¾îÁ³°í, ͏®Æ÷´Ï¾Æ ´ëÇÐÀÇ ÇùÀÇȸ (regents)°¡ ÀúÀÛ±ÇÀ» °®°í ÀÖ´Ù. ±×µéÀº GNU C ¶óÀ̺귯¸®¿Í ANSI C Ç¥Áذú ¸ÂÃß±â À§Çؼ ÀÛÀº º¯È°¡ ÀÖ¾úÁö¸¸, ±× ÇÔ¼öÀûÀÎ ÄÚµå´Â ¹öŬ¸®¿¡ ÀÖ´Ù.
o ÇÕº´ Á¤·Ä ÇÔ¼ö qsort´Â Michael J. Haertel¿¡ ÀÇÇØ ¸¸µé¾îÁ³´Ù.
o qosrt ÇÔ¼ö¿¡ ´ëüµÇ´Â Äü Á¤·Ä ÇÔ¼ö´Â Douglas C. Schmidt¿¡ ÀÇÇØ ¸¸µé¾îÁ³´Ù.
o ¸Þ¸ð¸® ÇÒ´ç ÇÔ¼ö malloc, realloc ±×¸®°í free¿Í ±×¿¡ ÇØ´çµÇ´Â ÄÚµå´Â Michael J. Haertel¿¡ ÀÇÇØ ¸¸µé¾îÁ³´Ù.
o ¹®ÀÚ¿ ÇÔ¼öµéÀÇ ´ëºÎºÐÀ» ºü¸£°Ô ±¸ÇöÇÑ ÇÔ¼öµéÀº(memcpy, strlen, µî) Torbj"orn Granlund¿¡ ÀÇ ÇØ ¸¸µé¾îÁ³´Ù.
o ¸¶Çϸ¦ À§ÇØ Áö¿øÇÏ´Â ÄÚµåÁß¿¡ ¾î¶² °ÍÀº CMU¿¡ ÀÇÇÑ ¸¶ÇÏ 3.0À¸·ÎºÎÅÍ ¿Â°ÍÀ̰í, ´ÙÀ½°ú °°Àº ÀúÀÛ±ÇÇÏ¿¡ ÀÖ´Ù.
Mach Operatin System Copyright Oc 1991,19901989 Carnegie Mellon University All Right Reserved.
ÀÌ ¼ÒÇÁÆ®¿þ¾î¿Í ¹®¼µéÀ» »ç¿ëÇϰí, º¹»çÇϰí, °»½ÅÇÏ°í °ø±ÞÇϱâ À§ÇÑ ±ÇÇÑÀº ±×µéÀÇ ÀÏºÎ¶óµµ ¹ö ÀüÀ» °»½ÅÇϰųª, ÀÛ¾÷À» ÆÄ»ý½ÃŰ´Â °æ¿ì¶ó ÇÒÁö¶óµµ ¸ðµç º¹»ç¹°¿¡ ÀúÀ۱ǰú ±ÇÇÑ¿¡ ´ëÇÑ °íÁö°¡ ³ªÅ¸³ª¾ßÇϰí, ¶ÇÇÑ ÀúÀ۱ǰú ±ÇÇÑ °íÁö´Â Áö¿øµÇ´Â ¹®¼¿¡µµ ³ªÅ¸³ª¾ß ÇÑ´Ù.
carnegie mellonÀº "as is" »óȲÇÏ¿¡¼ ÀÌ ¼ÒÇÁÆ®¿þ¾îÀÇ ÀÚÀ¯·Î¿î »ç¿ëÀ» Çã¿ëÇϰí ÀÖ´Ù. carnegie mellonÀº ÀÌ ¼ÒÇÁÆ®¿þ¾îÀÇ »ç¿ëÀ¸·Î ÃÊ·¡µÇ´Â ¾î¶²ÇÑ ¼ÕÇØµµ Ã¥ÀÓÀ» ºÎÀÎÇÑ´Ù.
Carneige MellonÀº °³¼±µÈ°ÍÀ̳ª È®ÀåµÈ °ÍÀÌ ÀÖ´Ù¸é `Software.Distribution@CS.DMU.EDU' ¶Ç´Â
Software Distribution Coordiantor
School of Computer Science
Carnegie Mellon University
Pittsburgh PA 1521303890
À¸·Î º¸³»ÁÖ°í, ÀÌ º¯°æµÈ°Í¿¡ ´ëÇÑ ÀçºÐ¹è ±ÇÇÑÀ» Carneigie Mellon¿¡°Ô Çã°¡ÇÒ °ÍÀ» ¿äûÇÑ´Ù.
o `tar.h' Çì´õÆÄÀÏÀº David J. Mackenzie¿¡ ÀÇÇØ¼ ¸¸µé¾îÁ³´Ù.
o Ultrix 4¿¡¼ ½ÇÇàµÇ´Â MIPS DECStationÀ¸·Î Æ÷ÆÃÀº Brendan Kehoe ¿Í Ian Lance Taylor¿¡ ÀÇÇØ¼ °øÇåµÇ¾ú´Ù.
o DES ¾ÏÈ£È ÇÔ¼ö crypt¿Í ±×¿Í ¿¬°üµÈ ÇÔ¼öµéÀº Michael Glad¿¡ ÀÇÇØ¼ °øÇåµÇ¾ú´Ù.
o ¸î °³ÀÇ ÇÔ¼ö´Â Ian Lance Taylor¿¡ ÀÇÇØ¼ °øÇåµÇ¾ú´Ù.
o SunOs °øÀ¯ ¶óÀ̺귯¸®µéÀ» Áö¿øÇÏ´Â ÄÚµå´Â Tom Quinn¿¡ ÀÇÇØ¼ °øÇåµÇ¾ú´Ù.
o mktime ÇÔ¼ö´Â Noel Cragg¿¡ ÀÇÇØ¼ °øÇåµÇ¾ú´Ù.
o Dynin version 3¿¡¼ ½ÇÇàµÇ´Â Sequent Summetry·ÎÀÇ Æ÷ÆÃÀº Jason Merrill¿¡ ÀÇÇØ¼ °øÇåµÇ¾ú´Ù.
o timezone Áö¿ø ÄÚµå´Â Arthur David Olson¿¡ ÀÇÇÑ °ø°ø-µµ¸ÞÀΠŸÀÓÁÔ(timezone) À¸·ÎºÎÅÍ ¿Â °ÍÀÌ ´Ù.
o ÀÎÅÍ³Ý ÇØ°áÀÚ ÄÚµå(Internet resolver code)´Â À§¿Í °°Àº ¹öŬ¸® ÀúÀÛ±ÇÇÏ¿¡ ÀÖ´Â BIND 4.9.1¿¡¼ Á÷Á¢ ȹµæÇÑ °ÍÀÌ´Ù.
Portions Copyright Oc 1993 by Digital Equipment Corporation. ÀÌ ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇÏ°í º¹»çÇÏ °í °»½ÅÇÏ°í °ø±ÞÇϱâ À§ÇÑ ±ÇÇÑÀº Digital Equipment ȸ»çÀÇ À̸§ÀÌ ±¤°í³ª »ç¿ëÀÇ ¸ñÀûÀ¸·Î »ç¿ë µÇÁö¾Ê´Â°÷¿¡¼, À§ÀÇ ÀúÀ۱ǰú ±ÇÇÑ¿¡ ´ëÇÑ °øÁö°¡ ¸ðµç º¹Á¦¹°¿¡ ³ªÅ¸³´Ù¸é Á¦ÇѾøÀÌ »ç¿ëÇÒ °Í À» Çã°¡ÇÑ´Ù. digital equipment »ç´Â ÀÌ ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ ¸ðµç ±ÇÇÑÀ» Æ÷±â ÇÏ¿´´Ù. ±×¸®¹Ç·Î digital equipmint »ç°¡ ÀÌ ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇÔÀ¸·Î½á ¹ß»ýµÇ´Â ¼ÕÇØ¿¡ Ã¥ÀÓÁöÁö ¾Ê´Â´Ù.
o OSF/1 (alpha-dec-osf1)¿¡¼ ½ÇÇàµÇ´Â DEC Alpha·ÎÀÇ Æ÷ÆÃÀº Roland McGrath¿¡ ÀÇÇØ¼ ¸¸µé¾îÁ³ ´ø ¾î¶² Äڵ带 »ç¿ëÇØ¼, Brendan Kehoe¿¡ ÀÇÇØ¼ °øÇåµÇ¾ú´Ù.
o printf ¿Í friends ÇÔ¼ö¿¡ ÀÇÇØ¼ »ç¿ëµÇ´Â Çø®ÆÃ-Æ÷ÀÎÆ® Ãâ·Â ÇÔ¼ö´Â Roland McGrath ¿Í Torbj"orn Granlund¿¡ ÀÇÇØ¼ ¸¸µé¾îÁ³´Ù. ±× ÇÔ¼ö¿¡¼ »ç¿ëµÇ´Â ´Ù-Á¤µµ(multi-precion) Á¤¼ö ÇÔ¼öµé Àº Torbj"orn Granlund ¿¡ ÀÇÇØ¼ °øÇåµÈ, GNU MP·ÎºÎÅÍ È¹µæµÈ °ÍÀÌ´Ù.