Makefile
Àº ÄÄÆÄÀÏ °úÁ¤ÀÇ ¿¼è´Ù. °¡Àå °£´ÜÇÑ ÇüÅ·Πº¸¸é, MakefileÀº
ÆÐÅ°ÁöÀÇ ½ÇÇà °¡´ÉÇÑ ºÎºÐÀÎ "¹ÙÀ̳ʸ® ÆÄÀÏ"À» ÄÄÆÄÀÏÇϱâ À§ÇÑ ÇϳªÀÇ
½ºÅ©¸³Æ®´Ù. MakefileÀº ¼Ò½º ÆÄÀÏÀ» ¸ðµÎ ´Ù½Ã ÄÄÆÄÀÏÇÏÁö ¾Ê°í ¼ÒÇÁÆ®¿þ¾î
ÆÐÅ°Áö¸¦ °»½ÅÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÒ ¼öµµ ÀÖÁö¸¸, ±×°ÍÀº ¶Ç ´Ù¸¥ À̾߱â(ȤÀº
¶Ç ´Ù¸¥ ±Û)ÀÌ´Ù.
¾î´À ½ÃÁ¡¿¡ MakefileÀº cc
³ª gcc
¸¦ ½ÇÇà½ÃŲ´Ù.
cc
³ª gcc
´Â »ç½ÇÀº ¼ø¼¿¡ µû¶ó È£ÃâµÈ Àü󸮱â¿Í C(ȤÀº C++)
ÄÄÆÄÀÏ·¯, ¸µÄ¿ÀÇ ÁýÇÕÀÌ´Ù. ÀÌ °úÁ¤À» ÅëÇØ ¼Ò½º´Â ½ÇÁ¦·Î ½ÇÇà½Ãų ¼ö ÀÖ´Â
¹ÙÀ̳ʸ®·Î º¯È¯µÈ´Ù.
´ë°³ make ¶ó°í Ä¡±â¸¸ Çϸé make¸¦ ½ÃÀÛÇÒ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô Çϸé ÀϹÝÀûÀ¸·Î ¼³Ä¡ÇÏ·Á°í ÇÏ´Â ÆÐÅ°Áö¿¡ ÇÊ¿äÇÑ ¸ðµç ½ÇÇà ÆÄÀϵéÀ» ÄÄÆÄÀÏÇÑ´Ù. ÇÏÁö¸¸ make´Â ÆÄÀϵéÀ» Àû´çÇÑ µð·ºÅ͸®¿¡ ¼³Ä¡ÇѴٰųª (make install), ¹¬Àº object ÆÄÀÏÀ» »èÁ¦ÇÏ´Â µî(make clean), ´Ù¸¥ ÀÛ¾÷µéµµ ÇÒ ¼ö ÀÖ´Ù. make -n À̶ó°í Çϸé make¿¡ ÀÇÇØ ¼öÇàµÉ ¸ðµç ¸í·ÉµéÀ» ½ÇÇàÇÏÁö´Â ¾Ê°í º¸¿©Áֱ⸸ ÇϹǷΠÄÄÆÄÀÏ °úÁ¤À» ¹Ì¸® º¼ ¼ö ÀÖ´Ù.
ÀϹÝÀûÀÎ MakefileÀ» ¾²´Â °ÍÀº ¸Å¿ì °£´ÜÇÑ ¼ÒÇÁÆ®¿þ¾î »ÓÀÌ´Ù. Á»´õ º¹ÀâÇÑ
¼³Ä¡ °úÁ¤¿¡´Â ¶óÀ̺귯¸®¿Í include ÆÄÀϵéÀÇ À§Ä¡, °³º° ÄÄÇ»ÅÍÀÇ ÀÚ¿ø µî¿¡ µû¶ó
MakefileÀ» ¸ÂÃâ ÇÊ¿ä°¡ ÀÖ´Ù. ƯÈ÷ ÄÄÆÄÀÏ¿¡ X11
¶óÀ̺귯¸®°¡ ÇÊ¿äÇÒ
°æ¿ì°¡ ÀÌ¿¡ ÇØ´çµÈ´Ù. ÀÌ ÀÛ¾÷Àº Imake¿Í xmkmf°¡ ó¸®ÇÑ´Ù.
man ÆäÀÌÁö¿¡¼´Â Imakefile
Àº MakefileÀÇ "ÅÛÇø´"À̶ó ÇÏ°í ÀÖ´Ù.
imake À¯Æ¿¸®Æ¼´Â Imakefile·ÎºÎÅÍ ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ¸Â´Â MakefileÀ» ±¸¼ºÇÑ´Ù.
ÇÏÁö¸¸ ´ëºÎºÐÀÇ °æ¿ì ´ç½ÅÀº imake À¯Æ¿¸®Æ¼ÀÇ ÇÁ·±Æ® ¿£µå(front end)·Î¼
imake¸¦ ºÒ·¯³»´Â ½© ½ºÅ©¸³Æ®ÀÎ xmkmf¸¦ ¼öÇà½Ãų °ÍÀÌ´Ù.
±¸Ã¼ÀûÀÎ Áö½Ã´Â ¼ÒÇÁÆ®¿þ¾î ÆÐÅ°Áö¿¡ µé¾îÀÖ´Â README³ª INSTALL ÆÄÀÏÀ»
Àо¾Æ¶ó. (Ȥ½Ã ¼Ò½º ÆÄÀϵéÀÇ ¾ÐÃàÀ» Ǭ ´ÙÀ½¿¡ ±âº» µð·ºÅ͸®¿¡ Imake
ÆÄÀÏÀÌ ÀÖ´Ù¸é, xmkmf¸¦ ¼öÇàÇ϶ó´Â ¾ê±â´Ù.)
ÀÌ °úÁ¤¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ ºÐ¼®Àº Imake
¿Í xmkmf
ÀÇ man ÆäÀÌÁö¸¦
Àо¾Æ¶ó.
xmkmf
¿Í make
´Â root°¡ ½ÇÇà½ÃÄÑ¾ß ÇÒ ¼öµµ ÀÖ´Ù´Â Á¡¿¡
À¯ÀÇÇ϶ó. ƯÈ÷ ¹ÙÀ̳ʸ® ÆÄÀϵéÀ» /usr/bin
À̳ª /usr/local/bin
µð·ºÅ͸®·Î ¿Å±â±â À§Çؼ make installÀ» ½ÇÇà½Ãų ¶§ ±×·¸´Ù.
rootÀÇ ±ÇÇÑÀÌ ¾ø´Â ÀÏ¹Ý »ç¿ëÀڷμ make¸¦ »ç¿ëÇϸé write access denied
¶ó´Â ¿¡·¯ ¸Þ½ÃÁö¸¦ º¸°Ô µÇ±â ½±´Ù. ½Ã½ºÅÛ µð·ºÅ͸®¿¡ ¾²±â Çã°¡±ÇÀ» °®°í ÀÖÁö
¾Ê±â ¶§¹®ÀÌ´Ù. ¸¸µé¾îÁø ¹ÙÀ̳ʸ® ÆÄÀϵéÀÌ ´ç½Å°ú ´Ù¸¥ ÀûÀýÇÑ »ç¿ëÀڵ鿡°Ô
ÀûÇÕÇÑ ½ÇÇà Çã°¡±ÇÀ» °®°í ÀÖ´ÂÁöµµ È®ÀÎÇØ¾ß ÇÑ´Ù.
xmkmf´Â ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ¸Â´Â »õ·Î¿î MakefileÀ» ¸¸µé±â À§Çؼ
Imake
ÆÄÀÏÀ» »ç¿ëÇÑ´Ù. º¸Åë xmkmf´Â -a ¿É¼Ç°ú
ÇÔ²² »ç¿ëÇÑ´Ù. make Makefiles, make includes, make depend ¸¦
ÀÚµ¿ÀûÀ¸·Î ½ÇÇàÇϱâ À§Çؼ´Ù. ÀÌ·¸°Ô Çϸé ÄÄÆÄÀÏ·¯¿Í ¸µÄ¿¸¦ À§ÇØ º¯¼öµéÀ»
¼³Á¤ÇÏ°í ¶óÀ̺귯¸®ÀÇ À§Ä¡¸¦ Á¤ÀÇÇÑ´Ù.
¶§·Î´Â Imake
ÆÄÀÏÀÌ ¾ø°í ´ë½Å °°Àº ¿ªÇÒÀ» ÇÏ´Â INSTALL
À̳ª
configure
¶ó´Â ½© ½ºÅ©¸³Æ®°¡ ÀÖÀ» ¼öµµ ÀÖ´Ù.
configure
¸¦ ½ÇÇà½ÃÅ°·Á¸é ./configure ¶ó°í ÇØ¾ß ÇÑ´Ù´Â Á¡¿¡
ÁÖÀÇÇØ¾ß ÇÑ´Ù. ÇöÀç µð·ºÅ͸®ÀÇ Á¤È®ÇÑ configure
½ºÅ©¸³Æ®¸¦
È£ÃâÇϱâ À§Çؼ´Ù. ´ëºÎºÐÀÇ °æ¿ì ¹èÆ÷º»ÀÇ README
ÆÄÀÏ¿¡ ¼³Ä¡ °úÁ¤¿¡
´ëÇÑ ¼³¸íÀÌ µé¾î ÀÖ´Ù.
º¸Åë xmkmf
³ª ¼³Ä¡ ½ºÅ©¸³Æ®°¡ ¸¸µé¾î³½ Makefile
¼ÓÀ» Á÷Á¢
»ìÆ캸´Â °ÍÀÌ ÁÁ´Ù. ´ë°³ MakefileÀº ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ÀûÇÕÇÏÁö¸¸, °æ¿ì¿¡
µû¶ó¼´Â MakefileÀ» º¯°æÇϰųª, ¿¡·¯¸¦ ¼ÕÀ¸·Î ¼öÁ¤ÇÒ ÇÊ¿ä°¡ ÀÖÀ» ¼öµµ ÀÖ´Ù.
´ë°³ ·çÆ®·Î¼ make installÀ» Çϸé, »õ·Î ¸¸µç ¹ÙÀ̳ʸ® ÆÄÀϵéÀ»
ÀûÀýÇÑ ½Ã½ºÅÛ µð·ºÅ͸®¿¡ ¼³Ä¡ÇÏ°Ô µÈ´Ù. ¿äÁòÀÇ ¸®´ª½º ¹èÆ÷º»ÀÇ °æ¿ì,
½Ã½ºÅÛ Àüü¿ëÀÇ ¹ÙÀ̳ʸ® ÆÄÀϵéÀº º¸Åë /usr/bin
,
/usr/X11R6/bin
, /usr/local/bin
¿¡ ¼³Ä¡µÈ´Ù.
¿ø·¡ ¼³Ä¡Çß´ø ¸®´ª½ºÀÇ ÀϺΰ¡ ¾Æ´Ï±â ¶§¹®¿¡ º°µµÀÇ ¹ÙÀ̳ʸ® ÆÄÀÏ·Î ³²°ÜµÎ±â
À§Çؼ »õ·Î¿î ÆÐÅ°Áö´Â /usr/local/bin
¿¡ ¼³Ä¡ÇÏ´Â °ÍÀÌ ÁÁ´Ù.
¿ø·¡ »ó¾÷¿ë UNIX¸¦ À§ÇØ ¸¸µé¾îÁø ÆÐÅ°Áö´Â /opt
³ª ±âŸ ³¸¼± µð·ºÅ͸®¿¡
¼³Ä¡µÇµµ·Ï µÇ¾î ÀÖÀ» ¼öµµ ÀÖ´Ù. ÀÌ °æ¿ì, ÁöÁ¤µÈ µð·ºÅ͸®°¡ ¾ø´Ù¸é,
´ç¿¬È÷ ¼³Ä¡ ¿¡·¯ ¸Þ½ÃÁö°¡ ³ª¿À°Ô µÈ´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ´Â °¡Àå °£´ÜÇÑ ¹æ¹ýÀº
root ·Î¼ /opt
µð·ºÅ͸®¸¦ ¸¸µé¾î¼ ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÏ°í, ÇØ´ç µð·ºÅ͸®¸¦
PATH
ȯ°æº¯¼ö¿¡ ³Ö´Â °ÍÀÌ´Ù.
¶Ç´Â /usr/local/bin
µð·ºÅ͸®·Î ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé ¼öµµ ÀÖ´Ù.
ÀϹÝÀûÀÎ ¼³Ä¡ ¼ø¼¸¦ Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°´Ù.
README
ÆÄÀÏ ¹× ±×¹ÛÀÇ °¡´ÉÇÑ ¹®¼¸¦ Àд´Ù.INSTALL
, configure
¸¦ ½ÇÇàÇÑ´Ù.Makefile
À» È®ÀÎÇÑ´Ù.
ÁÖÀÇÁ¡:
Makefile
¿¡ gcc
¸¦ À§ÇÑ ÃÖÀûÈ ¿É¼ÇÀ»
Ãß°¡ÇÏ°í ½ÍÀ» ¼öµµ ÀÖ´Ù. ÈçÇÑ ¿É¼ÇÀº -O2,
-fomit-frame-pointer, -funroll-loops, (ÆæƼ¾ö cpu¶ó¸é)
-mpentium µîÀÌ´Ù. MakefileÀ» º¯°æÇÒ ¶§¿¡´Â ÁÖÀÇÇØ¾ß ÇÑ´Ù.
/coll
°ú /pack
µð·ºÅ͸®¿¡
¼³Ä¡µÈ´Ù. ÀÌ ¹èÆ÷º»µéÀ» ¾²·Á¸é À§ÀÇ »çÀÌÆ®¿¡¼ Pack-Collection À»
´Ù¿î¹Þ¾Æ¾ß ÇÑ´Ù.