2011-05-09 3 views
3

rebar은 두 개의 서로 다른 c 파일을 사용하는 erlang 모듈을 구축하도록 설정했습니다.철근을 사용하여 파일별로 다른 C 컴파일러/링커 옵션을 사용하려면 어떻게해야합니까?

{port_env, [{"DRV_CFLAGS", "$DRV_CFLAGS -Wall -Wextra"}]}. 

각 C 소스 파일에 대해 다른 옵션을 설정할 수 있습니다 :

나는 (예를 들어)를 사용하여 내 rebar.config에서 C 컴파일 옵션을 설정? 나는 각각 다른 컴파일러와 링커 플래그를 원한다.

그렇지 않은 경우 가장 일반적인 대안/해결 방법은 무엇입니까? Makefile을 만들고 거기에있는 C 컴파일을 움직이면 철근이 나머지 부분을 아주 잘 처리 할 때해야 할 일은 부끄러운 것처럼 보입니다.

답변

2

미친 생각 : pre_hookspost_hooks을 사용하여 쉘 스크립트를 실행할 수 있습니다. 아마 당신은 원하는 컴파일러와 플래그로 파일을 컴파일하기 위해 자신의 쉘 스크립트를 실행할 수 있습니다.

전처리의 예를 보려면 SHA-2 표준의 Steve Vinoskis NIF 구현을 확인하십시오. 그의 rebar.configc_src/config.sh

+0

이것은 합리적인 방법으로 보입니다. rebar.config와 별도로 컴파일 스크립트를 유지하는 것을 피하기를 바랬는데 (아마 make의 기능을 복제하는 것을 기대하지 않아도 되겠지만 :)). –

관련 문제