2 |
# Build system |
# Build system |
3 |
# ========================================================================== |
# ========================================================================== |
4 |
|
|
|
%.bflt: %_unstripped |
|
|
$(CROSS_COMPILE)elf2flt $(ELF2FLTFLAGS) $< -o $@ |
|
|
|
|
5 |
busybox.links: $(srctree)/applets/busybox.mkll $(objtree)/include/autoconf.h $(srctree)/include/applets.h |
busybox.links: $(srctree)/applets/busybox.mkll $(objtree)/include/autoconf.h $(srctree)/include/applets.h |
6 |
$(Q)-$(SHELL) $^ >$@ |
$(Q)-$(SHELL) $^ >$@ |
7 |
|
|
12 |
ifeq ($(CONFIG_INSTALL_APPLET_HARDLINKS),y) |
ifeq ($(CONFIG_INSTALL_APPLET_HARDLINKS),y) |
13 |
INSTALL_OPTS:= --hardlinks |
INSTALL_OPTS:= --hardlinks |
14 |
endif |
endif |
15 |
|
ifeq ($(CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS),y) |
16 |
|
ifeq ($(CONFIG_INSTALL_SH_APPLET_SYMLINK),y) |
17 |
|
INSTALL_OPTS:= --sw-sh-sym |
18 |
|
endif |
19 |
|
ifeq ($(CONFIG_INSTALL_SH_APPLET_HARDLINK),y) |
20 |
|
INSTALL_OPTS:= --sw-sh-hard |
21 |
|
endif |
22 |
|
ifeq ($(CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER),y) |
23 |
|
INSTALL_OPTS:= --scriptwrapper |
24 |
|
endif |
25 |
|
endif |
26 |
install: $(srctree)/applets/install.sh busybox busybox.links |
install: $(srctree)/applets/install.sh busybox busybox.links |
27 |
$(Q)DO_INSTALL_LIBS="$(strip $(LIBBUSYBOX_SONAME) $(DO_INSTALL_LIBS))" \ |
$(Q)DO_INSTALL_LIBS="$(strip $(LIBBUSYBOX_SONAME) $(DO_INSTALL_LIBS))" \ |
28 |
$(SHELL) $< $(CONFIG_PREFIX) $(INSTALL_OPTS) |
$(SHELL) $< $(CONFIG_PREFIX) $(INSTALL_OPTS) |
46 |
done |
done |
47 |
endif |
endif |
48 |
|
|
49 |
|
# Not very elegant: copies testsuite to objdir... |
50 |
|
# (cp -pPR is POSIX-compliant (cp -dpR or cp -a would not be)) |
51 |
|
.PHONY: check |
52 |
|
.PHONY: test |
53 |
check test: busybox busybox.links |
check test: busybox busybox.links |
54 |
bindir=$(objtree) srcdir=$(srctree)/testsuite SED="$(SED)" \ |
test -d $(objtree)/testsuite || cp -pPR $(srctree)/testsuite $(objtree) |
55 |
$(SHELL) $(srctree)/testsuite/runtest $(if $(KBUILD_VERBOSE:0=),-v) |
bindir=$(objtree) srcdir=$(srctree)/testsuite \ |
56 |
|
$(SHELL) -c "cd $(objtree)/testsuite && $(srctree)/testsuite/runtest $(if $(KBUILD_VERBOSE:0=),-v)" |
57 |
|
|
58 |
.PHONY: release |
.PHONY: release |
59 |
release: distclean |
release: distclean |
60 |
cd ..; \ |
cd ..; \ |
61 |
rm -r -f busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION); \ |
rm -r -f busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION); \ |
62 |
cp -a busybox busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) && { \ |
cp -pPR busybox busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) && { \ |
63 |
find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type d \ |
find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type d \ |
64 |
-name .svn \ |
-name .svn \ |
65 |
-print \ |
-print \ |
83 |
.PHONY: bloatcheck |
.PHONY: bloatcheck |
84 |
bloatcheck: busybox_old busybox_unstripped |
bloatcheck: busybox_old busybox_unstripped |
85 |
@$(srctree)/scripts/bloat-o-meter busybox_old busybox_unstripped |
@$(srctree)/scripts/bloat-o-meter busybox_old busybox_unstripped |
86 |
|
@$(CROSS_COMPILE)size busybox_old busybox_unstripped |
87 |
|
|
88 |
.PHONY: baseline |
.PHONY: baseline |
89 |
baseline: busybox_unstripped |
baseline: busybox_unstripped |
93 |
objsizes: busybox_unstripped |
objsizes: busybox_unstripped |
94 |
$(srctree)/scripts/objsizes |
$(srctree)/scripts/objsizes |
95 |
|
|
96 |
|
.PHONY: stksizes |
97 |
|
stksizes: busybox_unstripped |
98 |
|
$(CROSS_COMPILE)objdump -d busybox_unstripped | $(srctree)/scripts/checkstack.pl $(ARCH) | uniq |
99 |
|
|
100 |
.PHONY: bigdata |
.PHONY: bigdata |
101 |
bigdata: busybox_unstripped |
bigdata: busybox_unstripped |
102 |
nm --size-sort busybox_unstripped | grep -vi ' [tr] ' | tail -20 |
$(CROSS_COMPILE)nm --size-sort busybox_unstripped | grep -vi ' [trw] ' |
103 |
|
|
104 |
# Documentation Targets |
# Documentation Targets |
105 |
.PHONY: doc |
.PHONY: doc |
106 |
doc: docs/busybox.pod docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html |
doc: docs/busybox.pod docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html |
107 |
|
|
108 |
|
# FIXME: Doesn't belong here |
109 |
|
disp_doc = \ |
110 |
|
@$(if $(quiet),echo " DOC $(@F)") |
111 |
|
|
112 |
docs/busybox.pod: $(srctree)/docs/busybox_header.pod \ |
docs/busybox.pod: $(srctree)/docs/busybox_header.pod \ |
113 |
$(srctree)/include/usage.h \ |
$(srctree)/include/usage.h \ |
114 |
$(srctree)/docs/busybox_footer.pod \ |
$(srctree)/docs/busybox_footer.pod \ |
165 |
.PHONY: html |
.PHONY: html |
166 |
html: $(syn) |
html: $(syn) |
167 |
synopsis -f HTML -Wf,title="'BusyBox Documentation'" -o $@ $^ |
synopsis -f HTML -Wf,title="'BusyBox Documentation'" -o $@ $^ |
168 |
|
|
169 |
|
-include $(srctree)/Makefile.local |