head	1.10;
access;
symbols
	REL9_0_0:1.10
	REL9_1_ALPHA1:1.10
	REL9_0_RC1:1.10
	REL9_0_BETA4:1.10
	REL9_0_STABLE:1.10.0.14
	REL9_0_BETA3:1.10
	REL9_0_BETA2:1.10
	REL7_4_29:1.2
	REL8_0_25:1.2
	REL8_1_21:1.2
	REL8_2_17:1.9
	REL8_3_11:1.9
	REL8_4_4:1.10
	REL9_0_BETA1:1.10
	REL9_0_ALPHA5_BRANCH:1.10.0.12
	REL9_0_ALPHA5:1.10
	REL7_4_28:1.2
	REL8_0_24:1.2
	REL8_1_20:1.2
	REL8_2_16:1.9
	REL8_3_10:1.9
	REL8_4_3:1.10
	REL9_0_ALPHA4:1.10
	REL9_0_ALPHA4_BRANCH:1.10.0.10
	REL8_5_ALPHA3:1.10
	REL8_5_ALPHA3_BRANCH:1.10.0.8
	REL7_4_27:1.2
	REL8_0_23:1.2
	REL8_1_19:1.2
	REL8_2_15:1.9
	REL8_3_9:1.9
	REL8_4_2:1.10
	REL8_5_ALPHA2:1.10
	REL8_5_ALPHA2_BRANCH:1.10.0.6
	REL7_4_26:1.2
	REL8_0_22:1.2
	REL8_1_18:1.2
	REL8_2_14:1.9
	REL8_3_8:1.9
	REL8_4_1:1.10
	REL8_5_ALPHA1:1.10
	REL8_5_ALPHA1_BRANCH:1.10.0.4
	REL8_4_STABLE:1.10.0.2
	REL8_4_0:1.10
	REL8_4_RC2:1.10
	REL8_4_RC1:1.10
	REL8_4_BETA2:1.10
	REL8_4_BETA1:1.10
	REL7_4_25:1.2
	REL8_0_21:1.2
	REL8_1_17:1.2
	REL8_2_13:1.9
	REL8_3_7:1.9
	REL7_4_24:1.2
	REL8_0_20:1.2
	REL8_1_16:1.2
	REL8_2_12:1.9
	REL8_3_6:1.9
	REL7_4_23:1.2
	REL8_0_19:1.2
	REL8_1_15:1.2
	REL8_2_11:1.9
	REL8_3_5:1.9
	REL7_4_22:1.2
	REL8_0_18:1.2
	REL8_1_14:1.2
	REL8_2_10:1.9
	REL8_3_4:1.9
	REL7_4_21:1.2
	REL8_0_17:1.2
	REL8_1_13:1.2
	REL8_2_9:1.9
	REL8_3_3:1.9
	REL7_4_20:1.2
	REL8_0_16:1.2
	REL8_1_12:1.2
	REL8_2_8:1.9
	REL8_3_2:1.9
	REL8_2_7:1.9
	REL8_3_1:1.9
	REL8_3_STABLE:1.9.0.4
	REL8_3_0:1.9
	REL8_3_RC2:1.9
	REL7_3_21:1.2
	REL7_4_19:1.2
	REL8_0_15:1.2
	REL8_1_11:1.2
	REL8_2_6:1.9
	REL8_3_RC1:1.9
	REL8_3_BETA4:1.9
	REL8_3_BETA3:1.9
	REL8_3_BETA2:1.9
	REL8_3_BETA1:1.9
	REL7_3_20:1.2
	REL7_4_18:1.2
	REL8_0_14:1.2
	REL8_1_10:1.2
	REL8_2_5:1.9
	REL7_3_19:1.2
	REL7_4_17:1.2
	REL8_0_13:1.2
	REL8_1_9:1.2
	REL8_2_4:1.9
	REL8_0_12:1.2
	REL8_1_8:1.2
	REL8_2_3:1.9
	REL7_3_18:1.2
	REL7_4_16:1.2
	REL8_0_11:1.2
	REL8_1_7:1.2
	REL8_2_2:1.9
	REL8_0_10:1.2
	REL8_1_6:1.2
	REL8_2_1:1.9
	REL7_4_15:1.2
	REL7_3_17:1.2
	REL8_2_STABLE:1.9.0.2
	REL8_2_0:1.9
	REL8_2_RC1:1.9
	REL8_2_BETA3:1.9
	REL8_2_BETA2:1.9
	REL8_1_5:1.2
	REL8_0_9:1.2
	REL7_4_14:1.2
	REL7_3_16:1.2
	REL8_2_BETA1:1.9
	REL7_3_15:1.2
	REL7_4_13:1.2
	REL8_0_8:1.2
	REL8_1_4:1.2
	REL7_3_14:1.2
	REL7_4_12:1.2
	REL8_0_7:1.2
	REL8_1_3:1.2
	REL7_3_13:1.2
	REL7_4_11:1.2
	REL8_0_6:1.2
	REL8_1_2:1.2
	REL7_3_12:1.2
	REL7_4_10:1.2
	REL8_0_5:1.2
	REL8_1_1:1.2
	REL8_1_STABLE:1.2.0.16
	REL8_1_0:1.2
	REL8_1_0RC1:1.2
	REL8_1_0BETA4:1.2
	REL8_1_0BETA3:1.2
	REL7_3_11:1.2
	REL7_4_9:1.2
	REL8_0_4:1.2
	REL8_1_0BETA2:1.2
	REL8_1_0BETA1:1.2
	REL7_2_8:1.2
	REL7_3_10:1.2
	REL7_4_8:1.2
	REL8_0_3:1.2
	REL8_0_2:1.2
	REL7_2_7:1.2
	REL7_3_9:1.2
	REL7_4_7:1.2
	REL8_0_1:1.2
	REL8_0_STABLE:1.2.0.14
	REL8_0_0:1.2.0.12
	REL8_0_0RC5:1.2
	REL8_0_0RC4:1.2
	REL8_0_0RC3:1.2
	REL8_0_0RC2:1.2
	REL8_0_0RC1:1.2
	REL8_0_0BETA5:1.2
	REL8_0_0BETA4:1.2
	REL7_4_6:1.2
	REL7_3_8:1.2
	REL7_2_6:1.2
	REL8_0_0BETA3:1.2
	REL8_0_0BETA2:1.2
	REL7_2_5:1.2
	REL7_4_5:1.2
	REL7_3_7:1.2
	REL7_4_4:1.2
	REL8_0_0BETA1:1.2
	REL7_4_3:1.2
	REL7_4_2:1.2
	REL7_3_6:1.2
	REL7_4_1:1.2
	REL7_3_5:1.2
	REL7_4:1.2
	REL7_4_RC2:1.2
	REL7_4_STABLE:1.2.0.10
	REL7_4_RC1:1.2
	REL7_4_BETA5:1.2
	REL7_4_BETA4:1.2
	REL7_4_BETA3:1.2
	REL7_4_BETA2:1.2
	WIN32_DEV:1.2.0.8
	REL7_4_BETA1:1.2
	REL7_3_4:1.2
	REL7_3_2:1.2
	REL7_2_4:1.2
	REL7_3_STABLE:1.2.0.6
	REL7_2_3:1.2
	REL7_2_STABLE:1.2.0.4
	REL7_2:1.2
	REL7_2_RC2:1.2
	REL7_2_RC1:1.2
	REL7_2_BETA5:1.2
	REL7_2_BETA4:1.2
	REL7_2_BETA3:1.2
	REL7_2_BETA2:1.2
	REL7_2_BETA1:1.2
	REL7_1_2:1.2
	REL7_1_STABLE:1.2.0.2
	REL7_1_BETA:1.2
	REL7_1_BETA3:1.2
	REL7_1_BETA2:1.2
	REL7_1:1.2;
