[Buildroot] package makefile conventions

Bernhard Fischer rep.dot.nop at gmail.com
Fri Jan 19 19:10:53 UTC 2007


On Fri, Jan 19, 2007 at 07:12:49PM +0100, Claus Klein wrote:
>Hallo,
>
>I found some packages which does not implement all needed targets.

Ah, excellent.

>Too, some of them use 'make' or 'sed' without the common make variable.

Those need fixing.

>
>Last, but not least, why is '$(MAKE1)' used in some package makefiles?

Some packages are broken wrt parallel builds. $(MAKE1) expands to
make -j 1

>claus at P3linux:~/src/buildroot> ./mklint
>package/gmp/gmp.mk lacks target gmp

The upstream package is called "gmp" but is really "libgmp".
Same for mpfr.

>package/gmp/gmp.mk lacks target gmp-source
>package/gmp/gmp.mk lacks target gmp-clean
>package/gmp/gmp.mk lacks target gmp-dirclean
>package/qte/qte.mk lacks target qte-source
>package/bash/bash.mk uses MAKE1 make var, why not $(MAKE) ?
>package/dash/dash.mk uses MAKE1 make var, why not $(MAKE) ?
>package/flex/flex.mk uses MAKE1 make var, why not $(MAKE) ?
>package/lzma/lzma.mk lacks target lzma

That one has lzma-host and lzma-target targets

>package/mpfr/mpfr.mk lacks target mpfr
>package/mpfr/mpfr.mk lacks target mpfr-source
>package/mpfr/mpfr.mk lacks target mpfr-clean
>package/mpfr/mpfr.mk lacks target mpfr-dirclean
>package/pppd/pppd.mk uses MAKE1 make var, why not $(MAKE) ?
>package/ipsec-tools/ipsec-tools.mk uses make without make var $(MAKE) /!\
>package/expat/expat.mk lacks target expat-dirclean
>package/pango/pango.mk uses MAKE1 make var, why not $(MAKE) ?
>package/slang/slang.mk uses MAKE1 make var, why not $(MAKE) ?
>package/wireless-tools/wireless-tools.mk uses sed without make var $(SED) :-(
>package/iptables/iptables.mk uses MAKE1 make var, why not $(MAKE) ?
>package/modutils/modutils.mk uses MAKE1 make var, why not $(MAKE) ?
>package/ltp-testsuite/ltp-testsuite.mk uses MAKE1 make var, why not $(MAKE) ?
>package/dmraid/dmraid.mk uses MAKE1 make var, why not $(MAKE) ?
>package/ncurses/ncurses.mk uses MAKE1 make var, why not $(MAKE) ?
>package/netsnmp/netsnmp.mk uses MAKE1 make var, why not $(MAKE) ?
>package/pciutils/pciutils.mk uses MAKE1 make var, why not $(MAKE) ?
>package/libelf/libelf.mk uses MAKE1 make var, why not $(MAKE) ?
>package/libusb/libusb.mk uses make without make var $(MAKE) /!\
>package/python/python.mk uses make without make var $(MAKE) /!\
>package/e2fsprogs/e2fsprogs.mk uses MAKE1 make var, why not $(MAKE) ?
>package/thttpd/thttpd.mk uses sed without make var $(SED) :-(
>package/openntpd/openntpd.mk lacks target openntpd
>package/openntpd/openntpd.mk lacks target openntpd-source
>package/openntpd/openntpd.mk lacks target openntpd-clean
>package/openntpd/openntpd.mk lacks target openntpd-dirclean

well:
$ grep -L dirclean package/*/*mk
package/customize/customize.mk
package/expat/expat.mk
package/gnuconfig/gnuconfig.mk

where customize and gnuconfig are ok, expat not (but i didn't look)

for the normal clean targets, we have about the same picture (all seems
to be well):
$ grep -L clean: package/*/*mk
package/customize/customize.mk
package/gnuconfig/gnuconfig.mk


>package/raidtools/raidtools.mk lacks target raidtools
>package/raidtools/raidtools.mk lacks target raidtools-source
>package/raidtools/raidtools.mk lacks target raidtools-clean
>package/raidtools/raidtools.mk lacks target raidtools-dirclean
>package/usbutils/usbutils.mk uses make without make var $(MAKE) /!\
>package/openssl/openssl.mk uses MAKE1 make var, why not $(MAKE) ?
>package/libevent/libevent.mk uses make without make var $(MAKE) /!\
>package/libfloat/libfloat.mk uses make without make var $(MAKE) /!\
>package/xfsprogs/xfsprogs.mk uses MAKE1 make var, why not $(MAKE) ?
>package/microperl/microperl.mk uses make without make var $(MAKE) /!\
>package/readline/readline.mk uses MAKE1 make var, why not $(MAKE) ?
>package/asterisk/asterisk.mk uses MAKE1 make var, why not $(MAKE) ?
>claus at P3linux:~/src/buildroot>            



More information about the buildroot mailing list