I'm writing additional C functions to extend PostgreSQL 7.2.1 on Red Hat Linux 7.3, a process whose details are apparently not well documented.

I've got my first function written, using the functions in the source file numeric.c as a model. I tried compiling it using the advice offered by Bruce Momjian in his book (highly recommended), PostgreSQL: Introduction and Concepts:

The next step is to compile the C file into an object file that contains CPU instructions. As part of this step, you must create a special object file that can be dynamically linked  into the POSTGRESQL server. Many operating systems require special flags to create an object file that can be dynamically linked. The best way to find the required flags is to go to pgsql/src/test/regress and type make clean and then make regress.so. 24.1 This command will display the compile commands used to generate the dynamically linkable object file regress.so. The -I compile flags allow searching for include files. Other flags are used for generating dynamic object files; use them to compile your C code into a dynamically linkable object file. You may need to consult your operating system documentation for assistance in locating the proper flags.


This is where I'm stumped. make clean yields the error message "GNUmakefile:16: ../../../src/Makefile.global: No such file or directory". I then tried renaming the file Makefile.global.in to Makefile.global and running make clean again. This got a little farther but resulted in the message "../../../src/Makefile.global:269: ../../../src/Makefile.port: No such file or directory". I can't find a Makefile.port file anywhere. Any idea what I'm doing wrong?

Thanks in advance for your guidance.