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