-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile.in
More file actions
62 lines (54 loc) · 1.35 KB
/
Makefile.in
File metadata and controls
62 lines (54 loc) · 1.35 KB
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
srcdir=@srcdir@
VPATH=$(srcdir)
prefix=@prefix@
EXEEXT=@EXEEXT@
CC=@CC@
DEFS=@DEFS@
CPPFLAGS=@CPPFLAGS@
CFLAGS=@CFLAGS@
LDFLAGS=@LDFLAGS@
REDIRECT=@REDIRECT@
DIRS=
TOPLEVEL_DIRS=
TARGETS=
MACROS=
override is_target = 1
override target = 1
$(foreach a,$(REDIRECT),\
$(if $(is_target),\
$(eval DIRS += $(dir $a))\
$(eval TOPLEVEL_DIRS += $(subst /s, ,$(subst /t, ,\
$(firstword \
$(subst //, ,\
$(subst $(or ) ,/t,\
$(subst $(or ) ,/s,\
$(subst /,//,$a)\
)\
)\
)\
)\
)))\
$(eval TARGETS += $(addsuffix $(EXEEXT),$a))\
$(eval override target = $a)\
$(eval override is_target =),\
$(eval MACROS += $a)\
$(eval $(target)$(EXEEXT)_MACRO = $a)\
$(eval override is_target = 1)\
)\
)
TOPLEVEL_DIRS:=$(sort $(TOPLEVEL_DIRS))
all: compile_redirect_program
compile_redirect_program: $(TARGETS)
$(DIRS):
mkdir -p $@
$(foreach a,$(TARGETS),\
$(dir $a)%$(EXEEXT): source/main.c | $(dir $a)\
; $$(CC) $$(DEFS) $$(CPPFLAGS) $$(CFLAGS) -DREDIRECT=\"$$($$@_MACRO)\" $$< -o $$@ $$(LDFLAGS)\
)
install:
$(foreach topdir,$(TOPLEVEL_DIRS),\
test -z "$(prefix)/$(topdir)" || mkdir -p "$(prefix)/$(topdir)"; \
)
$(foreach topdir,$(TOPLEVEL_DIRS),\
cp -R "$(topdir)"/* "$(prefix)/$(topdir)"; \
)