2012-03-15 3 views
2

나는 방금 XS 코드를 추가 한 largish 프로젝트를 가지고 있으며 가능한 한 최상위 디렉토리를 깨끗하게 유지하려고합니다. 나는 XS 파일과 typemap et al을 넣고 싶다. 하위 디렉토리에 넣으십시오.하지만 그렇게하면 MakeMaker에서 찾을 수 없습니다. 그래서 지금 그들은 프로젝트 루트에 앉아 있습니다.MakeMaker가 서브 디렉토리에 XS 파일을 빌드하도록 알려주는 방법?

MakeMaker가 XS 파일을 찾기 위해 하위 디렉토리를 찾도록 지시하는 방법은 무엇입니까?

+0

@schwern - 답변 해 주셔서 감사합니다. EUMM 문서에서 그 옵션을 완전히 놓쳤습니다. 난 그냥 추가하려면, 나는 [Module :: Build] (http://metacpan.org/module/Module::Build)로 바꾸었다. [Module :: Build :: WithXSpp] (http : // metacpan .org/module/Module :: Build :: WithXSpp)은 다른 것들을 많이 만들었습니다. 그리고 [Dist :: Zilla] (http://metacpan.org/module/Dist::Zilla)를 사용하기 때문에 전환도 쉬웠습니다. [Dist :: Zilla :: Plugin :: ModuleBuild :: Custom] (http://metacpan.org/module/Dist::Zilla::Plugin::ModuleBuild::Custom) 모듈도 많은 도움이되었습니다. :) – Hercynium

답변

4

.xs 개의 파일을 lib 디렉토리에 넣으면 MakeMaker에서 찾을 수 있다고 생각합니다.

.xs 파일과 어떤 .c 파일 WriteMakefileXS 옵션을 사용하여로 번역 위치를 명시 적으로 MakeMaker을 알 수 있습니다.

WriteMakefile(
    NAME => "Foo::Bar", 
    XS  => { 
     "lib/Foo/Bar.xs" => "lib/Foo/Bar.c", 
    } 
);