ia64/xen-unstable

view xen/Makefile @ 9706:3c05406f5e0a

In some cases, say for instance for some bizzare reason
the tree was checked out of CVS, which doens't neccessarily
store file permissions, mkbuildtree may not be executable.
So run them explicitly via bash.

Signed-Off-By: Horms <horms@verge.net.au>
author kaf24@firebug.cl.cam.ac.uk
date Thu Apr 13 11:24:00 2006 +0100 (2006-04-13)
parents c9d706834d25
children 25e4cd1c3d26
line source
1 # This is the correct place to edit the build version.
2 # All other places this is stored (eg. compile.h) should be autogenerated.
3 export XEN_VERSION := 3
4 export XEN_SUBVERSION := 0
5 export XEN_EXTRAVERSION := -unstable
6 export XEN_FULLVERSION := $(XEN_VERSION).$(XEN_SUBVERSION)$(XEN_EXTRAVERSION)
8 export BASEDIR := $(CURDIR)
10 .PHONY: default
11 default: build
13 .PHONY: dist
14 dist: install
16 .PHONY: debug
17 debug:
18 objdump -D -S $(TARGET)-syms > $(TARGET).s
20 .PHONY: build install clean cscope TAGS tags
21 build install clean cscope TAGS tags::
22 make -f Rules.mk _$@
24 .PHONY: _build
25 _build: $(TARGET).gz
27 .PHONY: _install
28 _install: $(TARGET).gz
29 [ -d $(DESTDIR)/boot ] || $(INSTALL_DIR) $(DESTDIR)/boot
30 $(INSTALL_DATA) $(TARGET).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_FULLVERSION).gz
31 ln -f -s $(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_VERSION).$(XEN_SUBVERSION).gz
32 ln -f -s $(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_VERSION).gz
33 ln -f -s $(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET)).gz
34 $(INSTALL_DATA) $(TARGET)-syms $(DESTDIR)/boot/$(notdir $(TARGET))-syms-$(XEN_FULLVERSION)
35 [ -d $(DESTDIR)/usr/include/xen/io ] || \
36 $(INSTALL_DIR) $(DESTDIR)/usr/include/xen/io
37 $(INSTALL_DATA) include/public/*.h $(DESTDIR)/usr/include/xen
38 $(INSTALL_DATA) include/public/io/*.h $(DESTDIR)/usr/include/xen/io
39 $(INSTALL_DATA) include/public/COPYING $(DESTDIR)/usr/include/xen
41 .PHONY: _clean
42 _clean: delete-unfresh-files
43 $(MAKE) -C tools clean
44 $(MAKE) -f $(BASEDIR)/Rules.mk -C common clean
45 $(MAKE) -f $(BASEDIR)/Rules.mk -C drivers clean
46 $(MAKE) -f $(BASEDIR)/Rules.mk -C acm clean
47 $(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) clean
48 rm -f include/asm *.o $(TARGET)* *~ core
49 rm -f include/asm-*/asm-offsets.h
50 rm -f include/xen/acm_policy.h
52 $(TARGET).gz: $(TARGET)
53 gzip -f -9 < $< > $@.new
54 mv $@.new $@
56 $(TARGET): delete-unfresh-files
57 $(MAKE) -C tools
58 $(MAKE) -f $(BASEDIR)/Rules.mk include/xen/compile.h
59 $(MAKE) -f $(BASEDIR)/Rules.mk include/xen/acm_policy.h
60 [ -e include/asm ] || ln -sf asm-$(TARGET_ARCH) include/asm
61 $(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) asm-offsets.s
62 $(MAKE) -f $(BASEDIR)/Rules.mk include/asm-$(TARGET_ARCH)/asm-offsets.h
63 $(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $(TARGET)
65 # drivers/char/console.o contains static banner/compile info. Blow it away.
66 # Don't refresh these files during e.g., 'sudo make install'
67 .PHONY: delete-unfresh-files
68 delete-unfresh-files:
69 @if [ ! -r include/xen/compile.h -o -O include/xen/compile.h ]; then \
70 rm -f include/xen/{banner,compile}.h; \
71 fi
73 # acm_policy.h contains security policy for Xen
74 include/xen/acm_policy.h:
75 @(set -e; \
76 echo "/*"; \
77 echo " * DO NOT MODIFY."; \
78 echo " *"; \
79 echo " * This file was auto-generated by xen/Makefile $<"; \
80 echo " *"; \
81 echo " */"; \
82 echo ""; \
83 echo "#ifndef ACM_DEFAULT_SECURITY_POLICY"; \
84 echo "#define ACM_DEFAULT_SECURITY_POLICY $(ACM_DEFAULT_SECURITY_POLICY)"; \
85 echo "#endif") >$@
87 # compile.h contains dynamic build info. Rebuilt on every 'make' invocation.
88 include/xen/compile.h: LANG=C
89 include/xen/compile.h: include/xen/compile.h.in include/xen/banner.h
90 @sed -e 's/@@date@@/$(shell date)/g' \
91 -e 's/@@time@@/$(shell date +%T)/g' \
92 -e 's/@@whoami@@/$(shell whoami)/g' \
93 -e 's/@@domain@@/$(shell ([ -x /bin/dnsdomainname ] && /bin/dnsdomainname) || ([ -x /bin/domainname ] && /bin/domainname || echo [unknown]))/g' \
94 -e 's/@@hostname@@/$(shell hostname)/g' \
95 -e 's|@@compiler@@|$(shell $(CC) $(CFLAGS) -v 2>&1 | tail -n 1 | sed -e "s;|;/;")|g' \
96 -e 's/@@version@@/$(XEN_VERSION)/g' \
97 -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
98 -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
99 -e 's!@@changeset@@!$(shell ((hg parents || head -n 7 ../ChangeLog || echo date: unavailable) | awk '{FS="changeset:[ ]+"}/^changeset/{CS=$$2};{FS="date:[ ]+"}/^date/{D=$$2}; END {print D, CS}') 2>/dev/null)!g' \
100 < include/xen/compile.h.in > $@.new
101 @cat include/xen/banner.h >> $@.new
102 @mv -f $@.new $@
104 include/xen/banner.h:
105 tools/figlet/figlet -d tools/figlet Xen $(XEN_FULLVERSION) > $@.new
106 @mv -f $@.new $@
108 include/asm-$(TARGET_ARCH)/asm-offsets.h: arch/$(TARGET_ARCH)/asm-offsets.s
109 @(set -e; \
110 echo "/*"; \
111 echo " * DO NOT MODIFY."; \
112 echo " *"; \
113 echo " * This file was auto-generated from $<"; \
114 echo " *"; \
115 echo " */"; \
116 echo ""; \
117 echo "#ifndef __ASM_OFFSETS_H__"; \
118 echo "#define __ASM_OFFSETS_H__"; \
119 echo ""; \
120 sed -ne "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"; \
121 echo ""; \
122 echo "#endif") <$< >$@
124 SUBDIRS = acm arch/$(TARGET_ARCH) common drivers
125 define all_sources
126 ( find include/asm-$(TARGET_ARCH) -name SCCS -prune -o -name '*.h' -print; \
127 find include -type d -name SCCS -prune -o \( -name "asm-*" -o \
128 -name config \) -prune -o -name '*.h' -print; \
129 find $(SUBDIRS) -name SCCS -prune -o -name '*.[chS]' -print )
130 endef
132 .PHONY: _TAGS
133 _TAGS:
134 $(all_sources) | etags -
136 .PHONY: _tags
137 _tags:
138 $(all_sources) | xargs ctags
140 .PHONY: _cscope
141 _cscope:
142 $(all_sources) > cscope.files
143 cscope -k -b -q
145 .PHONY: MAP
146 MAP:
147 $(NM) $(TARGET) | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map