2009-02-21 5 views
6

어떻게 소프트웨어 패키지를 만들 수 있습니까? 것을 우리의 소프트웨어 타르 볼 사용자를 추출 후 일반적인 단계를 수행 할 수 있습니다 : (마지막 두 단계에 필요한 Makefile을 생성합니다) 구성 스크립트를 만들유닉스/리눅스에서 소프트웨어 패키지를 만드는 방법

$ gunzip < mycode.tar.gz | tar xvf - 
$ ./configure 
$ make 
$ make install 

답변

1

사용 autotools를 다음과 타르볼을 모든 코드와 자료가 포함되어 있습니다.

1

rpmbuild가 rpm 패키지 옛날에

tutorial

+0

링크 된 맨 페이지를 읽었을 때 내가 묻는 질문에 대답하는 것 같지 않습니다. 처음에는 플랫폼 유연한 빌드를 어떻게 제공합니까? (예 : configure 및 makefile 작성) rpmbuild 당신이 그 자리에 그런 것을 가지고 있다고 가정하는 것처럼 보입니다. – dmckee

+0

아마 내가 질문을 오해 한 것 같습니다. http://www.lrde.epita.fr/~adl/autotools.html – Sharique

3

man page

을 구축 할 수있는 명령입니다,이 과정은 손에 의해 수행되었다. 각 Makefile은 수작업으로 작성되었습니다 ( make 파일은 일종의 스크립트로 사용됩니다). 이것은 이식성에 관한 문제가되어 configure 스크립트가 작성되었습니다. ./configure 스크립트는 프로젝트별로 작성되었습니다. 결국 이는 GNU가 autotools 패키지를 사용하여 자동화했습니다. 이것은 autoconf, automake 및 기타 몇 가지로 구성됩니다. 대안이 존재하지만, 특히 make의 경우, autotools이 가장 널리 사용됩니다. ... 적어도 GNU/Linux 시스템에서. 대안으로 이미 언급 한 CMake, Boost.Build, Boost.Jam, SCons 등이 있습니다.

1

Autotools.

configure.ac 및 Makefile.am 스크립트를 작성해야합니다.

Configure.ac은 매우 쉽고 소스 코드에서 'autoscan'을 실행하면 대부분 자동 생성 될 수 있습니다. 그러면 최종 configure.ac 파일을 생성하기 위해 조정해야하는 'configure.scan'파일이 생성됩니다.

Automake.am 파일은 모두 규칙을 기반으로합니다. 이 을 설치해야합니다 = nodist 대

  • DIST =이 noinst 대
  • 이달를 구축해야한다 : 모든 것이 명명 스키마를 기반으로

    AUTOMAKE_OPTIONS = foreign subdir-objects 
    AM_CXXFLAGS = -std=c++11 -static-libstdc++ -Wall -Werror \ 
        -Wfatal-errors -I blah 
    AM_LDFLAGS = blah 
    
    bin_PROGRAMS = mybinary 
    mybinary_SOURCES = \ 
        blah.h blah.cc 
    

    :처럼 당신은 아마 뭔가를해야합니다

  • DATA = 데이터 파일
  • MANS = man 페이지
  • 출처 = 소스 코드

dist_noinst_DATA는 빌드에 필요하지만 설치되지 않은 데이터 파일 용입니다.

당신은 당신이 일반적으로 같은 것을 실행해야하는 파일을 모두 일단 : automake는이 설정을

이 건물에 필요한 파일을 autotools를 & &의 autoconf를-없는 --add

& autoheader & & & aclocal을합니다. 이것을 쉘 스크립트에 넣고 ./configure를 실행하기 전에 실행할 수 있습니다.