36.16. ��չ�Ĺ���������ʩ

��������ڿ��Ƿ������PostgreSQL��չģ�飬Ϊ���ǽ���һ������ֲ�Ĺ���ϵͳʵ�����൱���ѡ����PostgreSQL��װΪ��չ�ṩ��һ�ֱ���ΪPGXS����������ʩ����˼򵥵���չģ���ܹ���һ���Ѿ���װ�ķ������ϼ򵥵ر��롣PGXS��Ҫ��Ϊ�˰��� C �������չ����ƣ�������Ҳ�����ڴ� SQL ����չ��ע��PGXS�������Ϊһ�����ڹ����κ���PostgreSQL������������ͨ�ù���ϵͳ��ܡ���ֻ�Ǽ򵥵ذѼ򵥷�������չģ��Ĺ������������Զ��������ڸ����ӵİ����������Ҫ��д���Լ��Ĺ���ϵͳ��

Ҫ��PGXS������ʩ���������չ��������дһ���򵥵� makefile������� makefile �У�����Ҫ����һЩ�������Ұ����ǰ�����ȫ�ֵ�PGXS makefile �С�������һ�����ӣ�������һ����Ϊisbn_issn����չģ�飬���а���һ������ C ����Ĺ����⡢һ����չ�����ļ���һ�� SQL �ű��Լ�һ���ĵ��ļ���

MODULES = isbn_issn
EXTENSION = isbn_issn
DATA = isbn_issn--1.0.sql
DOCS = README.isbn_issn

PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)

�������Ӧ��������ͬ�ġ�������ļ���ǰ�沿�֣���Ҫ�Ա�����ֵ���������Զ����make����

��������������֮һ��ָ��Ҫ����ʲô��

MODULES

Ҫ��Դ�ļ������ľ�����ͬ�ʸɵĹ����������б�����Ҫ������б��а������׺��

MODULE_big

һ��Ҫ�Ӷ��Դ�ļ��й����Ĺ����⣨��OBJS���г������ļ���

PROGRAM

һ��Ҫ�����Ŀ�ִ�г�����OBJS���г������ļ���

�����������������

EXTENSION

��չ���ƣ������Ϊÿһ�������ṩһ��extension.control�ļ�����������װ��prefix/share/extension��

MODULEDIR

subdirectory of prefix/share����Ŀ¼��DATA �� DOCS �ļ��ᱻ��װ�����У����û�����ã�������EXTENSIONʱĬ��Ϊextension��û������EXTENSIONʱĬ��Ϊcontrib��

DATA

Ҫ��װ��prefix/share/$MODULEDIR�е�����ļ�

DATA_built

Ҫ��װ��prefix/share/$MODULEDIR�е�����ļ���������Ҫ�ȱ�����

DATA_TSEARCH

Ҫ��װ��prefix/share/tsearch_data�е�����ļ�

DOCS

Ҫ��װ��prefix/doc/$MODULEDIR�е�����ļ�

SCRIPTS

Ҫ��װ��prefix/bin�еĽű��ļ����Ƕ����ƣ�

SCRIPTS_built

Ҫ��װ��prefix/bin�еĽű��ļ����Ƕ����ƣ���������Ҫ�ȱ�����

REGRESS

�ع���԰�����������׺�����б���������

REGRESS_OPTS

Ҫ���ݸ�pg_regress�ĸ��ӿ���

EXTRA_CLEAN

Ҫ��make clean���Ƴ��Ķ����ļ�

PG_CPPFLAGS

�����ӵ�CPPFLAGS

PG_LIBS

�����ӵ�PROGRAM������

SHLIB_LINK

�����ӵ�MODULE_big������

PG_CONFIG

Ҫ�����й�����PostgreSQL��װ��pg_config�����·����ͨ��ֻ�������PATH�еĵ�һ��pg_config��

����� makefile ��ΪMakefile���ڱ�������չ��Ŀ¼�С�Ȼ�������ִ��make���б��룬���ҽ���make install����װ���ģ�顣Ĭ������£���ģ���Ϊ�����PATH���ҵ��ĵ�һ��pg_config��������Ӧ��PostgreSQL��װ����Ͱ�װ�������ͨ���� makefile �л���make������������PG_CONFIGָ����һ��pg_config������ʹ��һ����ͬ�İ�װ��

������뱣�ֱ���Ŀ¼��������Ҳ�����������չ������Դ������֮���Ŀ¼������ make�� �������Ҳ����Ϊһ�� VPATH ���롣������������

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

���⣬������ԶԺ��Ĵ��������ķ�ʽһ��Ϊ VPATH ����һ��Ŀ¼��һ�ַ�ʽ��ʹ�ú��Ľű� config/prep_buildtree��һ����������������������� make����VPATH��

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

������̿����ںܶ���Ŀ¼�����¹�����

�о���REGRESS�����еĽű��ᱻ�����������չ���лع���ԣ��ع���Կ���������make install֮����make installcheck���á�Ҫ�����ܹ�������������Ѿ���һ�������ŵ�PostgreSQL���������о���REGRESS�еĽű��ļ�����������չĿ¼����Ϊsql/����Ŀ¼�г��֡���Щ�ļ����������չ.sql������չ���ܱ������� makefile ��REGRESS�б��С���ÿһ�����Ի�Ӧ������Ϊexpected/����Ŀ¼����һ������Ԥ��������ļ��������кͽű��ļ���ͬ�Ĵʸɲ�������չ.out��make installcheck����psqlִ��ÿһ�����Խű������ҽ��õ�����������Ӧ��Ԥ������Ƚϡ��κ����𶼽���diff -c��ʽд�뵽�ļ�regression.diffs�С�ע�Ⳣ������һ������Ԥ���ļ��IJ��Խ�������Ϊ"����"�����ȷ����ӵ�����е�Ԥ���ļ���

��ʾ: ����Ԥ���ļ���򵥵ķ����Ǵ������ļ���Ȼ����һ�β������У��⵱Ȼ���������𣩡������results/Ŀ¼���ҵ���ʵ�ʽ���ļ���������Ƿ������Ԥ��������Ǹ��Ƶ�expected/�С