Makefile 4.1 KB
Newer Older
1 2 3 4 5 6 7 8 9
#-------------------------------------------------------------------------
#
# Makefile
#    Makefile for libpq library
#
# Copyright (c) 1994, Regents of the University of California
#
#
# IDENTIFICATION
10
#    $Header: /cvsroot/pgsql/src/interfaces/libpq/Makefile,v 1.12 1996/11/04 06:32:59 bryanh Exp $
11 12 13
#
#-------------------------------------------------------------------------

14 15
SRCDIR= ..
include ../Makefile.global
16

17 18
# We need the backend directory here for its fmgr.h
INCLUDE_OPT= -I../include -I../backend
19

20
CFLAGS+= $(INCLUDE_OPT) -DPOSTPORT='"$(POSTPORT)"'
21

22 23 24 25 26
ifdef KRBVERS
CFLAGS+= $(KRBFLAGS)
endif

# dllist.c is found in backend/lib
27
VPATH:= $(VPATH):../backend/lib
28
 
29 30
OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-lobj.o \
         ../backend/lib/dllist.o pqsignal.o 
31
ifeq ($(PORTNAME), next)
32
VPATH:=$(VPATH):../backend/port/$(PORTNAME)
33
OBJS+= getcwd.o putenv.o
34 35
endif

36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
ifdef LINUX_ELF
shlib := libpq.so.1
else
shlib := 
endif

all: libpq.a $(shlib) postgres.h c.h

libpq.a: $(OBJS)
ifdef MK_NO_LORDER
	$(AR) $(AROPT) libpq.a $(OBJS) 
else
	$(AR) $(AROPT) libpq.a `lorder $(OBJS) | tsort`
endif
	$(RANLIB) libpq.a
51

52
fe-lobj.o:: ../backend/fmgr.h
53

54 55 56 57 58
# The following rules cause dependencies in the backend directory to 
# get made if they don't exist, but don't cause them to get remade if they
# are out of date.
../backend/fmgr.h:
	$(MAKE) -C ../backend fmgr.h
59 60 61 62

../backend/lib/dllist.o:
	$(MAKE) -C ../backend/lib dllist.o

63 64 65
libpq.so.1: $(OBJS)
	$(CC) $(LDFLAGS) -shared $(OBJS) -o libpq.so.1

66
postgres.h: ../include/postgres.h
67 68 69 70
# Note: ../backend/include/postgres.h needs to be named something different
# to avoid confusion with this thing we're building now.
#
# hardwire NAMEDATALEN and OIDNAMELEN into the postgres.h for this installation
71 72 73 74
	rm -f postgres.h
	echo "#define NAMEDATALEN $(NAMEDATALEN)" >> postgres.h
	echo "#define OIDNAMELEN $(OIDNAMELEN)" >> postgres.h
	cat ../include/postgres.h >> postgres.h
75
	
76 77 78 79 80
c.h: ../include/c.h
	rm -f c.h
	echo "#undef PORTNAME" >  c.h
	echo "#define PORTNAME $(PORTNAME)" >> c.h
	cat ../include/c.h >> c.h
81 82

.PHONY: beforeinstall-headers install-headers
83
.PHONY: install install-libpq install-shlib-dep 
84

85
install: install-headers install-libpq $(install-shlib-dep)
86

87 88 89 90
install-headers: beforeinstall-headers postgres.h c.h \
                 ../include/config.h ../include/libpq/pqcomm.h \
                 ../include/libpq/libpq-fs.h ../include/lib/dllist.h \
                 ../include/utils/geo-decls.h libpq.fe.h
91 92
	$(INSTALL) $(INSTLOPTS) ../include/config.h \
          $(HEADERDIR)/config.h
93 94 95 96 97
	$(INSTALL) $(INSTLOPTS) ../include/libpq/pqcomm.h \
          $(HEADERDIR)/libpq/pqcomm.h
	$(INSTALL) $(INSTLOPTS) ../include/libpq/libpq-fs.h \
          $(HEADERDIR)/libpq/libpq-fs.h
	$(INSTALL) $(INSTLOPTS) ../include/lib/dllist.h \
98
          $(HEADERDIR)/lib/dllist.h
99 100
	$(INSTALL) $(INSTLOPTS) ../include/utils/geo-decls.h \
          $(HEADERDIR)/utils/geo-decls.h
101
	$(INSTALL) $(INSTLOPTS) libpq-fe.h $(HEADERDIR)/libpq-fe.h
102 103 104 105
ifeq ($(PORTNAME), hpux)
	$(INSTALL) $(INSTLOPTS) ../backend/port/hpux/fixade.h \
          $(HEADERDIR)/port/hpux/fixade.h
endif
106 107
	$(INSTALL) $(INSTLOPTS) c.h $(HEADERDIR)/c.h
	$(INSTALL) $(INSTLOPTS) postgres.h $(HEADERDIR)/postgres.h
108

109 110 111 112 113 114 115 116 117 118 119 120 121
beforeinstall-headers:
	@if [ ! -d $(HEADERDIR) ]; then mkdir $(HEADERDIR); fi
	@if [ ! -d $(HEADERDIR)/port ]; then mkdir $(HEADERDIR)/port; fi
	@if [ ! -d $(HEADERDIR)/port/$(PORTNAME) ]; \
		then mkdir $(HEADERDIR)/port/$(PORTNAME); fi
	@if [ ! -d $(HEADERDIR)/include ]; \
		then mkdir $(HEADERDIR)/include; fi
	@if [ ! -d $(HEADERDIR)/lib ]; \
		then mkdir $(HEADERDIR)/lib; fi
	@if [ ! -d $(HEADERDIR)/libpq ]; \
		then mkdir $(HEADERDIR)/libpq; fi
	@if [ ! -d $(HEADERDIR)/utils ]; \
		then mkdir $(HEADERDIR)/utils; fi
122

123 124 125 126 127 128 129 130
ifdef LINUX_ELF
install-shlib-dep := install-shlib
else
install-shlib-dep :=
endif

install-libpq:
	$(INSTALL) $(INSTL_LIB_OPTS) libpq.a $(DESTDIR)$(LIBDIR)/libpq.a
131

132 133
install-shlib:
	$(INSTALL) $(INSTL_LIB_OPTS) libpq.so.1 $(DESTDIR)$(LIBDIR)/libpq.so.1
134

135 136
depend dep:
	$(CC) -MM $(INCLUDE_OPT) *.c >depend
137

138 139 140 141 142 143 144
.PHONY: clean
clean:
	rm -f libpq.a libpq.so.1 $(OBJS) c.h postgres.h

ifeq (depend,$(wildcard depend))
include depend
endif