[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