OSDN Git Service

Split the LDFLAGS make variable into two parts: LDFLAGS is now used for
[pg-rex/syncrep.git] / src / bin / psql / Makefile
index 76f0dc7..8227b43 100644 (file)
@@ -2,53 +2,75 @@
 #
 # Makefile for src/bin/psql
 #
-# Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
+# Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/bin/psql/Makefile,v 1.38 2003/11/29 19:52:06 pgsql Exp $
+# $PostgreSQL: pgsql/src/bin/psql/Makefile,v 1.70 2010/07/05 18:54:38 tgl Exp $
 #
 #-------------------------------------------------------------------------
 
+PGFILEDESC = "psql - the PostgreSQL interactive terminal"
+PGAPPICON=win32
+
 subdir = src/bin/psql
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
 
 REFDOCDIR= $(top_srcdir)/doc/src/sgml/ref
 
-override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS) -DFRONTEND
+override CPPFLAGS := -I. -I$(srcdir) -I$(libpq_srcdir) -I$(top_srcdir)/src/bin/pg_dump $(CPPFLAGS)
 
 OBJS=  command.o common.o help.o input.o stringutils.o mainloop.o copy.o \
        startup.o prompt.o variables.o large_obj.o print.o describe.o \
-       tab-complete.o mbprint.o
+       tab-complete.o mbprint.o dumputils.o keywords.o kwlookup.o \
+       sql_help.o \
+       $(WIN32RES)
+
+FLEXFLAGS = -Cfe
+
 
 all: submake-libpq submake-libpgport psql
 
 psql: $(OBJS) $(libpq_builddir)/libpq.a
-       $(CC) $(CFLAGS) $(OBJS) $(libpq) $(LDFLAGS) $(LIBS) -o $@
+       $(CC) $(CFLAGS) $(OBJS) $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
+
+help.o: sql_help.h
+
+dumputils.c keywords.c: % : $(top_srcdir)/src/bin/pg_dump/%
+       rm -f $@ && $(LN_S) $< .
+
+kwlookup.c: % : $(top_srcdir)/src/backend/parser/%
+       rm -f $@ && $(LN_S) $< .
+
+sql_help.c: sql_help.h ;
+sql_help.h: create_help.pl $(wildcard $(REFDOCDIR)/*.sgml)
+       $(PERL) $< $(REFDOCDIR) $*
 
-help.o: $(srcdir)/sql_help.h
+# psqlscan is compiled as part of mainloop
+mainloop.o: psqlscan.c
 
-ifdef PERL
-$(srcdir)/sql_help.h: create_help.pl $(wildcard $(REFDOCDIR)/*.sgml)
-       $(PERL) $< $(REFDOCDIR) $@
+psqlscan.c: psqlscan.l
+ifdef FLEX
+       $(FLEX) $(FLEXFLAGS) -o'$@' $<
 else
-$(srcdir)/sql_help.h:
-       @echo "*** Perl is needed to build psql help."
+       @$(missing) flex $< $@
 endif
 
-distprep: $(srcdir)/sql_help.h
+distprep: sql_help.h psqlscan.c
 
 install: all installdirs
-       $(INSTALL_PROGRAM) psql$(X) $(DESTDIR)$(bindir)/psql$(X)
+       $(INSTALL_PROGRAM) psql$(X) '$(DESTDIR)$(bindir)/psql$(X)'
+       $(INSTALL_DATA) $(srcdir)/psqlrc.sample '$(DESTDIR)$(datadir)/psqlrc.sample'
 
 installdirs:
-       $(mkinstalldirs) $(DESTDIR)$(bindir)
+       $(MKDIR_P) '$(DESTDIR)$(bindir)'
 
 uninstall:
-       rm -f $(DESTDIR)$(bindir)/psql$(X)
+       rm -f '$(DESTDIR)$(bindir)/psql$(X)' '$(DESTDIR)$(datadir)/psqlrc.sample'
 
+# psqlscan.c is in the distribution tarball, so is not cleaned here
 clean distclean:
-       rm -f psql$(X) $(OBJS)
+       rm -f psql$(X) $(OBJS) dumputils.c keywords.c kwlookup.c
 
 maintainer-clean: distclean
-       rm -f $(srcdir)/sql_help.h
+       rm -f sql_help.h sql_help.c psqlscan.c