#------------------------------------------------------------------------- # # Makefile # Makefile for libpq library # # Copyright (c) 1994, Regents of the University of California # # # IDENTIFICATION # $Header: /cvsroot/pgsql/src/interfaces/libpq/Attic/Makefile.in,v 1.25 1998/07/26 04:31:35 scrappy Exp $ # #------------------------------------------------------------------------- SO_MAJOR_VERSION=1 SO_MINOR_VERSION=1 SRCDIR= ../.. include $(SRCDIR)/Makefile.global PORTNAME=@PORTNAME@ CFLAGS+=-DFRONTEND ifdef KRBVERS CFLAGS+= $(KRBFLAGS) endif ifdef MULTIBYTE CFLAGS+= $(MBFLAGS) endif OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \ dllist.o pqsignal.o ifdef MULTIBYTE OBJS+= common.o wchar.o conv.o endif # Shared library stuff shlib := install-shlib-dep := ifeq ($(PORTNAME), linux) install-shlib-dep := install-shlib shlib := libpq.so.$(SO_MAJOR_VERSION) LDFLAGS_SL = -shared -soname libpq.so.$(SO_MAJOR_VERSION) CFLAGS += $(CFLAGS_SL) endif ifeq ($(PORTNAME), bsd) ifdef BSD_SHLIB install-shlib-dep := install-shlib shlib := libpq.so.$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION) LDFLAGS_SL = -x -Bshareable -Bforcearchive CFLAGS += $(CFLAGS_SL) endif endif ifeq ($(PORTNAME), bsdi) ifdef BSD_SHLIB install-shlib-dep := install-shlib shlib := libpq.so.$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION) LD=shlicc LDFLAGS_SL = -r -O CFLAGS += $(CFLAGS_SL) endif endif ifeq ($(PORTNAME), solaris) install-shlib-dep := install-shlib shlib := libpq.so.$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION) LDFLAGS_SL = -G -z text CFLAGS += $(CFLAGS_SL) endif ifeq ($(PORTNAME), univel) install-shlib-dep := install-shlib shlib := libpq.so.1 LDFLAGS_SL = -G -z text CFLAGS += $(CFLAGS_SL) endif ifeq ($(PORTNAME), hpux) install-shlib-dep := install-shlib shlib := libpq.sl LDFLAGS_SL = -b CFLAGS += $(CFLAGS_SL) endif all: libpq.a $(shlib) 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 fe-lobj.o: $(SRCDIR)/backend/fmgr.h # We need to compile this with special options for shared libs, # so we can't use the object in $(SRCDIR)/backend dllist.c: $(SRCDIR)/backend/lib/dllist.c -ln -s $(SRCDIR)/backend/lib/dllist.c . ifdef MULTIBYTE # We need to compile this with special options for shared libs, # so we can't use the object in $(SRCDIR)/backend common.c: $(SRCDIR)/backend/utils/mb/common.c -ln -s $(SRCDIR)/backend/utils/mb/common.c . wchar.c: $(SRCDIR)/backend/utils/mb/wchar.c -ln -s $(SRCDIR)/backend/utils/mb/wchar.c . conv.c: $(SRCDIR)/backend/utils/mb/conv.c -ln -s $(SRCDIR)/backend/utils/mb/conv.c . endif # 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. $(SRCDIR)/backend/fmgr.h: $(MAKE) -C $(SRCDIR)/backend fmgr.h $(shlib): $(OBJS) $(LD) $(LDFLAGS_SL) -o $@ $(OBJS) ln -sf $@ libpq.so c.h: $(SRCDIR)/include/c.h rm -f c.h echo "#undef PORTNAME" > c.h echo "#define PORTNAME $(PORTNAME)" >> c.h cat $(SRCDIR)/include/c.h >> c.h .PHONY: beforeinstall-headers install-headers .PHONY: install install-libpq install-shlib-dep install: install-headers install-libpq $(install-shlib-dep) # Many of the headers we install below have nothing to do with libpq, # so should be installed by someone else. # install-headers: beforeinstall-headers c.h \ $(SRCDIR)/include/postgres.h $(SRCDIR)/include/postgres_ext.h \ $(SRCDIR)/include/config.h $(SRCDIR)/include/libpq/pqcomm.h \ $(SRCDIR)/include/libpq/libpq-fs.h $(SRCDIR)/include/lib/dllist.h \ $(SRCDIR)/include/utils/geo_decls.h libpq-fe.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/os.h \ $(HEADERDIR)/os.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/config.h \ $(HEADERDIR)/config.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/postgres.h \ $(HEADERDIR)/postgres.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/postgres_ext.h \ $(HEADERDIR)/postgres_ext.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/libpq/pqcomm.h \ $(HEADERDIR)/libpq/pqcomm.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/libpq/libpq-fs.h \ $(HEADERDIR)/libpq/libpq-fs.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/lib/dllist.h \ $(HEADERDIR)/lib/dllist.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/utils/geo_decls.h \ $(HEADERDIR)/utils/geo_decls.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/utils/elog.h \ $(HEADERDIR)/utils/elog.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/utils/palloc.h \ $(HEADERDIR)/utils/palloc.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/access/attnum.h \ $(HEADERDIR)/access/attnum.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/executor/spi.h \ $(HEADERDIR)/executor/spi.h $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/commands/trigger.h \ $(HEADERDIR)/commands/trigger.h $(INSTALL) $(INSTLOPTS) libpq-fe.h $(HEADERDIR)/libpq-fe.h ifeq ($(PORTNAME), hpux) $(INSTALL) $(INSTLOPTS) $(SRCDIR)/backend/port/hpux/fixade.h \ $(HEADERDIR)/port/hpux/fixade.h endif $(INSTALL) $(INSTLOPTS) c.h $(HEADERDIR)/c.h 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 @if [ ! -d $(HEADERDIR)/access ]; \ then mkdir $(HEADERDIR)/access; fi @if [ ! -d $(HEADERDIR)/executor ]; \ then mkdir $(HEADERDIR)/executor; fi @if [ ! -d $(HEADERDIR)/commands ]; \ then mkdir $(HEADERDIR)/commands; fi install-libpq: libpq.a $(INSTALL) $(INSTL_LIB_OPTS) libpq.a $(LIBDIR)/libpq.a install-shlib: $(shlib) $(INSTALL) $(INSTL_SHLIB_OPTS) $(shlib) $(LIBDIR)/$(shlib) rm -f $(LIBDIR)/libpq.so ln -s $(shlib) $(LIBDIR)/libpq.so depend dep: $(CC) -MM $(CFLAGS) *.c >depend .PHONY: clean clean: rm -f libpq.a $(shlib) $(OBJS) c.h dllist.c libpq.so ifeq (depend,$(wildcard depend)) include depend endif