Subversion Repositories NedoOS

Rev

Rev 922 | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
930 alone 1
# Supported environments:
2
#   GNU/Linux.
3
#
4
# Tools used:
5
#   GNU core utilities, tools/aspp, tools/sjasmplus.
6
 
7
include ../_sdk/common.mk
8
 
9
NAME		= unrar.com
10
OBJECTS		=
11
SOURCES		= unrar.asm
12
RESOURCES	=
13
DOCS		=
14
INSTALLDIR	?= ../../release
15
BIN_INSTALLDIR	= ${INSTALLDIR}/bin
16
RES_INSTALLDIR	= ${INSTALLDIR}/bin
17
DOC_INSTALLDIR	= ${INSTALLDIR}/doc
18
 
19
# All targets
20
TARGETS=executables resources
21
.PHONY: empty ${foreach t,${TARGETS},${t} install-${t} clean-${t}} all install install-doc clean
22
 
23
.DEFAULT_GOAL=all
24
 
25
empty:
26
	@echo 'Usage: make [ TARGET | ACTION-TARGET | all | install | install-doc | clean ]'
27
	@echo 'where ACTION is one of: install clean'
28
	@echo '      TARGET is one of: ${TARGETS}'
29
 
30
# Clear lists
31
DEPS=
32
 
33
# Create directories
34
${sort \
35
${BIN_INSTALLDIR} \
36
${RES_INSTALLDIR} \
37
${DOC_INSTALLDIR} \
38
}:
39
	mkdir -p $@
40
 
41
##########################
42
## Target "executables" ##
43
##########################
44
 
45
EXEC_DEPS=
46
EXEC_BINS=
47
 
48
${eval ${call sjasmplus_odd_rule,${NAME},${SOURCES},,EXEC_DEPS,EXEC_BINS}}
49
 
50
executables: ${EXEC_BINS}
51
 
52
install-executables: executables | ${BIN_INSTALLDIR}
53
	cp ${EXEC_BINS} $|
54
 
55
clean-executables:
56
	${RM} ${EXEC_DEPS} ${EXEC_BINS}
57
 
58
DEPS+=${EXEC_DEPS}
59
 
60
########################
61
## Target "resources" ##
62
########################
63
 
64
resources: ${RESOURCES}
65
 
66
install-resources: resources | ${RES_INSTALLDIR}
67
ifneq "${sort ${RESOURCES}}" ""
68
	cp ${RESOURCES} $|
69
endif
70
 
71
clean-resources:
72
 
73
####################
74
## Common targets ##
75
####################
76
 
77
all: executables resources
78
 
79
install: install-executables install-resources
80
 
81
ifeq "${sort ${DOCS}}" ""
82
install-doc:
83
else
84
install-doc: ${DOCS} | ${DOC_INSTALLDIR}
85
	cp $^ $|
86
endif
87
 
88
clean: clean-executables clean-resources
89
 
90
##################
91
## Dependencies ##
92
##################
93
 
94
ifneq "${sort \
95
${filter empty,${MAKECMDGOALS}} \
96
${filter clean,${MAKECMDGOALS}} \
97
${filter clean-%,${MAKECMDGOALS}} \
98
}" ""
99
else
100
# FIXME: Triggered when multiple targets specified.
101
include ${DEPS}
102
endif