From: Jani Nikula <jani@nikula.org>
To: Blake Jones <blakej@foo.net>, notmuch@notmuchmail.org
Subject: Re: [PATCH 05/10] install: check for non-SysV version (Solaris support)
Date: Sun, 04 Nov 2012 23:31:02 +0200 [thread overview]
Message-ID: <87d2ztf42x.fsf@nikula.org> (raw)
In-Reply-To: <1351998962-25135-6-git-send-email-blakej@foo.net>
On Sun, 04 Nov 2012, Blake Jones <blakej@foo.net> wrote:
> Solaris ships a program called "install" in /usr/sbin, which performs a
> task that's fairly similar to the GNU and BSD "install" programs but
> which uses very different command line arguments. In particular, if it
> is invoked without "-c", "-f", or "-n", it will search the target
> directory for a file with the same name as the one being installed, and
> it will only install the file if it finds a matching name. More
> excitingly, if it doesn't find a match, it will look in /bin, /usr/bin,
> /etc, /lib, and /usr/lib and try to do the same there.
>
> The standard workaround for this is to use GNU install.
> It is available via the standard Solaris packaging system (in
> "file/gnu-coreutils"), and installs itself as /usr/bin/ginstall.
>
> This patch adds a check to "configure" to see if "install" behaves in a
> way that's compatible with GNU and BSD install, and if not, it uses a
> program called "ginstall" instead. It also modifies "configure" to set
> the $(INSTALL) variable, and changes various Makefiles to use it.
> ---
> Makefile.local | 2 +-
> completion/Makefile.local | 4 ++--
> configure | 19 +++++++++++++++++++
> emacs/Makefile.local | 6 +++---
> lib/Makefile.local | 4 ++--
> man/Makefile.local | 6 +++---
> vim/Makefile | 6 ++----
> 7 files changed, 32 insertions(+), 15 deletions(-)
>
> diff --git a/Makefile.local b/Makefile.local
> index 2b91946..7ccb1cd 100644
> --- a/Makefile.local
> +++ b/Makefile.local
> @@ -286,7 +286,7 @@ notmuch-shared: $(notmuch_client_modules) lib/$(LINKER_NAME)
> .PHONY: install
> install: all install-man
> mkdir -p "$(DESTDIR)$(prefix)/bin/"
> - install notmuch-shared "$(DESTDIR)$(prefix)/bin/notmuch"
> + $(INSTALL) notmuch-shared "$(DESTDIR)$(prefix)/bin/notmuch"
> ifeq ($(MAKECMDGOALS), install)
> @echo ""
> @echo "Notmuch is now installed to $(DESTDIR)$(prefix)"
> diff --git a/completion/Makefile.local b/completion/Makefile.local
> index dfc1271..a648a78 100644
> --- a/completion/Makefile.local
> +++ b/completion/Makefile.local
> @@ -14,9 +14,9 @@ install-$(dir):
> @echo $@
> ifeq ($(WITH_BASH),1)
> mkdir -p "$(DESTDIR)$(bash_completion_dir)"
> - install -m0644 $(bash_script) "$(DESTDIR)$(bash_completion_dir)/notmuch"
> + $(INSTALL) -m0644 $(bash_script) "$(DESTDIR)$(bash_completion_dir)/notmuch"
> endif
> ifeq ($(WITH_ZSH),1)
> mkdir -p "$(DESTDIR)$(zsh_completion_dir)"
> - install -m0644 $(zsh_script) "$(DESTDIR)$(zsh_completion_dir)/_notmuch"
> + $(INSTALL) -m0644 $(zsh_script) "$(DESTDIR)$(zsh_completion_dir)/_notmuch"
> endif
> diff --git a/configure b/configure
> index 5c5139f..dae837e 100755
> --- a/configure
> +++ b/configure
> @@ -591,6 +591,21 @@ for flag in -Wmissing-declarations; do
> done
> printf "\n\t${WARN_CFLAGS}\n"
>
> +INSTALL="install"
> +printf "Checking for working \"install\" program... "
> +mkdir _tmp_
This doesn't feel like a hot idea. Don't tell me you'd need to create a
compatibility script for using mktemp --tmpdir too...
Or how about just always using ginstall on Solaris?
BR,
Jani.
> +cd _tmp_
> +echo 1 > 1
> +mkdir dest
> +if install 1 dest > /dev/null 2>&1 ; then
> + printf "\"install\" works fine.\n"
> +else
> + INSTALL="ginstall"
> + printf "using \"ginstall\".\n"
> +fi
> +cd ..
> +rm -rf _tmp_
> +
> rm -f minimal minimal.c
>
> cat <<EOF
> @@ -777,4 +792,8 @@ CONFIGURE_CXXFLAGS = -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS) \\
> -DSTD_ASCTIME=\$(STD_ASCTIME)
> CONFIGURE_LDFLAGS = \$(GMIME_LDFLAGS) \$(TALLOC_LDFLAGS) \$(XAPIAN_LDFLAGS) \\
> \$(LIBNSL_LDFLAGS)
> +
> +# Which "install" program to use
> +INSTALL = ${INSTALL}
> +
> EOF
> diff --git a/emacs/Makefile.local b/emacs/Makefile.local
> index fb82247..ee778cb 100644
> --- a/emacs/Makefile.local
> +++ b/emacs/Makefile.local
> @@ -36,11 +36,11 @@ endif
> .PHONY: install-emacs
> install-emacs:
> mkdir -p "$(DESTDIR)$(emacslispdir)"
> - install -m0644 $(emacs_sources) "$(DESTDIR)$(emacslispdir)"
> + $(INSTALL) -m0644 $(emacs_sources) "$(DESTDIR)$(emacslispdir)"
> ifeq ($(HAVE_EMACS),1)
> - install -m0644 $(emacs_bytecode) "$(DESTDIR)$(emacslispdir)"
> + $(INSTALL) -m0644 $(emacs_bytecode) "$(DESTDIR)$(emacslispdir)"
> endif
> mkdir -p "$(DESTDIR)$(emacsetcdir)"
> - install -m0644 $(emacs_images) "$(DESTDIR)$(emacsetcdir)"
> + $(INSTALL) -m0644 $(emacs_images) "$(DESTDIR)$(emacsetcdir)"
>
> CLEAN := $(CLEAN) $(emacs_bytecode)
> diff --git a/lib/Makefile.local b/lib/Makefile.local
> index 7785944..0c6b258 100644
> --- a/lib/Makefile.local
> +++ b/lib/Makefile.local
> @@ -89,11 +89,11 @@ install: install-$(dir)
>
> install-$(dir): $(dir)/$(LIBNAME)
> mkdir -p "$(DESTDIR)$(libdir)/"
> - install -m0644 "$(lib)/$(LIBNAME)" "$(DESTDIR)$(libdir)/"
> + $(INSTALL) -m0644 "$(lib)/$(LIBNAME)" "$(DESTDIR)$(libdir)/"
> ln -sf $(LIBNAME) "$(DESTDIR)$(libdir)/$(SONAME)"
> ln -sf $(LIBNAME) "$(DESTDIR)$(libdir)/$(LINKER_NAME)"
> mkdir -p "$(DESTDIR)$(includedir)"
> - install -m0644 "$(srcdir)/$(lib)/notmuch.h" "$(DESTDIR)$(includedir)/"
> + $(INSTALL) -m0644 "$(srcdir)/$(lib)/notmuch.h" "$(DESTDIR)$(includedir)/"
> $(LIBRARY_INSTALL_POST_COMMAND)
>
> SRCS := $(SRCS) $(libnotmuch_c_srcs) $(libnotmuch_cxx_srcs)
> diff --git a/man/Makefile.local b/man/Makefile.local
> index 72e2a18..07dcf4c 100644
> --- a/man/Makefile.local
> +++ b/man/Makefile.local
> @@ -38,9 +38,9 @@ install-man: $(COMPRESSED_MAN)
> mkdir -p "$(DESTDIR)$(mandir)/man1"
> mkdir -p "$(DESTDIR)$(mandir)/man5"
> mkdir -p "$(DESTDIR)$(mandir)/man7"
> - install -m0644 $(MAN1_GZ) $(DESTDIR)/$(mandir)/man1
> - install -m0644 $(MAN5_GZ) $(DESTDIR)/$(mandir)/man5
> - install -m0644 $(MAN7_GZ) $(DESTDIR)/$(mandir)/man7
> + $(INSTALL) -m0644 $(MAN1_GZ) $(DESTDIR)/$(mandir)/man1
> + $(INSTALL) -m0644 $(MAN5_GZ) $(DESTDIR)/$(mandir)/man5
> + $(INSTALL) -m0644 $(MAN7_GZ) $(DESTDIR)/$(mandir)/man7
> cd $(DESTDIR)/$(mandir)/man1 && ln -sf notmuch.1.gz notmuch-setup.1.gz
>
> update-man-versions: $(MAN_SOURCE)
> diff --git a/vim/Makefile b/vim/Makefile
> index f17bebf..7ceba7a 100644
> --- a/vim/Makefile
> +++ b/vim/Makefile
> @@ -5,8 +5,6 @@ files = plugin/notmuch.vim \
> prefix = $(HOME)/.vim
> destdir = $(prefix)/plugin
>
> -INSTALL = install -D -m644
> -
> all: help
>
> help:
> @@ -17,7 +15,7 @@ help:
> @echo " make symlink - create symlinks in ~/.vim (useful for development)"
>
> install:
> - @for x in $(files); do $(INSTALL) $(CURDIR)/$$x $(prefix)/$$x; done
> + @for x in $(files); do $(INSTALL) -D -m644 $(CURDIR)/$$x $(prefix)/$$x; done
>
> -link symlink: INSTALL = ln -fs
> link symlink: install
> + @for x in $(files); do ln -fs $(CURDIR)/$$x $(prefix)/$$x; done
> --
> 1.7.9.2
>
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch
next prev parent reply other threads:[~2012-11-04 21:31 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-04 3:15 [PATCH 00/10] Solaris support Blake Jones
2012-11-04 3:15 ` [PATCH 01/10] getpwuid: check for standards compliance (Solaris support) Blake Jones
2012-11-04 3:15 ` [PATCH 02/10] asctime: " Blake Jones
2012-11-04 3:15 ` [PATCH 03/10] gethostbyname: check for libnsl " Blake Jones
2012-11-04 3:15 ` [PATCH 04/10] configure: check for -Wl,-rpath " Blake Jones
2012-11-04 3:15 ` [PATCH 05/10] install: check for non-SysV version " Blake Jones
2012-11-04 21:31 ` Jani Nikula [this message]
2012-11-05 5:27 ` Blake Jones
2012-11-05 11:29 ` Jani Nikula
2012-11-05 14:52 ` Blake Jones
2012-11-04 3:15 ` [PATCH 06/10] strsep: check for availability " Blake Jones
2012-11-04 3:15 ` [PATCH 07/10] gen-version-script: parse Solaris "nm" output " Blake Jones
2012-11-04 3:16 ` [PATCH 08/10] notmuch-config: header for index() prototype " Blake Jones
2012-11-04 21:16 ` Jani Nikula
2012-11-04 21:47 ` Tomi Ollila
2012-11-05 4:52 ` Blake Jones
2012-11-04 3:16 ` [PATCH 09/10] debugger.c: correct return type from getppid() " Blake Jones
2012-11-04 3:16 ` [PATCH 10/10] timegm: add portable implementation " Blake Jones
2012-11-04 10:21 ` Jani Nikula
2012-11-04 15:40 ` Blake Jones
2012-11-04 20:58 ` Jani Nikula
2012-11-05 4:50 ` Blake Jones
2012-11-05 12:09 ` Tomi Ollila
2012-11-05 15:47 ` Blake Jones
2012-11-05 17:36 ` Tomi Ollila
2012-11-05 18:33 ` Blake Jones
2012-11-04 21:35 ` [PATCH 00/10] Solaris support Jani Nikula
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d2ztf42x.fsf@nikula.org \
--to=jani@nikula.org \
--cc=blakej@foo.net \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).