postgis/loader/Makefile.in
Mark Cave-Ayland 2ca77b8a4a Switch NLS build to use the in-built ENABLE_NLS define rather than USE_NLS.
The key concept here is that we eliminate all logic from the Makefile and put
it in the build system (e.g. configure). By having the logic at this higher
layer, we make it much easier to transition to another build system in future
such as CMake.

git-svn-id: http://svn.osgeo.org/postgis/trunk@8808 b70326c6-7e19-0410-871a-916f4a2858ee
2012-01-14 00:49:14 +00:00

152 lines
5 KiB
Makefile

# **********************************************************************
# *
# * PostGIS - Spatial Types for PostgreSQL
# * http://postgis.refractions.net
# * Copyright 2008 Mark Cave-Ayland
# *
# * This is free software; you can redistribute and/or modify it under
# * the terms of the GNU General Public Licence. See the COPYING file.
# *
# **********************************************************************
# PGXS information
#
# Note that PGXS currently doesn't handle building FE executables, but we need
# the DESTDIR variable so we can get the correct install paths.
# Hence we include the PGXS Makefile here, but ensure that we override the
# 'all' and 'install' targets with the ones we really want to use below.
PG_CONFIG = @PGCONFIG@
PGXS := @PGXS@
include $(PGXS)
# Set CFLAGS afer PGXS, otherwise it will get overwritten with the PGXS
# version which is not what we want.
CC=@CC@
CFLAGS=@CFLAGS@ @PICFLAGS@ @WARNFLAGS@ @PROJ_CPPFLAGS@
top_builddir = @top_builddir@
SHELL = @SHELL@
INSTALL = $(SHELL) ../install-sh
LIBTOOL = @LIBTOOL@
# Filenames with extension as determined by the OS
PGSQL2SHP-CLI=pgsql2shp@EXESUFFIX@
SHP2PGSQL-CLI=shp2pgsql@EXESUFFIX@
SHP2PGSQL-GUI=shp2pgsql-gui@EXESUFFIX@
# PostgreSQL frontend CPPFLAGS and LDFLAGS (for compiling and linking with libpq)
PGSQL_FE_CPPFLAGS=@PGSQL_FE_CPPFLAGS@
PGSQL_FE_LDFLAGS=@PGSQL_FE_LDFLAGS@
# iconv flags
ICONV_LDFLAGS=@ICONV_LDFLAGS@
ICONV_CFLAGS=@ICONV_CFLAGS@
# liblwgeom
LIBLWGEOM=../liblwgeom/liblwgeom.la
# GTK includes and libraries
GTK_CFLAGS = @GTK_CFLAGS@ @IGE_MAC_CFLAGS@
GTK_LIBS = @GTK_LIBS@ @IGE_MAC_LIBS@
GTK_WIN32_FLAGS = @GTK_WIN32_FLAGS@
GTK_WIN32_RES = @GTK_WIN32_RES@
# GetText includes and libraries
GETTEXT_CFLAGS = @GETTEXT_CFLAGS@
GETTEXT_LDFLAGS = @GETTEXT_LDFLAGS@ @LIBINTL@
LANGUAGES = fr
# Built out CFLAGS with ICONV and GETTEXT
CFLAGS += $(GETTEXT_CFLAGS) $(ICONV_CFLAGS)
# If REGRESS=1 passed as a parameter, change the default install paths
# so that no prefix is included. This allows us to relocate to a temporary
# directory for regression testing.
ifeq ($(REGRESS),1)
bindir=/bin
pkglibdir=/lib
datadir=/share
endif
# We test this variable later to see if we're building the GUI
gtk_build = @GTK_BUILD@
# The real parts of the Makefile
all: $(SHP2PGSQL-CLI) $(PGSQL2SHP-CLI) @GTK_BUILD@
gui: $(SHP2PGSQL-GUI) $(SHP2PGSQL-CLI) @GTK_WIN32_RES@
shp2pgsql-gui.res: shp2pgsql-gui.rc shp2pgsql-gui.ico
windres $< -O coff -o $@
# liblwgeom.a dependency to allow "make install" in
# the loader/ subdirectory to work
$(LIBLWGEOM):
make -C ../liblwgeom
shp2pgsql-core.o: shp2pgsql-core.c shp2pgsql-core.h shpcommon.h
$(CC) $(CFLAGS) -c $<
pgsql2shp-core.o: pgsql2shp-core.c pgsql2shp-core.h shpcommon.h
$(CC) $(CFLAGS) $(PGSQL_FE_CPPFLAGS) -c $<
pgsql2shp-cli.o: pgsql2shp-cli.c pgsql2shp-core.h shpcommon.h
$(CC) $(CFLAGS) $(PGSQL_FE_CPPFLAGS) -c $<
$(PGSQL2SHP-CLI): shpopen.o dbfopen.o getopt.o pgsql2shp-core.o shpcommon.o pgsql2shp-cli.o safileio.o $(LIBLWGEOM)
$(LIBTOOL) --mode=link $(CC) $(CFLAGS) $^ $(ICONV_LDFLAGS) $(PGSQL_FE_LDFLAGS) $(GETTEXT_LDFLAGS) -o $@
$(SHP2PGSQL-CLI): shpopen.o dbfopen.o getopt.o shp2pgsql-core.o shpcommon.o shp2pgsql-cli.o safileio.o $(LIBLWGEOM)
$(LIBTOOL) --mode=link $(CC) $(CFLAGS) $^ -o $@ $(GETTEXT_LDFLAGS) $(ICONV_LDFLAGS)
shp2pgsql-gui.o: shp2pgsql-gui.c shp2pgsql-core.h shpcommon.h
$(CC) $(CFLAGS) $(GTK_CFLAGS) $(PGSQL_FE_CPPFLAGS) -o $@ -c shp2pgsql-gui.c
$(SHP2PGSQL-GUI): shpopen.o dbfopen.o shp2pgsql-core.o shpcommon.o shp2pgsql-gui.o getopt.o safileio.o pgsql2shp-core.o $(LIBLWGEOM) $(GTK_WIN32_RES)
$(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(GTK_WIN32_FLAGS) $^ -o $@ $(GTK_LIBS) $(ICONV_LDFLAGS) $(PGSQL_FE_LDFLAGS) $(GETTEXT_LDFLAGS)
installdir:
@mkdir -p $(DESTDIR)$(bindir)
install: installdir
ifdef gtk_build
$(LIBTOOL) --mode=install $(INSTALL) $(SHP2PGSQL-GUI) "$(DESTDIR)$(bindir)/$(SHP2PGSQL-GUI)"
endif
$(LIBTOOL) --mode=install $(INSTALL) $(PGSQL2SHP-CLI) "$(DESTDIR)$(bindir)/$(PGSQL2SHP-CLI)"
$(LIBTOOL) --mode=install $(INSTALL) $(SHP2PGSQL-CLI) "$(DESTDIR)$(bindir)/$(SHP2PGSQL-CLI)"
uninstall:
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(bindir)/$(PGSQL2SHP-CLI)"
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(bindir)/$(SHP2PGSQL-CLI)"
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(bindir)/$(SHP2PGSQL-GUI)"
check:
ifdef gtk_build
make -C cunit check
endif
clean:
rm -rf .libs
rm -f *.o $(SHP2PGSQL-CLI) $(PGSQL2SHP-CLI) $(GTK_WIN32_RES) $(SHP2PGSQL-GUI)
$(MAKE) -C cunit clean
#
# Internationalization targets. These are going to need some work and
# love to land the files in the right places in all platforms.
#
pot:
xgettext -k_ shp2pgsql-core.c shp2pgsql-cli.c shp2pgsql-gui.c -o po/shp2pgsql.pot
xgettext -k_ pgsql2shp-core.c pgsql2shp-cli.c -o po/pgsql2shp.pot
mo:
for lang in $(LANGUAGES); do \
msgfmt -o po/shp2pgsql_$$lang.mo po/shp2pgsql_$$lang.po ; \
done
install-mo:
ifneq (,$(LANGUAGES))
for lang in $(LANGUAGES); do \
$(INSTALL_DATA) po/shp2pgsql_$$lang.mo '$(localedir)'/$$lang/LC_MESSAGES/shp2pgsql.mo || exit 1; \
done
endif