locks; strict;
comment	@# @;


1.10
date	2008.03.21.13.23.29;	author momjian;	state Exp;
branches;
next	1.9;

1.9
date	2006.07.19.15.06.06;	author momjian;	state Exp;
branches;
next	1.8;

1.8
date	2006.07.18.19.19.59;	author momjian;	state Exp;
branches;
next	1.7;

1.7
date	2006.07.17.19.37.21;	author momjian;	state Exp;
branches;
next	1.6;

1.6
date	2006.07.15.03.27.42;	author tgl;	state Exp;
branches;
next	1.5;

1.5
date	2006.07.11.19.52.12;	author momjian;	state Exp;
branches;
next	1.4;

1.4
date	2006.07.11.13.54.25;	author momjian;	state Exp;
branches;
next	1.3;

1.3
date	2006.07.10.17.13.34;	author momjian;	state Exp;
branches;
next	1.2;

1.2
date	2000.06.14.22.33.06;	author momjian;	state Exp;
branches;
next	1.1;

1.1
date	2000.06.14.22.28.16;	author momjian;	state Exp;
branches;
next	;


desc
@@


1.10
log
@More README src cleanups.
@
text
@$PostgreSQL: pgsql/src/backend/access/gin/README,v 1.5 2008/03/20 17:55:14 momjian Exp $

