[aur-general] introduction and questions
hollunder at gmx.at
hollunder at gmx.at
Tue Jul 7 11:22:31 EDT 2009
On Tue, 07 Jul 2009 09:41:49 -0400
Andrei Thorp <garoth at gmail.com> wrote:
> Excerpts from Magnus Therning's message of Tue Jul 07 01:31:42 -0400
> 2009:
> > edogawaconan wrote:
> > [..]
> > > use install instead of mkdir/cp
> >
> > Even better, to help non-Arch users, use auto-tools (or some other
> > build/install/distribution tool with Vala support) for building and
> > installing.
> >
> > automake[1]
> > waf[2]
>
> To explain this a bit more, generally, it's not the software
> packager's job to make stuff install per se. Most software that you
> get comes with commands like "make" and "make install" -- these are
> used for compiling the software and having it install, respectively.
>
> The way you do this is by creating build scripts of some sort for your
> package. The most common way is to use autotools, as mentioned before.
> This is the standard "make" system made by GNU, and it's pretty much
> oriented around shell scripts.
>
> Then, the packager uses the fairly standard variable to make, DESTDIR,
> to tell the package to install into a folder rather than to / by
> default. This folder is then packaged up by makepkg and can be
> extracted over / to "install" the software to the correct place.
>
> Personally, I find that the old autotools are kind of... old. They
> work fine and are easy to do for small projects that don't need to do
> much work during build/install (like yours), but newer systems like
> SCons and CMake are being used more and more frequently in larger
> systems like KDE.
>
> I think you get the idea generally, but here is a very simple example
> Makefile (the script used by make) to give you an idea. Note that make
> requires the use of tabs instead of spaces in indentation:
>
> DESTDIR=
>
> all:
> @ echo -ne "\e[32;1m==>\e[0m Building."
> valac foobar.vala
>
> install:
> @ echo -e "\e[32;1m==>\e[0m Installing files."
> install -d ${DESTDIR}/usr/bin
> install -m0555 foobar ${DESTDIR}/usr/bin
>
> uninstall:
> @ echo -e "\e[32;1m==>\e[0m Uninstall files."
> rm ${DESTDIR}/usr/bin/foobar || true
>
> clean:
>
> ====================================================
>
> Some notes on this:
> - the sections are the categories for make (ie. make uninstall)
> - @ in front of the line tells make to not print this line. Usually,
> make outputs what command it's running as it runs it.
> - The funky characters in the echos are cli colour codes for
> prettiness.
> - the first section is the default -- so just "make" instead of "make
> all" is fine.
> - The clean instruction isn't used in this example, but it's
> generally used to clean up executables and stuff. Debian requires this
> instruction by default...
>
> Good luck!
Wow, thanks for this simple example.
So far I've only patched DESTDIR into Makefiles, good to know a
little bit more about this stuff.
More information about the aur-general
mailing list