배포에 대해 생각하고 있다면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) 포함
마지막 세 줄은 항상 동일해야합니다. 파일의 앞부분에서 변수를 할당하거나 사용자 정의 추가make규칙.
구축 된 내용을 지정하도록이 세 가지 변수 중 하나를 설정하십시오.
모듈
동일한 STEM이있는 소스 파일에서 구축 할 공유 원자 개체 목록 (이 목록에 라이브러리 접미사를 포함하지 않음)
module_big
여러 소스 파일에서 빌드 할 수있는 공유 라이브러리 (OBJS
)
프로그램
빌드 할 실행 프로그램 (객체 파일 목록OBJS
)
다음 변수도 설정할 수 있습니다.
사설 토토
사설 토토 이름; 각 이름에 대해를 제공해야합니다.
파일.Extension
.controlprefix
/share/extension
moduledir
하위 디렉토리
데이터 및 문서 파일을 설치 해야하는 곳 (설정하지 않으면 기본값은prefix
/share사설 토토
if사설 토토
가 설정되거나Contrib
그렇지 않은 경우)
129PostgreSQL : 문서 : 15 : 38.18. 사설 토토 건물 인프라49
random files to interprefix
/share/$ moduledir
data_built
random files to inter
, 먼저 구축 해야하는접두사
/share/$ moduledir
data_tsearch
아래에 설치할 무작위 파일접두사
/share/tsearch_data
DOCS
아래에 설치할 무작위 파일접두사
/doc/$ moduledir
헤더
headers_built
파일 to (선택적으로 빌드 및)
.prefix
/include/server/$ moduledir/$ module_big
와 달리data_built
, 파일headers_built
Clean
대상; 제거하려면 제거하려면에 추가하십시오.extra_clean
또는 자신의 규칙을 추가하십시오.
Headers_ $ 모듈
headers_built_ $ module
설치할 파일 (지정된 경우 빌드 후)에서
, 여기접두사
/include/server/$ moduledir/$ module$ module
사용 된 모듈 이름이어야합니다모듈
또는module_big
.
와 달리data_built
, 파일headers_built_ $ module
|Clean
대상; 제거하려면 제거하려면에 추가하십시오.extra_clean
또는 자신의 규칙을 추가하십시오.
에 두 개의 모듈 이름이없는 한 동일한 모듈에 대해 두 변수를 모두 사용하는 것이 합법적입니다.모듈
접두사의 존재에 의해서만 다른 목록build_
는 모호성을 유발할 것입니다. 그 (희망적으로) 사례에서는 만 사용해야합니다.headers_built_ $ module
변수.
스크립트
스크립트 파일 (바이너리 아님)에 설치할prefix
/bin
scripts_built
스크립트 파일 (바이너리 아님)에 설치할
, 먼저 건축해야합니다prefix
/bin
회귀
회귀 테스트 사례 목록 (접미사없이), 아래 참조
regress_opts
추가 스위치로 전달PG_REGRESS
격리
격리 테스트 사례 목록, 자세한 내용은 아래를 참조하십시오
격리 _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 내에서 또는 프로그램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
. 이 작업이 완료되면를 설정하여 구축 할 수 있습니다.만들기
가변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, 결과 출력을 일치하는 예상 파일과 비교합니다. 모든 차이점은 파일에 기록됩니다회귀 .diffs
indiff -c
형식. 예상 파일이 누락 된 테스트를 실행하려고 시도하면로보고됩니다.“문제”, 예상되는 모든 파일이 있는지 확인하십시오.
스크립트에 나열된 스크립트격리
변수는 모듈과의 동시 세션의 행동 응력 거동에 사용됩니다.설치 체크 만들기
그 후설치
. 이것이 작동하려면 달리기가 있어야합니다PostgreSQL서버. 나열된 스크립트 파일격리
지명 된 서브 디렉토리에 표시해야합니다SPECS/
Extension 디렉토리에 있습니다. 이 파일에는 사설 토토이 있어야합니다.spec
격리
makefile에 목록. 각 테스트마다이 서브 디렉토리에 예상 출력이 포함 된 파일도 있어야합니다.예상/
, 동일한 줄기와 사설 토토.out
. 설치 체크 만들기
각 테스트 스크립트를 실행하고 결과 출력을 일치하는 예상 파일과 비교합니다. 모든 차이점은 파일에 기록됩니다output_iso/regression.diffs
indiff -c
형식. 예상 파일이 누락 된 테스트를 실행하려고 시도하면로보고됩니다.“문제”, 예상되는 모든 파일이 있는지 확인하십시오.
tap_tests
탭 테스트를 사용합니다. 각 실행의 데이터는라는 하위 디렉토리에 있습니다.TMP_CHECK/
. 참조 참조PostgreSQL : 문서 : 15 : 33.4. 탭 토토자세한 내용은
예상 파일을 생성하는 가장 쉬운 방법은 빈 파일을 작성한 다음 테스트 실행을 수행하는 것입니다 (물론 보고서 차이). 에있는 실제 결과 파일 검사결과/
디렉토리 (테스트 용회귀
), 또는output_iso/results/
디렉토리 (테스트 용격리
) 그런 다음 복사예상/
그들이 당신이 테스트에서 기대하는 것에 일치하는 경우.
25896_26122이 양식문서 문제를보고하려면