Mate Project
mate project manual 입니다. 앞으로 수정이 많이 필요하겠군요... 일단 올려봅니다.
1.1. 소개 ¶mate( http://mate.kldp.net ) 는 make template 의 약자이다. 동료, 친구를 뜻하는 mate 또는 체스의 mate 일 수도 있다. makefile 의 explicit dependency 만을 (무식하게) 사용해서 각종 컴파일러와 운영체제 등에서 손쉽게 프로그램을 빌드하고 테스트할 수 있는 환경을 구축하는 것이 목표이다. 그리고 vim 에디터에서 활용 가능하고, vim 관련 파일을 제공한다.
1.2. 형식 ¶이 프로젝트는 고유의 특별한 개발 환경을 제공하는 것은 아니다. 미리 정의된 템플릿 make 파일과 심볼 등에 기반해서, makefile 을 작성하여, makefile을 플렛폼에 따라 별도로 작성하지 않고, 필요한 경우 후처리등을 통해 makefile 의 호환성을 유지하는 것이다.
1.3. 목표 ¶이 프로젝트는 개인 개발 환경을 구축하기 위해 짧지 않은 시간 동안 시행 착오를 겪어온 것으로부터 개선되어왔다. 이 프로젝트는 두가지 궁극적인 목표가 있다.
1.4. 참여 ¶이 프로젝트는 다수의 개발자가 참여해서 그 효용성을 평가하는 것이 중요하다고 생각한다. 게다가 이 프로젝트는 무언가 특별한 것을 다루는 것도 아니므로, 크게 난이도가 있는 것도 아니다. 미리 작성된 makefile 템플릿, bash script, batch file, c로 작성된 몇가지 유틸리티, unix, cygwin 또는 그에 상응하는 명령어 등을 통해 빌드 환경의 편의를 도모하는 것이 주요 골자다.
숙련된 개발자들인 경우, 자기 고유의 개발 환경을 갖추고 그 방식대로 일하는 것이 일반적일 것이므로, 나는 개발 환경이 체계화되지 않은 초중급 개발자가 이 프로젝트에 관심을 가졌으면 하는 바램이다. 물론 숙련된 개발자들의 참여는 보다 좋은 결과를 얻을 수 있도록 할 것이지만, 현실적으로 그럴 가능성이 없어보이네요... 많은 의견이 오고 갈수록 보다 범용화 될 수 있을 것으로 기대한다.
1.5. 미래 ¶이 프로젝트가 성과를 거둠으로써, 최근 긴 시간 동안 수정 사항이 커밋되지 않은 coral library project ( http://coral.kldp.net ) 로부터, 아직 공개되지 않은 IMA project 및 Orion project ( http://www.megapass.co.kr/~heesc22/orion/h_page.htm ) 을 순차적으로 공개할 수 있을 것이다.
2.1. 지원하는 환경 ¶현재 다음과 같은 환경에서 테스트되었다.
운영체제 : unix, symbian, windows, wince, dos 등
컴파일러 : gcc, vcc, bcc, java 등
각 환경마다 특수한 상황이 있고, 미진하게 개발된 부분이 있으며, 수정되면서 제대로 작동하지 않게되는 경우도 있다. 개인 필요에 의해 사용할 때마다 수정되는 경향이 원인인데, 앞으로 개선해가야 한다.
2.3.1. 소스 파일 하나로 실행 파일 작성 ¶# 소스 파일과 경로 지정한다. EX_SRC=intmax EX_SRCPATH=$(MK_DEVEL)/test # 템플릿을 사용한다. include $(MK_TEMPLATE_ROOT)/symbol.mk include $(MK_EXECUTE) # 깨끗이 하기 clean: make -f test.mk clean_execute 2.3.2. 별도의 소스 파일 지정 ( 명시적 의존성 사용 ) ¶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) 2.3.3. 공유 라이브러리 작성 ¶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 2.4. mate project SCM 에 올라있는 현재 상태로 사용하기 위해... ¶우선 자신의 환경에 맞지 않는 등의 문제로 애로 사항이 꽃 필 것이지만, 현재 상태로도 몇가지 제약을 지킨다면 사용은 가능하다. 여기서 기술된 사항 중 누락된 것은 보강해야 할 것이고, 꽃 피는 애로 사항들을 잠재우기 위한 범용화 방안이 필요하다.
2.4.1. 사용하는 3대 환경 변수 ¶디렉토리 구조를 참고하여 다음 환경 변수를 설정해야 한다.
2.4.2. 디렉토리 구조 ¶
3.2. MAKE 명령 ¶
3.3. 기타 사용자 명령 ¶
|
You can do very well in speculation where land or anything to do with earth is concerned. |