이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 36.18. 윈 토토 건물 인프라버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

38.17. 무지개 토토 건물 인프라

배포에 대해 생각하고 있다면PostgreSQL무지개 토토 모듈, 휴대용 빌드 시스템을 설정하는 것은 상당히 어려울 수 있습니다. 따라서PostgreSQL설치는 무지개 토토에 대한 빌드 인프라를 제공합니다.PGXS, 따라서 간단한 무지개 토토 모듈은 이미 설치된 서버에 대해 간단히 구축 할 수 있습니다.PGXS는 순수한 SQL 무지개 토토에도 사용될 수 있지만 주로 C 코드를 포함하는 무지개 토토을위한 것입니다. 참고PGXS|postgresql; 간단한 서버 무지개 토토 모듈에 대한 일반적인 빌드 규칙을 자동화합니다. 보다 복잡한 패키지의 경우 자신의 빌드 시스템을 작성해야 할 수도 있습니다.

사용하려면PGXS무지개 토토을위한 인프라는 간단한 makefile을 작성해야합니다. MakeFile에서는 일부 변수를 설정하고 Global을 포함해야합니다PGXSmakefile. 다음은이라는 무지개 토토 모듈을 빌드하는 예입니다.isbn_issn, 일부 C 코드, 무지개 토토 제어 파일, SQL 스크립트, 포함 파일 (다른 모듈이 SQL을 통해 무지개 토토 기능에 액세스 해야하는 경우에만 필요한 경우에만 필요한 경우에만 필요 함) 및 문서 텍스트 파일을 포함하는 공유 라이브러리로 구성되어 있습니다.

modules = isbn_issn
Extension = ISBN_ISSN
data = isbn_issn--1.0.sql
문서 = readme.isbn_issn
headers_isbn_issn = isbn_issn.h

pg_config = pg_config
pgxs : = $ (shell $ (pg_config) --pgxs)
$ (pgxs) 포함

마지막 세 줄은 항상 동일해야합니다. 파일의 앞부분에서 변수를 할당하거나 사용자 정의 추가만들기규칙.

구축 된 내용을 지정하도록이 세 가지 변수 중 하나를 설정하십시오.

모듈

동일한 STEM이있는 소스 파일에서 구축 할 공유 라이브러리 개체 목록 (이 목록에 라이브러리 접미사를 포함하지 않음)

module_big

여러 소스 파일에서 빌드 할 수있는 공유 라이브러리 (OBJS)

프로그램

빌드 할 실행 가능한 프로그램 (retment 객체 파일OBJS)

다음 변수도 설정할 수 있습니다.

무지개 토토

무지개 토토 이름; 각 이름에 대해를 제공해야합니다.Extension.control파일.prefix/share/extension

moduledir

하위 디렉토리prefix/share어떤 데이터 및 문서 파일을 설치 해야하는지 (기본값은를 설정하지 않으면무지개 토토if무지개 토토가 설정되거나Contrib그렇지 않은 경우)

데이터

random files to inter접두사/share/$ moduledir

data_built

랜덤 파일에 설치할접두사/share/$ moduledir, 먼저 건축해야합니다

data_tsearch

아래에 설치할 무작위 파일접두사/share/tsearch_data

DOCS

아래에 설치할 무작위 파일prefix/doc/$ moduledir

헤더
headers_built

파일 (선택적으로 빌드 및).접두사/include/server/$ moduledir/$ module_big.

와 달리data_built, 파일headers_built깨끗한대상; 제거하려면 제거하려면에 추가하십시오.extra_clean또는 자신의 규칙을 추가하십시오.

Headers_ $ 모듈
headers_built_ $ module

설치할 파일 (지정된 경우 빌드 후)에서prefix/include/server/$ moduledir/$ module, 여기서$ module사용 된 모듈 이름이어야합니다모듈또는module_big.

와 달리data_built, 파일headers_built_ $ module깨끗한대상; 제거하려면 제거하려면에 추가하십시오.extra_clean또는 자신의 규칙을 추가하십시오.

