summaryrefslogtreecommitdiff
path: root/default.mk
blob: 65f2443e6ebee117e7062a26669874ca1d2adb65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Common makefile settings
# We shouldn't use PREFIX as we need to install into /

_LIBNAME_SH= l=`readlink /lib`; case "$$l" in /lib64|lib64) echo "lib64";; *) echo "lib";; esac
_LIBNAME!= ${_LIBNAME_SH}
LIBNAME= ${_LIBNAME}$(shell ${_LIBNAME_SH})
RC_LIB= /${LIBNAME}/rc

INSTALL?= install

_OS_SH= u=`uname -s`; case "$${u}" in *BSD|DragonFly) echo "BSD";; *) echo "$${u}";; esac
_OS!= ${_OS_SH}
OS?= ${_OS}$(shell ${_OS_SH})

# We store the contents of the directory for ease of use in Makefiles
_CONTENTS_SH= ls -1 | grep -v Makefile | xargs
_CONTENTS!= ${_CONTENTS_SH}
CONTENTS= ${_CONTENTS}$(shell ${_CONTENTS_SH})

# Recursive rules
# Adapted from FreeBSDs bsd.subdir.mk
_+_ ?= +
ECHODIR ?= echo 
_SUBDIR = @${_+_}for x in ${SUBDIR}; do \
	if test -d $$x; then \
		${ECHODIR} "===> ${DIRPRFX}$$x ($@)"; \
		cd $$x; \
		${MAKE} $@ DIRPRFX=${DIRPRFX}$$x/ || exit $$?; \
		cd ..; \
	fi; \
	if test -d $$x.${OS}; then \
		${ECHODIR} "===> ${DIRPRFX}$$x.${OS} ($@)"; \
		cd $$x.${OS}; \
		${MAKE} $@ DIRPRFX=${DIRPRFX}$$x/ || exit $$?; \
		cd ..; \
	fi; \
done

all:
	${_SUBDIR}
clean::
	${_SUBDIR}
depend::
	${_SUBDIR}
install::
	${_SUBDIR}

install:: ${BIN} ${CONF} ${CONF_APPEND}
	if test -n "${DIR}"; then ${INSTALL} -d ${DESTDIR}${DIR} || exit $$?; fi
	if test -n "${BIN}"; then ${INSTALL} ${BIN} ${DESTDIR}${DIR} || exit $$?; fi
	if test -n "${INC}"; then ${INSTALL} -m 0644 ${INC} ${DESTDIR}${DIR} || exit $$?; fi
	for x in ${CONF}; do \
	 	if ! test -e ${DESTDIR}${DIR}/$$x; then \
			${INSTALL} -m 0644 $$x ${DESTDIR}${DIR} || exit $$?; \
		fi; \
	done
	for x in ${CONF_APPEND}; do \
		if test -e ${DESTDIR}${DIR}/$$x; then \
			cat $$x >> ${DESTDIR}${DIR}/$$x || exit $$?; \
		else \
	   		${INSTALL} -m 0644 $$x ${DESTDIR}${DIR} || exit $$?; \
		fi; \
	done

# vim: set ts=4 :