toybox/Makefile
<<
>>
Prefs
   1# Makefile for toybox.
   2# Copyright 2006 Rob Landley <rob@landley.net>
   3
   4# If people set these on the make command line, use 'em
   5# Note that CC defaults to "cc" so the one in configure doesn't get
   6# used when scripts/make.sh and care called through "make".
   7
   8HOSTCC?=cc
   9
  10export CROSS_COMPILE CFLAGS OPTIMIZE LDOPTIMIZE CC HOSTCC V STRIP
  11
  12all: toybox
  13
  14KCONFIG_CONFIG ?= .config
  15
  16toybox generated/unstripped/toybox: $(KCONFIG_CONFIG) *.[ch] lib/*.[ch] toys/*/*.c scripts/*.sh Config.in
  17        scripts/make.sh
  18
  19.PHONY: clean distclean baseline bloatcheck install install_flat \
  20        uninstall uninstall_flat tests help change \
  21        list list_working list_pending root run_root
  22
  23include kconfig/Makefile
  24-include .singlemake
  25
  26$(KCONFIG_CONFIG): $(KCONFIG_TOP)
  27        @if [ -e "$(KCONFIG_CONFIG)" ]; then make silentoldconfig; \
  28        else echo "Not configured (run 'make defconfig' or 'make menuconfig')";\
  29        exit 1; fi
  30
  31$(KCONFIG_TOP): generated/Config.in generated/Config.probed
  32generated/Config.probed: generated/Config.in
  33generated/Config.in: toys/*/*.c scripts/genconfig.sh
  34        scripts/genconfig.sh
  35
  36# Development targets
  37baseline: generated/unstripped/toybox
  38        @cp generated/unstripped/toybox generated/unstripped/toybox_old
  39
  40bloatcheck: generated/unstripped/toybox_old generated/unstripped/toybox
  41        @scripts/bloatcheck generated/unstripped/toybox_old generated/unstripped/toybox
  42
  43install_flat:
  44        scripts/install.sh --symlink --force
  45
  46install_airlock:
  47        scripts/install.sh --symlink --force --airlock
  48
  49install:
  50        scripts/install.sh --long --symlink --force
  51
  52uninstall_flat:
  53        scripts/install.sh --uninstall
  54
  55uninstall:
  56        scripts/install.sh --long --uninstall
  57
  58change:
  59        scripts/change.sh
  60
  61root_clean:
  62        @rm -rf root
  63        @echo root cleaned
  64
  65clean::
  66        @chmod -fR 700 generated || true
  67        @rm -rf toybox generated change .singleconfig*
  68        @echo cleaned
  69
  70# If singlemake was in generated/ "make clean; make test_ls" wouldn't work.
  71distclean: clean root_clean
  72        @rm -f toybox* .config* .singlemake
  73        @echo removed .config
  74
  75tests:
  76        scripts/test.sh
  77
  78root:
  79        scripts/mkroot.sh $(MAKEFLAGS)
  80
  81run_root:
  82        cd root/"$${CROSS:-host}" && ./qemu-*.sh
  83
  84help::
  85        @cat scripts/help.txt
  86