Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

README

Blame
  • README 2.41 KiB
    $PostgreSQL: pgsql/src/tools/pgindent/README,v 1.41 2010/07/06 19:18:19 momjian Exp $
    
    pgindent
    ========
    
    This can format all PostgreSQL *.c and *.h files, but excludes *.y, and
    *.l files. 
    
    1) Change directory to the top of the build tree.
    
    2) Download the typedef file from the buildfarm:
    
    	wget -O src/tools/pgindent/typedefs.list http://www.pgbuildfarm.org/cgi-bin/typedefs.pl
    
    3) Remove all derived files (pgindent has trouble with one of the flex macros):
    
    	gmake maintainer-clean
    
    4) Run pgindent:
    
    	find . -name '*.[ch]' -type f -print | \
    	egrep -v -f src/tools/pgindent/exclude_file_patterns | \
    	xargs -n100 pgindent src/tools/pgindent/typedefs.list
    
    5) Remove any files that generate errors and restore their original versions.
    
    6) Do a full test build:
    
    	run configure
    	gmake -C src install
    	gmake -C contrib install
    	gmake installcheck-world
    
    
    ---------------------------------------------------------------------------
    
    We have standardized on NetBSD's indent.  We have fixed a few bugs which 
    requre the NetBSD source to be patched with indent.bsd.patch patch.  A 
    fully patched version is available at ftp://ftp.postgresql.org/pub/dev.
    
    GNU indent, version 2.2.6, has several problems, and is not recommended.
    These bugs become pretty major when you are doing >500k lines of code.
    If you don't believe me, take a directory and make a copy.  Run pgindent
    on the copy using GNU indent, and do a diff -r. You will see what I
    mean. GNU indent does some things better, but mangles too.
    
    Notes about excluded files:
    
    src/include/storage/s_lock.h is excluded because it contains assembly code
    that pgindent tends to mess up.
    
    src/include/snowball/libstemmer/ and src/backend/snowball/libstemmer/
    are excluded because those files are imported from an external project,
    not maintained locally, and are machine-generated anyway.
    
    src/interfaces/ecpg/test/expected/ is excluded to avoid breaking the ecpg
    regression tests.  Several *.h files are included in regression output so
    should not be changed.
    
    ---------------------------------------------------------------------------
    
    Obsolete typedef list creation instructions:
    --------------------------------------------
    
    To use pgindent:
    
    1) Build the source tree with _debug_ symbols and all possible configure options
    
    2) Install to /usr/local/pgsql
    
    3) Install all contrib modules
    
    4) Save a list of typedefs by running:
    
    	src/tools/find_typedef /usr/local/pgsql/bin /usr/local/pgsql/lib > /tmp/pgtypedefs