컴퓨터 과학!2008. 4. 23. 20:08

1. matlabroot/rtw/c/grt/grt_unix.tmf를 복사해와서 수정한다.
   1)    SYS_TARGET_FILE = 근처에
          MAKEFILE_FILESEP = / 를 적어넣는다.
    2)   'ifeq ($(OPT_OPTS),$(DEFAULT_OPT_OPTS))'를 찾아서,
          그 구문에서 else 파트만 남기고 모두 지운다.
    3)   Tool > Real-Time Workshop > Options 에서
          Template makefile 을 1)에서 수정한 파일로 지정
    4) 'Generate code only'  선택, 적용.

2. 코드 생성
    MATLAB에서
    1)   set_param('모델이름','PostCodeGenCommand','packNGo(buildInfo, {'packType',
                         'hierarchical', 'fileName', 'zip파일 이름'});');
          packType은 hierarchical이 좋은 것 같다.
          이렇게 만들면 라이브러리 zip파일과 소스코드 zip파일이 따로 생성되는데,
          라이브러리 zip파일은 원래 계층 그대로라, 포팅이 훨씬 수월하다.
          packNGo는 c,cpp,h 파일만 압축해준다.
          따라서, makefile이나 기타 필요한 파일은 수동으로 복사해야한다.
    2)   build Model
   또는
    1)   cd 모델이름_grt_rtw; // 생성된 코드 디렉토리
    2)   load buildInfo.mat
    3)   packNGo(buildInfo, {'packType', 'hierarchical', 'fileName', 'zip파일 이름'});
    zip 파일을 리눅스 머신으로 옮겨준다~

3. makefile에서 window경로 -> linux경로
    COMPUTER = GLNX86 (x86_64는 GLNXA64)
    Makefile = Makefile
    MATLAB_ROOT =
    ALT_MATLAB_ROOT =
    ADD_INCLUDES =
    MATLAB_INCLUDES =

4. packNGo 에서 옮겨주지 않는 파일 복사
   1) R2007b/rtw/c/tools/unixtools.mk
   2) ~_grt_rtw/~.mk
   3) ~_grt_rtw/rtw_proj.tmw

5. ~.mk -> Makefile로 바꿔준다.
6. make!

출처 : Matlab Help

Posted by 스니