view Makefile @ 998:72bbeccf4565

fdisk: remove goto; inline valid(); merge xprintf() calls; shrink sys_types sys_types had used char[_PATH_MAX] for 22-char max strings. When this is done 48 times, it nearly doubles the size of toybox. goto should only be used when it is the easiest way to bail out. That does not mean "when we need to fall back to returning a one-liner that asks user input", nor is it suitable for looping: C has while () and do { } while (); for a reason. valid was called once. As such, it belonged inline. print_*menu could probably be inlined, but I did not do this yet in case a table-driven approach works better. This uses C string concatenation to break an overly long message up, while not wasting function calls.
author Isaac Dunham <ibid.ag@gmail.com>
date Sun, 11 Aug 2013 22:00:36 -0500
parents 2986aa63a021
children 0af2375a8ef8
line wrap: on
line source

# Makefile for toybox.
# Copyright 2006 Rob Landley <rob@landley.net>

all: toybox

toybox toybox_unstripped: .config *.[ch] lib/*.[ch] toys/*.h toys/*/*.c scripts/*.sh
	scripts/make.sh

.PHONY: clean distclean baseline bloatcheck install install_flat \
	uinstall uninstall_flat test tests help scripts/test

include kconfig/Makefile

$(KCONFIG_TOP): generated/Config.in
generated/Config.in: toys/*/*.c scripts/genconfig.sh
	scripts/genconfig.sh

HOSTCC?=cc

# Development targets
baseline: toybox_unstripped
	@cp toybox_unstripped toybox_old

bloatcheck: toybox_old toybox_unstripped
	@scripts/bloatcheck toybox_old toybox_unstripped

instlist: toybox
	$(HOSTCC) -I . scripts/install.c -o instlist

install_flat: instlist
	scripts/install.sh --symlink --force

install:
	scripts/install.sh --long --symlink --force

uninstall_flat: instlist
	scripts/install.sh --uninstall

uninstall:
	scripts/install.sh --long --uninstall

clean::
	rm -rf toybox toybox_unstripped generated/config.h generated/Config.in \
		generated/newtoys.h generated/globals.h instlist testdir \
		generated/Config.probed

distclean: clean
	rm -f toybox_old .config* generated/help.h

test: tests

tests:
	scripts/test.sh

help::
	@echo  '  toybox          - Build toybox.'
	@echo  '  baseline        - Create busybox_old for use by bloatcheck.'
	@echo  '  bloatcheck      - Report size differences between old and current versions'
	@echo  '  test            - Run test suite against compiled commands.'
	@echo  '  clean           - Delete temporary files.'
	@echo  "  distclean       - Delete everything that isn't shipped."
	@echo  '  install_flat    - Install toybox into $$PREFIX directory.'
	@echo  '  install         - Install toybox into subdirectories of $$PREFIX.'
	@echo  '  uninstall_flat  - Remove toybox from $$PREFIX directory.'
	@echo  '  uninstall       - Remove toybox from subdirectories of $$PREFIX.'
	@echo  ''
	@echo  'example: CFLAGS="--static" CROSS_COMPILE=armv5l- make defconfig toybox install'
	@echo  ''