Loading...
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 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | # ========================================================================== # Build system # ========================================================================== busybox.links: $(srctree)/applets/busybox.mkll $(objtree)/include/autoconf.h $(srctree)/include/applets.h $(Q)-$(SHELL) $^ >$@ .PHONY: install ifeq ($(CONFIG_INSTALL_APPLET_SYMLINKS),y) INSTALL_OPTS:= --symlinks endif ifeq ($(CONFIG_INSTALL_APPLET_HARDLINKS),y) INSTALL_OPTS:= --hardlinks endif ifeq ($(CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS),y) ifeq ($(CONFIG_INSTALL_SH_APPLET_SYMLINK),y) INSTALL_OPTS:= --sw-sh-sym endif ifeq ($(CONFIG_INSTALL_SH_APPLET_HARDLINK),y) INSTALL_OPTS:= --sw-sh-hard endif ifeq ($(CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER),y) INSTALL_OPTS:= --scriptwrapper endif endif install: $(srctree)/applets/install.sh busybox busybox.links $(Q)DO_INSTALL_LIBS="$(strip $(LIBBUSYBOX_SONAME) $(DO_INSTALL_LIBS))" \ $(SHELL) $< $(CONFIG_PREFIX) $(INSTALL_OPTS) ifeq ($(strip $(CONFIG_FEATURE_SUID)),y) @echo @echo @echo -------------------------------------------------- @echo You will probably need to make your busybox binary @echo setuid root to ensure all configured applets will @echo work properly. @echo -------------------------------------------------- @echo endif uninstall: busybox.links rm -f $(CONFIG_PREFIX)/bin/busybox for i in `cat busybox.links` ; do rm -f $(CONFIG_PREFIX)$$i; done ifneq ($(strip $(DO_INSTALL_LIBS)),n) for i in $(LIBBUSYBOX_SONAME) $(DO_INSTALL_LIBS); do \ rm -f $(CONFIG_PREFIX)$$i; \ done endif check test: busybox busybox.links bindir=$(objtree) srcdir=$(srctree)/testsuite SED="$(SED)" \ $(SHELL) $(srctree)/testsuite/runtest $(if $(KBUILD_VERBOSE:0=),-v) .PHONY: release release: distclean cd ..; \ rm -r -f busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION); \ cp -a busybox busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) && { \ find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type d \ -name .svn \ -print \ -exec rm -r -f {} \; ; \ find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type f \ -name .\#* \ -print \ -exec rm -f {} \; ; \ tar -czf busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION).tar.gz \ busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ ; } .PHONY: checkhelp checkhelp: $(Q)$(srctree)/scripts/checkhelp.awk \ $(patsubst %,$(srctree)/%,$(wildcard $(patsubst %,%/Config.in,$(busybox-dirs) ./))) .PHONY: sizes sizes: busybox_unstripped $(NM) --size-sort $(<) .PHONY: bloatcheck bloatcheck: busybox_old busybox_unstripped @$(srctree)/scripts/bloat-o-meter busybox_old busybox_unstripped @$(CROSS_COMPILE)size busybox_old busybox_unstripped .PHONY: baseline baseline: busybox_unstripped @mv busybox_unstripped busybox_old .PHONY: objsizes objsizes: busybox_unstripped $(srctree)/scripts/objsizes .PHONY: stksizes stksizes: busybox_unstripped $(CROSS_COMPILE)objdump -d busybox_unstripped | $(srctree)/scripts/checkstack.pl $(ARCH) .PHONY: bigdata bigdata: busybox_unstripped $(CROSS_COMPILE)nm --size-sort busybox_unstripped | grep -vi ' [tr] ' # Documentation Targets .PHONY: doc doc: docs/busybox.pod docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html docs/busybox.pod: $(srctree)/docs/busybox_header.pod \ $(srctree)/include/usage.h \ $(srctree)/docs/busybox_footer.pod \ $(srctree)/docs/autodocifier.pl $(disp_doc) $(Q)-mkdir -p docs $(Q)-( cat $(srctree)/docs/busybox_header.pod ; \ $(srctree)/docs/autodocifier.pl $(srctree)/include/usage.h ; \ cat $(srctree)/docs/busybox_footer.pod ; ) > docs/busybox.pod docs/BusyBox.txt: docs/busybox.pod $(disp_doc) $(Q)-mkdir -p docs $(Q)-pod2text $< > $@ docs/BusyBox.1: docs/busybox.pod $(disp_doc) $(Q)-mkdir -p docs $(Q)-pod2man --center=BusyBox --release="version $(VERSION)" \ $< > $@ docs/BusyBox.html: docs/busybox.net/BusyBox.html $(disp_doc) $(Q)-mkdir -p docs $(Q)-rm -f docs/BusyBox.html $(Q)-cp docs/busybox.net/BusyBox.html docs/BusyBox.html docs/busybox.net/BusyBox.html: docs/busybox.pod $(Q)-mkdir -p docs/busybox.net $(Q)-pod2html --noindex $< > \ docs/busybox.net/BusyBox.html $(Q)-rm -f pod2htm* # documentation, cross-reference # Modern distributions already ship synopsis packages (e.g. debian) # If you have an old distribution go to http://synopsis.fresco.org/ syn_tgt = $(wildcard $(patsubst %,%/*.c,$(busybox-alldirs))) syn = $(patsubst %.c, %.syn, $(syn_tgt)) comma:= , brace_open:= ( brace_close:= ) SYN_CPPFLAGS := $(strip $(CPPFLAGS) $(EXTRA_CPPFLAGS)) SYN_CPPFLAGS := $(subst $(brace_open),\$(brace_open),$(SYN_CPPFLAGS)) SYN_CPPFLAGS := $(subst $(brace_close),\$(brace_close),$(SYN_CPPFLAGS)) #SYN_CPPFLAGS := $(subst ",\",$(SYN_CPPFLAGS)) #") #SYN_CPPFLAGS := [$(patsubst %,'%'$(comma),$(SYN_CPPFLAGS))''] %.syn: %.c synopsis -p C -l Comments.SSDFilter,Comments.Previous -Wp,preprocess=True,cppflags="'$(SYN_CPPFLAGS)'" -o $@ $< .PHONY: html html: $(syn) synopsis -f HTML -Wf,title="'BusyBox Documentation'" -o $@ $^ -include $(srctree)/Makefile.local |