view Makefile @ 1755:ab3532a61d52 draft

Fix toybox build with C99 compilers toybox "make menuconfig" currently fails to build if the compiler is in C99 mode (clang 3.6 and gcc 5.0 snapshots default to C99 mode, you can also reproduce the failure with older gcc by using 'make menuconfig HOSTCC="gcc -std=gnu99"'). The problem is that inline semantics changed in C99, and kconf_id_lookup's inline-ness depends on C89 semantics there.
author Bernhard Rosenkr?nzer <bernhard.rosenkranzer@linaro.org>
date Wed, 25 Mar 2015 13:46:34 -0500
parents a5901bfefda5
children 190ecf70fbe5
line wrap: on
line source

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

all: toybox

KCONFIG_CONFIG ?= .config

toybox_stuff: $(KCONFIG_CONFIG) *.[ch] lib/*.[ch] toys/*.h toys/*/*.c scripts/*.sh

toybox toybox_unstripped: toybox_stuff
	scripts/make.sh

.PHONY: clean distclean baseline bloatcheck install install_flat \
	uinstall uninstall_flat test tests help toybox_stuff change

include kconfig/Makefile

$(KCONFIG_CONFIG): $(KCONFIG_TOP)
$(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

generated/instlist: toybox_stuff
	NOBUILD=1 scripts/make.sh
	$(HOSTCC) -I . scripts/install.c -o generated/instlist

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

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

uninstall_flat: generated/instlist
	scripts/install.sh --uninstall

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

change:
	scripts/change.sh

clean::
	rm -rf toybox toybox_unstripped generated change .singleconfig*

distclean: clean
	rm -f toybox_old .config*

test: tests

tests:
	scripts/test.sh

help::
	@echo  '  toybox          - Build toybox.'
	@echo  '  change          - Build each command standalone under change/.'
	@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  ''