에 두 개의 모듈 이름이없는 한 동일한 모듈에 대해 두 변수를 모두 사용하는 것이 합법적입니다모듈접두사의 존재에 의해서만 다른 목록build_는 모호성을 유발할 것입니다. 그 (희망적으로) 사례에서는 만 사용해야합니다.headers_built_ $ module변수.

스크립트

스크립트 파일 (바이너리 아님)에 설치할prefix/bin

scripts_built

스크립트 파일 (바이너리 아님)에 설치할접두사/bin, 먼저 건설해야합니다

회귀

회귀 테스트 사례 목록 (접미사없이), 아래 참조

regress_opts

추가 스위치 전달PG_REGRESS

NO_INSTALLCHECK

정의하지 마십시오InstallChecktarget, 유용한 경우, 예 : 테스트에 특수 구성이 필요하거나 사용하지 않는 경우PG_REGRESS

extra_clean

제거 할 추가 파일깨끗하게 만들기

pg_cppflags

선불로 향합니다CPPFLAGS

PG_CFLAGS

|cflags

PG_CXXFLAGS

CXXFLAGS

PG_LDFLAGS

ldflags

pg_libs

에 추가됩니다프로그램링크 라인

SHLIB_LINK

에 추가됩니다module_big링크 라인

PG_CONFIG

경로PG_CONFIG프로그램PostgreSQL구축 할 설치 (일반적으로 JustPG_CONFIG당신의 첫 번째 것을 사용하려면PATH)

이 makefile을로 넣으십시오.makefile무지개 토토자를 보유하는 디렉토리의. 그런 다음 할 수 있습니다make컴파일하고설치모듈을 설치하려면. 기본적으로 무지개 토토자가 컴파일되어에 설치됩니다.PostgreSQL첫 번째에 해당하는 설치PG_CONFIG당신의 프로그램PATH. 설정하여 다른 설치를 사용할 수 있습니다PG_CONFIGPG_CONFIGMakefile 내에서 또는 프로그램make명령 줄.

당신도 실행할 수 있습니다make빌드 디렉토리를 별도로 유지하려면 무지개 토토자의 소스 트리 외부의 디렉토리에서. 이 절차는 A라고도합니다.vpath빌드. 방법은 다음과 같습니다.

mkdir build_dir
cd build_dir
-f/path/to/extension/source/tree/makefile make make make
-f/path/to/extension/source/tree/makefile install make make

또는 핵심 코드에 대해 수행되는 방식과 유사한 방식으로 vpath 빌드에 대한 디렉토리를 설정할 수 있습니다. 이를 수행하는 한 가지 방법은 핵심 스크립트를 사용하는 것입니다config/prep_buildtree. 이 작업이 완료되면를 설정하여 구축 할 수 있습니다.make가변vpath처럼 :

vpath =/path/to/extension/source/tree make make vpath
vpath =/path/to/extension/source/tree install make

이 절차는 더 다양한 디렉토리 레이아웃과 함께 작동 할 수 있습니다.

스크립트에 나열된 스크립트회귀변수는 모듈의 회귀 테스트에 사용됩니다.설치 체크 만들기그 후설치. 이것이 작동하려면 달리기가 있어야합니다postgresql서버. 나열된 스크립트 파일회귀지명 된 서브 디렉토리에 표시SQL/Extension의 디렉토리에서. 이 파일에는 무지개 토토이 있어야합니다.SQL,회귀Makefile에 목록. 각 테스트마다이 서브 디렉토리에 예상 출력이 포함 된 파일도 있어야합니다.예상/, 동일한 줄기와 무지개 토토.out. 설치 체크 만들기각 테스트 스크립트 실행PSQL및 결과 출력을 일치하는 예상 파일과 비교합니다. 모든 차이점은 파일에 기록됩니다회귀 .diffsindiff -c형식. 예상 파일이 누락 된 테스트를 실행하려고 시도하면로보고됩니다.문제, 예상되는 모든 파일이 있는지 확인하십시오.

예상 파일을 생성하는 가장 쉬운 방법은 빈 파일을 작성한 다음 테스트 실행을 수행하는 것입니다 (물론 보고서 차이). 에있는 실제 결과 파일 검사결과/디렉토리를 복사 한 다음예상/그들이 시험에서 기대하는 것에 일치하는 경우.