mate project manual ÀÔ´Ï´Ù. ¾ÕÀ¸·Î ¼öÁ¤ÀÌ ¸¹ÀÌ ÇÊ¿äÇÏ°Ú±º¿ä... ÀÏ´Ü ¿Ã·Áº¾´Ï´Ù. [[TableOfContents]] == ÇÁ·ÎÁ§Æ® ¼Ò°³ == === ¼Ò°³ === mate( http://mate.kldp.net ) ´Â make template ÀÇ ¾àÀÚÀÌ´Ù. µ¿·á, Ä£±¸¸¦ ¶æÇÏ´Â mate ¶Ç´Â ü½ºÀÇ mate ÀÏ ¼öµµ ÀÖ´Ù. makefile ÀÇ explicit dependency ¸¸À» (¹«½ÄÇÏ°Ô) »ç¿ëÇؼ­ °¢Á¾ ÄÄÆÄÀÏ·¯¿Í ¿î¿µÃ¼Á¦ µî¿¡¼­ ¼Õ½±°Ô ÇÁ·Î±×·¥À» ºôµåÇÏ°í Å×½ºÆ®ÇÒ ¼ö Àִ ȯ°æÀ» ±¸ÃàÇÏ´Â °ÍÀÌ ¸ñÇ¥ÀÌ´Ù. ±×¸®°í vim ¿¡µðÅÍ¿¡¼­ È°¿ë °¡´ÉÇÏ°í, vim °ü·Ã ÆÄÀÏÀ» Á¦°øÇÑ´Ù. === Çü½Ä === ÀÌ ÇÁ·ÎÁ§Æ®´Â °íÀ¯ÀÇ Æ¯º°ÇÑ °³¹ß ȯ°æÀ» Á¦°øÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ¹Ì¸® Á¤ÀÇµÈ ÅÛÇø´ make ÆÄÀÏ°ú ½Éº¼ µî¿¡ ±â¹ÝÇؼ­, makefile À» ÀÛ¼ºÇÏ¿©, makefileÀ» Ç÷¿Æû¿¡ µû¶ó º°µµ·Î ÀÛ¼ºÇÏÁö ¾Ê°í, ÇÊ¿äÇÑ °æ¿ì ÈÄ󸮵îÀ» ÅëÇØ makefile ÀÇ È£È¯¼ºÀ» À¯ÁöÇÏ´Â °ÍÀÌ´Ù. === ¸ñÇ¥ === ÀÌ ÇÁ·ÎÁ§Æ®´Â °³ÀÎ °³¹ß ȯ°æÀ» ±¸ÃàÇϱâ À§ÇØ ÂªÁö ¾ÊÀº ½Ã°£ µ¿¾È ½ÃÇà Âø¿À¸¦ °Þ¾î¿Â °ÍÀ¸·ÎºÎÅÍ °³¼±µÇ¾î¿Ô´Ù. ÀÌ ÇÁ·ÎÁ§Æ®´Â µÎ°¡Áö ±Ã±ØÀûÀÎ ¸ñÇ¥°¡ ÀÖ´Ù. * ¿ì¼± ÀÌ ÇÁ·Î±×·¥ ºôµå(build) ȯ°æÀº ÀÌ¹Ì °ø°³Ç߰ųª ( coral library project, http://coral.kldp.net ) °ø°³µÉ ÇÁ·ÎÁ§Æ®µé¿¡ °øÅëÀûÀ¸·Î »ç¿ëµÈ´Ù. * ¶ÇÇÑ ÇÁ·ÎÁ§Æ®¸¦ °ø°³ÇÔÀ¸·Î½á, °³ÀÎÀû °³¹ß ȯ°æÀ» Á» ´õ ¹ü¿ë¼ºÀ» ¶î ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. === Âü¿© === ÀÌ ÇÁ·ÎÁ§Æ®´Â ´Ù¼öÀÇ °³¹ßÀÚ°¡ Âü¿©Çؼ­ ±× È¿¿ë¼ºÀ» Æò°¡ÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù°í »ý°¢ÇÑ´Ù. °Ô´Ù°¡ ÀÌ ÇÁ·ÎÁ§Æ®´Â ¹«¾ð°¡ Ưº°ÇÑ °ÍÀ» ´Ù·ç´Â °Íµµ ¾Æ´Ï¹Ç·Î, Å©°Ô ³­À̵µ°¡ ÀÖ´Â °Íµµ ¾Æ´Ï´Ù. ¹Ì¸® ÀÛ¼ºµÈ makefile ÅÛÇø´, bash script, batch file, c·Î ÀÛ¼ºµÈ ¸î°¡Áö À¯Æ¿¸®Æ¼, unix, cygwin ¶Ç´Â ±×¿¡ »óÀÀÇÏ´Â ¸í·É¾î µîÀ» ÅëÇØ ºôµå ȯ°æÀÇ ÆíÀǸ¦ µµ¸ðÇÏ´Â °ÍÀÌ ÁÖ¿ä °ñÀÚ´Ù. ¼÷·ÃµÈ °³¹ßÀÚµéÀÎ °æ¿ì, Àڱ⠰íÀ¯ÀÇ °³¹ß ȯ°æÀ» °®Ãß°í ±× ¹æ½Ä´ë·Î ÀÏÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÏ °ÍÀ̹ǷÎ, ³ª´Â °³¹ß ȯ°æÀÌ Ã¼°èÈ­µÇÁö ¾ÊÀº ÃÊÁß±Þ °³¹ßÀÚ°¡ ÀÌ ÇÁ·ÎÁ§Æ®¿¡ °ü½ÉÀ» °¡Á³À¸¸é ÇÏ´Â ¹Ù·¥ÀÌ´Ù. ¹°·Ð ¼÷·ÃµÈ °³¹ßÀÚµéÀÇ Âü¿©´Â º¸´Ù ÁÁÀº °á°ú¸¦ ¾òÀ» ¼ö ÀÖµµ·Ï ÇÒ °ÍÀÌÁö¸¸, Çö½ÇÀûÀ¸·Î ±×·² °¡´É¼ºÀÌ ¾ø¾îº¸À̳׿ä... ¸¹Àº ÀÇ°ßÀÌ ¿À°í °¥¼ö·Ï º¸´Ù ¹ü¿ëÈ­ µÉ ¼ö ÀÖÀ» °ÍÀ¸·Î ±â´ëÇÑ´Ù. === ¹Ì·¡ === ÀÌ ÇÁ·ÎÁ§Æ®°¡ ¼º°ú¸¦ °ÅµÒÀ¸·Î½á, ÃÖ±Ù ±ä ½Ã°£ µ¿¾È ¼öÁ¤ »çÇ×ÀÌ Ä¿¹ÔµÇÁö ¾ÊÀº coral library project ( http://coral.kldp.net ) ·ÎºÎÅÍ, ¾ÆÁ÷ °ø°³µÇÁö ¾ÊÀº IMA project ¹× Orion project ( http://www.megapass.co.kr/~heesc22/orion/h_page.htm ) À» ¼øÂ÷ÀûÀ¸·Î °ø°³ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. == ºôµå ȯ°æ == === Áö¿øÇϴ ȯ°æ === ÇöÀç ´ÙÀ½°ú °°Àº ȯ°æ¿¡¼­ Å×½ºÆ®µÇ¾ú´Ù. ¿î¿µÃ¼Á¦ : unix, symbian, windows, wince, dos µî ÄÄÆÄÀÏ·¯ : gcc, vcc, bcc, java µî °¢ ȯ°æ¸¶´Ù Ư¼öÇÑ »óȲÀÌ ÀÖ°í, ¹ÌÁøÇÏ°Ô °³¹ßµÈ ºÎºÐÀÌ ÀÖÀ¸¸ç, ¼öÁ¤µÇ¸é¼­ Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾Ê°ÔµÇ´Â °æ¿ìµµ ÀÖ´Ù. °³ÀÎ ÇÊ¿ä¿¡ ÀÇÇØ »ç¿ëÇÒ ¶§¸¶´Ù ¼öÁ¤µÇ´Â °æÇâÀÌ ¿øÀÎÀε¥, ¾ÕÀ¸·Î °³¼±ÇØ°¡¾ß ÇÑ´Ù. === ÇÊ¿äÇÑ ¿ÜºÎ ¸í·É¾îµé === cygwin ÀÌ ¼³Ä¡µÅ ÀÖÀ¸¸é º°µµ ¼³Ä¡ÇÒ °ÍÀº ¾øÀ½. ´õ Á¤¸®°¡ ÇÊ¿äÇÔ. === °£´ÜÇÑ ¿¹Á¦ === ==== ¼Ò½º ÆÄÀÏ Çϳª·Î ½ÇÇà ÆÄÀÏ ÀÛ¼º ==== {{{ # ¼Ò½º ÆÄÀÏ°ú °æ·Î ÁöÁ¤ÇÑ´Ù. EX_SRC=intmax EX_SRCPATH=$(MK_DEVEL)/test # ÅÛÇø´À» »ç¿ëÇÑ´Ù. include $(MK_TEMPLATE_ROOT)/symbol.mk include $(MK_EXECUTE) # ±ú²ýÀÌ Çϱâ clean: make -f test.mk clean_execute }}} ==== º°µµÀÇ ¼Ò½º ÆÄÀÏ ÁöÁ¤ ( ¸í½ÃÀû ÀÇÁ¸¼º »ç¿ë ) ==== {{{ EX_SRC=intmax EX_SRCPATH=$(MK_DEVEL)/test EX_OBJ=$(MK_OUT)/func.$(OBJ_EXT) include $(MK_TEMPLATE_ROOT)/symbol.mk include $(MK_EXECUTE) # ÀÇÁ¸¼º Á¤ÀÇ $(MK_OUT)/func.$(OBJ_EXT) : $(MK_DEVEL)/test/func.c $(EX_CC) $(MK_DEVEL)/test/func.c clean: make -f test.mk clean_execute $(MK_RM) $(MK_OUT)/func.$(OBJ_EXT) }}} ==== °øÀ¯ ¶óÀ̺귯¸® ÀÛ¼º ==== {{{ SH_NAME=$(SH_SRC) SH_SRC=dltest SH_SRCPATH=$(MK_DEVEL)/test/coral include $(MK_TEMPLATE_ROOT)/symbol.mk include $(MK_SHARED) clean: make -f shared.mk clean_shared }}} === mate project SCM ¿¡ ¿Ã¶óÀÖ´Â ÇöÀç »óÅ·Π»ç¿ëÇϱâ À§ÇØ... === ¿ì¼± ÀÚ½ÅÀÇ È¯°æ¿¡ ¸ÂÁö ¾Ê´Â µîÀÇ ¹®Á¦·Î ¾Ö·Î »çÇ×ÀÌ ²É ÇÊ °ÍÀÌÁö¸¸, ÇöÀç »óÅ·εµ ¸î°¡Áö Á¦¾àÀ» ÁöŲ´Ù¸é »ç¿ëÀº °¡´ÉÇÏ´Ù. ¿©±â¼­ ±â¼úµÈ »çÇ× Áß ´©¶ôµÈ °ÍÀº º¸°­ÇØ¾ß ÇÒ °ÍÀÌ°í, ²É ÇÇ´Â ¾Ö·Î »çÇ×µéÀ» ÀáÀç¿ì±â À§ÇÑ ¹ü¿ëÈ­ ¹æ¾ÈÀÌ ÇÊ¿äÇÏ´Ù. ==== »ç¿ëÇÏ´Â 3´ë ȯ°æ º¯¼ö ==== µð·ºÅ丮 ±¸Á¶¸¦ Âü°íÇÏ¿© ´ÙÀ½ ȯ°æ º¯¼ö¸¦ ¼³Á¤ÇØ¾ß ÇÑ´Ù. * CORE : CORE °æ·Î¸¦ ÁöÁ¤ÇÑ´Ù. * EXTRA : EXTRA °æ·Î¸¦ ÁöÁ¤ÇÑ´Ù. * FILE : ÇÁ·Î±×·¥ ¼³Ä¡ °æ·Î¸¦ ÁöÁ¤ÇÑ´Ù. ==== µð·ºÅ丮 ±¸Á¶ ==== * $CORE/devel : ±âº» °³¹ß °æ·Î°¡ µÈ´Ù. * $CORE/devel/make : mate project ÀÇ make °æ·Î * $CORE/devel/etc : mate project ÀÇ etc °æ·Î * $CORE/devel/util : mate project ÀÇ util °æ·Î * $EXTRA/temp/volatile : temp ÆÄÀÏ °æ·Î * $EXTRA/devel/lib/(platform)/shared : °øÀ¯ ¶óÀ̺귯¸® Ãâ·Â °æ·Î. ¿¹¸¦ µé¾î, unix ÀÎ °æ¿ì $EXTRA/devel/lib/unix/shared * $EXTRA/devel/lib/(platform)/(compiler) : Á¤Àû ¶óÀ̺귯¸® Ãâ·Â °æ·Î. ¿¹¸¦ µé¾î, win32, vcc ÀÎ °æ¿ì $EXTRA/devel/lib/win32/vcc * $EXTRA/devel/out/(platform) : ½ÇÇà ÆÄÀÏ Ãâ·Â °æ·Î. ¿¹¸¦ µé¾î, win32 ÀÎ °æ¿ì $EXTRA/devel/out/win32 * $EXTRA/devel/out/(platform)/(compiler)/mode : ¸ñÀû ÆÄÀÏ Ãâ·Â °æ·Î. ¿¹¸¦ µé¾î, unix, gcc, debug ÀÎ °æ¿ì $EXTRA/devel/out/unix/gcc/d, release ÀÎ °æ¿ì $EXTRA/devel/out/unix/gcc/r * $FILE/devel/gcc : cygwin ¼³Ä¡ °æ·Î. ÇöÀç·Î´Â ¹Ýµå½Ã ¿©±â. * $FILE/devel/msdev : vc98 ¼³Ä¡ °æ·Î. ÇöÀç·Î´Â ¹Ýµå½Ã ¿©±â. * $FILE/devel/vs2005 : vs2005 ¼³Ä¡ °æ·Î. ÇöÀç·Î´Â ¹Ýµå½Ã ¿©±â. * $FILE/devel/cedev : ce °³¹ß ȯ°æ 4.0 ¼³Ä¡ °æ·Î. ÇöÀç·Î´Â ¹Ýµå½Ã ¿©±â. == vim °ú ¿¬µ¿ == vim ÀÇ »ç¿ëÀÚ ¸í·ÉÀ» ÅëÇØ ºôµåÇÏ°í, ¿À·ù¸¦ ¼öÁ¤ÇÏ°í, CVS ¸¦ ÅëÇÑ ¼Ò½º °ü¸® µîÀ» ÇÒ ¼ö ÀÖ´Ù. === Áغñ »çÇ× === * cygwin À» »ç¿ëÇÏ´Â °æ¿ì, /bin µð·ºÅ丮°¡ ¸¶¿îÆ® µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. === MAKE ¸í·É === * Çü½Ä : MAKE (parameters) name mode : ºôµåÇÒ ÇöÀç ÇÁ·ÎÁ§Æ® ¼³Á¤. ¿¹¸¦ µé¾î, µð¹ö±× ¸ðµå coral ÇÁ·ÎÁ§Æ®ÀÎ °æ¿ì, MAKE coral d * ÆĶó¹ÌÅÍ : ÆĶó¹ÌÅÍ´Â $MK_DEVEL/make/(name).mk ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê°Å³ª, name ¹× mode °¡ ÁÖ¾îÁöÁö ¾ÊÀº °æ¿ì¿¡¸¸ À¯È¿ÇÏ´Ù. * MK_MAKEPATH : ÇÁ·ÎÁ§Æ® ÆÄÀÏÀÌ Á¸ÀçÇÏ´Â °æ·Î¸¦ ÁöÁ¤ÇÑ´Ù. ´ë°³ MS Visual Studio ó·³ °íÀ¯ÇÑ ÇÁ·ÎÁ§Æ® ÆÄÀÏÀ» °®´Â °³¹ß ȯ°æÀÌ, ÇØ´ç ÆÄÀÏÀ» ÀÎÀÚ·Î ¸í·ÉÇà¿¡¼­ ºôµåÇÏ´Â ±â´ÉÀ» Á¦°øÇÏ´Â °æ¿ì »ç¿ëµÈ´Ù. * MK_NAME : MK_MAKEPATH ¿Í °áºÎµÇ¸ç, ÇÁ·ÎÁ§Æ® ÆÄÀÏÀÇ À̸§À» ÁöÁ¤ÇÑ´Ù. ÀÌ ÆĶó¹ÌÅÍ°¡ ÁöÁ¤µÇÁö ¾Ê´Â °æ¿ì MK_MAKEPATH ¿¡¼­ °æ·Î ºÐ¸®ÀÚ·Î ±¸ºÐµÇ´Â ÃÖÁ¾ ¿ä¼ÒÀÇ À̸§À» ±×´ë·Î »ç¿ëÇÑ´Ù. * MK_CONFIG : Ç÷¿ÆûÀ» ¼³Á¤ÇÑ´Ù. ÀÌ ÆĶó¹ÌÅÍ°¡ ÁÖ¾îÁöÁö ¾Ê´Â °æ¿ì, Ç÷¿Æû À̸§Àº generic À¸·Î °£ÁֵȴÙ. === ±âŸ »ç¿ëÀÚ ¸í·É === * MAKEFFILE : ÇöÀç ¼³Á¤µÈ ÇÁ·ÎÁ§Æ®ÀÇ makefile À» ¿¬´Ù. * MAKESRC : ÇöÀç ¼³Á¤µÈ ÇÁ·ÎÁ§Æ®ÀÇ ¼Ò½º ¼³Á¤ ÆÄÀÏÀ» ¿¬´Ù. * COMPILER name platform : ºôµå¿¡ »ç¿ëÇÒ ÄÄÆÄÀÏ·¯¸¦ ¼³Á¤ÇÑ´Ù. ¿¹¸¦ µé¾î, win32 ¿¡¼­ vcc ¸¦ »ç¿ëÇÒ °æ¿ì COMPILER vcc win32 * CVSIMPORT path : path À§Ä¡¸¦ cvs ·Î ÀÓÆ÷Æ®. path ´Â $MK_DEVEL ¿¡ ´ëÇÑ »ó´ë °æ·Î·Î ÁöÁ¤µÈ´Ù. MK_DEVEL Àº ±âº»ÀûÀ¸·Î $CORE/devel ·Î ¼³Á¤µÈ´Ù. * CVSEXPORT src dst : src À§Ä¡¸¦ dst ·Î ÀͽºÆ÷Æ® * CVSCHECKOUT name : name À» checkout. name ÀÌ »ý·«µÇ¸é, ÇöÀç ÆíÁý ÁßÀÎ ÆÄÀÏ Ã¼Å©¾Æ¿ô * CVSUPDATE name : name À» update. name ÀÌ »ý·«µÇ¸é, ÇöÀç ÆíÁýÁßÀÎ ÆÄÀÏ ¾÷µ¥ÀÌÆ® * CVSCOMMIT name : name À» Ä¿¹Ô. name ÀÌ »ý·«µÇ¸é, ÇöÀç ÆíÁý ÁßÀÎ ÆÄÀÏ Ä¿¹Ô * CVSADD name : name À» Ãß°¡. name ÀÌ »ý·«µÇ¸é, ÇöÀç ÆíÁý ÁßÀÎ ÆÄÀÏ Ãß°¡ * PUT name: netrw ¸¦ ÀÌ¿ëÇÏ¿© FTP ¾÷·Îµå. name ÀÌ »ý·«µÇ¸é, ÇöÀç ÆíÁý ÁßÀÎ ÆÄÀÏ ¾÷·Îµå * GET name : netrw ¸¦ ÀÌ¿ëÇÏ¿© FTP ´Ù¿î·Îµå. name ÀÌ »ý·«µÇ¸é, ÇöÀç ÆíÁý ÁßÀÎ ÆÄÀÏ ´Ù¿î·Îµå * DATE : ÇöÀç ³¯Â¥¸¦ ¼Ò½º¿¡ »ðÀÔ * EXTRA : $EXTRA °æ·Î¸¦ ´ëü * BASE : °³¹ß base °æ·Î¸¦ Àüȯ. ¿¹¸¦ µé¾î, ³ëÆ®ºÏ »ç¿ë½Ã ¿ÜÀå Çϵå¿Í °°Àº ÀúÀå ÀåÄ¡¸¦ ÁÖ °³¹ß °æ·Î·Î »ç¿ëÇÒ ¶§ ÀÌ ¸í·ÉÀ» ÀÀ¿ë ÇÒ ¼ö ÀÖ´Ù. * µî... ---- CategoryManual