금요일, 5월 25, 2007

phoneMe - 컴파일 및 빌드

phoneMe를 아시나요? ^^

phoneMe는 Sun이 자사의 Java ME 소스를 Open Source로 공개한 공개 프로젝트입니다.

https://phoneme.dev.java.net/


phoneMe는 크게 feature와 advanced의 두가지 분류로 나뉘는데요 feature는 CLDC, advanced는 CDC 기반의 프로젝트입니다.

이해하기 쉽게 말하자면 여러분이 사용하시는 대부분의 휴대폰에 들어간 Java 기술을 CLDC, DTV의 셋탑박스나 고성능 프린터와 같은 고성능 기기에 사용되는 Java 기술이 CDC라고 생각하시면 됩니다.

거두절미하고 위 사이트에서 phoneMe feature MR2 버전을 다운로드 받으면 Windows 환경에서 직접 컴파일하여 에뮬레이션 환경을 실행시켜 볼 수 있습니다. Java의 Virtual Machine 동작, Java ME의 각종 JSR 구현등에 대한 관심이 있으신 분들에게는 아주 좋은 자료라고 생각됩니다.

Build를 하기 위해서는 약간 고통(?)스러운 과정이 따르는데요. 일단, 필요한 개발환경을 설치해야합니다.

1) Cyg4ME - phoneMe 사이트에서 다운받으실 수 있습니다.
2) Visual C++ 6.0 w/ SP5 w/ Performance Pack 혹은 Visual C++ 2003
3) JDK 1.4.2

위와 같이 개발 환경을 설정하신 후에는 각종 환경 변수 들을 설정하여 JavaCall, PCSL, CLDC, MIDP 등의 모듈을 컴파일/빌드해야 합니다.

이 과정을 쉽게 한번에 수행할 수 있도록 간단한 shell script를 작성해보았는데요 파일로 첨부하였으니 참고하시기 바랍니다.

앞으로 개인적으로 phoneMe를 가지고 몇몇 실험을 해볼 생각이고요 흥미로운 내용이 있으면 여러분들과 공유하도록 하겠습니다.

참고로 제 PC에서 빌드하여 실행하고 있는 화면 snapshot을 하나 올립니다.


아래 link도 참고하시면 좋을 것 같군요.

http://wiki.java.net/bin/view/Mobileandembedded/PhoneMEBuilding

------------------------------------------------------------------------------

#!/bin/sh

################ JAVACALL #####################

# set your phonemeFeature home dir here
export MEHOME=/project-sun/phoneme_feature

# set your output folder here
export BUILD_OUTPUT_DIR=${MEHOME}/output

# set your javacall dir here
export JAVACALL_DIR=${MEHOME}/javacall

# set your javacall-com dir here
export JAVACALL_PROJECT_DIR=${MEHOME}/javacall-com

# set your javacall output dir here
export JAVACALL_OUTPUT_DIR=${BUILD_OUTPUT_DIR}/javacall

# build JavaCall
make -C ${JAVACALL_PROJECT_DIR}/configuration/phoneMEFeature/win32_x86

################ PCSL #####################

export PCSL_PLATFORM=javacall_i386_vc

export PCSL_OUTPUT_DIR=${BUILD_OUTPUT_DIR}/pcsl

# build PCSL
make -C ${MEHOME}/pcsl

################ CLDC #####################

export JVMWorkSpace=${MEHOME}/cldc

export JVMBuildSpace=${BUILD_OUTPUT_DIR}/cldc

export ENABLE_PCSL=true

# enable MVM?
export ENABLE_ISOLATES=true

# build CLDC
make -C ${JVMWorkSpace}/build/javacall_i386_vc

################ MIDP #####################

export MIDP_OUTPUT_DIR=${BUILD_OUTPUT_DIR}/midp

export CLDC_DIST_DIR=${BUILD_OUTPUT_DIR}/cldc/javacall_i386_vc/dist

export TOOLS_DIR=${MEHOME}/tools

export USE_MULTIPLE_ISOLATES=${ENABLE_ISOLATES}

export JAVACALL_PLATFORM=win32_i386_vc

make -C ${MEHOME}/midp/build/javacall

프로젝트관리 hands on

* 일 단위로 현재 진행 중인 업무를 확인 하라.
- 우선 직접 대면하여 대화를 나누도록 하고
- 그 후 이메일로 대화의 내용을 정리하여 공유하도록 한다.

* 요구조건에 대해 engineer 리소스의 낭비 요소는 없는지 검토한 후 assign하자
- 요구 조건에 대해 간단한 기술적인 검토를 수행한 후
- Engineer의 자원이 쓸데 없이 너무 낭비되지는 않는지 확인
- 만일, 기능의 필요성에 이나 시급성에 비추어 자원 낭비가 크다면 delay 혹은 cancel 시킬 수 있도록 nogotiation 하여야 한다