From 5a481580e00892008e456a87e6eb1031079b6096 Mon Sep 17 00:00:00 2001 From: Dave Page Date: Fri, 13 May 2005 11:24:34 +0000 Subject: [PATCH] Add Mac OSX support [Florian G. Pflug] git-svn-id: svn://svn.pgadmin.org/branches/REL-1_2_0_PATCHES@4182 a7884b65-44f6-0310-8a51-81a127f17b15 --- Makefile.am | 9 +- acinclude.m4 | 74 ++++++++++-- configure.ac | 6 +- pkg/mac/Info-Debug.plist | 24 ++++ pkg/mac/Info.plist | 24 ++++ pkg/mac/Makefile | 226 +++++++++++++++++++++++++++++++++++++ pkg/mac/Makefile.am | 20 ++++ pkg/mac/Makefile.in | 226 +++++++++++++++++++++++++++++++++++++ pkg/mac/PgAdminIII.icns | Bin 0 -> 43961 bytes pkg/mac/PkgInfo | 1 + pkg/mac/complete-bundle.sh | 51 +++++++++ pkg/mac/debug-bundle.sh | 19 ++++ pkg/mac/pgadmin3.icns | Bin 0 -> 43843 bytes src/Makefile.am | 26 ++++- src/pgAdmin3.cpp | 33 +++++- src/ui/frmMain.cpp | 3 + 16 files changed, 726 insertions(+), 16 deletions(-) create mode 100644 pkg/mac/Info-Debug.plist create mode 100644 pkg/mac/Info.plist create mode 100644 pkg/mac/Makefile create mode 100644 pkg/mac/Makefile.am create mode 100644 pkg/mac/Makefile.in create mode 100644 pkg/mac/PgAdminIII.icns create mode 100644 pkg/mac/PkgInfo create mode 100644 pkg/mac/complete-bundle.sh create mode 100644 pkg/mac/debug-bundle.sh create mode 100644 pkg/mac/pgadmin3.icns diff --git a/Makefile.am b/Makefile.am index efcf8ea7bc..fedcc33bba 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,7 +3,7 @@ # This software is released under the Artistic Licence # # Makefile - Makefile for *nix systems -SUBDIRS = src +SUBDIRS = src pkg EXTRA_DIST = \ README.txt \ BUGS.txt \ @@ -35,7 +35,7 @@ EXTRA_DIST = \ pkg/win32/licence.rtf \ pkg/win32/pgadmin3.wsi -nobase_dist_pkgdata_DATA = \ +TMP_docs = \ docs/en_US/pg/*.html \ docs/en_US/pg/*.css \ docs/en_US/images/*.png \ @@ -44,3 +44,8 @@ nobase_dist_pkgdata_DATA = \ docs/en_US/pgadmin3.hh* \ docs/en_US/tips.txt +if !APPBUNDLE +nobase_dist_pkgdata_DATA = $(TMP_docs) +else +nobase_dist_data_DATA = $(TMP_docs) +endif diff --git a/acinclude.m4 b/acinclude.m4 index c3eb099fc0..809495ce47 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -53,6 +53,7 @@ CFLAGS="-Wall -g -O0" CXXFLAGS="-Wall -g -O0"], [pg_debug_build=no]) ]) +AC_SUBST(pg_debug_build) ############################ # Static build of pgAdmin3 # @@ -64,6 +65,22 @@ AC_DEFUN([ENABLE_STATIC], [pg_static_build=no]) ]) +############################ +# Build an pgAdmin III.app # +############################ +AC_DEFUN([ENABLE_APPBUNDLE], +[AC_ARG_ENABLE(appbundle, +[ --enable-appbundle Build pgAdmin3.app], +[pg_appbundle=yes +prefix=$(pwd)/tmp +bundledir="$(pwd)/pgAdmin3.app" +bindir="$bundledir/Contents/MacOS" +datadir="$bundledir/Contents/SharedSupport" +AC_SUBST(bundledir) +], +[pg_appbundle=no]) +]) + ######################################## # Check for PostgreSQL library (libpq) # ######################################## @@ -115,7 +132,18 @@ then AC_LANG_SAVE AC_LANG_C AC_CHECK_LIB(pq, PQexec, [pgsql_cv_libpq=yes], [pgsql_cv_libpq=no]) - AC_CHECK_LIB(pq, SSL_connect, [pgsql_ssl_libpq=yes], [pgsql_ssl_libpq=no]) + if test "$build_cpu-$build_vendor" = "powerpc-apple"; then + echo -n "Checking if libpq links against libssl: " + if test "$(otool -L ${LIBPQ_HOME}/lib/libpq.?.dylib | grep -c libssl)" -gt 0 + then + pgsql_ssl_libpq="yes" + else + pgsql_ssl_libpq="no" + fi + echo $pgsql_ssl_libpq + else + AC_CHECK_LIB(pq, SSL_connect, [pgsql_ssl_libpq=yes], [pgsql_ssl_libpq=no]) + fi AC_LANG_RESTORE if test "$pgsql_include" != "" @@ -127,11 +155,18 @@ then if test "$pg_static_build" = "yes" then + if test "$build_cpu-$build_vendor" = "powerpc-apple" + then + CRYPT_LIB="" + else + CRYPT_LIB="-lcrypt" + fi + if test "$pgsql_ssl_libpq" = "yes" then - LIBS="${LIBPQ_HOME}/lib/libpq.a -lcrypt $LIBS -lssl -lcrypto" + LIBS="${LIBPQ_HOME}/lib/libpq.a $CRYPT_LIB $LIBS -lssl -lcrypto" else - LIBS="${LIBPQ_HOME}/lib/libpq.a -lcrypt $LIBS -lcrypto" + LIBS="${LIBPQ_HOME}/lib/libpq.a $CRYPT_LIB $LIBS -lcrypto" fi else if test "$pgsql_ssl_libpq" = "yes" @@ -184,10 +219,10 @@ else fi], [ AC_MSG_RESULT(yes) WX_HOME=/usr/local/wx2 - if test ! -f "${WX_HOME}/include/wx-2.5/wx/wx.h" + if test ! -f "${WX_HOME}/include/wx-2.5/wx/wx.h" -a ! -f "${WX_HOME}/include/wx-2.6/wx/wx.h" then WX_HOME=/usr/local - if test ! -f "${WX_HOME}/include/wx-2.5/wx/wx.h" + if test ! -f "${WX_HOME}/include/wx-2.5/wx/wx.h" -a ! -f "${WX_HOME}/include/wx-2.6/wx/wx.h" then WX_HOME=/usr fi @@ -237,12 +272,12 @@ then # Which version of wxWindows is this? WX_VERSION=`${WX_CONFIG} --version` case "${WX_VERSION}" in + 2.6*) + WX_VERSION="2.6" + ;; 2.5*) WX_VERSION="2.5" ;; - 2.4*) - WX_VERSION="2.4" - ;; *) ;; esac @@ -295,6 +330,14 @@ then LIBS="$LIBS ${WX_HOME}/lib/libwx_mac_stc-${WX_VERSION}.a" LIBS="$LIBS $WX_NEW_LDFLAGS" ;; + *libwx_macu-*) + LIBS="$LIBS ${WX_HOME}/lib/libwx_macu_stc-${WX_VERSION}.a ${WX_HOME}/lib/libwx_macu_ogl-${WX_VERSION}.a" + LIBS="$LIBS $WX_NEW_LDFLAGS" + ;; + *libwx_macu_core*) + LIBS="$LIBS ${WX_HOME}/lib/libwx_macu_stc-${WX_VERSION}.a ${WX_HOME}/lib/libwx_macu_ogl-${WX_VERSION}.a" + LIBS="$LIBS $WX_NEW_LDFLAGS" + ;; *libwx_gtk2ud-*) LIBS="$LIBS ${WX_HOME}/lib/libwx_gtk2ud_stc-${WX_VERSION}.a" LIBS="$LIBS $WX_NEW_LDFLAGS" @@ -392,6 +435,14 @@ then LIBS="$LIBS -lwx_mac_stc-${WX_VERSION}" LIBS="$LIBS $WX_NEW_LDFLAGS" ;; + *wx_macu-*) + LIBS="$LIBS -lwx_macu_stc-${WX_VERSION} -lwx_macu_ogl-${WX_VERSION}" + LIBS="$LIBS $WX_NEW_LDFLAGS" + ;; + *wx_macu_core*) + LIBS="$LIBS -lwx_macu_stc-${WX_VERSION} -lwx_macu_ogl-${WX_VERSION}" + LIBS="$LIBS $WX_NEW_LDFLAGS" + ;; *wx_gtk2ud-*) LIBS="$LIBS -lwx_gtk2ud_stc-${WX_VERSION}" LIBS="$LIBS $WX_NEW_LDFLAGS" @@ -450,7 +501,7 @@ then fi WX_NEW_CPPFLAGS=`${WX_CONFIG} --cxxflags` - CPPFLAGS="$CPPFLAGS $WX_NEW_CPPFLAGS -I${WX_HOME}/include/wx-2.5" + CPPFLAGS="$CPPFLAGS $WX_NEW_CPPFLAGS -I${WX_HOME}/include/wx-${WX_VERSION}" case "${host}" in *-apple-darwin*) CPPFLAGS="$CPPFLAGS -no-cpp-precomp -fno-rtti" @@ -459,11 +510,11 @@ then ;; esac wx_wx_h="yes" - if test ! -f "${WX_HOME}/include/wx-2.5/wx/version.h" + if test ! -f "${WX_HOME}/include/wx-${WX_VERSION}/wx/version.h" then wx_wx_h="no" fi - if test ! -f "${WX_HOME}/include/wx-2.5/wx/stc/stc.h" + if test ! -f "${WX_HOME}/include/wx-${WX_VERSION}/wx/stc/stc.h" then AC_MSG_ERROR([you need to install the stc package from wxWindows/contrib/src/stc]) wx_wx_h="no" @@ -481,3 +532,4 @@ then fi fi ]) +AC_SUBST(WX_CONFIG) diff --git a/configure.ac b/configure.ac index cf759e0e2b..458011c459 100644 --- a/configure.ac +++ b/configure.ac @@ -30,6 +30,8 @@ AC_FUNC_STRTOD AC_CHECK_FUNCS([gethostbyname inet_ntoa memmove memset strchr]) # Custom checks +ENABLE_APPBUNDLE +AM_CONDITIONAL([APPBUNDLE], [test x$pg_appbundle = xyes]) CHECK_WX_CONFIG_BINARY CHECK_PGSQL_INCLUDE ENABLE_DEBUG @@ -38,5 +40,7 @@ CHECK_PGSQL CHECK_WXWINDOWS AC_CONFIG_FILES([Makefile - src/Makefile]) + src/Makefile + pkg/Makefile + pkg/mac/Makefile]) AC_OUTPUT diff --git a/pkg/mac/Info-Debug.plist b/pkg/mac/Info-Debug.plist new file mode 100644 index 0000000000..a60cae1032 --- /dev/null +++ b/pkg/mac/Info-Debug.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + pgAdmin3-Debug + CFBundleIdentifier + org.postgresql.pgadmin3 + CFBundleInfoDictionaryVersion + 1.2 + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 0.1 + CFBundleIconFile + pgAdmin3-Debug.icns + CSResourcesFileMapped + + + diff --git a/pkg/mac/Info.plist b/pkg/mac/Info.plist new file mode 100644 index 0000000000..6e19e2f06d --- /dev/null +++ b/pkg/mac/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + pgAdmin3 + CFBundleIdentifier + org.postgresql.pgadmin3 + CFBundleInfoDictionaryVersion + 1.2 + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 0.1 + CFBundleIconFile + pgAdmin3.icns + CSResourcesFileMapped + + + diff --git a/pkg/mac/Makefile b/pkg/mac/Makefile new file mode 100644 index 0000000000..0019830d8b --- /dev/null +++ b/pkg/mac/Makefile @@ -0,0 +1,226 @@ +# Makefile.in generated by automake 1.6.3 from Makefile.am. +# pkg/mac/Makefile. Generated from Makefile.in by configure. + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + +# pgAdmin III - PostgreSQL Tools +# Copyright (C) 2002 - 2005, The pgAdmin Development Team +# This software is released under the Artistic Licence +# +# Makefile - Makefile for *nix systems +SHELL = /bin/sh + +srcdir = . +top_srcdir = ../.. + +prefix = /Users/pgadmin3/BuildRoots/pgadmin3-1.2/tmp +exec_prefix = ${prefix} + +bindir = /Users/pgadmin3/BuildRoots/pgadmin3-1.2/pgAdmin3.app/Contents/MacOS +sbindir = ${exec_prefix}/sbin +libexecdir = ${exec_prefix}/libexec +datadir = /Users/pgadmin3/BuildRoots/pgadmin3-1.2/pgAdmin3.app/Contents/SharedSupport +sysconfdir = ${prefix}/etc +sharedstatedir = ${prefix}/com +localstatedir = ${prefix}/var +libdir = ${exec_prefix}/lib +infodir = ${prefix}/info +mandir = ${prefix}/man +includedir = ${prefix}/include +oldincludedir = /usr/include +pkgdatadir = $(datadir)/pgadmin3 +pkglibdir = $(libdir)/pgadmin3 +pkgincludedir = $(includedir)/pgadmin3 +top_builddir = ../.. + +ACLOCAL = ${SHELL} /Users/pgadmin3/BuildRoots/pgadmin3-1.2/config/missing --run aclocal-1.6 +AUTOCONF = ${SHELL} /Users/pgadmin3/BuildRoots/pgadmin3-1.2/config/missing --run autoconf +AUTOMAKE = ${SHELL} /Users/pgadmin3/BuildRoots/pgadmin3-1.2/config/missing --run automake-1.6 +AUTOHEADER = ${SHELL} /Users/pgadmin3/BuildRoots/pgadmin3-1.2/config/missing --run autoheader + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = /usr/bin/install -c +INSTALL_PROGRAM = ${INSTALL} +INSTALL_DATA = ${INSTALL} -m 644 +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_SCRIPT = ${INSTALL} +INSTALL_HEADER = $(INSTALL_DATA) +transform = s,x,x, +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = +host_triplet = powerpc-apple-darwin7.9.0 + +EXEEXT = +OBJEXT = o +PATH_SEPARATOR = : +AMTAR = ${SHELL} /Users/pgadmin3/BuildRoots/pgadmin3-1.2/config/missing --run tar +AWK = awk +CC = gcc +CXX = g++ +DEPDIR = .deps +INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s +PACKAGE = pgadmin3 +STRIP = +VERSION = 1.2.1 +WX_CONFIG = /Users/pgadmin3/Installs/wxMac/2.6.0/bin/wx-config +am__include = include +am__quote = +bundledir = /Users/pgadmin3/BuildRoots/pgadmin3-1.2/pgAdmin3.app +install_sh = /Users/pgadmin3/BuildRoots/pgadmin3-1.2/config/install-sh +pg_debug_build = no + +EXTRA_DIST = \ + $(top_srcdir)/pkg/mac/Info.plist \ + "$(top_srcdir)/pkg/mac/pgadmin3.icns" \ + $(top_srcdir)/pkg/mac/PkgInfo + +subdir = pkg/mac +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +DIST_SOURCES = +DIST_COMMON = Makefile.am Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign pkg/mac/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) +uninstall-info-am: +tags: TAGS +TAGS: + +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = ../.. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + $(mkinstalldirs) $(distdir)/"$(top_srcdir)/pkg/mac $(distdir)/$(top_srcdir)/pkg/mac + @list='$(DISTFILES)'; for file in $$list; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile + +installdirs: + +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-exec-hook + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +uninstall-am: uninstall-info-am + +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am info info-am install \ + install-am install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic uninstall uninstall-am uninstall-info-am + + +install-exec-hook: + $(install_sh_DATA) PkgInfo $(bundledir)/PkgInfo + $(install_sh_DATA) Info.plist $(bundledir)/Contents/Info.plist + $(install_sh_DATA) "pgadmin3.icns" "$(bundledir)/Contents/Resources/pgAdmin3.icns" + $$($(WX_CONFIG) --rezflags | sed 's/-t[[:space:]]*APPL//') \ + "$(bundledir)/Contents/Resources/pgAdmin3.rsrc" -useDF + ./complete-bundle.sh "$(bundledir)" +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/pkg/mac/Makefile.am b/pkg/mac/Makefile.am new file mode 100644 index 0000000000..68f3f49c0e --- /dev/null +++ b/pkg/mac/Makefile.am @@ -0,0 +1,20 @@ +# pgAdmin III - PostgreSQL Tools +# Copyright (C) 2002 - 2005, The pgAdmin Development Team +# This software is released under the Artistic Licence +# +# Makefile - Makefile for *nix systems + +EXTRA_DIST = \ + $(top_srcdir)/pkg/mac/Info.plist \ + "$(top_srcdir)/pkg/mac/pgadmin3.icns" \ + $(top_srcdir)/pkg/mac/PkgInfo + +if APPBUNDLE +install-exec-hook: + $(install_sh_DATA) PkgInfo $(bundledir)/PkgInfo + $(install_sh_DATA) Info.plist $(bundledir)/Contents/Info.plist + $(install_sh_DATA) "pgadmin3.icns" "$(bundledir)/Contents/Resources/pgAdmin3.icns" + $$($(WX_CONFIG) --rezflags | sed 's/-t[[:space:]]*APPL//') \ + "$(bundledir)/Contents/Resources/pgAdmin3.rsrc" -useDF + ./complete-bundle.sh "$(bundledir)" +endif diff --git a/pkg/mac/Makefile.in b/pkg/mac/Makefile.in new file mode 100644 index 0000000000..96b83d5db2 --- /dev/null +++ b/pkg/mac/Makefile.in @@ -0,0 +1,226 @@ +# Makefile.in generated by automake 1.6.3 from Makefile.am. +# @configure_input@ + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# pgAdmin III - PostgreSQL Tools +# Copyright (C) 2002 - 2005, The pgAdmin Development Team +# This software is released under the Artistic Licence +# +# Makefile - Makefile for *nix systems +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_HEADER = $(INSTALL_DATA) +transform = @program_transform_name@ +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ + +EXEEXT = @EXEEXT@ +OBJEXT = @OBJEXT@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +AMTAR = @AMTAR@ +AWK = @AWK@ +CC = @CC@ +CXX = @CXX@ +DEPDIR = @DEPDIR@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +PACKAGE = @PACKAGE@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WX_CONFIG = @WX_CONFIG@ +am__include = @am__include@ +am__quote = @am__quote@ +bundledir = @bundledir@ +install_sh = @install_sh@ +pg_debug_build = @pg_debug_build@ + +EXTRA_DIST = \ + $(top_srcdir)/pkg/mac/Info.plist \ + "$(top_srcdir)/pkg/mac/pgadmin3.icns" \ + $(top_srcdir)/pkg/mac/PkgInfo + +subdir = pkg/mac +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +DIST_SOURCES = +DIST_COMMON = Makefile.am Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign pkg/mac/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) +uninstall-info-am: +tags: TAGS +TAGS: + +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = ../.. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + $(mkinstalldirs) $(distdir)/"$(top_srcdir)/pkg/mac $(distdir)/$(top_srcdir)/pkg/mac + @list='$(DISTFILES)'; for file in $$list; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile + +installdirs: + +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-exec-hook + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +uninstall-am: uninstall-info-am + +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am info info-am install \ + install-am install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic uninstall uninstall-am uninstall-info-am + + +@APPBUNDLE_TRUE@install-exec-hook: +@APPBUNDLE_TRUE@ $(install_sh_DATA) PkgInfo $(bundledir)/PkgInfo +@APPBUNDLE_TRUE@ $(install_sh_DATA) Info.plist $(bundledir)/Contents/Info.plist +@APPBUNDLE_TRUE@ $(install_sh_DATA) "pgadmin3.icns" "$(bundledir)/Contents/Resources/pgAdmin3.icns" +@APPBUNDLE_TRUE@ $$($(WX_CONFIG) --rezflags | sed 's/-t[[:space:]]*APPL//') \ +@APPBUNDLE_TRUE@ "$(bundledir)/Contents/Resources/pgAdmin3.rsrc" -useDF +@APPBUNDLE_TRUE@ ./complete-bundle.sh "$(bundledir)" +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/pkg/mac/PgAdminIII.icns b/pkg/mac/PgAdminIII.icns new file mode 100644 index 0000000000000000000000000000000000000000..682160f36fdfd57853b134996c7cf1976871d20f GIT binary patch literal 43961 zcmeIbdwf*owKu-z5<-L$G~_au%wRy|5;Dn%fSmM@w%lx~a!I^!kz6KQImQ?@tu;!R z+$NJ`l1v~3CO~3Pi%f(lv0@Y3p{GTLHgm+%Lym7Rl(s+5@0|9nJ-r;;YTdu@diI`6 zLPG5M>F53D-OB8}pJ&~k^{lm?^{l;Tvb&`G38MaQ?k;&^9uaNGIkNX7SvfwEKid1z z-VgVFxcZ~iKhy7&|EB8S{lsl{BJDmM(Qkk2q-no>m*}+tTqSqhar^E2+wZvjj`Ggi z@93t{l{q}dhr69QI?sW_dz?9Oo)-`2oImT# znR#ICR}SPXzvDn*Lk|6?GiRRXj-0Q2F6WK|8=fgA+L@hm;P#w7cjV-h-`g=t)S8py zS$F#ZXO4FDi$f6PM|b3`d!yw*O^&AhH#Ib~CFc!#r~RHBTh5F1->IR5^EBH2+RmJ; zJO15Gx(BjttD8tylw} zcBaU2l73cH>e&5iQH`Vcv3`f+LVu~l(Y2?@QQ|0dck(Cd!3 z-@?VKyAPgrI7&`8oN&U5OW;q=zS&s-G)`{N%mus{Bm=t2-zac7zv8eV zZF|o))U*}1o@r}%>r6*m+sPhxTXS1STi>yc?|rMSqvPz^@14f&x6XgB?VW$c#o4|6 zZ?v^Fzp?LIZS;q>wvMySZT(Fh4QE?leU|7*XWQ9^w$sfW9e($jt3)jf9V&x+b6KSRs$ucaQKVaYDN;PzG;>Q0!$9R0fC5GU*`|&bWU|L+&9vFUehCJWhyiM>5LT;n*(l4Nywo(7Vg+g1-E_CKtDp$XiwcU0Y9uOB8Qfh6 zc7@AprRh5#kfeJc_ZIXN)=AUuE|M+>im6tL-?i&seqb$!f&eR96>69x1+9 zDv_vI+JzCU#>nXI8cAD1xSD3g=!!}tm_jkysRl!#Iw@|~Hfej2gb6RKRfk$sfaVfw z(e}auG;gcrF-THLK?92_-2*cyu92n{feTpHvua=lz>eEV4?M8F1R5xElg0`S#T64t zQcF0a-@t=#H``aNiDeYC}m zE(Rr!+U6-}ZSraw8*2bm@6|N9n!Rxz@_4>ce+|uM~srSaW)bFKc(Mq5{Z7=O@ zYA$H0^-gaoXldEo*Fv04|)iUxTn?|*Ie(d zZ)w5oKp+i|S=(FyRT3`gLK`g$NsL9(R@wi)`Zrn=*k~5fET@$eDsTmy}H|{+xFoYIQr3XV} zu3o*Tps}$Mh5%}qd@nVM&wBA$i5LKe)QT7Y0m%bn*a4x)4P$6(^?F)h42>-(s7xdb zdL#@qA8Xr$M;foZ`g*x@&D^{}I`oR(81e@YgoX zq}h(%z<_&=K6g}p|GSm5SIS=6D9?H5eL?;GWx2mp*!+0Y%zj+`a*bK8kR8iDP+Fbl zUn>{*^ymli`9Z-NS)Tcv()x$lha=sxTtD*)?%vZQOZc(U{M<~1jS7?pRCJ2}MU!Kr z+M}G_qVux+rW*uXS!wi7B9~AqDh{Md-)9ggzxUVPnM@2mw&*r7pij2Wzs*UH@Uxa z&Ie4lVwpTs?wzgZXD$!_iqik<>HTur!T0BMVt`k8AUJ3MA3vawxT(mNS2_>RmUBrj zXFemEgq-e#KZ%=vpWd7I%zP)OSkKAXqG=h%`@#I(;u<4Mo0B5GQGu($Mpeu zQ2#5n|Ghax7+mgjnl7&_6O9}7`9+@%_shMskXV~Y-HuQHcU%nW$ss%AzN--U^}HPm zNk5m+KUdByl;!WP+Vq_Khn0j&K91)@nk&wHme4KhooCXXy&_-9CMr<+56;ZXOPenX z3!E;?Y5Ip6^#GkdTkU^l88aHlL>ti@R*iDxsr@_dlQ*uMDS8FOT>bQo^}TL6+|Q;v z!6DzL;-?|qo8Wjx{*vJH2a?(V}P=39{2=@Y<9daUwLM_ zTsA=`njVtPc}`j=%dCxw4z@xZk?!3k4fME4O?kWRsQ8cy5uEPaR)=BtHMF z;p?B%(-0ggcv^hwruh6bAT_e``8#pVp9C^ERy*FKFUa&nd!jOIJ7#qNW?$8XzU zG^aOGoY}bGONR@bl;CT*_ueHb$pv!@YG^iRRI583|L|bbKhf%f6$T4dOiRjbM5prZ z`dY!AuRF=O8g^W@v9RcC|A-{($UiR0&RjTe7cNUpmRgFpEV{SAW}Bbwv?pZWa$9a2 z6)e9k6MKd1c{xu#;-7m*jXg2zvpeaT+13OiBmZ_RPp^%?%+_32F6= z#W#~_xrNB`1m!o{b=h71WzBYd_Luy*^XlvgNfb;oB^dqp-HN`?$z?enyKd*mx)rtd zgq)4^d5d`!m4m8o{_Cd}wgG}(K*}C}H$7^xWK(9NUAu|)wqrlmLV0M&q6j zOY{Y=U6)bTe=8(jP3_is?!bLZK@e9@_ z`?N(B$?M3y1bdJYT5@y7?j!SgTrJPsx7SJ9%}Ln}cI`qfRIC}f1u&(w(PCLg2ABN? zY#8T1Jg=hs5Z&2ePufEVIuEVd-+PPQp8Xu9r==Ir7693(@Q$2}_vJQUeZ757&R+Vg z{O+Q|UDzgNG_@NO(wEYcF8hoHv?Rx#^FZHPR{?fF$ywf!`8kUg6l~14+c(g|7D`I> zA6(pE*WKbP&#JX+|H%(+P6sh;{8rQBn6j$vH$m&^d+BBY^)N%_k_jxg(>-?kW_rMG zUvhNC%{OCX^%UhZkpEEz`aIbH^hK)A0i~}pxg8mxWX`9@Fz|W2zrxl8FrT^geqW~j z7TTV@z`fmMc9Pz33*DVl&m^h%K&Gv=R?fY- z9!%EKhI;$-FVJ^y#}1Mzn(Xn5pQNnUz4I&$q&Fw8el`=k?_}Cmm|jZ-&Gs8Id_)gg zGSV#>a1EXLLEgnDWSj2-_q~4iq9*%{g%u=c<=DTpWWx$;4QPChwnDs_If)dwW#Kw3 z#lAJ{AB(L1t$vi&eAH+G*o~$ZS_!aR>RpzRyp>YT4aXO`>@#=LlR1m-uimj^khWNB zX^wS%L+t{H>c1&%>5f;ZEbEpg|1E$kp)YOTwCl@{NuR$v-2}KqYYu&D(HFD6wh8;x z=CzA%n@t^nqwHFW+p*!^3@b*jO|?!#@htx#s#%Y%EKvu8BotEqs(-NGl%9c@l3+5= zuc=&PTJWeJRX-{Bwi*VR-b!~^Z@xMG=GjejV`{oJBmG8`#jt4YXRQ`vQ^zf^p_~WE zbP)9uvol>!2BmH3f$yarC7r2FK+GH7W5V6dx6xd{-$r*@ac7YTTYue`X{QBu>4)hb zaaTfFd}n@$?!ny?y-8-=rTqhawjLY&*88o=J*2bK%ZqC5`X%>Mv89)0nr@>n-khD4 zVXvctv}b8%YMO%z);%ynRGDt>qZ`bY`FnduYPaR4nVzF~gC#X(PHKkHLkPq1NjGBH z$p%B}O_XFX8l4uM$z-^Z!?3}al;pISlah^w6w53_+MHW6GjB~vF|JK7L>Mm5UZ0X` zKo~ZpWT;`-d+*joNjKh=j?KLihW+k`TK#^6;oFi82*bvk5Qc{zeX4u!SKd^^u?Bf@a%{KtoPmbxVU{lj$+m15Ie^aOn!+wU2>3Rca(&4f7p7(Lx6X-i-6 zw@CWZ$Namu)kz5(DL5xNA;tgH&PGZ1nCva}NV>X_vWIG=gwn6j=M8BqX+MbSw!b<2 zK%1m{lwRG50>abuh|#!|ur=2{Lr2?D0eO)gL;IuDZM1B9`5v^l(&Ju9cc1Sp>KgGC z)NZsqGQ1OnO8r#aA!*C$DYQH30i&gi+ou)<6%EPC6cS@4uH8Lg}3uq63O2}PSy6rD=pYK?`G^eze9+7`j_{vFCO73rJPf0K= zCZ9{1v6Bi*rP9W4RzAPSQ70vryg0I>v~Y+2YYs`Oq=$|4nK}Mbg{W!l9Py$&qHTYD zd!01B^a#ot(xc?VjQO@F8i)*g>3#v#%1{qeK3LXKwIuDKM$|T5U6zgjYkHEZ8OXmM zK$^!;1)B3!>MNBh=%6H((>4oW(zeikjC&h#VaW}U&+KsfilrS?SGxV!BZf4@;FNjv zwbFV?`xtfCN!o{KYlAf7A@JJe?p;zG=2AeKs^6X_JD7vTbf=)-=@YF9ycQy(P6qO!Q@f;p_7YU`oAY}?R=VN7)0~>58H^^DG3`OFr6o8DzEVI>cKDAy z&?L=xpba~P%&ZNI*4}1Ba83IhJ>#g6W|nTCK*lX!AbQOA7(2(VyZz6oF_^(_Olzcv z0rn8}-eyUGU*Y6 zw@TDo*4Wg{F&H2TjkI~?@~qhgi;;s-TE^bW)v5E87<>m}FhHiCpyejc2d6g?-Q+ZW z#&Dy-l(OJ+tIWofrjDJkpwfCuJ4gwMX$C_Y%~9Hl`-kRm^lTFl+lTjXL`DjApG(rx zog9!2B~%RLr)Zmz?+#Nr?wTpnfV)(QoVe@ioy};;E9nsw*oyu4m}VmcXVbX{Y9)Q) zUbrzraO!RJwR;^U_dEKiAQ>SzX^w+Ro^0R{Y)U~0PBUgyaR|O+P8ve+9OIm%8|N5P zCkVkNlhdj*n+zfoHkjwkaazrDQcOk;!G`38OP4N8Nj0q#A-E!YeQFwqU{mV6FZFRI zJaPabc+O3m=03(D7;E?Hz>DqvGaQ0fq!xfw9=@umga{mm_n?M`n(dt>{)0QuY7xQ5p5Y8!mc-_TLxO>8~zJT)eo zln^}9-0t$~T_ewX+Z$1U^3hOZt#?Lq-NQ?7GsDpzqoa*pZTp-47O%d&%io3iTf#F4 z!D$Jp{=-d;Ufn_YrFM^3cWlJhQ45wn`n<`wk_JFj*BBaZZu9C6(3?%Q-uR>Rs0qgA z0l8lKM!Q$n_HFW^y^Fd{md)R*L%W|2dA+)Z7e<;Oa2I(@)<;L0K&X9~T06Yj{d5HF zeV99IIk!*ujD(t7Tt|EjP2OqEFYoE1*HNpCe~}hjtPg(A&BHo2*z*cPaMzyp2CufM z+{Yof2{0!Rg3W8F*5$nc_WVeH3ydnfY%Rv5D80a9i0_ZTk-tO(9K_<7&3Ls-Xox;FfTxx}O z0rMHR-`DJIT>V^oJEMc1^)|nLrnQHB$mbA)f9R_B zYOy*2;??tRK(wAZ)z~s}u6cyk!RU16yXYt&j?gI-nO#FiG5a@o=m+)Ry3mFg%z3bB zcFQr;QeE_VTa8!SNBxa3mW$L(eJA8J6USh4*=barb#3RU+3D4}FZ$hX@ARWILdRcy zJe^~(`SWxLOu7(*xsp53}CtKit&hozZj>F?gx%&PD4*3^sm_jzYYd?Nt<*cgtF$&XF$m zj^@4o9yJD=I0hS9Xdl2j5QD8ro5@+@Ki}f=&ip!^Zf|<-wXZ*ak+y*29Aieq85Ff! zzsE87bvoJR9`eI%XZF+Ko?idqmwjLUvN4TgusMfDo4TKHZK7TNZ~2;AAEyq$QL7Sz zt-Jzhlgw%i{zm7ENY4<10g~XSEqAQ6%{E#&2B#S~2B#@8*vB!Log_dj!ZG;9n~a<% z8qBG;e*PcQO{uLNO)#PM=am?2G?>yTMQLk&V<;Kn6ET<}T*G_PaA&z~bv^Fd=uXaV zO(n#(e1vw0kbIarao10oe1{->40kX0&gPJeAl!-KcI&tAF>?^kp|=qa^exZQ17-x_ zwA-k=zP-)mIYR|09E6h{wAc3>2Vt`TLD*x=x*JEVmNn1ext$UbzpCvOfI2fIsou zyo3isA9B0=!5?4Gr-a)75I6FN=btbqJo>J<8Qns*U;GF$`MzH-OjK&YqW#|ztv^tp z#pfTNAme3m^}%_g`JGWMoozy$HF^{zDBY2k;e?FeD>rYE`EOf|^88dqH=^;MHG3nF z>cuN@3xAR$4~D?A-+QoL~kNj|3u#u z*T10c-~X-WGk=M6$SrgtdK0<&VBu#4%+IO#2lA7aNV_b5iK34lVw(Hu6yF7?<|X-S zvG5CxsEoe-lRwA6%D+GGRhM=-w|t$B`sJqq5* ztel^@Njb}SGVmK&zAEN)&#b@o5`FMRiavjd+p54F)rM`vNw3KAh910=~?+kJRTdQhA{kJ=_%zh3jep<8-6YSMgNHWw^g(L zyBeC^^gH@u82)GBvG-9}9{DY5lI5G$V{&)N?2xlQ`s|Hi=I51pm*vM&!z5(+&Ux?4 zmP~mUeGgd_jyL`EZMFAp@uUNqUUYvH{%yMZZ`LK3HJjzd0=`wAQLFa;w`$I(>G>$U zyq?Z#@2%AS;j93sHS!kaSph)4KtIIi2bqaHso~?FX$5uMSjoy1$IoA+Z>fD3C<6iQ zG<`J;%jXXsp-fxqZwFLxdg3Gfo#Flgvikp47&9Z>@!>+EhWB^ZeE)Z^r2r}6zw+s# zitx`y9VO11w)^{G0(}0HgY@72kAMG8@BWc*F%zt;_bC0xDDzLRc~MJ@dpU~mhq(z` zkX^zFFjhVH>_dZNHFSJ~B_ zp2t)AW8t%m!jNNtuDSGoHcJ14#4ic0Ujr1=;4jdJeM0^n)#Giz>mNM@q=ay2 z7Ov}{v}_|@c*WtT|L6F1Kt)&ao~Vg_Ww!jtRPY;)QD2z;>MzQ80q6Qh!jI@5l@<1{ zFVc~~^?|wfg)VBsi2pjWlQ#S^d20C2eON*_?cRZhryJhiJ~cSP-e2})Pfxt9^t*p} z@Z*3JefIS~$$$RW7w#Dcy}Obh&*TZ`{}()>NlkZJ8Z(?0O?oQY5}m2ebTT+o50Ea= zke=RPNk~t}(;G@gQn)`ui{1Ixk)h$HB|~qqq#Ln?)g>A&mXjG8i{V+)CR;2A0G5tg zpvGwF&d{vScQ)4z>HW>k`RiQ(N66prbIGYTp6zXh74W)o>OnPlWwR>%B*9c zL!?Qy)Mx1P_xOk2ZlJi}kiS`4-K1(N9i9>vsU zXwlfgq$*aqGPJ9j-yR@s(7%cy5<5`8wbW#2Gn<2lNc(n|RFk1u+K18*8FH{rTr*aA2(QHWGXZTubymd!MIT=Ft3p># z?jb;J0EVUqEH$}ZXbcK?yz62D-ufD-xysgUCx)-G9cB&}a2d#L=gT1W(h350UzUuF z%(tCr*m~Hm*&4)_JGj->171w_!d5RBT!_G9JSY%i7$yu&r!eT$ zS_0@QwD&+1jjab)Rkr7V6&M5C%p(Pzbe!=RKof$zv=t!zwikfbKL&UefReHGh18%- z4hUfjFjDUEFl;W1jB$Wih7LRFWT12b{N~x3`UdADq;aKRV+7D^)h-PhYL^+bPO>R zhJhxba~7rN708AQO)$4L0;R_zri^?vUSKo9>!7stw89%|_gn);0dRyE;5cX}7r-|} zfyB&VoYVy%9#hY&;1~jQzpX`)z6*l0@XZXx#(+7a@^4@iObS4%DkwDyB&6E#4TTi- zOaio32=$txk089Bm~=kK@Vu-1ga!kH_8Ob2Uc41+!!!suo~1Axi_ukwPFt-*lWXgR ze{by?42YTFdFg2q%7T_Hv1pjv_$oX$%SGhChW~=%a#f*bq5v=;Bc^Q}4#d}BxnT*NW~%?5cY3|)bne)fDe@}5vDJJ~@1<4OScpdTg_XJm`Sd{V#%2@#P)fi8qj zjtsd67#+_7gFTMiTAQK^cT@p!$&9-S^nXZsPM*l%ta%-z`X z!nY4?wA&rb$Ze-w%pL-dRzw9{BQoJlTIRHY->u#F!pO+!y}2AMHtYvO7@;;`J5(#{ zzHPU&Q4fL!pH=^33mL+#gULYjp4>V+eY;lHzMBhcBG-O2BeZR`kATEpyIsr{NU#!M zVY+lYnF0v}5pppJ2)`9ikm+=ttSNP&br2LV8TydTe&4%z(drQ1mB!prRU@Qh780nW z^3toAM886XYz=nJ>UU~n?K`W14ky^Bct`+BDlOf}uVJ&*IU4P>K~YH!n+N+>z;;kb z0=?o5fkPuBhgS33*OVJ30UU9UGm8ih=4i+PE)!tDR%pX_RVFcrxnj~>YR?{^qR1s8 zG)D7 ze#T=kUVH>tr@Ah=SVl2Xco#paA9r|^ArUJ;FaTKvCP+bTSf9aBMHE4wwUeskH>?B* z#({v*HZZsiK})QJh{j9+YmUkp3n3w&5`*NabOBXZ2v8kN0u#g>gSmLyUUbwbie}R> z0+H7RWmU!ugfaPysa1J~F~g26W~4>T2(S7)bpny~%7dzc;iCboI(Ug51QwoLUWd|= zHHI^b@+hX5u?>e5mI$)I0H(eR%LtPk;$dP%V4q}){lMgz>c^Du6kf0)(DUl)P!M%M zjBsoX&qpxq5f`wiD>mTblT$5CD6;>17&q;D|hx*I%;ik4|zGbHJj9N#!WQj@Q-4 ztgxh2@!Z1O$N&U&Zb4Y6jWKfJ(mbRM$3&W?339H*R%AKAbILg{FQvIbtb^D)z))G{ zfbAF)%W>H!_`+K(qV!ND$G#&eO8GXdJ;g-Gi5gsr6tLTwGUU}+8XyK;F)P=y@<1)CtV zGaqte#E38)nVLa2Wb0sfhG@a;cJYQ|D{q{F&9(V@skv*2nQ+!<0T#~$FNR32krm@H zPDRG5uD6jm_1lgxnS;VKRB2#_AP>(Jo0G2E3|(ga9^Nk^JH=#x?1g`mxKa)FmbrGj zFe`YPn4LlRw%(TO=<0F?oLxG{RtKv_#1s%h#-dpT6=IjfSt+(Vc<`5@$>*lvR>Tt* z)H?`LY&qrd;@lq2>NtL;t5e$yoUNSEiMo04bm%Z*9W1b3+%Kp|bnq z?JT&9?car5UYp@%@xe@FgHrPlW}}J?4ACY`0x2=xin7@pu0bq`&@Cl<6jkJ_=FYnj zeQ*`F`q;HIy4c2WR*Im*KGajwrR@n^a6yKA;2YZ%e8pX`y6_HE7hGQ4dsfZjfQB5X{0X~DTgejZa{CrMcu`y>tJk{hG#_v<7xXj!9>TZf1CZiyYv%o(&LtLdwTJ9|ew@E=^AWD#Ty~7SC~WJ7XMzMJQDf_~g)f zsHnmV6e*nB^IFi{!qp$+5k!#MjA@w_{-L2RRBkl+LtGAN&WvmX1_3O&xT0iAewIaP zfkV}1XxDeKdQq!kiBu6_Ueoe3GSVqE(T{Puv3E`<3scRnY1ZVguUA2_VsRYT!Aeq3 zDWxIQm=a;F2Ftz(3@`p5p85(Kc)G@zjPPo-w1TL*O~HzZz%CNA)bF5fg)&w{Mm$DE zsZj_AAb6!nJx?{MlnC8L`&eZhAQFEV+bY!K%(xWW#*Ty3DB2dzsS#H%K}vLU(x6Ce zQCbl7k*^_J780US3&G)L-0DCpOEtEY-GpvqkcV4_q zUFKn|$5e$lg~95s!;D)lM?}NY5=rchXa>JifbQpL&8vm33*i68lq;Z%4G71)&goXc zZ2nCU;X+bB2VWcFfX)x-cLWs%FXtT$0*symO#1%{Gv#tq6FV?AtGe~T_^}xLdPFG~ z)=xw%*9CYaJ5TCQ1QLp9385ax2E?JNo(sHa@B(T2sj|FOps;v~4cl@>ao7AHcFm{q zu>z(4oJ1LpYmO)q4($z zw`fg<6x3`J4F*$-KuS$S%{D&OXgX=p81V=luj!i(ShRQp6vIk29^$t{*KBsW>xQP` zrHajKOs0DHvH^A5RHMt%Xlk;=84dB2Dw<8M%}!Gd=x%=cRIr`&L!G-8nQ9pxCEO%a zoh1%E{vp&#<59zP?*g?3NoQK_ z4h|qn``BS}t=&O0z1Lf8Qo2PDLB z2<3!M+#DQ(wIRAFs=2$|T+JN~4c886heH?f-Mo;eRnk@;Lx|P57a^rFp!ksr&TCN0 z)m;UYs^N>Ij>c+dG)dQo@{BT*jr15Z8bOG!SGz{Rf0W<{#Fm`MPAg#e#7VJJOfT{Z^ zC|?9fs0_d!Ugrcbzq1HQ79o&mg4Ks5O|^3MtVB%kVl|V#7=}*6+c^fv(FykhWzj>P zW5B}iNdP|#e2PbzgnF%omIHM7h(yDT@;p#PVK)q^cZ0bRKFm~+{?I5us~P3EK#9_% zZ_8RHJ1ts*pUeG7gA-yab&lriD6jdl8WQrB$zA0lWx6>UPqMAWs1d z5}%CLtx%-UONz9^9g66pfrqg z=oG7nHCx#ZeWJz9U?~7Y7^GvYLFVioz(n#z2w+~EF@iV)tAradD=aRJzJgAOaI6g? z;C{$y(Hqz*Y6$#Th~d-XtO=I2js@9_PN)IM)u&aS!?7S39D{_wiP?|7ikEf(TA33DO3Q%+(T!=s%)0%q6);*A;bX?i#*UE)q1F`PtsQpoDV^@8vdZ+ zW+;Z8z!ZzX^Vf|xfXm?c@ZgK=K;5HAkV8#EtT?tFV=M-*XCBFW9{Y%k)o{%+gdYLT zlXnUepT^MT%n<^y?GBG}{k8faU~wg2nJtVYE|m>V%t^O|XfYZZK(J#EFY5v>*23Vh zr>s^TJS0-b9LLYyEXzS8*e$uRrR%Q5E7xW0e8UHX<=$|d&Fp z>N$p{^ZSL~^`nwh_Z!q&Pvd6@#3X?N6W;|2NxWhzlRnH8T#}~ZmngITvO*XVD2OrR z)o+gn@9+zA@-#|Rsb~NxrUm8&tuS(<6kl=rop(-GNGwa)J{8$5?tlcL^h0a}m<=d> zQ4RSNie+$6HdId-1;Ayv4?>CkVH#*kV4|{v>e$*Lo2vgHK-nh-aAqY63G0hBzsg(#Q80x9 znPHG4kuU=I6zh53?j2*_ceJGj}le{MBzz5WDC8BK+OvDfDz=@ z4IpTS`JpDNOhHgJ>x)3bEc3E1CMpy~itxgF0XzvTWHoy^h?Vgo%R&MTXI-}>0bJ{i zazaUiS5}UTaB;z-8%V;ykBXVnAt-_-LMtpp85JrT917XaN7Ye{VgY3r^#BQHO*i}) zl>iTxNU*y_f(?2a({kr#4R3iU1%V@+a*gg| z1QxmlYzBI9$7xH@UAtMo%iYQ4Pkkp_J8*aguv!svSEQX-h{{dNJA+7VhLPh`bM+JE zfE`C9C&%VR>;XE#Rc~6f`Dxx@4It^nhJr5c6B@-RIVt1Ryt`F}_hXN!F+B~VzUb|S zf-rtK6pUOyTqacxgCll094ruHSgWvbfWWkQ?)=yp(k_(JE|y7>u%}}{=J`2~Z+De> z1_qoV=YY;r?SX2Pz|kZEsb)EAa2UppvI^vh8XS8qkQX)WtFwDjX|5 zxX5B!zRQi`Cx5X`72Z+{l>^x?v6PsO1^eD5r8SHtLL#nS2F2~Lox(2GcK>#jW zLTI=~Y-W+-1vfKxDk2L{Zzp5pmx*{Arwgtr7aP%P&HTabcnr&+rkdv$I4BsNDi=F{Y|U9mP%)$%?Jn~`d)jgnREC7~7*Z+C zF)nu^e-f$!cf8&eDI0Y1Qxo21quyC=vH(jnT#c`Cm33op9Y)d)nby>A)|gB#i^dR- zf@h+FgUTszESotq<>70FQQsH20dwPNb+-W(&27_ zRTxuI@=UF@#4jpG$+L5_Vk)BO>0YE{-yqF9t6eTGucR3gpJjPk5S-X9)^uWkPz_s8 zm^k9mw9R;xj*{a2(3Klt1~SyK6>Z*J`JGSC(lDh+K$wT)K-?0&hv8EI2Rp%fH10SA>)HBuchF91zMGeQ-IWYkZ@@&JKQ z#*8+q5^-tMV&R2;KuMc~*3!@nRk_t>RtI)#l!A(<#lq`n2*At?>OjHMWLbmjQ3P_V z-a1S*7d8!wSXfKg#Rb_^G=tkI0Q0Ji@Tcp9gQD7LvG6Nas1)&%rdtkUL9tUE7)m+p z`8uRtCX_lsfMLCyk8nJIsTfe{L?^U>fYt)1#kNql29#0f#E93xWsf1UR35vCVhwvt z5~`d)K&>fZbl6jg6sCLlBHmd<-~hFsDsjG?tDGVVUZFU&BVx9~v^T?j$nbO0#N&eN zamXTvo>mHODZfz4bUM>!HwvA4_tTq&X&c^!-Fw*;QR+;AvuKQ|D0L>`yIrtaqai6= z>NJ|ojaI!GUzVJ()M>uKgs-(HA*$kQTl=kAvnfT?I!)#l#xkh2PLuhhRbxtd7E83z zd;nldtKZdq$K*IPAaQR_6jtc~U-Yn+*Doub+7+Tt|VfbN!Xt+Qyc zxt8I%)@iN-?3S2XXA!71SP2k%^V(}_or?wH0jQxCLPTnvE5J!-UZK`HSAdC!Kzc$K&+tP6kItxz@RYyUn83i7TyHt#yvlWl`%aQfi%} zBeg;8$mnGhrAPgqW_+2`(>KKROZVa$E15*O)2dm^Z?0Y*IoapIPoX(IdY^x2WR%}r z9XZ+QapBk8Jbi;Bz|xKa0zVbkIV9?yYr&YzVzq++T=&$C4*5K70%7P9hs4oA55Cpu z=?iiWGSbP;A-e=5$gr%P40;Li3D=BvQq({fGe=}3Di%ok z@Vje+Sh+_!4*|*t49y65YC1U~3krA_ucua8i;_cd(9`WDh9C4CW)7EeIojFIm%REZ z2q=Yu!D8WAeTTi8K3r*oeV!ihVzQU0q0X+_-#2v9S1swDj{DRBJtQ@RAGau_YDqgJktYA!M75izurtTkK( zeeGVcl)D))1%Mnjhghl14P>`Wg-)V(8rpt2;7>$A@e@*5ZilL8Q`CpMb`b)>t(yX1R^+xU63uD^BO;sf$Srlbzb@@>Z$+L$rdxTAI%7FecoSz#5cWO zF<&6TT7Zoy6;-QZf4ewQ%#2|8H3xcrH^E6m; zp*0-ISdFYVKjH(cC4E(c68%{a4a#S)+(a+vFca>IBm zA)|pal!D(SWlstMkJTzf<)W)$vJ6AANGsp6U3s8oi_(y-Y|?X zA~*92B;Y#L#c7Cz6e`D0$VL=|C$_-kVUCJ$0TQDSR$zh@WWgd0mMWqM{Hz`>)AC?h z4G@iE0^|7vAp|b59wHw3`G)- zT$u~GPBY$NK_!$oBVfgf=Sz;)b9L0-%| zk(x6B)N!%BQa37WFoRg-`$QdgbY!TL_XdL^-3LL9d4+R}hWB%7Ay=%h&|?Rqu+;n} zYmj#zeQGIpi@qpa%4NNZQm&O20~Q8|3>iyZxp@Vba-rrUOy;045D3IWg)xFW{8Q{< zI>A|QUc5yVbCIe-*BHR%eL}NtWuw5Gib1Ti0>O`6u*S^Q+{-7GDeFY84D;8Ibb5Rv zoZEo_ECqpx#bb6s{4on<68+fx@(;bo@is$P7@SUBCY;!ycKU-s=cqHN^Y{6oA|<>u zi2$rw0aao|oTZLn`cFX+t$7PK2Kx|PcnU9p7)PCxaOutwPV+dLa!HpJ?8Z3yIK^Z1 zAojp04HR)r*AH7^A01WE`JX>!NpediXyJ+Vh;xr zys)YykS6o5cYFLpm$AlYc5l>~^+FNV8?E4{1> zK(ra=9%s{3(wyiB&Q0e80 zQ>_Y)C5;2UZn4!WO1-9f2&I&I&HExSoF4FcI=0wrZUsq^7UChilCE>|rWAWkC_}|# zc$5@{;2FWzH>TJd?PKln?vsnX(N>`+rxi8VXd8PI(x+%!IPpf{6^&*9j3Tj6g*Jy9 zks~3oL(-(=m}oXDJ8-myMdLDXw3Xe*523i|8*NpE5@lbs@@*eTh)DvlDEnHiJRm>s z=+yly*L@?c5!tx%YqfGB7ew|2DTHiBuKZf9Znc?7VWTN3zg8=9H&l5+m>FVAiPEpx zx>kfxq#bZY9VXv|BCko24I4U+1A?%q{aURkV!&S!&v|**b;5&D{k2-TqU%Gz=Jimw z0v3ewuR;XSoIW8w=#bKxxd5zypXALBB99)C$I2C8MIl_BYGSuWAEu4(gSj^bFflXsbOnj5wekB$s_B!AU z6DSPCwvW5MdiBhSii(Pr;>fS4IC19cRTbola|$KI5WX5YV(AAe=2GDmwdLy76X65E z+<5gw^*U59#~&+;4_{Jbc<*`=0mHd?vGK*K{R~(LxK~`q?>X~tzRu;FmuA4QU zbM$^)>m?!fdlk{PF;}zOMgP@FsDS>tupY0TtB8m@cDS)B~p^XfG9Rc{){jvdaMIHVW ziVg9AjDaYFsjgH3Cc+4?A>r@u$gltoJv{phrWlzIFw{B~)7XARfCYirHuahvX%;5n zEuwa)pN+p}08105+JZ95e& z{*dq*6)MC(#-~ugIPLv?{CVm7pH4pn6w!WceB;H8f5DempQ-iFvo(cGdRTZNG0oZrJK~t5Nobp#YEIny3~*Ixs}TFi}p+0e+~U8Jt2P#zS1*(R8e?&9Dg?V7zY!G)d1&(C$j&D(N7E|Bi2B>nj6=;pCoyF~WMcm8Ws~I1?C{Y6jdg!v{o&0w z-~#Fn0O!e$iTO|L7J>$kIBIdM@Tj3w;x4LwymF~Vz^J~i5##UXFZQ<)f-Fr$8zT6y z^{eU^F^mfU(HZ)<{5h?e#BDj^<%Rpk7z*Er;4_ym_yD`ZI88E@EDVo7CY*=mxU5CHWa(K>T4TVDkaqKVT3vsXk zaOJsmV(yd0Us+@k6Nn|qh@3m1P>khY2}Ydx$+H#a_{_r{8$iTF6s+hc<43JI(jH4T z(ipxFIky_qVj^|K`g$YmBL*;O1Q=sKVFr_`MFn7|50}e$qLlc~Y7y3##~11mP$NLt zUZO0Nt5(1*8{de(ca7#rWtN2kR108Pgf4_8^2b;oy224)vL#?_{E7%NiCV(_j5RAD z?ji()TX5_vL}%pSP1yBnP!V)NEb_t4*9jUi3J4Pr!)NDHmY#?JSOP>1ZW3b-qenQ4 z3qh=AY}=SSMpJ5EVFF_KyzO*GSc{8Z7yuWcCh@>9`WWg;@pv+mVNjs}QFu@Z2#GoI zc`xdGf`1{Puj7I2v)4K&oAPyHCP)fnXS-MVPd0o}g69xCfs+GUq*K>$647Tei)Ac0 zs1Y=I8=&x?boj~|%&W-+K^}BO%nUHam_rQadg=$PfPsmy|F9y%ZxhhQ#`DTxesW*$3abz~Tv*B%H7TjO!9v%=L0sA%}pf;Y4Yc z^6ZRj-cH<(Ki+}|@B~auQ6UpMGMN|naUzZBS8jxsj10R`cms#N@y0Ji2~WVaX3m5J z88wzEgax&6Q=;^Y{S=ZjhgQzkXL0Cr^6mH|JOPt8q63VPvUqwdAb^l#Mi3iob!)AdYO=VTv0>7B;!)4grN!VUQ`Cg)0^mCEkyE` zCwyEzhxc~G%P29{=tOS?$WQE63j6R28mbhtq)9S{Fe99mC(%GyTp?Z-I$Tk_QklwP zNEF=#h!}i{2~VT|@f?dx-k zga&yHh#s66;E&b$YWO3XuhC2s)q z)pLg{I6(5DK78N=b87yPXC-)cQklo-ID{>W_aBsd<+B&kb2T!ivdu9O3-_2e-c# z5I%r6!2&+TYg?}hqnx#|67Te>3Jz7O8o4fiHqaQ&&5C^yb0Y3|8|VrcoQc7K|6Em^ zVq@gZCp-vKA_!Eo~Y~c z=KxWmYAoh7Id{N|fD(BRbESA)P<=U1WviZM9TtWA7`oS7a-uMf|9b<4W1W61QQQ>@ zGM8HOSFS8p{Dh-k*!9EUv+yS6l>GAm9sQH2R|4%7*)j4Tq^3@_GeF z?3SE!0lVpndOP+sC4XiE^UdS)-+S=u?~%98XBWOTmNinRsh^zkrib&syuX+CMDTNC zUW>odTR0njGS&Dw{P0^op9p_NCVU@2wWZlp^Jn)j2LHJV?kD^?HUF^tf5MDaa#QnX z_ha|}Kg3^b{l+D^pP(oR2%vVI_%Bv}n1A3CWEw+C;Xg^mg1wdb@>`al68|exy*U?l zzwnc$7}-CG%fM9pYrrKRdT@Rc+^(fDCI7JdZMqislV|~dUJ=Kn_dM;9BM-goejjJe z{T~SAl;!KbxgoY~pPu{iW0ULi=P`YH=FfQ&7wsqAfwTE@$?a1ze@+xDuE(EOpLLl2 zPs#lFslj2em@EK>^3ci2Cr+QvaYZ~enxI@FJU~P}nBTys!yHt5m74h^6-$mj9DNHv zHU2Qbbs!$zs)|uZKE&1+$;W%28hbVXu{)ng0ZPRh6&~lO#~+(jQ8S-F0pgWALdj^t zrwyN!NSFYjfbkU`^@~be@%=Q1&+pENC1Bilg2LbQ!o!|%1)fi8;9)vW^}#JwhU)@y zXs~jD(#;#^yfEaab4I-;{JphpzCqNNYPPA&X%=r?IX-@>2NW>j-kjE9?&aQ3mA4>{ zU6@jl9K&jz*ta{!w0$}^{MA7@Qmqg?R#uDB{(GO+x-)hlO0nSTiHddnh2x6q6Ka*G uclKDgPwj4YAQE$<7uT)ueA1$fuMSLE;rXNmpuBdqJn+_lGw<)B{{I26M5T-X literal 0 HcmV?d00001 diff --git a/pkg/mac/PkgInfo b/pkg/mac/PkgInfo new file mode 100644 index 0000000000..bd04210fb4 --- /dev/null +++ b/pkg/mac/PkgInfo @@ -0,0 +1 @@ +APPL???? \ No newline at end of file diff --git a/pkg/mac/complete-bundle.sh b/pkg/mac/complete-bundle.sh new file mode 100644 index 0000000000..38a4992760 --- /dev/null +++ b/pkg/mac/complete-bundle.sh @@ -0,0 +1,51 @@ +#!/bin/sh +bundle="$1" + +if ! test -d "$bundle" ; then + echo "$bundle is no bundle!" >&2 + exit 1 +fi + +test -d "$bundle/Contents/Frameworks" || mkdir -p "$bundle/Contents/Frameworks" || exit 1 + +echo "Completing bundle: $bundle" +cd "$bundle" +fw_basepath=$(dirname $(pwd)) +todo=$(find ./ | \ + xargs file | \ + sed -n 's/^\([^:][^:]*\):[[:space:]]*Mach-O executable ppc$/\1/p' \ +) +echo "Found executables: $todo" +while test "$todo" != ""; do + todo_old=$todo ; + todo="" ; + for todo_obj in $todo_old; do + for lib in $( + otool -L $todo_obj | \ + sed -n 's|^.*[[:space:]]\([^[:space:]]*\.dylib\).*$|\1|p' | \ + egrep -v '^(/usr/lib)|(/System)|@executable_path@' \ + ); do + lib_bn="$(basename "$lib")" ; + if ! test -f "Contents/Frameworks/$lib_bn"; then + echo "Adding library: $lib_bn (because of: $todo_obj)" + case "$lib" in + /*) + cp "$lib" "Contents/Frameworks/$lib_bn" + ;; + *) + cp "$fw_basepath/$lib" "Contents/Frameworks/$lib_bn" + ;; + esac + install_name_tool \ + -id "@executable_path/../Frameworks/$lib_bn" \ + "Contents/Frameworks/$lib_bn" || exit 1 + todo="$todo Contents/Frameworks/$lib_bn" + fi + install_name_tool -change \ + "$lib" \ + "@executable_path/../Frameworks/$lib_bn" \ + "$todo_obj" || exit 1 + done + done +done +echo "Bundle completed" diff --git a/pkg/mac/debug-bundle.sh b/pkg/mac/debug-bundle.sh new file mode 100644 index 0000000000..3742a2cc7f --- /dev/null +++ b/pkg/mac/debug-bundle.sh @@ -0,0 +1,19 @@ +#!/bin/bash +bundle_name="pgAdmin3-Debug" + +if test -d "$bundle_name.app"; then + echo "Bundle: $bundle_name.app already exists" >&2 + exit 1 +fi + +mkdir "$bundle_name.app" +mkdir -p "$bundle_name.app/Contents/MacOS" +mkdir -p "$bundle_name.app/Contents/Resources" +mkdir -p "$bundle_name.app/Contents/SharedSupport" + +(cd "$bundle_name.app/"; ln -s ../pkg/mac/PkgInfo PkgInfo) && +(cd "$bundle_name.app/Contents" && ln -s ../../pkg/mac/Info-Debug.plist Info.plist) && +(cd "$bundle_name.app/Contents/MacOS" && ln -s ../../../src/pgadmin3 "$bundle_name") && +(cd "$bundle_name.app/Contents/Resources" && ln -s "../../../pkg/mac/pgAdmin3.icns" "$bundle_name.icns") && +(cd "$bundle_name.app/Contents/SharedSupport" && ln -s ../../../src/ui ui) && +(cd "$bundle_name.app/Contents/SharedSupport" && ln -s ../../../docs docs) diff --git a/pkg/mac/pgadmin3.icns b/pkg/mac/pgadmin3.icns new file mode 100644 index 0000000000000000000000000000000000000000..e8dff1979dd8c831cf042b83d30572ba80a69c1b GIT binary patch literal 43843 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 literal 0 HcmV?d00001 diff --git a/src/Makefile.am b/src/Makefile.am index fa427aeddb..7b11e48f73 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -130,7 +130,7 @@ ui/zh_TW/pgadmin3.po # ############################################################################## -nobase_dist_pkgdata_DATA = ui/common/*.xrc \ +TMP_ui = ui/common/*.xrc \ ui/wxstd.mo \ ui/pgadmin3.lng \ ui/af_ZA/pgadmin3.mo \ @@ -177,6 +177,30 @@ ui/tr_TR/wxstd.mo \ ui/zh_CN/wxstd.mo \ ui/zh_TW/wxstd.mo +if !APPBUNDLE + +nobase_dist_pkgdata_DATA = $(TMP_ui) AM_CXXFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -g -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include AM_CPPFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -g -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include AM_CFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -g -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include + +# Automake trys to execute install-exec-hook if it appears anywhere in the file, so we need a dummy +# for non-APPBUNDLE cases. +install-exec-hook: + +else + +nobase_dist_data_DATA = $(TMP_ui) +AM_CXXFLAGS = -Wall -g -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include +AM_CPPFLAGS = -Wall -g -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include +AM_CFLAGS = -Wall -g -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include + +install-exec-hook: + cd $(bindir) ;\ + mv pgadmin3 tmp ;\ + mv tmp pgAdmin3 ;\ + if test "$(pg_debug_build)" = "no"; then \ + strip pgAdmin3 ;\ + fi + +endif diff --git a/src/pgAdmin3.cpp b/src/pgAdmin3.cpp index abeb3444bb..366050f5ed 100644 --- a/src/pgAdmin3.cpp +++ b/src/pgAdmin3.cpp @@ -20,6 +20,7 @@ #include #include #include +#include // Windows headers @@ -75,6 +76,8 @@ double libpqVersion=0.0; #define DOC_DIR wxT("/docs") #define UI_DIR wxT("/ui") #define COMMON_DIR wxT("/common") +#define SCRIPT_DIR wxT("/scripts") +#define HELPER_DIR wxT("/helper") #define LANG_FILE wxT("pgadmin3.lng") @@ -133,7 +136,7 @@ bool pgAdmin3::OnInit() // evaluate all working paths -#ifdef __WIN32__ +#if defined(__WIN32__) backupExecutable = path.FindValidPath(wxT("pg_dump.exe")); restoreExecutable = path.FindValidPath(wxT("pg_restore.exe")); @@ -148,6 +151,33 @@ bool pgAdmin3::OnInit() else docPath = loadPath + wxT("/../..") DOC_DIR; +#elif defined(__WXMAC__) + + //When using wxStandardPaths on OSX, wx defaults to the unix, + //not to the mac variants. Therefor, we request wxStandardPathsCF + //directly. + wxStandardPathsCF stdPaths ; + wxString dataDir = stdPaths.GetDataDir() ; + if (dataDir) { + wxFprintf(stderr, wxT("DataDir: ") + dataDir + wxT("\n")) ; + if (wxDir::Exists(dataDir + HELPER_DIR)) + path.Add(dataDir + HELPER_DIR) ; + if (wxDir::Exists(dataDir + SCRIPT_DIR)) + path.Add(dataDir + SCRIPT_DIR) ; + if (wxDir::Exists(dataDir + UI_DIR)) + uiPath = dataDir + UI_DIR ; + if (wxDir::Exists(dataDir + DOC_DIR)) + docPath = dataDir + DOC_DIR ; + } + + if (uiPath.IsEmpty()) + uiPath = loadPath + UI_DIR ; + if (docPath.IsEmpty()) + docPath = loadPath + wxT("/..") DOC_DIR ; + + backupExecutable = path.FindValidPath(wxT("pg_dump")); + restoreExecutable = path.FindValidPath(wxT("pg_restore")); + #else backupExecutable = path.FindValidPath(wxT("pg_dump")); @@ -162,6 +192,7 @@ bool pgAdmin3::OnInit() docPath = DATA_DIR DOC_DIR; else docPath = loadPath + wxT("/..") DOC_DIR; + #endif diff --git a/src/ui/frmMain.cpp b/src/ui/frmMain.cpp index c3ded7a95b..0db31f4c2e 100644 --- a/src/ui/frmMain.cpp +++ b/src/ui/frmMain.cpp @@ -164,6 +164,9 @@ frmMain::frmMain(const wxString& title) #endif fileMenu->AppendSeparator(); fileMenu->Append(MNU_EXIT, _("E&xit\tAlt-F4"), _("Quit this program.")); +#ifdef __WXMAC__ + wxApp::s_macExitMenuItemId = MNU_EXIT; +#endif menuBar->Append(fileMenu, _("&File")); // Edit Menu