36.18. 윈 토토 건물 인프라#

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

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

modules = isbn_issn

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

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

모듈 #

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

module_big #

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

프로그램 #

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

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

Extension #

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

moduledir #

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

데이터 #

random files to into에 설치할prefix/share/$ moduledir

data_built #

random files to into에 설치할prefix/share/$ moduledir, 먼저 구축해야합니다

data_tsearch #

아래에 설치할 무작위 파일prefix/share/tsearch_data

docs #

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

헤더
headers_built #

파일 (선택적으로 빌드 및).prefix/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 #

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

회귀 #

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

regress_opts #

추가 스위치 전달PG_REGRESS

격리 #

분리 테스트 사례 목록, 자세한 내용은 아래를 참조하십시오

Ironlation_opts #

추가 스위치 전달PG_ISOLATION_REGRESS

tap_tests #

탭 테스트를 실행 해야하는 경우 스위치 정의 아래 참조

no_install #

정의하지 마십시오install대상, 빌드 제품을 설치할 필요가없는 테스트 모듈에 유용

NO_INSTALLCHECK #

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

extra_clean #

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

PG_CPPFLAGS #

선불로CPPFLAGS

PG_CFLAGS #

|cflags

pg_cxxflags #

|cxxflags

PG_LDFLAGS #

선불로ldflags

PG_LIBS #

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

에 추가됩니다module_big링크 라인

PG_CONFIG #

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

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

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

mkdir build_dir

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

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

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

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

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

tap_tests탭 테스트를 사용합니다. 각 실행의 데이터는라는 하위 디렉토리에 있습니다.TMP_CHECK/. 참조 참조PostgreSQL : 문서 : 17 : 31.4. 탭 젠 토토자세한 내용은

예상 파일을 생성하는 가장 쉬운 방법은 빈 파일을 만들고 테스트 실행을 수행하는 것입니다 (물론 보고서 차이). 에있는 실제 결과 파일 검사결과/디렉토리 (테스트 용회귀), 또는output_iso/results/디렉토리 (테스트 용격리), 다음에 복사예상/그들이 당신이 테스트에서 기대하는 것에 일치하는 경우.

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면