====== ccache + distcc + crosscompile ======
===== distccd 설정 ====
외부 머신에서의 분산빌드 요청을 수락하기 위해 /etc/default/distcc 설정
STARTDISTCC="true"
ALLOWEDNETS="127.0.0.1 192.168.10.0/24"
LISTENER="192.168.10.1"
NICE="10"
크로스 컴파일시 크로스 컴파일러의 경로를 추가해 주어야 함 /etc/init.d/distcc 수정
...
PATH=...:/ExtApps/toolchain/arm-2009q1/bin
...
분산빌드를 시작하는 peer는 distccd 데몬을 시작할 필요 없음
===== 분산 빌드를 시작 하는 주 머신 ==
/home/suapapa/.distcc/hosts 파일에 다음과 같이 접속할 host 나열
localhost 192.168.10.2
또는 DISTCC_HOSTS로 익스포트
DISTCC_HOSTS="192.168.10.2/3 localhost/2 another_serv/n"
===== distcc서버들이 살아있나 검사 =====
#!/usr/bin/python
from socket import *
def isDistccSrvOK(addr, port = 3632):
try:
sok = socket(AF_INET, SOCK_STREAM)
sok.connect((addr, port))
except:
return False
sok.close()
return True
if __name__ == '__main__':
import sys
print isDistccSrvOK(sys.argv[1])
===== 빌드 =====
다음과 같이 alias 설정
alias arm_make='nice -n 20 make ARCH=arm CROSS_COMPILE="ccache arm-none-eabi-" -j 3 '
alias arm_dist6_make='nice -n 20 make ARCH=arm CROSS_COMPILE="ccache distcc arm-none-eabi-" -j 6 '
*[[http://www.debian-administration.org/article/Speed_up_compiling_software_with_distcc|Speed up compiling software with distcc]]
*[[http://www.debian-administration.org/articles/129|Speeding up recompilation with ccache]]
*[[http://linpc.com/node/203|Cross Compiling with distcc]]
====== references ======
*[[http://code.google.com/p/distcc/|distcc]] in google code
*[[http://distcc.samba.org/|discc]] old official homepage
*[[http://www.ibm.com/developerworks/kr/library/l-distcc.html|distcc로 컴파일 시간 줄이기]] in IBM DW