pginclude
=========

These utilities help clean up #include file usage.  They should be run
in this order so that the include files have the proper includes before
the C files are tested.

pgfixinclude	change #include's to <> or ""

pgcompinclude [-v]
		report which #include files can not compile on their own

pgrminclude [-v]
		remove extra #include's

pgcheckdefines
		check for #ifdef tests on symbols defined in files that
		weren't included --- this is a necessary sanity check on
		pgrminclude

pgdefine	create macro calls for all defines in the file (used by
		the above routines)

It is also a good idea to sort the pg-specific include files in
alphabetic order.  This is best done with a text editor. Typical usage
order would be:

	pgfixinclude
	sort include references
	run multiple times:
		pgcompinclude
		pgrminclude /src/include
	pgrminclude /
	pgcheckdefines

There is a complexity when modifying /src/include.  If include file 1
includes file 2, and file 2 includes file 3, then when file 1 is
processed, it needs only file 2, not file 3.  However, if later, include
file 2 is processed, and file 3 is not needed by file 2 and is removed,
file 1 might then need to include file 3.  For this reason, the
pgcompinclude and pgrminclude /src/include steps must be run several
times until all includes compile cleanly.

Also, tests should be done with configure settings of --enable-cassert
and EXEC_BACKEND on and off.  It is also wise to test a WIN32 compile.
@


1.9
log
@Add WIN32 compile suggestion to pginclude README.
@
text
@d1 5
@


1.8
log
@Add pginclude testing ideas.
@
text
@d42 1
a42 2
and EXEC_BACKEND on and off.

@


1.7
log
@Mention dependency problems caused by pgrminclude on include files.
@
text
@d41 3
@


1.6
log
@Create a tool to catch #include omissions that might not result in any
compiler warning, specifically #ifdef or #if defined tests on symbols
that are defined in a file not included.  The results are a bit noisy
and require care to interpret, but it's a lot better than no tool at all.
@
text
@d16 1
a16 1
		pgrminclude!
d25 5
a29 4
	pgfixinclude  
	pgcompinclude
	pgrminclude /src/include
	pgcompinclude
d32 9
@


1.5
log
@Update pginclude documentation.
@
text
@d13 5
d30 1
@


1.4
log
@Allow each C include file to compile on its own by including any needed
header files.
@
text
@d16 9
a24 2
It is also a good idea to sort the pg-specific include files in alphabetic
order.  This is best done with a text editor.
@


1.3
log
@Update usage documention for pginclude
@
text
@d16 2
a17 1

@


1.2
log
@Update include cleaning scripts.
@
text
@d1 3
a3 1
These utilities help clean up #include file usage:
d7 3
a12 3
pgcompinclude [-v]
		report which #include files can not compile on their own

@


1.1
log
@Update include scripts
@
text
@d4 6
a9 2
pgrminclude	remove extra #include's
pginclude [-v]	report which #include files can not compile on their own
@
