summaryrefslogtreecommitdiff
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
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)
-rw-r--r--Makefile46
-rw-r--r--common.mk37
-rw-r--r--doc/Makefile2
-rw-r--r--src/Makefile3
-rw-r--r--src/abslibre-tools/Makefile3
-rw-r--r--src/chroot-tools/Makefile3
-rw-r--r--src/fullpkg/Makefile3
-rw-r--r--src/mips64el-tools/Makefile3
-rw-r--r--src/pr-tools/Makefile3
-rw-r--r--src/toru/Makefile3
10 files changed, 75 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
diff --git a/common.mk b/common.mk
new file mode 100644
index 0000000..6248b80
--- /dev/null
+++ b/common.mk
@@ -0,0 +1,37 @@
+# Configuration
+DESTDIR=
+
+#prefix=/usr/local
+prefix=/usr
+exec_prefix=$(prefix)
+datarootdir=$(prefix)/share
+
+bindir=$(exec_prefix)/bin
+sbindir=$(exec_prefix)/sbin
+#sysconfdir=$(prefix)/etc
+sysconfdir=/etc
+datadir=$(datarootdir)
+docdir=$(datarootdir)/doc
+
+################################################################################
+progs = $(shell find . -maxdepth 1 -type f -executable -printf '%f\n')
+confs = $(shell find . -maxdepth 1 -type f -not -executable -printf '%f\n'|fgrep -v Makefile)
+files = $(addprefix $(DESTDIR)$(libre_execdir)/,$(progs)) \
+ $(addprefix $(DESTDIR)$(libre_datadir)/,$(confs))
+
+all: PHONY build
+
+build: PHONY
+
+install: PHONY $(files)
+
+$(DESTDIR)$(libre_execdir)/%: %
+ install -Dm755 '$<' '$@'
+$(DESTDIR)$(libre_datadir)/%: %
+ install -Dm755 '$<' '$@'
+
+################################################################################
+
+FORCE: PHONY
+PHONY:
+.PHONY: FORCE PHONY
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644
index 0000000..7af3750
--- /dev/null
+++ b/doc/Makefile
@@ -0,0 +1,2 @@
+libre_datadir=$(docdir)/libretools
+include ../common.mk
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..ff8d399
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,3 @@
+libre_execdir=$(bindir)
+libre_datadir=$(sysconfdir)
+include ../common.mk
diff --git a/src/abslibre-tools/Makefile b/src/abslibre-tools/Makefile
new file mode 100644
index 0000000..f2cec54
--- /dev/null
+++ b/src/abslibre-tools/Makefile
@@ -0,0 +1,3 @@
+libre_execdir=$(bindir)
+libre_datadir=$(sysconfdir)/libretools.d
+include ../../common.mk
diff --git a/src/chroot-tools/Makefile b/src/chroot-tools/Makefile
new file mode 100644
index 0000000..3ae95ea
--- /dev/null
+++ b/src/chroot-tools/Makefile
@@ -0,0 +1,3 @@
+libre_execdir=$(sbindir)
+libre_datadir=$(sysconfdir)/libretools.d
+include ../../common.mk
diff --git a/src/fullpkg/Makefile b/src/fullpkg/Makefile
new file mode 100644
index 0000000..f2cec54
--- /dev/null
+++ b/src/fullpkg/Makefile
@@ -0,0 +1,3 @@
+libre_execdir=$(bindir)
+libre_datadir=$(sysconfdir)/libretools.d
+include ../../common.mk
diff --git a/src/mips64el-tools/Makefile b/src/mips64el-tools/Makefile
new file mode 100644
index 0000000..f2cec54
--- /dev/null
+++ b/src/mips64el-tools/Makefile
@@ -0,0 +1,3 @@
+libre_execdir=$(bindir)
+libre_datadir=$(sysconfdir)/libretools.d
+include ../../common.mk
diff --git a/src/pr-tools/Makefile b/src/pr-tools/Makefile
new file mode 100644
index 0000000..f2cec54
--- /dev/null
+++ b/src/pr-tools/Makefile
@@ -0,0 +1,3 @@
+libre_execdir=$(bindir)
+libre_datadir=$(sysconfdir)/libretools.d
+include ../../common.mk
diff --git a/src/toru/Makefile b/src/toru/Makefile
new file mode 100644
index 0000000..f2cec54
--- /dev/null
+++ b/src/toru/Makefile
@@ -0,0 +1,3 @@
+libre_execdir=$(bindir)
+libre_datadir=$(sysconfdir)/libretools.d
+include ../../common.mk