summaryrefslogtreecommitdiff
path: root/Makefile.in
blob: 6e0a097fe0db0799d2d12959667312469f9ab76f (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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# Makefile.in for building crosstool-NG
# This file serves as source for the ./configure operation

all: Makefile build

# Check if Makefile is up to date:
Makefile: Makefile.in
	@echo "$< did changed: you must re-run './configure'"
	@false

###############################################################################
# Configuration variables

VERSION:= @@VERSION@@
BINDIR := @@BINDIR@@
LIBDIR := @@LIBDIR@@
DOCDIR := @@DOCDIR@@
MANDIR := @@MANDIR@@
DATE   := @@DATE@@
LOCAL  := @@LOCAL@@
MAKE   := $(shell which $(MAKE) || type -p $(MAKE) || echo /usr/bin/make)

###############################################################################
# Global make rules

build: build-bin build-lib build-man

install: install-local-test build install-bin install-lib install-doc install-man

clean: clean-bin clean-lib clean-doc

distclean: clean
	@echo "  RM     Makefile"
	@rm -f Makefile

uninstall: install-local-test uninstall-bin uninstall-lib uninstall-doc uninstall-man

###############################################################################
# Specific make rules

#--------------------------------------
# Build rules

build-bin: ct-ng
	@echo "  CHMOD  $<"
	@chmod a+x $<

build-lib:

build-man: docs/ct-ng.1.gz

docs/ct-ng.1.gz: docs/ct-ng.1
	@echo "  GZIP   $@"
	@gzip -c9 $< >$@

%: %.in Makefile
	@echo "  SED    $@"
	@sed -r -e 's,@@CT_MAKE@@,$(MAKE),g;'       \
	        -e 's,@@CT_BINDIR@@,$(BINDIR),g;'   \
	        -e 's,@@CT_LIBDIR@@,$(LIBDIR),g;'   \
	        -e 's,@@CT_DOCDIR@@,$(DOCDIR),g;'   \
	        -e 's,@@CT_MANDIR@@,$(MANDIR),g;'   \
	        -e 's,@@CT_VERSION@@,$(VERSION),g;'	\
	        -e 's,@@CT_DATE@@,$(DATE),g;'       \
	     $@.in >$@

#--------------------------------------
# Clean rules

clean-bin:
	@echo "  RM     ct-ng"
	@rm -f ct-ng

clean-lib:

clean-doc:
	@echo "  RM     docs/ct-ng.1"
	@rm -f docs/ct-ng.1
	@echo "  RM     docs/ct-ng.1.gz"
	@rm -f docs/ct-ng.1.gz

#--------------------------------------
# Install rules

# If using locally, don't install
install-local-test:
	@if [ "$(LOCAL)" = "1" ]; then                                          \
	     echo "You're using local copy as runtime. You can't (un)install."; \
	     false;                                                             \
	 fi

install-bin: install-local-test $(BINDIR)
	@echo "  INST   ct-ng"
	@install -m 755 ct-ng $(BINDIR)/ct-ng

install-lib: install-local-test $(LIBDIR) install-lib-main install-lib-samples

install-lib-main: install-local-test $(LIBDIR)
	@for src_dir in arch config kconfig patches scripts tools; do            \
	     echo "  INST   $${src_dir}/";                                  \
	     tar cf - --exclude=.svn $${src_dir} |(cd $(LIBDIR); tar xf -); \
	 done
	@rm -f $(LIBDIR)/tools/addToolVersion.sh
	@echo "  INST   steps.mk"
	@install -m 644 steps.mk $(LIBDIR)/steps.mk

# Samples need a little love:
#  - change every occurrence of CT_TOP_DIR to CT_LIB_DIR
install-lib-samples: install-local-test $(LIBDIR) install-lib-main
	@echo "  INST   samples/"
	@tar cf - --exclude=.svn samples |(cd $(LIBDIR); tar xf -)
	@for samp_file in $(LIBDIR)/samples/*/crosstool.config; do                  \
	     sed -r -i -e 's,\$$\{CT_TOP_DIR\},\$$\{CT_LIB_DIR\},g;' $${samp_file}; \
	 done

install-doc: install-local-test $(DOCDIR)
	@for doc_file in docs/CREDITS docs/overview.txt; do	\
	     echo "  INST   $${doc_file}";              	\
	     install -m 644 "$${doc_file}" $(DOCDIR);   	\
	 done

install-man: install-local-test $(MANDIR)
	@echo "  INST   ct-ng.1.gz"
	@install -m 644 docs/ct-ng.1.gz $(MANDIR)

$(BINDIR) $(LIBDIR) $(DOCDIR) $(MANDIR)::
	@echo "  MKDIR  $@"
	@install -m 755 -d $@


#--------------------------------------
# Uninstall rules

uninstall-bin: install-local-test
	@rm -f $(BINDIR)/ct-ng

uninstall-lib: install-local-test
	@rm -rf $(LIBDIR)

uninstall-doc: install-local-test
	@rm -rf $(DOCDIR)

uninstall-man: install-local-test
	@rm -f $(MANDIR)/ct-ng.1{,.gz}