PKG=ide DEP=$(PKG) define get-upp $(if $(findstring /,$1),$1/$(notdir $1).upp,$1/$1.upp) endef define get-uses $(strip $(shell cat $(call get-upp,$1) | tr ",\n;" " \n" | grep "uses" | sed 's/(.*)//')) endef define get-deps $(sort $1 $(foreach d,$(sort $(subst \,/,$(filter-out uses%,$(call get-uses,$1)))),$(call get-deps,$d))) endef .PHONY: all all: @echo "To build $(PKG) following packages are needed:" @echo "$(call get-deps,$(PKG))"
luzr wrote on Fri, 05 February 2010 16:04 |
Does it work with BSD-make too? |
FIXEDFLAGS=... FLAGS=$(FIXEDFLAGS) $(DEFS)
make #OR make help
make "PKG=ide usvn `ls examples reference tutorial |sed 's/[^ ]*://g' |tr '\n' ' '`" USEMAINCFG=y BINDIR=bin/ BINEXT= JOBS=3
$ make PKG=ide showflags ide_FLAGS: GCC LINUX MAIN $ make PKG=ide USEMAINCFG=y showflags ide_FLAGS: GCC GUI LINUX MAIN
$ make PKG=ide USEMAINCFG=y -p | grep '^ide_FLAGS' ide_FLAGS := GCC GUI LINUX MAIN
$ make PKG=ide showflags ide_FLAGS: GCC LINUX MAIN $ make PKG=ide USEMAINCFG=y showflags ide_FLAGS: GCC GUI LINUX MAIN
$ make PKG=ide USEMAINCFG=y -p | grep '^ide_FLAGS' ide_FLAGS := GCC GUI LINUX MAIN
cd ~/uppsvn make -f ~/Makefile PKG=ide "FLAGS=GUI SSE2 MT SPEED" FAST=n BIN=bin EXPORT=Makefile.ide #later, as many times you want, possibly on different machine(s) (within same directory tree) make -f Makefile.ide
sh-3.2# make -f Makefile PKG=ide "FLAGS=GUI SSE2 MT SPEED" FAST=n BIN=bin EXPORT=Makefile.ide Parsing package ide ... sed: 2: "1h;1!H;${ g;s/;[\t \x0A ...": RE error: parentheses not balanced Preparing output directory structure ... usage: mkdir [-pv] [-m mode] directory ... make: *** [prep-dirs] Error 64
sh-3.2# make -f Makefile PKG=ide "FLAGS=GUI SSE2 MT SPEED" FAST=n BIN=bin EXPORT=Makefile.ide Parsing package ide ... sed: 2: "1h;1!H;${ g;s/;[\t \x0A ...": RE error: parentheses not balanced Preparing output directory structure ... usage: mkdir [-pv] [-m mode] directory ... make: *** [prep-dirs] Error 64
$ make -f uppbox/lpbuild/Makefile PKG=ide FLAGS="GUI MT" export Exporting uppbox/lpbuild/Makefile to Makefile.export ... make[1]: [ide] Erreur 1 (ignorée) $ cat Makefile.export .PHONY:default default: all $
$ export LC_ALL=C $ make -f uppbox/lpbuild/Makefile PKG=ide FLAGS="GUI MT" export Exporting uppbox/lpbuild/Makefile to Makefile.export ... make[1]: [ide] Error 1 (ignored) $ cat Makefile.export [whole content, so it works]
$(call echo," Exporting makefile to $(EXPORT) ...")
$(call echo," Exporting $(filename) to $(EXPORT) ...")
make PKG=ide FLAGS="NOGTK GUI" USEMAINCFG=y BINPREFIX=~/bin/