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