#------------------------------------------------------------------------- # # Makefile for src/bin/initdb # # Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group # Portions Copyright (c) 1994, Regents of the University of California # # src/bin/initdb/Makefile # #------------------------------------------------------------------------- PGFILEDESC = "initdb - initialize a new database cluster" PGAPPICON=win32 subdir = src/bin/initdb top_builddir = ../../.. include $(top_builddir)/src/Makefile.global override CPPFLAGS := -DFRONTEND -I$(libpq_srcdir) -I$(top_srcdir)/src/timezone $(CPPFLAGS) # note: we need libpq only because fe_utils does LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) # use system timezone data? ifneq (,$(with_system_tzdata)) override CPPFLAGS += '-DSYSTEMTZDIR="$(with_system_tzdata)"' endif OBJS= initdb.o findtimezone.o localtime.o encnames.o $(WIN32RES) all: initdb initdb: $(OBJS) | submake-libpq submake-libpgport submake-libpgfeutils $(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X) # We used to pull in all of libpq to get encnames.c, but that # exposes us to risks of version skew if we link to a shared library. # Do it the hard way, instead, so that we're statically linked. encnames.c: % : $(top_srcdir)/src/backend/utils/mb/% rm -f $@ && $(LN_S) $< . # Likewise, pull in localtime.c from src/timezones localtime.c: % : $(top_srcdir)/src/timezone/% rm -f $@ && $(LN_S) $< . install: all installdirs $(INSTALL_PROGRAM) initdb$(X) '$(DESTDIR)$(bindir)/initdb$(X)' installdirs: $(MKDIR_P) '$(DESTDIR)$(bindir)' uninstall: rm -f '$(DESTDIR)$(bindir)/initdb$(X)' clean distclean maintainer-clean: rm -f initdb$(X) $(OBJS) encnames.c localtime.c rm -rf tmp_check # ensure that changes in datadir propagate into object file initdb.o: initdb.c $(top_builddir)/src/Makefile.global check: $(prove_check) installcheck: $(prove_installcheck)