manywaypark's Blog
개발, 검색, 함수

'Build'에 해당되는 글 6건

  1. 2014.04.11 erlang + autotools + rebar
  2. 2014.02.27 Autotools로 library 만들기
  3. 2009.09.17 svn(subversion) build
  4. 2009.06.01 erlyweb 빌드 하기
  5. 2009.04.30 [TIP] Java on Mac OS X 그리고 Maven
  6. 2008.07.29 erlang build 하기

erlang + autotools + rebar

tips & tricks/Linux/Unix 2014. 4. 11. 18:18 by manywaypark

항상 멋진 도구를 찾아내고 나면 기쁨 뒤에 후회와 허탈함이 밀려온다.

'좀더 찾아볼걸... Orz'

'이거 해결하려고 쓴 시간이 얼마인가... ㅠㅠ'

여튼 erlang에서 autotools와 rebar등을 묶어줄 뿐만 아니라 .deb package까지도 만들어주는 멋진 놈이 존재하고 있었던 것이다.

(물론 erlang 말고 javascript, c, c++도 지원함)

또한 추가적으로 대부분의 메이저 scm도 지원하며, 빌드번호 등도 관리되는 듯하다. 넘 멋지다.

이젠 잘 쓰는 일만 남았다.


refs: 

http://dukesoferl.blogspot.kr/2008/02/erlang-and-automake.html

https://code.google.com/p/fwtemplates/


happy hackin'


ps. 이런 식으로 쓴다.

$ fw-init --name prj-name --template erlang-rebar --revision git


Autotools로 library 만들기

tips & tricks/Linux/Unix 2014. 2. 27. 16:56 by manywaypark

아주 잘 정리된, 간략한 페이지가 있구나.

http://www.openismus.com/documents/linux/building_libraries/building_libraries


happy hackin'


svn(subversion) build

tips & tricks/Linux/Unix 2009. 9. 17. 16:38 by manywaypark
현재 최신 기준으로 배포 페이지에서 파일 두개(subversion-1.6.5.tar.bz2, subversion-deps-1.6.5.tar.bz2) 만 다운로드 받아서 같은 디렉토리에서 압축을 풀고, sudo make install 하면 된다.
mkdir svn_build
cd svn_build
wget http://subversion.tigris.org/downloads/subversion-1.6.5.tar.bz2
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.5.tar.bz2
tar xjf subversion-1.6.5.tar.bz2
tar xjf subversion-deps-1.6.5.tar.bz2
cd subversion-deps-1.6.5
make
sudo make install


예전에 한번 했던 일(오래된 redhat깔린 개발장비, 패키지관리 절대 안되는 박스에 svn 깔기)인데, 다시 다른 박스에서 하려니 헷갈렸다. subversion-deps를 안받았더니 이상한 경고메시지들이 떴는데 그 경고 메시지 따라 하나하나 하려니 머리에 쥐가났다. Orz.
DRY 차원에서 정리.
이번에는 라이브러리 몇개가 표준 경로에 있지 않아서 CPPFLAGS 환경변수 설정으로 경로를 추가해 줘야했다 (CPPFLAGS=-I/path/to/lib/include/ ./configure).
관리안되는 공용 서버는 정말 골칫덩어리다.

happy hackin'

erlyweb 빌드 하기

함수형 언어/Erlang 2009. 6. 1. 18:43 by manywaypark
erlyweb의 빌드 스크립트(make.sh)는 기본적으로 erlang의 lib 폴더(보통 /usr/local/lib/erlang/lib, code:lib_dir()로 찍어보면 나온다)에 yaws가 깔린 것으로 가정하고 만들어져있다.
즉, 다음과 같다.
#!/bin/bash

ERLIB=$(erl -noshell -eval 'io:format(code:lib_dir()).' -s erlang halt)
YAWS=$(ls $ERLIB | grep yaws)

cat >Emakefile <<EOF
{"src/erlyweb/*", [debug_info, {outdir, "ebin"},
{i,"$ERLIB/$YAWS/include"}]}.
{"src/erlydb/*", [debug_info, {outdir, "ebin"}]}.
{"src/erlsql/*", [debug_info, {outdir, "ebin"}]}.
{"src/erltl/*", [debug_info, {outdir, "ebin"}]}.
{"src/smerl/*", [debug_info, {outdir, "ebin"}]}.
{"src/erlang-mysql-driver/*", [debug_info, {outdir, "ebin"}]}.
{"src/erlang-psql-driver/*", [debug_info, strict_record_tests, {outdir,
"ebin"}]}.
EOF

ebin_dir="./ebin"
# bash check if directory exists
if [ ! -d $ebin_dir ]; then
    mkdir $ebin_dir
fi

