X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=Makefile.custom;h=6f679c4e12b4cb7bc139104aa321f035db387261;hb=24c212b9acba0a3bbd74298d5ba076910cea51b0;hp=0cc40a667926155cac235a11dae2e28a75b7960c;hpb=aae82e0d8b3a1f01f230b29ee3e9c9939c89d688;p=oweals%2Fbusybox.git diff --git a/Makefile.custom b/Makefile.custom index 0cc40a667..6f679c4e1 100644 --- a/Makefile.custom +++ b/Makefile.custom @@ -2,19 +2,39 @@ # Build system # ========================================================================== -%.bflt: %_unstripped - $(CROSS_COMPILE)elf2flt $(ELF2FLTFLAGS) $< -o $@ +busybox.links: $(srctree)/applets/busybox.mkll $(objtree)/include/autoconf.h include/applets.h + $(Q)-$(SHELL) $^ > $@ -busybox.links: $(srctree)/applets/busybox.mkll $(objtree)/include/autoconf.h $(srctree)/include/applets.h - $(Q)-$(SHELL) $^ >$@ +busybox.cfg.suid: $(srctree)/applets/busybox.mksuid $(objtree)/include/autoconf.h include/applets.h + $(Q)-SUID="yes" $(SHELL) $^ > $@ +busybox.cfg.nosuid: $(srctree)/applets/busybox.mksuid $(objtree)/include/autoconf.h include/applets.h + $(Q)-SUID="DROP" $(SHELL) $^ > $@ .PHONY: install +ifeq ($(CONFIG_INSTALL_APPLET_DONT),y) +INSTALL_OPTS:= --none +endif 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 +ifeq ($(CONFIG_FEATURE_INDIVIDUAL),y) +INSTALL_OPTS:= --binaries +LIBBUSYBOX_SONAME:= 0_lib/libbusybox.so.$(BB_VER) +endif install: $(srctree)/applets/install.sh busybox busybox.links $(Q)DO_INSTALL_LIBS="$(strip $(LIBBUSYBOX_SONAME) $(DO_INSTALL_LIBS))" \ $(SHELL) $< $(CONFIG_PREFIX) $(INSTALL_OPTS) @@ -29,6 +49,9 @@ ifeq ($(strip $(CONFIG_FEATURE_SUID)),y) @echo endif +install-noclobber: INSTALL_OPTS+=--noclobber +install-noclobber: install + uninstall: busybox.links rm -f $(CONFIG_PREFIX)/bin/busybox for i in `cat busybox.links` ; do rm -f $(CONFIG_PREFIX)$$i; done @@ -38,19 +61,36 @@ ifneq ($(strip $(DO_INSTALL_LIBS)),n) done endif +# Not very elegant: copies testsuite to objdir... +# (cp -pPR is POSIX-compliant (cp -dpR or cp -a would not be)) +.PHONY: check +.PHONY: test +ifeq ($(CONFIG_UNIT_TEST),y) +UNIT_CMD = ./busybox unit +endif check test: busybox busybox.links - bindir=$(objtree) srcdir=$(srctree)/testsuite SED="$(SED)" \ - $(SHELL) $(srctree)/testsuite/runtest $(if $(KBUILD_VERBOSE:0=),-v) + $(UNIT_CMD) + test -d $(objtree)/testsuite || cp -pPR $(srctree)/testsuite $(objtree) + bindir=$(objtree) srcdir=$(srctree)/testsuite \ + $(SHELL) -c "cd $(objtree)/testsuite && $(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) && { \ + cp -pPR 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 d \ + -name .git \ + -print \ + -exec rm -r -f {} \; ; \ + find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type f \ + -name .gitignore \ + -print \ + -exec rm -f {} \; ; \ find busybox-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)/ -type f \ -name .\#* \ -print \ @@ -70,6 +110,7 @@ sizes: busybox_unstripped .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 @@ -79,34 +120,48 @@ baseline: busybox_unstripped objsizes: busybox_unstripped $(srctree)/scripts/objsizes +.PHONY: stksizes +stksizes: busybox_unstripped + $(CROSS_COMPILE)objdump -d busybox_unstripped | $(srctree)/scripts/checkstack.pl $(ARCH) | uniq + .PHONY: bigdata bigdata: busybox_unstripped - nm --size-sort busybox_unstripped | grep -vi ' [tr] ' | tail -20 + $(CROSS_COMPILE)nm --size-sort busybox_unstripped | grep -vi ' [trw] ' # Documentation Targets .PHONY: doc -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 +# FIXME: Doesn't belong here + cmd_doc = + quiet_cmd_doc = $(Q)echo " DOC $(@F)" +silent_cmd_doc = +disp_doc = $($(quiet)cmd_doc) + +# sed adds newlines after "Options:" etc, +# this is needed in order to get good BusyBox.{1,txt,html} docs/busybox.pod: $(srctree)/docs/busybox_header.pod \ - $(srctree)/include/usage.h \ + include/usage.h \ $(srctree)/docs/busybox_footer.pod \ - $(srctree)/docs/autodocifier.pl + applets/usage_pod $(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 + $(Q)-( \ + cat $(srctree)/docs/busybox_header.pod; \ + echo; \ + applets/usage_pod | sed 's/^[A-Za-z][A-Za-z ]*[a-z]:$$/&\n/'; \ + 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 +docs/busybox.1: docs/busybox.pod $(disp_doc) $(Q)-mkdir -p docs - $(Q)-pod2man --center=BusyBox --release="version $(VERSION)" \ - $< > $@ + $(Q)-pod2man --center=busybox --release="version $(KERNELVERSION)" $< > $@ docs/BusyBox.html: docs/busybox.net/BusyBox.html $(disp_doc) @@ -116,8 +171,7 @@ docs/BusyBox.html: docs/busybox.net/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)-pod2html --noindex $< > $@ $(Q)-rm -f pod2htm* # documentation, cross-reference @@ -143,3 +197,5 @@ SYN_CPPFLAGS := $(subst $(brace_close),\$(brace_close),$(SYN_CPPFLAGS)) .PHONY: html html: $(syn) synopsis -f HTML -Wf,title="'BusyBox Documentation'" -o $@ $^ + +-include $(srctree)/Makefile.local