Makefile revision 8aa87ab9b4ee68eec75af26d550fbcfb732d660f
1# Makefile for toybox.
2# Copyright 2006 Rob Landley <rob@landley.net>
3
4all: toybox
5
6KCONFIG_CONFIG ?= .config
7toybox toybox_unstripped: $(KCONFIG_CONFIG) *.[ch] lib/*.[ch] toys/*.h toys/*/*.c scripts/*.sh
8	scripts/make.sh
9
10.PHONY: clean distclean baseline bloatcheck install install_flat \
11	uinstall uninstall_flat test tests help scripts/test
12
13include kconfig/Makefile
14
15$(KCONFIG_TOP): generated/Config.in
16generated/Config.in: toys/*/*.c scripts/genconfig.sh
17	scripts/genconfig.sh
18
19HOSTCC?=cc
20
21# Development targets
22baseline: toybox_unstripped
23	@cp toybox_unstripped toybox_old
24
25bloatcheck: toybox_old toybox_unstripped
26	@scripts/bloatcheck toybox_old toybox_unstripped
27
28generated/instlist: toybox
29	$(HOSTCC) -I . scripts/install.c -o generated/instlist
30
31install_flat: generated/instlist
32	scripts/install.sh --symlink --force
33
34install:
35	scripts/install.sh --long --symlink --force
36
37uninstall_flat: generated/instlist
38	scripts/install.sh --uninstall
39
40uninstall:
41	scripts/install.sh --long --uninstall
42
43clean::
44	rm -rf toybox toybox_unstripped testdir generated/build.sh \
45		.singleconfig .singleconfig.old generated/obj \
46		generated/Config.* generated/*.h generated/*.dat \
47		generated/instlist generated/mkflags generated/config2help
48
49distclean: clean
50	rm -f toybox_old .config*
51
52test: tests
53
54tests:
55	scripts/test.sh
56
57help::
58	@echo  '  toybox          - Build toybox.'
59	@echo  '  baseline        - Create busybox_old for use by bloatcheck.'
60	@echo  '  bloatcheck      - Report size differences between old and current versions'
61	@echo  '  test            - Run test suite against compiled commands.'
62	@echo  '  clean           - Delete temporary files.'
63	@echo  "  distclean       - Delete everything that isn't shipped."
64	@echo  '  install_flat    - Install toybox into $$PREFIX directory.'
65	@echo  '  install         - Install toybox into subdirectories of $$PREFIX.'
66	@echo  '  uninstall_flat  - Remove toybox from $$PREFIX directory.'
67	@echo  '  uninstall       - Remove toybox from subdirectories of $$PREFIX.'
68	@echo  ''
69	@echo  'example: CFLAGS="--static" CROSS_COMPILE=armv5l- make defconfig toybox install'
70	@echo  ''
71