erl -noshell -eval 'make:all(), filelib:fold_files("src/", ".+\.et$", true, fun(F, _Acc) -> erltl:compile(F, [{outdir, "ebin"}, debug_info, show_errors, show_warnings]) end, []).' -pa ebin -s erlang halt
일견 복잡해보이지만, 실제로 하는 일은 erlang의 기본 lib 폴더에서 yaws 폴더를 찾은 후에 Emakefile을 만들고 erlang 방식의 make를 돌리는 것이다.
문제는 나는 yaws를 직접 빌드해서 설치해서 다른 디렉토리(/usr/local/lib)에 있다는 것이다.
그냥 간단하게 make.sh를 다음과 같이 고쳐서 make 하면 잘된다. 나는 yaws의 기본 설정(즉, prefix 따위 설정 안한)으로 빌드했다. prefix 설정으로 설치 경로 바꾼 경우는 적절히 바꾸면 될 것이다.^^
#!/bin/bash

#ERLIB=$(erl -noshell -eval 'io:format(code:lib_dir()).' -s erlang halt)
#YAWS=$(ls $ERLIB | grep yaws)

cat >Emakefile <<EOF
{"src/erlyweb/*", [debug_info, {outdir, "ebin"},
{i,"/usr/local/lib/yaws/include"}]}.
{"src/erlydb/*", [debug_info, {outdir, "ebin"}]}.
{"src/erlsql/*", [debug_info, {outdir, "ebin"}]}.
{"src/erltl/*", [debug_info, {outdir, "ebin"}]}.
{"src/smerl/*", [debug_info, {outdir, "ebin"}]}.
{"src/erlang-mysql-driver/*", [debug_info, {outdir, "ebin"}]}.
{"src/erlang-psql-driver/*", [debug_info, strict_record_tests, {outdir,
"ebin"}]}.
EOF

ebin_dir="./ebin"
# bash check if directory exists
if [ ! -d $ebin_dir ]; then
    mkdir $ebin_dir
fi

erl -noshell -eval 'make:all(), filelib:fold_files("src/", ".+\.et$", true, fun(F, _Acc) -> erltl:compile(F, [{outdir, "ebin"}, debug_info, show_errors, show_warnings]) end, []).' -pa ebin -s erlang halt

happy hackin'

[TIP] Java on Mac OS X 그리고 Maven

java 2009. 4. 30. 00:43 by manywaypark
hudson을 build하다가 생긴 문제의 해결방법이다(좀 특이하다는 말). 이전 포스트와도 좀 연관이 있다.
내 경우(유니바디 알미늄 맥북, java가 깔려서 출고된다)에는 터미널에서 java -version을 하면 1.5대의 버전이 찍혔다. 기본 설정인 듯했다.
결론부터 말하자면 Mac OS X에서는 "Applications/Utilities/Java/Java Preferences"에서 java 환경을 설정할 수 있다.
1.6(메뉴상에는 Java SE 6으로 표시된다)으로 설정하고 명령행에서 확인하면 다음과같이 나온다.
$ java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06-153)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_07-b06-57, mixed mode)

그럼에도 불구하고, hudson을 build하기위해 터미널에서 mvn install을 실행하면 이전 포스트의 에러가 반복되었다.
Detected JDK Version: 1.5.0-16 is not in the allowed range [1.6.0,].
해결책은 JAVA_HOME을 설정하면 된다.
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
아득한 기억을 더듬어보면, windows와 linux에서는 JAVA_HOME이 설정 안되어있으면 에러가 나면서 build 자체를 시도하지도 않았던거같은데...  맥에서는 왜 이런거지? Orz.

참고:

happy hackin'

erlang build 하기

함수형 언어/Erlang 2008. 7. 29. 23:22 by manywaypark
압축풀고 README에 있는 프로그램들 깔려있는지 확인하고,
$ ./configure --enable-hipe --enable-threads
$ make
$ sudo make install

(odd) case error of
checking for C compiler default output file name... configure: error: C compiler cannot create executables
See `config.log' for more details.
-> install libc (apt-get install libc6-dev).
end.

2008-11-01: 간만에 새로 ubuntu를 설치한 박스에서 erlang을 build하려고 시도하니, 필요한 패키지가 정확하게 드러났다.
현재 최신의 OTP-R12B-4를 빌드할 때 모든 기능을 활성화 하기위한 패키지들은 다음과같다.
m4
autoconf
g++
libc6-dev
libncurses5-dev
unixodbc-dev
libssl-dev

happy hackin'
1 
분류 전체보기 (306)
잡담 (20)
함수형 언어 (65)
emacs (16)
java (18)
tips & tricks (154)
사랑 (1)
가사 (0)
독서 (4)
mobile (6)
비함수형 언어 (2)

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

04-26 14:27