Forum OpenACS Q&A: PostgreSQL Driver installation problem

Since I couldn't get the RPMs working, I tried to install OpenACS
using source code. Now, I've got a problem with installing PostgreSQL
driver. I've downloaded the tarball, and changed the Makefile a little
and when I 'make' it gives me this error:

gcc -DFOR_ACS_USE -DBIND_EMULATION -I/home/aolserver/include
-I/usr/include/postgresql
-I/home/aolserver/include -D_REENTRANT=1 -DNDEBUG=1 -g -fPIC -Wall
-Wno-unused -mcpu=i686 -DHAVE_CMMSG=1 -DUSE_FIONREAD=1
-DHAVE_COND_EINTR=1   -c -o postgres.o postgres.c
postgres.c:45: libpq-fe.h: No such file or directory
make: *** [postgres.o] Error 1

This file that they are talking about(libpq-fe.h) is located at 
/usr/local/pgsql/include.

This is my makefile:

# Copyright 1994-1996 America Online, Inc.

#
# Makefile for postgres.so module.
#
# -DFOR_ACS_USE required for OpenACS use!

# To have the AOLserver load the postgres.so module at runtime, you will
need
# to add the following entry in the [nsservergodzillamodules] section
of your
# nsd.ini file (where 'godzilla' is the name of a virtual server):
#
#
postgres=postgres.so
#
# 12/13/1999 Lamar Owen 
#  - Cleaned up assumptions about NSHOME, PGLIB, and PGINC locations.
#  - Added a commented-out block showing settings for RedHat Linux with
#    the PostgreSQL RPM's installed.
#
# 2000-02-12 John Beimler 
#  - Added a commented-out block showing settings for Debian/GNU Linux
with
#    package installed AOLserver and PostgreSQL
#
# 2001-08-21 Roberto Mello (rmello@fslc.usu.edu)
#  - Cleaned up the Makefile to conform to AOLserver module makefiles.
#  - Added PGLOC section. But this should really be done with
autoconf/automake

ifdef INST
    NSHOME ?= $(INST)
else
    NSHOME ?= /home/aolserver
endif

PGLOC=$(shell if [ -d "/usr/local/pgsql" ]; then echo "source" else echo
"standard"; fi)
ifeq ($(PGLOC),source)
    # Location of the PostgreSQL libraries
    PGLIB=/usr/local/pgsql/lib
    # Location of the PostgreSQL includes
    PGINC=/usr/local/pgsql/include
else
    # Locations on a LSB-compliant distribution
    PGLIB=/usr/lib
    PGINC=/usr/include/postgresql
endif

#
# Module name
#
MOD      =  postgres.so

#
# Objects to build
#
OBJS     =  postgres.o

#
# Header files in THIS directory (included with your module)
#
HDRS     =

#
# Extra libraries required by your module (-L and -l go here)
#
MODLIBS  = -lpq

#
# Compiler flags required by your module (-I for external headers goes
here)
#
CFLAGS   =  -DFOR_ACS_USE -DBIND_EMULATION -I$(NSHOME)/include -I$(PGINC)

include  $(NSHOME)/include/Makefile.module


My aolserver is located in '/home/aolserver' and my postgres is
located at '/usr/local/pgsql'.

There was a similar posting for this problem a while back, and
apparently commented something out did the trick. Could someone please
tell me what's wrong.

Thanks.

James

Collapse
Posted by Jonathan Ellis on
-I tells the C compiler where to look for include files.  just looking at the gcc output, your makefile is telling it to look in /usr/include/postgresql.  change that to /usr/local/pgsql/include/.