1
#-------------------------------------------------------------------------
4
# Makefile for the port-specific subsystem of the backend
6
# These files are used in other directories for portability on systems
7
# with broken/missing library files, and for common code sharing.
9
# This makefile generates two outputs:
11
# libpgport.a - contains object files with FRONTEND defined,
12
# for use by client application and libraries
14
# libpgport_srv.a - contains object files without FRONTEND defined,
15
# for use only by the backend binaries
18
# $PostgreSQL: pgsql/src/port/Makefile,v 1.21 2004-10-27 11:51:40 neilc Exp $
20
#-------------------------------------------------------------------------
24
include $(top_builddir)/src/Makefile.global
26
override CPPFLAGS := -I$(top_builddir)/src/port -DFRONTEND $(CPPFLAGS)
27
LIBS += $(PTHREAD_LIBS)
29
# Replace object files that use FRONTEND define
30
LIBOBJS_SRV := $(LIBOBJS)
31
LIBOBJS_SRV := $(patsubst dirmod.o,dirmod_srv.o, $(LIBOBJS_SRV))
32
LIBOBJS_SRV := $(patsubst exec.o,exec_srv.o, $(LIBOBJS_SRV))
33
LIBOBJS_SRV := $(patsubst getaddrinfo.o,getaddrinfo_srv.o, $(LIBOBJS_SRV))
34
LIBOBJS_SRV := $(patsubst thread.o,thread_srv.o, $(LIBOBJS_SRV))
36
all: libpgport.a libpgport_srv.a
38
# libpgport is needed by some contrib
40
$(INSTALL_STLIB) libpgport.a $(DESTDIR)$(libdir)
43
$(RM) $(DESTDIR)$(libdir)/libpgport.a
45
libpgport.a: $(LIBOBJS)
49
$(CC) $(CFLAGS) $(CPPFLAGS) $(PTHREAD_CFLAGS) -c $<
51
path.o: path.c pg_config_paths.h
54
# Server versions of object files
57
libpgport_srv.a: $(LIBOBJS_SRV)
60
dirmod_srv.o: dirmod.c
61
$(CC) $(CFLAGS) $(subst -DFRONTEND,, $(CPPFLAGS)) -c $< -o $@
64
$(CC) $(CFLAGS) $(subst -DFRONTEND,, $(CPPFLAGS)) -c $< -o $@
66
getaddrinfo_srv.o: getaddrinfo.c
67
$(CC) $(CFLAGS) $(subst -DFRONTEND,, $(CPPFLAGS)) -c $< -o $@
69
# No thread flags for server version
70
thread_srv.o: thread.c
71
$(CC) $(CFLAGS) $(subst -DFRONTEND,, $(CPPFLAGS)) -c $< -o $@
73
# Dependency is to ensure that path changes propagate
74
pg_config_paths.h: $(top_builddir)/src/Makefile.global
75
echo "#define PGBINDIR \"$(bindir)\"" >$@
76
echo "#define PGSHAREDIR \"$(datadir)\"" >>$@
77
echo "#define SYSCONFDIR \"$(sysconfdir)\"" >>$@
78
echo "#define INCLUDEDIR \"$(includedir)\"" >>$@
79
echo "#define PKGINCLUDEDIR \"$(pkgincludedir)\"" >>$@
80
echo "#define INCLUDEDIRSERVER \"$(includedir_server)\"" >>$@
81
echo "#define LIBDIR \"$(libdir)\"" >>$@
82
echo "#define PKGLIBDIR \"$(pkglibdir)\"" >>$@
83
echo "#define LOCALEDIR \"$(localedir)\"" >>$@
85
clean distclean maintainer-clean:
86
rm -f libpgport.a libpgport_srv.a $(LIBOBJS) $(LIBOBJS_SRV) pg_config_paths.h