[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Install /usr/bin/something from upstream source to /usr/bin/somethingon hdd?



Hi

--------message d'origine --------
De: Patrick Schleizer <adrelanos@riseup.net>
A: debian-mentors@lists.debian.org
Sujet: Re: Install /usr/bin/something from upstream source to /usr/bin/somethingon hdd?
Date: Sun, 27 Apr 2014 15:25:16 +0000

> Andrey Rahmatullin:
> 
> I like to make it generic, so I don't have to list individual files in
> the Makefile. That causes less overhead for packaging if file names are
> changed/added/etc. (They probably won't be changed a lot, but I am going
> to package lots of shell scripts I've written over two years, so I like
> to have a template, that requires little changes.)
> 
> Rsync dependency has been removed.
> 
> The Makefile for "make install" now calls a small script called
> install-helper.bsh, that essentially does:
> 
> find \
>    . \
>    -not -type d \
>    -not -path './Makefile' \
>    ... \
>    -not -path './CONTRIBUTING.md' \
>    -exec echo "cp --parents '{}' $DESTDIR/" \; \
>    -exec cp --parents '{}' "$DESTDIR/" \;
> 
> Does that sound acceptable?

I don't understand the need to call a shell script from the Makefile. According to the FHS,
the main directories where you may want to install shell scripts, shell libraries, config files
and their documentation are: /etc, /bin, /sbin, /usr, /lib, and why not, /var. So you can use
a very generic "install" target - and probably more portable/elegant than the find command
above - with something like

DESTDIR ?= /
install:
        for d in bin etc lib sbin usr var; do if [ -d $${d} ]; then cp -R $${d} ${DESTDIR}; fi; done

That's all; this doesn't need a lot of rsync's or find's exceptions.

Cheers
quidame


Reply to: