배포에 대해 생각하고 있다면PostgreSQL윈 토토 모듈, 휴대용 빌드 시스템을 설정하는 것은 상당히 어려울 수 있습니다. 따라서PostgreSQL설치는 윈 토토에 대한 빌드 인프라를 제공합니다.PGXS, 따라서 간단한 윈 토토 모듈은 이미 설치된 서버에 대해 간단히 구축 할 수 있습니다.PGXS는 순수한 SQL 윈 토토에도 사용될 수 있지만 주로 C 코드를 포함하는 윈 토토을위한 것입니다. 참고PGXS|PostgreSQL; 간단한 서버 윈 토토 모듈에 대한 일반적인 빌드 규칙을 자동화합니다.
사용하려면PGXS윈 토토 인프라를위한 인프라는 간단한 makefile을 작성해야합니다. MakeFile에서는 일부 변수를 설정하고 Global을 포함해야합니다PGXSmakefile. 다음은이라는 윈 토토 모듈을 빌드하는 예입니다.isbn_issn
, 일부 C 코드, 윈 토토 제어 파일, SQL 스크립트, 포함 파일 (다른 모듈이 SQL을 통해 윈 토토 기능에 액세스 해야하는 경우에만 필요한 경우에만 필요한 경우에만 필요한 경우에만 필요 함) 및 문서 텍스트 파일을 포함하는 공유 라이브러리로 구성되어 있습니다.
modules = isbn_issn
마지막 세 줄은 항상 동일해야합니다. 파일의 앞부분에서 변수를 할당하거나 사용자 정의 추가만들기규칙.
구축 된 내용을 지정하도록이 세 가지 변수 중 하나를 설정하십시오.
다음 변수도 설정할 수 있습니다.
Extension
#윈 토토 이름; 각 이름에 대해를 제공해야합니다.
파일.윈 토토
.controlprefix
/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
#정의하지 마십시오InstallCheck
Target, 유용한 경우, 예 : 테스트에 특수 구성이 필요하거나 사용하지 않는 경우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
윈 토토자를 보유하는 디렉토리에서. 그런 다음 할 수 있습니다만들기
컴파일하려면설치
모듈을 설치하려면. 기본적으로 윈 토토자가 컴파일되어에 설치됩니다.PostgreSQL첫 번째에 해당하는 설치PG_CONFIG
귀하의 프로그램에서 찾은 프로그램Path
. 설정하여 다른 설치를 사용할 수 있습니다PG_CONFIG
PG_CONFIG
Makefile 내에서 또는 프로그램만들기
명령 줄.
당신도 실행할 수 있습니다만들기
빌드 디렉토리를 별도로 유지하려면 윈 토토자의 소스 트리 외부의 디렉토리에 있습니다. 이 절차는 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및 결과 출력을 일치하는 예상 파일과 비교합니다. 모든 차이점은 파일에 기록됩니다if
indiff -c
형식. 예상 파일이 누락 된 테스트를 실행하려고 시도하면로보고됩니다.“문제”, 예상되는 모든 파일이 있는지 확인하십시오.
스크립트에 나열된 스크립트격리
변수는 모듈과 동시 세션의 응력 거동을 테스트하는 데 사용됩니다.설치 체크 만들기
그랬던 후설치
. 이것이 작동하려면 달리기가 있어야합니다PostgreSQL서버. 나열된 스크립트 파일격리
지명 된 서브 디렉토리에 표시SPECS/
Extension의 디렉토리에서. 이 파일에는 윈 토토이 있어야합니다.spec
,격리
MakeFile에 목록. 각 테스트마다이 서브 디렉토리에 예상 출력이 포함 된 파일도 있어야합니다.예상/
, 동일한 줄기와 윈 토토.out
. 설치 체크 만들기
각 테스트 스크립트를 실행하고 결과 출력을 일치하는 예상 파일과 비교합니다. 모든 차이점은 파일에 기록됩니다output_iso/regression.diffs
indiff -c
형식. 예상 파일이 누락 된 테스트를 실행하려고 시도하면로보고됩니다.“문제”, 예상되는 모든 파일이 있는지 확인하십시오.
tap_tests
탭 테스트를 사용합니다. 각 실행의 데이터는라는 하위 디렉토리에 있습니다.TMP_CHECK/
. 참조 참조PostgreSQL : 문서 : 17 : 31.4. 탭 젠 토토자세한 내용은
예상 파일을 생성하는 가장 쉬운 방법은 빈 파일을 만들고 테스트 실행을 수행하는 것입니다 (물론 보고서 차이). 에있는 실제 결과 파일 검사결과/
디렉토리 (테스트 용회귀
), 또는output_iso/results/
디렉토리 (테스트 용격리
), 다음에 복사예상/
그들이 당신이 테스트에서 기대하는 것에 일치하는 경우.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면