summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2012-12-07 15:11:10 -0500
committerLuke Shumaker <LukeShu@sbcglobal.net>2012-12-09 14:20:48 -0500
commitd3486f6c1aa38be431f865e406e4cddd69d88d59 (patch)
tree5e0856123d80c74cc8d4c879a85d79f127d0964e /Makefile
parent056aac864aaa989a17703857e8e0e9b67726fc22 (diff)
make the Makefile(s)... mortal-friendly
I did this by making the assumption that the files in a directory are dividable into 2 groups: those that are executable, and those that aren't, and that all of the files in each group all go in the same folder when installed. These install directories are configurable per source directory with $(libre_execdir) and $(libre_datadir)
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile46
1 files changed, 15 insertions, 31 deletions
diff --git a/Makefile b/Makefile
index 802117a..4e255ef 100644
--- a/Makefile
+++ b/Makefile
@@ -15,52 +15,36 @@ docdir=$(datarootdir)/doc
################################################################################
+# these are directories
pseudo-packages=abslibre-tools chroot-tools fullpkg mips64el-tools pr-tools toru
-packages=libretools libretools-pr libretools-mips64el
+# these are the resulting packages
+packages=libretools libretools-pr libretools-mips64el
+# and which directories they contains
libretools=abslibre-tools chroot-tools fullpkg toru misc
libretools-pr=pr-tools
libretools-mips64el=mips64el-tools
################################################################################
-all: PHONY libretools
+all: PHONY build
+build: PHONY build-libretools build-doc
install: PHONY install-libretools install-doc
-install-doc: $(patsubst doc/%,$(DESTDIR)$(docdir)/libretools/%,$(wildcard doc/*))
-
-$(DESTDIR)$(docdir)/libretools/%: doc/%
- install -Dm644 '$<' '$@'
-
-$(DESTDIR)$(sysconfdir)/libretools.conf: src/libretools.conf
- install -Dm644 '$<' '$@'
+%-doc: PHONY doc
+ $(MAKE) -C doc $*
+%-misc: PHONY src
+ $(MAKE) -C src $*
-$(foreach pkg,$(pseudo-packages) ., \
-$(eval \
-$(DESTDIR)$(bindir)/%: src/$(pkg)/%; \
- install -Dm755 '$$<' '$$@' \
-) \
-$(eval \
-$(DESTDIR)$(sysconfdir)/libretools.d/%: src/$(pkg)/%; \
- install -Dm644 '$$<' '$$@' \
-))
-
-################################################################################
-
-progs = $(shell find src/$1 -maxdepth 1 -type f -executable -printf '%f\n')
-confs = $(shell find src/$1 -maxdepth 1 -type f -not -executable -printf '%f\n')
-files = $(addprefix $(DESTDIR)$2/,$(call progs,$1)) \
- $(addprefix $(DESTDIR)$3/,$(call confs,$1))
+build-%: PHONY src/%
+ $(MAKE) -C src/$* build
+install-%: PHONY src/%
+ $(MAKE) -C src/$* install
.SECONDEXPANSION:
-$(packages): %: PHONY $$($$*)
+$(addprefix build-, $(packages)): build-%: PHONY $$(addprefix build-, $$($$*))
$(addprefix install-,$(packages)): install-%: PHONY $$(addprefix install-,$$($$*))
-$(pseudo-packages) misc: %: PHONY
-$(addprefix install-,$(pseudo-packages)): install-%: PHONY $$(call files,$$*,$(bindir),$(sysconfdir)/libretools.d)
-# special cases
-install-misc: PHONY $(call files,.,$(bindir),$(sysconfdir))
-
################################################################################
FORCE: PHONY