blob: 146023b21dda0323483ac328ff468da280cf4d6f [file] [log] [blame]
default: all
# Build everything by default
BUILD_HNVRAM?= # default off: needs separate library
BUILD_SSDP?=y
BUILD_DNSSD?=y
BUILD_LOGUPLOAD?= # default off: needs libgtest
BUILD_BLUETOOTH?= # default off: needs bluetooth.h
BUILD_WAVEGUIDE?=y
BUILD_DVBUTILS?=y
BUILD_SYSMGR?=y
BUILD_CACHE_WARMING?=y
BUILD_STATUTILS?=y
BUILD_SPEEDTEST?=y
BUILD_CRYPTDEV?= # default off: needs libdevmapper
BUILD_SIGNING?= # default off: needs libgtest
BUILD_JSONPOLL?=n
BUILD_BOUNCER?= # default off: costly
BUILD_PRESTERASTATS?=n
export BUILD_HNVRAM BUILD_SSDP BUILD_DNSSD BUILD_LOGUPLOAD \
BUILD_BLUETOOTH BUILD_WAVEGUIDE BUILD_DVBUTILS BUILD_SYSMGR \
BUILD_STATUTILS BUILD_CRYPTDEV BUILD_SIGNING BUILD_JSONPOLL \
BUILD_PRESTERASTATS BUILD_CACHE_WARMING BUILD_BOUNCER
# note: libgpio is not built here. It's conditionally built
# via buildroot/packages/google/google_platform/google_platform.mk
DIRS=libstacktrace libexperiments ginstall cmds \
antirollback tvstat gpio-mailbox spectralanalyzer wifi wifiblaster \
sysvar py_mtd devcert
ifeq ($(BUILD_SYSMGR),y)
DIRS+=sysmgr
DIRS+=base
endif
ifeq ($(BUILD_WAVEGUIDE),y)
DIRS+=waveguide
DIRS+=taxonomy
endif
ifeq ($(BUILD_HNVRAM),y)
DIRS+=hnvram
endif
ifeq ($(BUILD_CACHE_WARMING),y)
DIRS+=cache_warming
endif
ifeq ($(BUILD_LOGUPLOAD),y)
DIRS+=logupload/client
endif
ifeq ($(BUILD_DVBUTILS),y)
DIRS+=dvbutils
endif
ifeq ($(BUILD_CRYPTDEV),y)
DIRS+=cryptdev
endif
ifeq ($(BUILD_SIGNING),y)
DIRS+=signing
endif
ifeq ($(BUILD_SPEEDTEST),y)
DIRS+=speedtest
endif
ifeq ($(BUILD_JSONPOLL),y)
DIRS+=jsonpoll
endif
ifeq ($(BUILD_CRAFTUI),y)
DIRS+=craftui
endif
ifeq ($(BUILD_BOUNCER),y)
DIRS+=bouncer
endif
ifeq ($(BR2_TARGET_GENERIC_PLATFORM_NAME),gfsc100)
DIRS+=diags
endif
ifeq ($(BR2_TARGET_GENERIC_PLATFORM_NAME),gfmn100)
DIRS+=diags
endif
ifeq ($(BR2_TARGET_GENERIC_PLATFORM_NAME),gflt110)
DIRS+=diags
endif
ifeq ($(BR2_TARGET_GENERIC_PLATFORM_NAME),gflt400)
DIRS+=diags
endif
ifeq ($(BR2_TARGET_GENERIC_PLATFORM_NAME),gfrg240)
DIRS+=diags
endif
ifeq ($(BUILD_CONMAN),y)
DIRS+=conman
endif
ifeq ($(BUILD_PRESTERASTATS),y)
DIRS+=presterastats
endif
ifeq ($(BUILD_LEDPATTERN),y)
DIRS+=ledpattern
endif
ifeq ($(BUILD_BLUETOOTH),y)
DIRS+=rcu_audio
endif
PREFIX=/usr
BINDIR=$(DESTDIR)$(PREFIX)/bin
LIBDIR=$(DESTDIR)$(PREFIX)/lib
all: $(addsuffix /all,$(DIRS)) build-commonpy
test: $(addsuffix /test,$(DIRS))
clean: $(addsuffix /clean,$(DIRS))
find \( -name '*.pyc' -o -name '*~' \) -exec rm -fv {} \;
rm -rf build
install-libs: $(addsuffix /install-libs,$(DIRS))
# The install targets in the recursive call use setuptools to build the python
# packages. These cannot be run in parallel, as they appear to race with each
# other to write site-packages/easy-install.pth.
install:
set -e; for d in $(DIRS); do $(MAKE) -C $$d install; done
$(MAKE) install-commonpy
mkdir -p $(BINDIR)
rm -fv $(BINDIR)/hnvram
ifeq ($(BR2_TARGET_GENERIC_PLATFORM_NAME), gfmn100)
ln -s /usr/bin/hnvram_wrapper $(BINDIR)/hnvram
else ifeq ($(BR2_TARGET_GENERIC_PLATFORM_NAME), gflt110)
ln -s /usr/bin/hnvram_wrapper $(BINDIR)/hnvram
else
ln -s /usr/bin/hnvram_binary $(BINDIR)/hnvram
endif
sysmgr/all: base/all libstacktrace/all libexperiments/all
cmds/all: libstacktrace/all libexperiments/all
gpio-mailbox/all: libstacktrace/all libexperiments/all
%/all:
$(MAKE) -C $* all
%/test:
$(MAKE) -C $* test
%/clean:
$(MAKE) -C $* clean
%/install:
$(MAKE) -C $* install
build-commonpy:
PYTHONPATH=$(HOSTPYTHONPATH) $(HOSTDIR)/usr/bin/python setup.py build
PYTHONPATH=$(TARGETPYTHONPATH) $(HOSTDIR)/usr/bin/python setup.py build
install-commonpy:
PYTHONPATH=$(HOSTPYTHONPATH) $(HOSTDIR)/usr/bin/python setup.py install --prefix=$(HOSTDIR)$(PREFIX)
PYTHONPATH=$(TARGETPYTHONPATH) $(HOSTDIR)/usr/bin/python setup.py install --prefix=$(DESTDIR)$(PREFIX)
%/install-libs:
$(MAKE) -C $* install-libs