postgresql/src/timezone/Makefile

88 lines
2.2 KiB
Makefile

#-------------------------------------------------------------------------
#
# Makefile
# Makefile for the timezone library
# IDENTIFICATION
# src/timezone/Makefile
#
#-------------------------------------------------------------------------
PGFILEDESC = "zic - time zone compiler"
PGAPPICON = win32
subdir = src/timezone
top_builddir = ../..
include $(top_builddir)/src/Makefile.global
# files to build into backend
OBJS = \
localtime.o \
pgtz.o \
strftime.o
# files needed to build zic utility program
ZICOBJS = \
$(WIN32RES) \
zic.o
# we now distribute the timezone data as a single file
TZDATAFILES = $(srcdir)/data/tzdata.zi
# which zone should determine the DST rules (not the specific UTC offset!)
# for POSIX-style timezone specs
POSIXRULES = US/Eastern
# any custom options you might want to pass to zic while installing data files
ZIC_OPTIONS =
# use system timezone data?
ifneq (,$(with_system_tzdata))
override CPPFLAGS += '-DSYSTEMTZDIR="$(with_system_tzdata)"'
endif
include $(top_srcdir)/src/backend/common.mk
ifeq (,$(with_system_tzdata))
all: zic
endif
# We could do this test in the action section:
# $(if $(ZIC),$(ZIC),./zic)
# but GNU make versions <= 3.78.1 or perhaps later have a bug
# that causes a segfault; GNU make 3.81 or later fixes this.
ifeq (,$(ZIC))
ZIC= ./zic
endif
# zic.c doesn't compile cleanly with our default
# -Wimplicit-fallthrough=4, and we don't want to touch the file since
# it's third-party code, so downgrade to 3 for that file.
zic.o: CFLAGS := $(subst -Wimplicit-fallthrough=4,-Wimplicit-fallthrough=3,$(CFLAGS))
zic: $(ZICOBJS) | submake-libpgport
$(CC) $(CFLAGS) $(ZICOBJS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
install: all installdirs
ifeq (,$(with_system_tzdata))
$(ZIC) -d '$(DESTDIR)$(datadir)/timezone' -p '$(POSIXRULES)' -b slim $(ZIC_OPTIONS) $(TZDATAFILES)
endif
$(MAKE) -C tznames $@
abbrevs.txt: zic $(TZDATAFILES)
mkdir junkdir
$(ZIC) -P -d junkdir -p '$(POSIXRULES)' $(TZDATAFILES) | LANG=C sort | uniq >abbrevs.txt
rm -rf junkdir
installdirs:
$(MKDIR_P) '$(DESTDIR)$(datadir)'
uninstall:
ifeq (,$(with_system_tzdata))
rm -rf '$(DESTDIR)$(datadir)/timezone'
endif
$(MAKE) -C tznames $@
clean distclean maintainer-clean:
rm -f zic$(X) $(ZICOBJS) abbrevs.txt