aboutsummaryrefslogtreecommitdiff
path: root/doc/FAQ_DEV
diff options
context:
space:
mode:
Diffstat (limited to 'doc/FAQ_DEV')
-rw-r--r--doc/FAQ_DEV46
1 files changed, 43 insertions, 3 deletions
diff --git a/doc/FAQ_DEV b/doc/FAQ_DEV
index c1f7dcda1ea..c66c3fb64cc 100644
--- a/doc/FAQ_DEV
+++ b/doc/FAQ_DEV
@@ -1,12 +1,12 @@
Developer's Frequently Asked Questions (FAQ) for PostgreSQL
- Last updated: Mon Feb 22 17:15:06 EST 1999
+ Last updated: Sat Jul 10 00:38:09 EDT 1999
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
The most recent version of this document can be viewed at the
- postgreSQL Web site, http://postgreSQL.org.
+ postgreSQL Web site, http://PostgreSQL.org.
_________________________________________________________________
Questions
@@ -24,6 +24,8 @@
9) How do I efficiently access information in tables from the backend
code?
10) What is elog()?
+ 11) What is configure all about?
+ 12) How do I add a new port?
_________________________________________________________________
1) What tools are available for developers?
@@ -294,7 +296,7 @@ s
While scans automatically lock/unlock rows from the buffer cache, with
heap_fetch(), you must pass a Buffer pointer, and ReleaseBuffer() it
when completed. Once you have the row, you can get data that is common
- to all tuples, like t_self and t_oid, by mererly accessing the
+ to all tuples, like t_self and t_oid, by merely accessing the
HeapTuple structure entries. If you need a table-specific column, you
should take the HeapTuple pointer, and use the GETSTRUCT() macro to
access the table-specific start of the tuple. You then cast the
@@ -324,3 +326,41 @@ s
current query, never returning from the call. FATAL terminates the
backend process. The remaining parameters of elog are a printf-style
set of parameters to print.
+
+ 11) What is configure all about?
+
+ The files configure and configure.in are part of the GNU autoconf
+ package. Configure allows us to test for various capabilities of the
+ OS, and to set variables that can then be tested in C programs and
+ Makefiles. Autoconf is installed on the PostgreSQL main server. To add
+ options to configure, edit configure.in, and then run autoconf to
+ generate configure.
+
+ When configure is run by the user, it tests various OS capabilities,
+ stores those in config.status and config.cache, and modifies a list of
+ *.in files. For example, if there exists a Makefile.in, configure
+ generates a Makefile that contains substitutions for all @var@
+ parameters found by configure.
+
+ When you need to edit files, make sure you don't waste time modifying
+ files generated by configure. Edit the *.in file, and re-run configure
+ to recreate the needed file. If you run make distclean from the
+ top-level source directory, all files derived by configure are
+ removed, so you see only the file contained in the source
+ distribution.
+
+ 12) How do I add a new port?
+
+ There are a variety of places that need to be modified to add a new
+ port. First, start in the src/template directory. Add an appropriate
+ entry for your OS. Also, use src/config.guess to add your OS to
+ src/template/.similar. You shouldn't match the OS version exactly. The
+ configure test will look for an exact OS version number, and if not
+ found, find a match without version number. Edit src/configure.in to
+ add your new OS. (See configure item above.) You will need to run
+ autoconf, or patch src/configure too.
+
+ Then, check src/include/port and add your new OS file, with
+ appropriate values. Hopefully, there is already locking code in
+ src/include/storage/s_lock.h for your CPU. There is a backend/port
+ directory if you need special files for your OS.