summaryrefslogtreecommitdiff
path: root/default.mk
blob: 42851998e1f8aa27c15992f576675abad35cc2ab (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
# Common makefile settings
# Copyright 2006-2007 Gentoo Foundation

DESTDIR = /
ROOT = /
LIB = lib
RC_LIB = /$(LIB)/rc

#
# Recursive rules
#

SUBDIRS_ALL     = $(patsubst %,%_all,$(SUBDIRS))
SUBDIRS_CLEAN   = $(patsubst %,%_clean,$(SUBDIRS))
SUBDIRS_INSTALL = $(patsubst %,%_install,$(SUBDIRS))

all::     $(SUBDIRS_ALL)
clean::   $(SUBDIRS_CLEAN)
install:: $(SUBDIRS_INSTALL)

# Hmm ... possible to combine these three and not be ugly ?
%_all:
	if test -d $(patsubst %_all,%,$@); then $(MAKE) -C $(patsubst %_all,%,$@).$(OS) all; fi
	if test -d $(patsubst %_all,%,$@).$(OS); then $(MAKE) -C $(patsubst %_all,%,$@).$(OS) all; fi
%_clean:
	if test -d $(patsubst %_clean,%,$@) ; then $(MAKE) -C $(patsubst %_clean,%,$@) clean ; fi
	if test -d $(patsubst %_clean,%,$@).$(OS) ; then $(MAKE) -C $(patsubst %_clean,%,$@).$(OS) clean ; fi
%_install:
	if test -d $(patsubst %_install,%,$@) ; then $(MAKE) -C $(patsubst %_install,%,$@) install ; fi
	if test -d $(patsubst %_install,%,$@).$(OS) ; then $(MAKE) -C $(patsubst %_install,%,$@).$(OS) install ; fi


#
# Install rules
#

INSTALL_DIR    = install -m 0755 -d
INSTALL_EXE    = install -m 0755
INSTALL_FILE   = install -m 0644
INSTALL_SECURE = install -m 0600

install:: $(EXES) $(FILES) $(FILES_NOEXIST) $(MANS)
	test -n $(DIR) && $(INSTALL_DIR) $(DESTDIR)$(DIR)
	for x in $(EXES)  ; do $(INSTALL_EXE)  $$x $(DESTDIR)$(DIR) || exit $$? ; done
	for x in $(FILES) ; do $(INSTALL_FILE) $$x $(DESTDIR)$(DIR) || exit $$? ; done
	for x in $(FILES_APPEND) ; do if test -e $(DESTDIR)$(DIR)/$$x ; then cat $$x >> $(DESTDIR)$(DIR)/$$x || exit $$? ; else $(INSTALL_FILE) $$x $(DESTDIR)$(DIR) || exit $$? ; fi ; done
	for x in $(FILES_NOEXIST) ; do if ! test -e $(DESTDIR)$(DIR)/$$x ; then $(INSTALL_FILE) $$x $(DESTDIR)$(DIR) || exit $$? ; fi ; done
	for x in $(FILES_SECURE) ; do $(INSTALL_SECURE) $$x $(DESTDIR)$(DIR) || exit $$? ; done
	for x in $(MANS)  ; do \
	    ext=`echo $$x | sed -e 's/^.*\\.//'` ; \
	    $(INSTALL_DIR) $(DESTDIR)$(DIR)/man$$ext || exit $$? ; \
	    $(INSTALL_FILE) $$x $(DESTDIR)$(DIR)/man$$ext || exit $$? ; \
	done

.PHONY: all clean install