1# 2# Broadcom Linux Router Makefile 3# 4# Copyright (C) 2015, Broadcom Corporation. All Rights Reserved. 5# 6# Permission to use, copy, modify, and/or distribute this software for any 7# purpose with or without fee is hereby granted, provided that the above 8# copyright notice and this permission notice appear in all copies. 9# 10# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 13# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 15# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 16# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17# 18# $Id: Makefile 545800 2015-04-01 18:23:25Z $ 19# 20 21ifneq (true,$(parallel)) 22 .NOTPARALLEL: 23endif 24 25include .config 26include .config.plt 27 28CPU ?= 29MAKE_ARGS ?= 30 31LINUX_VERSION ?= 2_6_36 32 33ARCH = arm 34PLT ?= arm 35 36# Get ARCH from PLT argument 37ifneq ($(findstring arm,$(PLT)),) 38ARCH := arm 39endif 40 41# uClibc wrapper 42ifeq ($(CONFIG_UCLIBC),y) 43PLATFORM := $(PLT)-uclibc 44else ifeq ($(CONFIG_GLIBC),y) 45PLATFORM := $(PLT)-glibc 46else 47PLATFORM := $(PLT) 48endif 49 50# Source bases 51export PLATFORM LIBDIR USRLIBDIR LINUX_VERSION 52 53export BCM_KVERSIONSTRING := $(subst _,.,$(LINUX_VERSION)) 54 55WLAN_ComponentsInUse := bcmwifi clm ppr olpc 56include ../makefiles/WLAN_Common.mk 57export SRCBASE := $(WLAN_SrcBaseA) 58export BASEDIR := $(WLAN_TreeBaseA) 59export TOP = $(CURDIR) 60 61ifeq (2_6_36,$(LINUX_VERSION)) 62export LINUXDIR := $(BASEDIR)/components/opensource/linux/linux-2.6.36 63export KBUILD_VERBOSE := 1 64export BUILD_MFG := 0 65SUBMAKE_SETTINGS = SRCBASE=$(SRCBASE) BASEDIR=$(BASEDIR) 66else ifeq (2_6,$(LINUX_VERSION)) 67export LINUXDIR := $(SRCBASE)/linux/linux-2.6 68export KBUILD_VERBOSE := 1 69export BUILD_MFG := 0 70SUBMAKE_SETTINGS = SRCBASE=$(SRCBASE) 71else 72export LINUXDIR := $(SRCBASE)/linux/linux 73SUBMAKE_SETTINGS = SRCBASE=$(SRCBASE) 74endif 75 76# Router Source Base Directory 77export SRCBASE_ROUTER := $(abspath $(BASEDIR)/src/router) 78 79# Opensource bases 80OPENSOURCE_BASE_DIR := $(BASEDIR)/components/opensource 81DNSMASQ_DIR := $(OPENSOURCE_BASE_DIR)/dnsmasq 82LIBNFNETLINK_DIR := $(OPENSOURCE_BASE_DIR)/netfilter/libnfnetlink 83LIBMNL_DIR := $(OPENSOURCE_BASE_DIR)/netfilter/libmnl 84LIBNETFILTER_QUEUE_DIR := $(OPENSOURCE_BASE_DIR)/netfilter/libnetfilter_queue 85LIBNETFILTER_CONNTRACK_DIR := $(OPENSOURCE_BASE_DIR)/netfilter/libnetfilter_conntrack 86SALSA_DIR := $(OPENSOURCE_BASE_DIR)/salsa 87ALSALIB_DIR := $(OPENSOURCE_BASE_DIR)/alsa-lib 88ALSAUTILS_DIR := $(OPENSOURCE_BASE_DIR)/alsa-utils 89APLAY_DIR := $(ALSAUTILS_DIR)/aplay 90AMIXER_DIR := $(ALSAUTILS_DIR)/amixer 91ALSACTL_DIR := $(ALSAUTILS_DIR)/alsactl 92MDNSRESPONDERDIR := $(OPENSOURCE_BASE_DIR)/mDNSResponder 93LIBSQLITE3_DIR := $(OPENSOURCE_BASE_DIR)/sqlite3 94LIBJSONC_DIR := $(OPENSOURCE_BASE_DIR)/jsonc 95LIBXML2_DIR := $(OPENSOURCE_BASE_DIR)/libxml2 96 97#Visualization Directories 98VISSOURCE_BASE_DIR := $(BASEDIR)/components/apps/visualization 99VISDCOLL_DIR := $(VISSOURCE_BASE_DIR)/datacollector 100VISDCON_DIR := $(VISSOURCE_BASE_DIR)/dataconcentrator 101# 102# Cross-compile environment variables 103# 104 105# Build platform 106export BUILD := i386-pc-linux-gnu 107export HOSTCC := gcc 108 109ifeq ($(PLATFORM),mipsel) 110export CROSS_COMPILE := mipsel-linux- 111export CONFIGURE := ./configure mipsel-linux --build=$(BUILD) 112export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/../mipsel-linux && pwd -P) 113endif 114 115ifeq ($(PLATFORM),mipsel-uclibc) 116ifeq (2_6_36,$(LINUX_VERSION)) 117export CROSS_COMPILE := mipsel-uclibc-linux-2.6.36- 118CFLAGS += -D__EXPORTED_HEADERS__ -fPIC 119else ifeq (2_6,$(LINUX_VERSION)) 120export CROSS_COMPILE := mipsel-uclibc-linux26- 121else 122export CROSS_COMPILE := mipsel-uclibc- 123endif 124export CONFIGURE := ./configure mipsel-linux --build=$(BUILD) 125export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/.. && pwd -P) 126endif 127 128ifeq ($(PLATFORM),mipsel-glibc) 129ifeq (2_6_36,$(LINUX_VERSION)) 130export CROSS_COMPILE := mipsel-glibc-linux-2.6.36- 131export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/.. && pwd -P) 132CFLAGS += -D__EXPORTED_HEADERS__ -fPIC 133else ifeq (2_6,$(LINUX_VERSION)) 134export CROSS_COMPILE := mipsel-linux-linux26- 135else 136export CROSS_COMPILE := mipsel-linux- 137export CONFIGURE := ./configure mipsel-linux --build=$(BUILD) 138export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/../mipsel-linux && pwd -P) 139endif 140endif 141 142ifeq ($(PLATFORM),arm-uclibc) 143export CROSS_COMPILE := arm-brcm-linux-uclibcgnueabi- 144export CONFIGURE := ./configure arm-linux --build=$(BUILD) 145export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/.. && pwd -P) 146export CFLAGS += -fno-strict-aliasing 147SUBMAKE_SETTINGS += ARCH=$(ARCH) 148EXTRA_LDFLAGS := -lgcc_s 149endif 150 151 152ifeq ($(CONFIG_RTR_OPTIMIZE_SIZE),y) 153export CFLAGS += -Os 154export OPTCFLAGS = -Os 155else 156export CFLAGS += -O2 157export OPTCFLAGS = -O2 158endif 159 160#look at driver configuration 161WLCFGDIR=$(SRCBASE)/wl/config 162 163ifeq ($(CONFIG_NVRAM),y) 164export CFLAGS += -DBCMNVRAM 165endif 166 167ifeq ($(CONFIG_BCMWPA2),y) 168export CFLAGS += -DBCMWPA2 169endif 170 171ifeq ($(RTCONFIG_DHDAP),y) 172export CONFIG_DHDAP 173export CFLAGS += -D__CONFIG_DHDAP__ 174 175export SRCBASE_DHD := $(abspath $(SRCBASE)/../dhd/src) 176export SRCBASE_SYS := $(SRCBASE_DHD) 177 178# include toplevel Make for firmware 179include Makefile.fw 180endif 181 182 183ifeq ($(RTCONFIG_GMAC3),y) 184export CFLAGS += -D__CONFIG_GMAC3__ 185endif 186 187ifeq ($(CONFIG_USBAP),y) 188export CFLAGS += -D__CONFIG_USBAP__ 189endif 190 191ifeq ($(CONFIG_BCMQOS),y) 192export CFLAGS += -DBCMQOS 193endif 194 195ifeq ($(LINUX_VERSION)$(PLT),2_6_36arm) 196ifeq ($(CONFIG_VISUALIZATION),y) 197export CFLAGS += -D__CONFIG_VISUALIZATION__ -DCONFIG_VISUALIZATION_ENABLED 198endif 199endif 200 201ifeq ($(CONFIG_WPS),y) 202export CFLAGS += -D__CONFIG_WPS__ 203# WFA WPS 2.0 Testbed extra caps 204#export CFLAGS += -DWFA_WPS_20_TESTBED 205endif 206 207ifeq ($(CONFIG_NFC),y) 208# WPS_NFC 209export CFLAGS += -D__CONFIG_NFC__ 210endif 211 212ifeq ($(CONFIG_EMF),y) 213export CFLAGS += -D__CONFIG_EMF__ 214export CONFIG_EMF_ENABLED := $(CONFIG_EMF) 215endif 216 217ifeq ($(CONFIG_IGMP_PROXY),y) 218export CFLAGS += -D__CONFIG_IGMP_PROXY__ 219endif 220 221ifeq ($(CONFIG_WL_ACI),y) 222export CFLAGS += -D__CONFIG_WL_ACI__ 223endif 224 225ifeq ($(CONFIG_TRAFFIC_MGMT_RSSI_POLICY),y) 226export CFLAGS += -DTRAFFIC_MGMT_RSSI_POLICY 227endif 228 229#if !defined(BCMDBG) 230obj-$(CONFIG_UTELNETD) += utelnetd 231#endif 232 233MNL_CFLAGS:="-I$(LIBMNL_DIR)/install/include" 234MNL_LIBS:="-L$(LIBMNL_DIR)/install/lib -lmnl" 235 236NFNETLINK_CFLAGS:="-I$(LIBNFNETLINK_DIR)/install/include" 237NFNETLINK_LIBS:="-L$(LIBNFNETLINK_DIR)/install/lib -lnfnetlink" 238 239NETFILTER_CONNTRACK_CFLAGS:="-I$(LIBNETFILTER_CONNTRACK_DIR)/install/include" 240NETFILTER_CONNTRACK_LIBS:="-L$(LIBNETFILTER_CONNTRACK_DIR)/install/lib -lnetfilter_conntrack" 241 242NETFILTER_QUEUE_CFLAGS:="-I$(LIBNETFILTER_QUEUE_DIR)/install/include" 243NETFILTER_QUEUE_LIBS:="-L$(LIBNETFILTER_QUEUE_DIR)/install/lib -lnetfilter_queue" 244 245ifeq ($(CONFIG_SOUND),y) 246export CFLAGS += -D__CONFIG_SOUND__ 247endif 248 249ifeq ($(CONFIG_VOIP),y) 250export CFLAGS += -DBCMVOIP 251endif 252 253ifeq ($(CONFIG_SQUASHFS), y) 254ROOT_IMG := target.squashfs 255else 256ROOT_IMG := target.cramfs 257endif 258 259ifeq ($(CONFIG_WAPI),y) 260export CFLAGS += -DBCMWAPI_WAI -DBCMWAPI_WPI 261endif 262 263ifeq ($(CONFIG_PHYMON_UTILITY),y) 264export CFLAGS += -DPHYMON 265endif 266 267ifneq (2_4,$(LINUX_VERSION)) 268CRAMFSDIR := cramfs 269else 270CRAMFSDIR := $(LINUXDIR)/scripts/cramfs 271endif 272 273ifeq ($(CONFIG_BCMDCS),y) 274export CFLAGS += -DBCM_DCS 275endif 276 277ifeq ($(CONFIG_EXTACS),y) 278export CFLAGS += -DEXT_ACS 279endif 280 281ifeq ($(CONFIG_BCMBSD),y) 282export CFLAGS += -DBCM_BSD 283endif 284 285ifeq ($(CONFIG_BCMSSD),y) 286export CFLAGS += -DBCM_SSD 287endif 288 289ifeq ($(CONFIG_TOAD),y) 290export CFLAGS += -D__CONFIG_TOAD__ 291endif 292 293ifeq ($(CONFIG_MFP),y) 294export CFLAGS += -DMFP 295endif 296 297ifeq ($(CONFIG_HSPOT),y) 298export CFLAGS += -DNAS_GTK_PER_STA -DHSPOT_OSEN 299endif 300 301ifeq ($(CONFIG_SIGMA),y) 302export CFLAGS += -D__CONFIG_SIGMA__ 303endif 304 305ifeq ($(CONFIG_MINI_ROUTER), y) 306export CFLAGS += -D__CONFIG_ROUTER_MINI__ 307endif 308 309ifeq ($(CONFIG_WNM), y) 310export CFLAGS += -DWLWNM 311endif 312 313export CC := $(CROSS_COMPILE)gcc 314export AR := $(CROSS_COMPILE)ar 315export AS := $(CROSS_COMPILE)as 316export LD := $(CROSS_COMPILE)ld 317export NM := $(CROSS_COMPILE)nm 318export RANLIB := $(CROSS_COMPILE)ranlib 319export STRIP := $(CROSS_COMPILE)strip 320export SIZE := $(CROSS_COMPILE)size 321 322ifneq ("$(LINUX_VERSION)","2_4") 323export MKSYM := $(shell which $(TOP)/misc/mksym.pl) 324endif 325 326# 327# Install and target directories 328# 329 330export PLATFORMDIR := $(TOP)/$(PLATFORM) 331export INSTALLDIR := $(PLATFORMDIR)/install 332export TARGETDIR := $(PLATFORMDIR)/target 333 334define STRIP_DEBUG_SYMBOLS 335 @dbgsymf=$(basename $(1))_dbgsym$(suffix $(1)); \ 336 if [ "$(1)" -nt "$${dbgsymf}" ]; then \ 337 echo "#- $0"; \ 338 ls -ln $1 | awk '{printf "Orig size: %10d bytes, %s\n",$$5,$$NF}'; \ 339 cp -p -v $1 $$dbgsymf; $(STRIP) -d $(1); touch $$dbgsymf; \ 340 ls -ln $1 | awk '{printf "Strip size: %10d bytes, %s\n",$$5,$$NF}'; \ 341 fi 342endef 343 344# USB AP support 345# note : the dongle target is only for after pre-build 346obj-$(CONFIG_USBAP) += bmac dongle 347 348# DHD AP support (PCIe full dongle) 349obj-$(RTCONFIG_DHDAP) += dhd pciefd dhd_monitor 350 351# always build libbcmcrypto 352obj-y += libbcmcrypto 353 354# 355# Configuration 356# 357 358#ifdef BCMSOUND 359obj-$(CONFIG_SIGMA) += sigma 360obj-$(CONFIG_SALSA) += salsa 361obj-$(CONFIG_ALSALIB) += alsalib 362obj-$(CONFIG_LIBZ) += libz 363obj-$(CONFIG_LIBID3TAG) += libid3tag 364obj-$(CONFIG_LIBMAD) += libmad 365obj-$(CONFIG_MADPLAY) += madplay 366obj-$(CONFIG_APLAY) += aplay 367obj-$(CONFIG_AMIXER) += amixer 368obj-$(CONFIG_ALSACTL) += alsactl 369obj-$(CONFIG_AIRPLAY) += airplay 370#endif 371obj-$(CONFIG_MDNSRESPONDER) += mdnsresponder 372obj-$(CONFIG_NVRAM) += nvram 373obj-$(CONFIG_SHARED) += shared 374obj-$(CONFIG_LIBBCM) += libbcm 375obj-$(CONFIG_HTTPD) += httpd 376obj-$(CONFIG_RC) += rc 377ifeq ($(LINUX_VERSION)$(PLT),2_6_36arm) 378obj-$(CONFIG_VISUALIZATION) += libsqlite3 libjsonc libxml2 visdcoll visdcon 379obj-$(CONFIG_TREND_IQOS) += libjsonc 380endif 381obj-$(CONFIG_WWW) += www 382obj-$(CONFIG_GLIBC) += lib 383obj-$(CONFIG_UCLIBC) += lib 384obj-$(CONFIG_WLCONF) += wlconf 385obj-$(CONFIG_BRIDGE) += bridge 386obj-$(CONFIG_BUSYBOX) += busybox 387obj-$(CONFIG_DNSMASQ) += dnsmasq 388obj-$(CONFIG_IPTABLES) += iptables 389obj-$(CONFIG_LIBIPT) += iptables 390# Build only for kernel >= 2.6.36. 391ifeq ($(call wlan_version_ge,$(BCM_KVERSIONSTRING),2.6.36),TRUE) 392obj-$(CONFIG_LIBSTDCPP) += libstdcpp 393obj-$(CONFIG_LIBFLOW) += libflow 394obj-$(CONFIG_LIBMNL) += libmnl 395obj-$(CONFIG_LIBNFNETLINK) += libnfnetlink 396obj-$(CONFIG_LIBNETFILTER_CONNTRACK) += libnetfilter_conntrack 397obj-$(CONFIG_LIBNETFILTER_QUEUE) += libnetfilter_queue 398endif 399obj-$(CONFIG_HSPOT) += hspot_ap 400obj-$(CONFIG_NAS) += nas 401obj-$(CONFIG_WAPI) += wapi/wapid 402obj-$(CONFIG_WAPI_IAS) += wapi/as 403obj-$(CONFIG_SES) += ses/ses 404obj-$(CONFIG_SES_CL) += ses/ses_cl 405obj-$(CONFIG_EZC) += ezc 406obj-$(CONFIG_NETCONF) += netconf 407obj-$(CONFIG_NTP) += ntpclient 408obj-$(CONFIG_PPP) += ppp 409obj-$(CONFIG_UDHCPD) += udhcpd 410obj-$(CONFIG_IGD) += igd 411obj-$(CONFIG_LIBUPNP) += libupnp 412obj-$(CONFIG_FFMPEG) += ffmpeg 413obj-$(CONFIG_DLNA_DMR) += dlna/dmr 414obj-$(CONFIG_DLNA_DMS) += dlna/dms 415obj-$(CONFIG_SAMBA) += samba 416obj-$(CONFIG_UTILS) += utils 417ifeq ($(RTCONFIG_DHDAP),y) 418obj-$(CONFIG_WLEXE) += wlexe 419endif 420obj-$(CONFIG_ETC) += etc 421obj-$(CONFIG_VLAN) += vlan 422obj-$(CONFIG_WPS) += wps 423obj-$(CONFIG_NFC) += nfc 424obj-$(CONFIG_EMF) += emf 425obj-$(CONFIG_EMF) += igs 426obj-$(CONFIG_IGMP_PROXY) += igmp 427obj-$(CONFIG_WL_ACI) += aci 428ifeq (2_6,$(LINUX_VERSION)) 429obj-y += udev 430obj-y += hotplug2 431#if defined(BCMDBG) 432obj-$(CONFIG_NVRAM) += crashlog 433#endif 434endif 435obj-$(CONFIG_LLD2D) += lltd/wrt54g-linux 436#if defined(BCMDBG) 437obj-$(CONFIG_UTELNETD) += utelnetd 438#endif 439#if defined(PHYMON) 440obj-$(CONFIG_PHYMON_UTILITY) += phymon 441#endif 442#if defined(EXT_ACS) 443obj-$(CONFIG_EXTACS) += acsd 444#endif 445#if defined(BCM_BSD) 446obj-$(CONFIG_BCMBSD) += bsd 447#endif 448#if defined(BCM_SSD) 449obj-$(CONFIG_BCMSSD) += ssd 450#endif 451#if defined(TOAD) 452obj-$(CONFIG_TOAD) += toad 453#endif 454 455obj-$(CONFIG_VMSTAT) += vmstat 456ifeq ($(LINUX_VERSION)$(PLT),2_6_36arm) 457obj-$(CONFIG_MPSTAT) += mpstat 458obj-$(CONFIG_TASKSET) += taskset 459endif 460 461ifeq ($(LINUX_VERSION),2_6_36) 462IPROUTE2_DIR = iproute2-3.1.0 463IPUTILS_DIR = iputils-s20101006 464else 465IPROUTE2_DIR = iproute2 466IPUTILS_DIR = iputils 467endif 468obj-$(CONFIG_RADVD) += radvd 469ifneq (,${CONFIG_IPROUTE2}${CONFIG_BCMQOS}) 470 obj-y += iproute2 471endif 472obj-$(CONFIG_IPUTILS) += iputils 473ifneq (,$(filter y,${CONFIG_DHCPV6S} ${CONFIG_DHCPV6C})) 474 obj-y += dhcp6 475endif 476#obj-$(CONFIG_DHCPV6S) += dhcp6s 477#obj-$(CONFIG_DHCPV6C) += dhcp6c 478 479# BUZZZ tools: function call tracing, performance monitoring, event history 480obj-$(CONFIG_BUZZZ) += buzzz 481 482# Gigle apps 483obj-$(CONFIG_PLC) += plc 484ifeq ($(CONFIG_PLC),y) 485export CFLAGS += -D__CONFIG_PLC__ -D__CONFIG_URE__ 486CFLAGS += -DPLC -DWPS_LONGPUSH_DISABLE 487endif 488 489#ifdef __CONFIG_TREND_IQOS__ 490ifeq ($(LINUX_VERSION),2_6_36) 491ifeq ($(CONFIG_TREND_IQOS),y) 492export IQOS_DIR := $(BASEDIR)/components/vendor/trend/iqos 493obj-$(CONFIG_TREND_IQOS) += iqos 494obj-$(CONFIG_TREND_IQOS) += bcmiqosd 495# Speedtest_cli 496obj-$(CONFIG_TREND_IQOS) += speedtest-cli 497# curl 498obj-$(CONFIG_TREND_IQOS) += curl 499export CFLAGS += -D__CONFIG_TREND_IQOS__ -DCONFIG_TREND_IQOS_ENABLED 500endif 501endif 502#endif /* __CONFIG_TREND_IQOS__ */ 503 504# always build eap dispatcher 505obj-y += eapd/linux 506 507ifeq ($(CONFIG_VOIP),y) 508obj-y += voipd 509endif 510 511 512obj-clean := $(foreach obj,$(obj-y) $(obj-n),$(obj)-clean) 513obj-install := $(foreach obj,$(obj-y),$(obj)-install) 514 515# separate the libraries which need to be built first 516obj-prelibs =$(filter nvram libbcmcrypto shared netconf libupnp libz libid3tag ffmpeg libbcm nfc libsqlite3 libjsonc libxml2 pciefd, $(obj-y)) 517# remaining libraries that are built next 518obj-postlibs := $(filter-out $(obj-prelibs), $(obj-y)) 519 520ifneq (2_4,$(LINUX_VERSION)) 521ifneq ($(shell grep "CONFIG_BLK_DEV_INITRD=y" $(LINUXDIR)/.config),) 522ifeq ($(shell grep "CONFIG_BLK_DEV_RAM=y" $(LINUXDIR)/.config),) 523export BUILD_MFG := 1 524export WLTEST := 1 525endif 526endif 527endif 528 529ifneq ($(WLTEST),1) 530ifneq ($(shell grep "CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR)/.config),) 531export WLTEST := 1 532endif 533endif 534 535ifeq ($(WLTEST),1) 536export CFLAGS += -DWLTEST 537endif 538 539ifeq ($(RTCONFIG_DHDAP),y) 540ifeq ($(RTCONFIG_WLEXE),y) 541export CONFIG_WLEXE 542export RWL ?= 0 543endif 544endif 545 546# 547# Basic rules 548# 549 550# Following export values will be used in wl/config/wlconfig_apdef 551export CONFIG_MFP 552export CONFIG_HSPOT 553export CONFIG_WNM 554 555all: version check_kernel_config obj_prelibs 556 +$(MAKE) $(MAKE_ARGS) post_preplibs 557 558obj_prelibs: 559 +$(MAKE) parallel=true $(MAKE_ARGS) ARCH=$(ARCH) $(obj-prelibs) 560 561obj_postlibs: 562 +$(MAKE) parallel=true $(MAKE_ARGS) ARCH=$(ARCH) $(obj-postlibs) 563 564post_preplibs: obj_postlibs 565 # Also build kernel 566 567ifneq (2_4,$(LINUX_VERSION)) 568ifneq ($(BUILD_MFG), 1) 569ifdef ECLOUD_BUILD_ID 570 # EMAKE build 571 $(MAKE) -C ${LINUXDIR} $(SUBMAKE_SETTINGS) zImage 572else # ECLOUD_BUILD_ID 573 # GMAKE build 574 (echo '.NOTPARALLEL:' ; cat ${LINUXDIR}/Makefile) |\ 575 $(MAKE) -C ${LINUXDIR} -f - $(SUBMAKE_SETTINGS) zImage 576endif # ECLOUD_BUILD_ID 577 +$(MAKE) CONFIG_SQUASHFS=$(CONFIG_SQUASHFS) -C $(SRCBASE)/router/compressed ARCH=$(ARCH) 578endif # BUILD_MFG 579else # LINUXDIR 580ifdef ECLOUD_BUILD_ID 581 # EMAKE build 582 $(if $(shell grep "CONFIG_EMBEDDED_RAMDISK=y" ${LINUXDIR}/.config),,\ 583 $(MAKE) -C ${LINUXDIR} $(SUBMAKE_SETTINGS) zImage) 584else # ECLOUD_BUILD_ID 585 # GMAKE build 586 $(if $(shell grep "CONFIG_EMBEDDED_RAMDISK=y" ${LINUXDIR}/.config),, \ 587 (echo '.NOTPARALLEL:' ; cat ${LINUXDIR}/Makefile) | \ 588 $(MAKE) -C ${LINUXDIR} -f - $(SUBMAKE_SETTINGS) zImage \ 589 ) 590endif # ECLOUD_BUILD_ID 591endif # LINUXDIR 592ifdef ECLOUD_BUILD_ID 593 # EMAKE build 594ifeq (2_6_36,$(LINUX_VERSION)) 595 # The each Kernel modules xx.mod.c need the symbols in vmlinux, 596 # So how can we do the make modules before the vmlinux is ready? 597 $(if $(shell grep "CONFIG_MODULES=y" ${LINUXDIR}/.config), \ 598 $(MAKE) -C ${LINUXDIR} modules) 599else 600 $(if $(shell grep "CONFIG_MODULES=y" ${LINUXDIR}/.config), \ 601 $(MAKE) -C ${LINUXDIR} -f - $(SUBMAKE_SETTINGS) MFG_WAR=1 zImage ; \ 602 $(MAKE) -C ${LINUXDIR} modules) 603endif 604else # ECLOUD_BUILD_ID 605 # GMAKE build 606ifeq (2_6_36,$(LINUX_VERSION)) 607 # The each Kernel modules xx.mod.c need the symbols in vmlinux, 608 # So how can we do the make modules before the vmlinux is ready? 609 $(if $(shell grep "CONFIG_MODULES=y" ${LINUXDIR}/.config), \ 610 (echo '.NOTPARALLEL:' ; cat ${LINUXDIR}/Makefile) | $(MAKE) -C ${LINUXDIR} -f - $(SUBMAKE_SETTINGS) MFG_WAR=1 zImage ; \ 611 (echo '.NOTPARALLEL:' ; cat ${LINUXDIR}/Makefile) | $(MAKE) -C ${LINUXDIR} -f - ARCH=$(ARCH) modules) 612else 613 $(if $(shell grep "CONFIG_MODULES=y" ${LINUXDIR}/.config), \ 614 (echo '.NOTPARALLEL:' ; cat ${LINUXDIR}/Makefile) | $(MAKE) -C ${LINUXDIR} -f - ARCH=$(ARCH) modules \ 615 ) 616endif 617endif # ECLOUD_BUILD_ID 618 # Preserve the debug versions of these and strip for release 619 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/vmlinux) 620ifneq (2_4,$(LINUX_VERSION)) 621 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/wl/wl.ko) 622ifeq ("$(CONFIG_USBAP)","y") 623 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/wl/wl_high/wl_high.ko) 624endif # CONFIG_USBAP 625 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/et/et.ko) 626 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/ctf/ctf.ko) 627 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/dhd/dhd.ko) 628 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/bcm57xx/bcm57xx.ko) 629 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/emf/emf.ko) 630 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/igs/igs.ko) 631 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/dpsta/dpsta.ko) 632 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/connector/cn.ko) 633 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/scsi/scsi_wait_scan.ko) 634 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/usb/host/xhci-hcd.ko) 635 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/usb/host/ehci-hcd.ko) 636 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/usb/host/ohci-hcd.ko) 637 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/lib/libcrc32c.ko) 638 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/net/sched/sch_tbf.ko) 639 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/net/sched/sch_hfsc.ko) 640else # LINUXDIR 641 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/wl/wl.o) 642ifeq ("$(CONFIG_USBAP)","y") 643 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/wl/wl_high/wl_high.o) 644endif # CONFIG_USBAP 645 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/et/et.o) 646 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/ctf/ctf.o) 647 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/dhd/dhd.ko) 648 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/bcm57xx/bcm57xx.o) 649 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/emf/emf.o) 650 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/igs/igs.o) 651endif # LINUXDIR 652 653 654# well, we should always be able to use the BOM, but right now, the last build step on 655# the build machine doesn't have it, so we don't rerun this is the file already 656# exists 657 658version: $(SRCBASE)/include/epivers.h 659 660$(SRCBASE)/include/epivers.h: 661 $(MAKE) -C $(SRCBASE)/include 662ifeq ($(RTCONFIG_DHDAP),y) 663 $(MAKE) -C $(SRCBASE_DHD)/include 664 $(MAKE) pciefd-version 665endif 666 667 668router-clean: $(obj-clean) config-clean 669 rm -rf $(TARGETDIR) 670 rm -f $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/linux-gzip.trx 671 rm -f $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/vmlinuz-gzip 672 rm -f $(PLATFORMDIR)/target.cramfs $(PLATFORMDIR)/target.squashfs 673 rm -rf $(INSTALLDIR)/busybox 674 675clean: router-clean 676 @echo cleaning LINUXDIR = $(LINUXDIR) 677ifneq (2_4,$(LINUX_VERSION)) 678 # we need to pass some conf file for cleaning 2.6. The kbuild clean doesn't seem to 679 # to load the .config the way our wl Makefile is expecting. 680 $(MAKE) CONFIG_WL_CONF=wlconfig_lx_router_ap -C $(LINUXDIR) $(SUBMAKE_SETTINGS) clean 681 $(MAKE) -C $(SRCBASE)/router/compressed ARCH=$(ARCH) clean 682else 683 $(MAKE) -C $(LINUXDIR) $(SUBMAKE_SETTINGS) clean 684endif 685 $(MAKE) -C $(SRCBASE)/cfe/build/broadcom/bcm947xx ARCH=$(ARCH) clean 686 [ ! -f $(SRCBASE)/tools/misc/Makefile ] || $(MAKE) -C $(SRCBASE)/tools/misc clean 687 688distclean mrproper: clean 689 rm -f .config .config.plt $(LINUXDIR)/.config 690 691install package: $(filter-out lib-install,$(obj-install)) check_kernel_config 692 # Install binaries into target directory 693 install -d $(TARGETDIR) 694 for dir in $(wildcard $(patsubst %,$(INSTALLDIR)/%,$(obj-y))) ; do \ 695 (cd $${dir} && tar cpf - .) | (cd $(TARGETDIR) && tar xpf -) \ 696 done 697 # optimize the crypto library by removing unneeded symbols 698 $(if $(wildcard libbcmcrypto),+$(MAKE) -C libbcmcrypto optimize) 699ifneq ("$(CONFIG_WAPI)$(CONFIG_WAPI_IAS)","") 700 # optimize the OPENSSL library by removing unneeded symbols 701# [ ! -d wapi/wapid ] || $(MAKE) -C wapi/wapid optimize 702endif 703 # Install (and possibly optimize) C library 704 +$(MAKE) lib-install 705 # Install modules into filesystem 706 if grep -q "CONFIG_MODULES=y" $(LINUXDIR)/.config ; then \ 707 $(MAKE) -C $(LINUXDIR) $(SUBMAKE_SETTINGS) \ 708 modules_install DEPMOD=/bin/true INSTALL_MOD_PATH=$(TARGETDIR) ; \ 709 fi 710ifneq (2_4,$(LINUX_VERSION)) 711ifeq ("$(CONFIG_USBAP)","y") 712 # Don't delete wl_high.ko for USBAP 713 find $(TARGETDIR) -name "wl_*.ko" | sed s/\.\*wl_high\\\.ko//g | xargs rm -rf 714else 715 find $(TARGETDIR) -name "wl_*.ko" | xargs rm -rf 716endif 717else # Linux 2.4 718ifeq ("$(CONFIG_USBAP)","y") 719 # Don't delete wl_high.o for USBAP 720 find $(TARGETDIR) -name "wl_*.o" | sed s/\.\*wl_high\\\.o//g | xargs rm -rf 721else 722 find $(TARGETDIR) -name "wl_*.o" | xargs rm -rf 723endif 724endif 725 # Prepare filesystem 726 cd $(TARGETDIR) && $(TOP)/misc/rootprep.sh 727 728ifeq ($(CONFIG_SQUASHFS), y) 729ifeq (2_6_36,$(LINUX_VERSION)) 730 +$(MAKE) -C squashfs-4.2 mksquashfs 731 squashfs-4.2/mksquashfs $(TARGETDIR) $(PLATFORMDIR)/$(ROOT_IMG) -noappend -all-root 732else 733 # Make sure mksquashfs 3.0 is used 734 +$(MAKE) -C squashfs mksquashfs 735 squashfs/mksquashfs $(TARGETDIR) $(PLATFORMDIR)/$(ROOT_IMG) -noappend -all-root 736endif 737else # CONFIG_SQUASHFS 738 # Make sure mkcramfs-2.0 is used 739 +$(MAKE) -C $(CRAMFSDIR) mkcramfs 740 # '-u 0 -g 0' will set the uid and gid of all the files to 0 (root) 741 # These options are currently only available on our version of mkcramfs 742 $(CRAMFSDIR)/mkcramfs -u 0 -g 0 $(TARGETDIR) $(PLATFORMDIR)/$(ROOT_IMG) 743endif # CONFIG_SQUASHFS 744 745ifneq (2_4,$(LINUX_VERSION)) 746 # Package kernel and filesystem 747ifeq ($(BUILD_MFG), 1) 748 cd $(TARGETDIR) ; \ 749 find . | cpio -o -H newc | gzip > $(LINUXDIR)/usr/initramfs_data.cpio.gz 750 ls -l $(LINUXDIR)/usr/initramfs_data.cpio.gz 751ifdef ECLOUD_BUILD_ID 752 # EMAKE build 753 $(MAKE) -C ${LINUXDIR} $(SUBMAKE_SETTINGS) zImage 754 +$(MAKE) CONFIG_SQUASHFS=$(CONFIG_SQUASHFS) -C $(SRCBASE)/router/compressed ARCH=$(ARCH) 755else # ECLOUD_BUILD_ID 756 # GMAKE build 757 (echo '.NOTPARALLEL:' ; cat ${LINUXDIR}/Makefile) | $(MAKE) -C ${LINUXDIR} -f - $(SUBMAKE_SETTINGS) zImage 758 +$(MAKE) CONFIG_SQUASHFS=$(CONFIG_SQUASHFS) -C $(SRCBASE)/router/compressed ARCH=$(ARCH) 759endif # ECLOUD_BUILD_ID 760else # BUILD_MFG 761 cp $(SRCBASE)/router/compressed/vmlinuz $(PLATFORMDIR)/ 762 trx -o $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/$(ROOT_IMG) 763 cp $(SRCBASE)/router/compressed/vmlinuz-gzip $(PLATFORMDIR)/ 764 trx -o $(PLATFORMDIR)/linux-gzip.trx $(PLATFORMDIR)/vmlinuz-gzip $(PLATFORMDIR)/$(ROOT_IMG) 765endif # BUILD_MFG 766 # Pad self-booting Linux to a 64 KB boundary 767 cp $(SRCBASE)/router/compressed/zImage $(PLATFORMDIR)/ 768else # LINUXDIR 769ifdef ECLOUD_BUILD_ID 770 # EMAKE build 771 # Package kernel and filesystem 772 $(if $(shell grep "CONFIG_EMBEDDED_RAMDISK=y" ${LINUXDIR}/.config), \ 773 cp ${PLATFORMDIR}/${ROOT_IMG} ${LINUXDIR}/arch/mips/ramdisk/$${CONFIG_EMBEDDED_RAMDISK_IMAGE} ; \ 774 $(MAKE) -C ${LINUXDIR} $(SUBMAKE_SETTINGS) zImage \ 775 , \ 776 cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz $(PLATFORMDIR)/ ; \ 777 trx -o $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/$(ROOT_IMG) ; \ 778 cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz-gzip $(PLATFORMDIR)/ ; \ 779 trx -o $(PLATFORMDIR)/linux-gzip.trx $(PLATFORMDIR)/vmlinuz-gzip $(PLATFORMDIR)/$(ROOT_IMG) ; \ 780 ) 781else # ECLOUD_BUILD_ID 782 # GMAKE build 783 # Package kernel and filesystem 784 $(if $(shell grep "CONFIG_EMBEDDED_RAMDISK=y" ${LINUXDIR}/.config), \ 785 cp ${PLATFORMDIR}/${ROOT_IMG} ${LINUXDIR}/arch/mips/ramdisk/$${CONFIG_EMBEDDED_RAMDISK_IMAGE} ; \ 786 (echo '.NOTPARALLEL:' ; cat ${LINUXDIR}/Makefile) | \ 787 $(MAKE) -C ${LINUXDIR} -f - $(SUBMAKE_SETTINGS) zImage \ 788 , \ 789 cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz $(PLATFORMDIR)/ ; \ 790 trx -o $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/$(ROOT_IMG) ; \ 791 cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz-gzip $(PLATFORMDIR)/ ; \ 792 trx -o $(PLATFORMDIR)/linux-gzip.trx $(PLATFORMDIR)/vmlinuz-gzip $(PLATFORMDIR)/$(ROOT_IMG) ; \ 793 ) 794endif # ECLOUD_BUILD_ID 795 # Pad self-booting Linux to a 64 KB boundary 796 cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/zImage $(PLATFORMDIR)/ 797endif # LINUXDIR 798 dd conv=sync bs=64k < $(PLATFORMDIR)/zImage > $(PLATFORMDIR)/linux.bin 799 # Append filesystem to self-booting Linux 800 cat $(PLATFORMDIR)/$(ROOT_IMG) >> $(PLATFORMDIR)/linux.bin 801 802# sibling target is specific for release build scripts used. src/router/misc/toplevel-release.mk will do it. 803# Create linux-ap.trx or linux-apsta.trx and copy to $(SIBLING_INSTALL_DIR) foldir. 804sibling: 805ifneq ($(BUILD_MFG), 1) 806 if grep -q "CONFIG_WL_USE_AP=y" $(LINUXDIR)/.config ; then \ 807 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 808 sed -e "s/CONFIG_WL_USE_AP=y/# CONFIG_WL_USE_AP is not set/g" $(LINUXDIR)/.config.chk | \ 809 sed -e "s/# CONFIG_WL_USE_APSTA is not set/CONFIG_WL_USE_APSTA=y/g" > \ 810 $(LINUXDIR)/.config ; \ 811 rm -f $(LINUXDIR)/.config.chk ; \ 812 cp $(SIBLING_INSTALL_DIR)/linux.trx $(SIBLING_INSTALL_DIR)/linux-ap.trx ; \ 813 $(MAKE) oldconfig ; \ 814 $(MAKE) wps-clean ; \ 815 $(MAKE) all ; \ 816 $(MAKE) install ; \ 817 cp $(PLATFORMDIR)/linux.trx $(SIBLING_INSTALL_DIR)/linux-apsta.trx ; \ 818 cp $(PLATFORMDIR)/linux-gzip.trx $(SIBLING_INSTALL_DIR)/linux-apsta-gzip.trx ; \ 819 elif grep -q "CONFIG_WL_USE_APSTA=y" $(LINUXDIR)/.config ; then \ 820 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 821 sed -e "s/CONFIG_WL_USE_APSTA=y/# CONFIG_WL_USE_APSTA is not set/g" $(LINUXDIR)/.config.chk | \ 822 sed -e "s/# CONFIG_WL_USE_AP is not set/CONFIG_WL_USE_AP=y/g" > \ 823 $(LINUXDIR)/.config ; \ 824 rm -f $(LINUXDIR)/.config.chk ; \ 825 cp $(SIBLING_INSTALL_DIR)/linux.trx $(SIBLING_INSTALL_DIR)/linux-apsta.trx ; \ 826 $(MAKE) oldconfig ; \ 827 $(MAKE) wps-clean ; \ 828 $(MAKE) all ; \ 829 $(MAKE) install ; \ 830 cp $(PLATFORMDIR)/linux.trx $(SIBLING_INSTALL_DIR)/linux-ap.trx ; \ 831 cp $(PLATFORMDIR)/linux-gzip.trx $(SIBLING_INSTALL_DIR)/linux-ap-gzip.trx ; \ 832 fi 833endif 834 # MFG will not build TRX 835 @true; 836 837# 838# Configuration rules 839# 840 841conf mconf: 842 +$(MAKE) -C config LINUXDIR=${LINUXDIR} 843 @LINUXDIR=${LINUXDIR} ./config/$@ ./config/Config 844 # Also configure kernel 845 +$(MAKE) LINUXDIR=${LINUXDIR} k$@ 846 847oldconf: .config 848 +$(MAKE) -C config LINUXDIR=${LINUXDIR} 849 @LINUXDIR=${LINUXDIR} ./config/conf -o ./config/Config 850 # Also configure kernel 851 +$(MAKE) LINUXDIR=${LINUXDIR} k$@ 852 853kconf: 854 +$(MAKE) -C $(LINUXDIR) $(SUBMAKE_SETTINGS) config 855 856kmconf: check_kernel_config 857 +$(MAKE) -C $(LINUXDIR) $(SUBMAKE_SETTINGS) menuconfig 858 859koldconf: check_kernel_config 860 +$(MAKE) -C $(LINUXDIR) $(SUBMAKE_SETTINGS) oldconfig 861 862# Convenience 863config: conf 864 865menuconfig: mconf 866 867oldconfig: oldconf 868 869# Platform file 870.config.plt: 871 @echo "PLT=$(PLT)" > $@ 872 @echo "LINUX_VERSION=$(LINUX_VERSION)" >> $@ 873 874# Default configurations 875.config: 876ifneq (2_4,$(LINUX_VERSION)) 877 cp config/defconfig-2.6 $@ 878else 879 cp config/defconfig $@ 880endif 881 +$(MAKE) SRCBASE=$(SRCBASE) LINUXDIR=$(LINUXDIR) oldconfig 882 883$(LINUXDIR)/.config: 884ifneq (2_4,$(LINUX_VERSION)) 885 cp $(LINUXDIR)/arch/$(ARCH)/defconfig-2.6-bcm947xx $@ 886else 887 cp $(LINUXDIR)/arch/$(ARCH)/defconfig-bcm947xx $@ 888endif 889 890# Overwrite Kernel .config 891check_kernel_config: $(LINUXDIR)/.config 892 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.tmp 893ifeq ($(CONFIG_SQUASHFS), y) 894 if ! grep -q "CONFIG_SQUASHFS=y" $(LINUXDIR)/.config ; then \ 895 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 896 sed -e "s/CONFIG_CRAMFS=y/# CONFIG_CRAMFS is not set/g" $(LINUXDIR)/.config.chk | \ 897 sed -e "s/# CONFIG_SQUASHFS is not set/CONFIG_SQUASHFS=y/g" > \ 898 $(LINUXDIR)/.config ; \ 899 rm -f $(LINUXDIR)/.config.chk ; \ 900 fi 901endif 902ifeq ($(CONFIG_CRAMFS), y) 903 if ! grep -q "CONFIG_CRAMFS=y" $(LINUXDIR)/.config ; then \ 904 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 905 sed -e "s/CONFIG_SQUASHFS=y/# CONFIG_SQUASHFS is not set/g" $(LINUXDIR)/.config.chk | \ 906 sed -e "s/# CONFIG_CRAMFS is not set/CONFIG_CRAMFS=y/g" > \ 907 $(LINUXDIR)/.config ; \ 908 rm -f $(LINUXDIR)/.config.chk ; \ 909 fi 910endif 911ifeq ($(CONFIG_SHRINK_MEMORY), y) 912 if ! grep -q "CONFIG_SHRINKMEM=y" $(LINUXDIR)/.config ; then \ 913 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 914 sed -e "s/# CONFIG_SHRINKMEM is not set/CONFIG_SHRINKMEM=y/g" $(LINUXDIR)/.config.chk > \ 915 $(LINUXDIR)/.config ; \ 916 rm -f $(LINUXDIR)/.config.chk ; \ 917 fi 918else 919 if grep -q "CONFIG_SHRINKMEM=y" $(LINUXDIR)/.config ; then \ 920 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 921 sed -e "s/CONFIG_SHRINKMEM=y/# CONFIG_SHRINKMEM is not set/g" $(LINUXDIR)/.config.chk > \ 922 $(LINUXDIR)/.config ; \ 923 rm -f $(LINUXDIR)/.config.chk ; \ 924 fi 925endif 926ifeq ($(CONFIG_PLC), y) 927 if ! grep -q "CONFIG_PLC=y" $(LINUXDIR)/.config ; then \ 928 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 929 sed -e "s/# CONFIG_PLC is not set/CONFIG_PLC=y/g" $(LINUXDIR)/.config.chk > \ 930 $(LINUXDIR)/.config ; \ 931 rm -f $(LINUXDIR)/.config.chk ; \ 932 fi 933else 934 if grep -q "CONFIG_PLC=y" $(LINUXDIR)/.config ; then \ 935 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 936 sed -e "s/CONFIG_PLC=y/# CONFIG_PLC is not set/g" $(LINUXDIR)/.config.chk > \ 937 $(LINUXDIR)/.config ; \ 938 rm -f $(LINUXDIR)/.config.chk ; \ 939 fi 940endif 941 # Do not override CONFIG_PLAT_MUX_CONSOLE if CONFIG_NFC is disable, others may enable it. 942ifeq ($(CONFIG_NFC), y) 943 if ! grep -q "CONFIG_PLAT_MUX_CONSOLE=y" $(LINUXDIR)/.config ; then \ 944 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 945 sed -e "s/# CONFIG_PLAT_MUX_CONSOLE is not set/CONFIG_PLAT_MUX_CONSOLE=y/g" $(LINUXDIR)/.config.chk > \ 946 $(LINUXDIR)/.config ; \ 947 rm -f $(LINUXDIR)/.config.chk ; \ 948 fi 949endif 950 # Make kernel config again if changed 951 $(if $(shell [ ! cmp ${LINUXDIR}/.config ${LINUXDIR}/.config.tmp >/dev/null 2>&1 ] && echo "y"), \ 952 +$(MAKE) -C ${LINUXDIR} $(SUBMAKE_SETTINGS) oldconfig < /dev/null \ 953 ) 954 955# 956# Overrides 957# 958 959ifneq (2_4,$(LINUX_VERSION)) 960# See if .config has changed. This file gets a new date stamp at each build, 961# so we always have exactly 4 lines of diffs. Anything else, we rebuild. 962BB_DIFF_LINES=$(shell diff busybox-1.x/.config busybox-1.x/configs/bbconfig-$(CONFIG_BUSYBOX_CONFIG) | wc -l) 963 964busybox-1.x/.config: 965 cd $(@D) && cp configs/bbconfig-$(CONFIG_BUSYBOX_CONFIG) .config && $(MAKE) oldconfig 966 967busybox-1.x/Config.h: dummy 968 cd $(@D) && rm -f Config.h && ln -sf include/autoconf.h Config.h && touch Config.h 969ifneq ($(BB_DIFF_LINES),4) 970 cd $(@D) && cp configs/bbconfig-$(CONFIG_BUSYBOX_CONFIG) .config && $(MAKE) clean 971endif 972 973.PHONY: busybox 974busybox: busybox-1.x/.config busybox-1.x/Config.h 975 +$(MAKE) -C busybox-1.x ARCH=$(ARCH) INSTALL 976 977busybox-install: 978 +$(MAKE) -C busybox-1.x ARCH=$(ARCH) CONFIG_PREFIX=$(INSTALLDIR)/busybox install 979 980busybox-clean: 981 +$(MAKE) -C busybox-1.x ARCH=$(ARCH) clean 982 983rc: netconf nvram shared 984 +$(MAKE) LINUXDIR=$(LINUXDIR) EXTRA_LDFLAGS=$(EXTRA_LDFLAGS) -C rc 985ifneq ($(CONFIG_BUSYBOX),) 986rc: busybox-1.x/Config.h 987endif 988else #linux-2.6 989CURBBCFG := $(CONFIG_BUSYBOX_CONFIG).h 990OLDBBCFG := $(shell basename $$(readlink busybox/Config.h) 2> /dev/null) 991busybox/Config.h: dummy 992ifneq ($(OLDBBCFG),$(CURBBCFG)) 993 cd busybox && rm -f Config.h && ln -sf configs/$(CURBBCFG) Config.h && touch Config.h 994endif 995 996busybox: busybox/Config.h 997 +$(MAKE) -C busybox STRIPTOOL=$(STRIP) 998 999busybox-install: 1000 +$(MAKE) -C busybox STRIPTOOL=$(STRIP) PREFIX=$(INSTALLDIR)/busybox install 1001 1002rc: netconf nvram shared 1003ifneq ($(CONFIG_BUSYBOX),) 1004rc: busybox/Config.h 1005endif 1006endif #linux-2.6 1007 1008rc-install: rc 1009 +$(MAKE) LINUXDIR=$(LINUXDIR) INSTALLDIR=$(INSTALLDIR)/rc -C rc install 1010 1011lib-install: 1012 +$(MAKE) LX_VERS=$(LINUX_VERSION) INSTALLDIR=$(INSTALLDIR)/lib ARCH=$(ARCH) -C lib install 1013 1014www: 1015 +$(MAKE) -C www/$(CONFIG_VENDOR) INSTALLDIR=$(INSTALLDIR)/www 1016 1017www-install: 1018 +$(MAKE) -C www/$(CONFIG_VENDOR) install INSTALLDIR=$(INSTALLDIR)/www 1019 1020www-clean: 1021 +$(MAKE) -C www/$(CONFIG_VENDOR) clean INSTALLDIR=$(INSTALLDIR)/www 1022 1023ifeq ($(CONFIG_MDNSRESPONDER),y) 1024mdnsresponder: 1025 +$(MAKE) -C $(MDNSRESPONDERDIR)/mDNSPosix HAVE_UCLIBC=1 os=linux-$(ARCH) 1026 1027mdnsresponder-install: 1028 +$(MAKE) -C $(MDNSRESPONDERDIR)/mDNSPosix \ 1029 HAVE_UCLIBC=1 \ 1030 os=linux-$(ARCH) \ 1031 DISTDIR=$(INSTALLDIR)/mdnsresponder \ 1032 dist 1033 echo -e "hosts: files mdns dns" > $(INSTALLDIR)/mdnsresponder/etc/nsswitch.conf 1034 1035mdnsresponder-clean: 1036 +$(MAKE) -C $(MDNSRESPONDERDIR)/mDNSPosix HAVE_UCLIBC=1 os=linux-$(ARCH) clean 1037endif 1038 1039#ifdef BCMSOUND 1040ifeq ($(CONFIG_SOUND),y) 1041 1042ALSALIB_INSTALL_DIR := $(INSTALLDIR)/alsalib/usr 1043ifeq ($(CONFIG_SALSA),y) 1044ALSA_IMPL_DIR := $(SALSA_DIR) 1045else 1046ifeq ($(CONFIG_ALSALIB),y) 1047ALSA_IMPL_DIR := $(ALSALIB_INSTALL_DIR) 1048endif 1049endif 1050 1051ifeq ($(CONFIG_SALSA),y) 1052# Soft-link libasound.a to libsalsa.a because alsa-utils (aplay, amixer) link against -lasound. 1053salsa: 1054 [ -f $(SALSA_DIR)/Makefile ] || \ 1055 (cd $(SALSA_DIR); ./configure --host=$(ARCH)-uclibc-linux26 --disable-dependency-tracking --prefix=$(SALSA_DIR) CC=$(CROSS_COMPILE)gcc) 1056 [ -f $(SALSA_DIR)/src/.libs/libsalsa.so.0.0.1 ] || \ 1057 ($(MAKE) -C $(SALSA_DIR) ; $(MAKE) -C $(SALSA_DIR) install ; rm -f $(SALSA_DIR)/lib/libasound.a ; ln -s $(SALSA_DIR)/lib/libsalsa.a $(SALSA_DIR)/lib/libasound.a) 1058 1059salsa-install: 1060 install -d $(INSTALLDIR)/usr/lib 1061 install -m 755 $(SALSA_DIR)/lib/libsalsa.so.0.0.1 $(INSTALLDIR)/usr/lib/libsalsa.so 1062 $(STRIP) $(INSTALLDIR)/usr/lib/libsalsa.so 1063 1064salsa-clean: 1065 $(MAKE) -C $(SALSA_DIR) clean 1066 $(MAKE) -C $(SALSA_DIR) distclean 1067 rm -rf $(SALSA_DIR)/src/.libs 1068 rm -f $(SALSA_DIR)/Makefile 1069else 1070ifeq ($(CONFIG_ALSALIB),y) 1071alsalib: 1072 [ -f $(ALSALIB_DIR)/Makefile ] || \ 1073 (cd $(ALSALIB_DIR); ./configure \ 1074 --host=$(ARCH)-uclibc-linux26 \ 1075 --without-versioned \ 1076 --disable-dependency-tracking \ 1077 --disable-python \ 1078 --disable-alisp \ 1079 --prefix=$(ALSALIB_INSTALL_DIR) \ 1080 CC=$(CROSS_COMPILE)gcc \ 1081 CPP=$(CROSS_COMPILE)cpp \ 1082 CXX=$(CROSS_COMPILE)g++) 1083 [ -f $(ALSALIB_DIR)/src/.libs/libasound.so.2.0.0 ] || \ 1084 ($(MAKE) -C $(ALSALIB_DIR) ; $(MAKE) -C $(ALSALIB_DIR) install) 1085 1086alsalib-install: 1087 [ -f $(ALSALIB_DIR)/Makefile ] && \ 1088 ($(MAKE) -C $(ALSALIB_DIR) distclean) 1089 cd $(ALSALIB_DIR) && \ 1090 ./configure \ 1091 --host=$(ARCH)-uclibc-linux26 \ 1092 --without-versioned \ 1093 --disable-dependency-tracking \ 1094 --disable-python \ 1095 --disable-alisp \ 1096 --prefix=/usr \ 1097 CC=$(CROSS_COMPILE)gcc \ 1098 CPP=$(CROSS_COMPILE)cpp \ 1099 CXX=$(CROSS_COMPILE)g++ 1100 $(MAKE) -C $(ALSALIB_DIR) 1101 install -m 755 $(ALSALIB_DIR)/src/.libs/libasound.so.2.0.0 $(ALSALIB_INSTALL_DIR)/lib 1102 install -m 755 $(ALSALIB_DIR)/modules/mixer/simple/.libs/*.so $(ALSALIB_INSTALL_DIR)/lib/alsa-lib/smixer 1103 rm -rf $(ALSALIB_INSTALL_DIR)/include 1104 rm -rf $(ALSALIB_INSTALL_DIR)/bin 1105 rm -rf $(ALSALIB_INSTALL_DIR)/lib/pkgconfig 1106 rm -rf $(ALSALIB_INSTALL_DIR)/share/aclocal 1107 rm -f $(ALSALIB_INSTALL_DIR)/lib/*.la 1108 rm -f $(ALSALIB_INSTALL_DIR)/lib/alsa-lib/smixer/*.la 1109 $(STRIP) $(ALSALIB_INSTALL_DIR)/lib/libasound.so.2.0.0 1110 $(STRIP) \ 1111 $(ALSALIB_INSTALL_DIR)/lib/alsa-lib/smixer/smixer-sbase.so \ 1112 $(ALSALIB_INSTALL_DIR)/lib/alsa-lib/smixer/smixer-hda.so \ 1113 $(ALSALIB_INSTALL_DIR)/lib/alsa-lib/smixer/smixer-ac97.so 1114 1115alsalib-clean: 1116 $(MAKE) -C $(ALSALIB_DIR) clean 1117 $(MAKE) -C $(ALSALIB_DIR) distclean 1118 rm -rf $(ALSALIB_DIR)/src/.libs 1119 rm -f $(ALSALIB_DIR)/Makefile 1120endif 1121endif 1122ifeq ($(CONFIG_APLAY),y) 1123aplay: 1124 [ -f $(APLAY_DIR)/Makefile ] || \ 1125 (cd $(ALSAUTILS_DIR); \ 1126 ./configure \ 1127 --host=$(ARCH)-uclibc-linux26 \ 1128 --disable-dependency-tracking \ 1129 --disable-nls \ 1130 --disable-alsamixer \ 1131 --disable-alsatest \ 1132 --disable-xmlto \ 1133 --with-alsa-prefix=$(ALSA_IMPL_DIR)/lib \ 1134 --with-alsa-inc-prefix=$(ALSA_IMPL_DIR)/include \ 1135 --prefix=$(ALSAUTILS_DIR) \ 1136 CC=$(CROSS_COMPILE)gcc) 1137 ($(MAKE) -C $(APLAY_DIR) ; $(MAKE) -C $(APLAY_DIR) install) 1138 1139aplay-install: 1140 install -d $(INSTALLDIR)/aplay/usr/sbin 1141 install -m 755 $(APLAY_DIR)/aplay $(INSTALLDIR)/aplay/usr/sbin 1142 1143aplay-clean: 1144 $(MAKE) -C $(APLAY_DIR) clean 1145 rm -f $(APLAY_DIR)/Makefile 1146endif 1147ifeq ($(CONFIG_AMIXER),y) 1148amixer: 1149 [ -f $(AMIXER_DIR)/Makefile ] || \ 1150 (cd $(ALSAUTILS_DIR); \ 1151 ./configure \ 1152 --host=$(ARCH)-uclibc-linux26 \ 1153 --disable-dependency-tracking \ 1154 --disable-nls \ 1155 --disable-alsamixer \ 1156 --disable-alsatest \ 1157 --disable-xmlto \ 1158 --with-alsa-prefix=$(ALSA_IMPL_DIR)/lib \ 1159 --with-alsa-inc-prefix=$(ALSA_IMPL_DIR)/include \ 1160 --prefix=$(ALSAUTILS_DIR) \ 1161 CC=$(CROSS_COMPILE)gcc) 1162 ($(MAKE) -C $(AMIXER_DIR) ; $(MAKE) -C $(AMIXER_DIR) install) 1163 1164amixer-install: 1165 install -d $(INSTALLDIR)/amixer/usr/sbin 1166 install -m 755 $(AMIXER_DIR)/amixer $(INSTALLDIR)/amixer/usr/sbin 1167 1168amixer-clean: 1169 $(MAKE) -C $(AMIXER_DIR) clean 1170 rm -f $(AMIXER_DIR)/Makefile 1171endif 1172 1173ifeq ($(CONFIG_ALSALIB),y) 1174ifeq ($(CONFIG_ALSACTL),y) 1175alsactl: 1176 [ -f $(ALSACTL_DIR)/Makefile ] || \ 1177 (cd $(ALSAUTILS_DIR); \ 1178 ./configure \ 1179 --host=$(ARCH)-uclibc-linux26 \ 1180 --disable-dependency-tracking \ 1181 --disable-nls \ 1182 --disable-alsamixer \ 1183 --disable-alsatest \ 1184 --disable-xmlto \ 1185 --with-alsa-prefix=$(ALSA_IMPL_DIR)/lib \ 1186 --with-alsa-inc-prefix=$(ALSA_IMPL_DIR)/include \ 1187 --prefix=$(ALSAUTILS_DIR) \ 1188 CC=$(CROSS_COMPILE)gcc) 1189 ($(MAKE) -C $(ALSACTL_DIR) ; $(MAKE) -C $(ALSACTL_DIR) install) 1190 1191alsactl-install: 1192 install -d $(INSTALLDIR)/alsactl/usr/sbin 1193 install -m 755 $(ALSACTL_DIR)/alsactl $(INSTALLDIR)/alsactl/usr/sbin 1194 1195alsactl-clean: 1196 $(MAKE) -C $(ALSACTL_DIR) clean 1197 rm -f $(ALSACTL_DIR)/Makefile 1198endif 1199endif 1200 1201ifeq ($(CONFIG_AIRPLAY),y) 1202ifeq ($(CONFIG_SALSA),y) 1203airplay: mdnsresponder salsa 1204 +$(MAKE) -C $(AIRPLAYDIR)/Platform/Platform_Linux \ 1205 MDNSROOT=$(MDNSRESPONDERDIR) \ 1206 ALSAROOT=$(realpath $(ALSA_IMPL_DIR)) \ 1207 USE_SALSA=1 \ 1208 debug=1 \ 1209 daemon 1210airplay-clean: 1211 $(MAKE) -C $(AIRPLAYDIR)/Platform/Platform_Linux \ 1212 MDNSROOT=$(MDNSRESPONDERDIR) \ 1213 ALSAROOT=$(realpath $(ALSA_IMPL_DIR)) \ 1214 USE_SALSA=1 \ 1215 debug=1 \ 1216 clean 1217else 1218ifeq ($(CONFIG_ALSALIB),y) 1219airplay: mdnsresponder alsalib 1220 +$(MAKE) -C $(AIRPLAYDIR)/Platform/Platform_Linux \ 1221 MDNSROOT=$(MDNSRESPONDERDIR) \ 1222 ALSAROOT=$(realpath $(ALSA_IMPL_DIR)) \ 1223 debug=1 \ 1224 daemon 1225airplay-clean: 1226 $(MAKE) -C $(AIRPLAYDIR)/Platform/Platform_Linux \ 1227 MDNSROOT=$(MDNSRESPONDERDIR) \ 1228 ALSAROOT=$(realpath $(ALSA_IMPL_DIR)) \ 1229 debug=1 \ 1230 clean 1231endif 1232endif 1233 1234airplay-install: mDNSResponder-install 1235 install -D -m 755 $(AIRPLAYDIR)/Platform/Platform_Linux/obj/airplayd \ 1236 $(INSTALLDIR)/airplay/usr/sbin/airplayd 1237endif 1238endif 1239#endif 1240 1241#ifdef __CONFIG_TREND_IQOS__ 1242ifeq ($(LINUX_VERSION),2_6_36) 1243ifeq ($(CONFIG_TREND_IQOS),y) 1244 1245iqos-install: 1246 +$(MAKE) -C $(IQOS_DIR) install INSTALLDIR=$(INSTALLDIR)/iqos 1247iqos-clean: 1248 +$(MAKE) -C $(IQOS_DIR) clean 1249.PHONY: iqos-install iqos-clean 1250 1251CURL_DIR := $(OPENSOURCE_BASE_DIR)/curl 1252curl: 1253 +$(MAKE) -C $(CURL_DIR) 1254curl-install: 1255 +$(MAKE) -C $(CURL_DIR) install INSTALLDIR=$(INSTALLDIR)/curl 1256curl-clean: 1257 +$(MAKE) -C $(CURL_DIR) clean 1258.PHONY: curl curl-install curl-clean 1259endif 1260endif 1261#endif /* __CONFIG_TREND_IQOS__ */ 1262 1263 1264 1265dhd: 1266ifeq ($(RTCONFIG_DHDAP),y) 1267ifneq ($(wildcard $(SRCBASE_DHD)/dhd/exe),) 1268 $(MAKE) TARGET_PREFIX=$(CROSS_COMPILE) -C $(SRCBASE_DHD)/dhd/exe 1269endif 1270endif 1271 1272dhd-clean : 1273ifneq ($(wildcard $(SRCBASE_DHD)/dhd/exe),) 1274 $(MAKE) TARGET_PREFIX=$(CROSS_COMPILE) -C $(SRCBASE_DHD)/dhd/exe clean 1275endif 1276 1277dhd-install : 1278ifeq ($(RTCONFIG_DHDAP),y) 1279ifneq ($(wildcard $(SRCBASE_DHD)/dhd/exe),) 1280 install -d $(INSTALLDIR)/dhd/usr/sbin 1281 install $(SRCBASE_DHD)/dhd/exe/dhd $(INSTALLDIR)/dhd/usr/sbin 1282 $(STRIP) $(INSTALLDIR)/dhd/usr/sbin/dhd 1283endif 1284endif 1285 1286.PHONY: dhd_monitor 1287 1288dhd_monitor: shared nvram 1289ifeq ($(RTCONFIG_DHDAP),y) 1290 +$(MAKE) LINUXDIR=$(LINUXDIR) EXTRA_LDFLAGS=$(EXTRA_LDFLAGS) -C dhd_monitor dhd_monitor 1291endif 1292 1293dhd_monitor-install: dhd_monitor 1294ifeq ($(RTCONFIG_DHDAP),y) 1295 +$(MAKE) -C dhd_monitor INSTALLDIR=$(INSTALLDIR)/dhd_monitor install 1296endif 1297 1298dhd_monitor-clean: 1299ifeq ($(RTCONFIG_DHDAP),y) 1300 +$(MAKE) -C dhd_monitor clean 1301endif 1302 1303 1304# XXX libusb and bcmdl are obseleted after USBAP high driver image embeds the low driver 1305# To re-build bcmdl target, set BUILD_BCMDL to 1 1306BUILD_BCMDL := 0 1307 1308ifeq ($(BUILD_BCMDL), 1) 1309prep-libusb: 1310 $(if $(wildcard ${SRCBASE}/usbdev/libusb/), \ 1311 ( cd $(SRCBASE)/usbdev/libusb \ 1312 && ./configure --host=$(PLT)-linux CC=$(CROSS_COMPILE)gcc \ 1313 ) \ 1314 ) 1315 1316libusb: prep-libusb 1317 $(if $(wildcard ${SRCBASE}/usb/libusb), \ 1318 +$(MAKE) -C ${SRCBASE}/usbdev/libusb \ 1319 ) 1320 1321bcmdl : libusb 1322ifneq (2_4,$(LINUX_VERSION)) 1323 +$(MAKE) TARGETENV=linux26mips -C $(SRCBASE)/usbdev/usbdl 1324else 1325 +$(MAKE) TARGETENV=linuxmips -C $(SRCBASE)/usbdev/usbdl 1326 1327endif 1328 1329bcmdl-install: 1330 install -d $(TARGETDIR)/sbin 1331 install -D $(SRCBASE)/usbdev/usbdl/bcmdl $(TARGETDIR)/sbin/bcmdl 1332else # BUILD_BCMDL 1333libusb: 1334 # So that generic rule does not take precedence 1335 @true 1336 1337bcmdl: 1338 # So that generic rule does not take precedence 1339 @true 1340 1341bcmdl-install : 1342 install -d $(INSTALLDIR)/dongle/sbin 1343 install -D $(SRCBASE)/usbdev/usbdl/mips_$(LINUX_VERSION)/bcmdl $(INSTALLDIR)/dongle/sbin/bcmdl 1344# install -D $(SRCBASE)/dongle/rte/test/run-arm-thumb-cm3-poll-ai-uc/hello.bin.trx $(INSTALLDIR)/dongle/bin/hello.bin.trx 1345endif # BUILD_BCMDL 1346 1347bridge: 1348ifneq (2_4,$(LINUX_VERSION)) 1349 +$(MAKE) -C bridge-1.x 1350else 1351 +$(MAKE) -C bridge brctl/brctl 1352endif 1353 1354dongle : 1355 1356bridge-install: 1357ifneq (2_4,$(LINUX_VERSION)) 1358 install -D bridge-1.x/brctl/brctl $(INSTALLDIR)/bridge/usr/sbin/brctl 1359else 1360 install -D bridge/brctl/brctl $(INSTALLDIR)/bridge/usr/sbin/brctl 1361endif 1362 $(STRIP) $(INSTALLDIR)/bridge/usr/sbin/brctl 1363 1364bridge-clean: 1365ifneq (2_4,$(LINUX_VERSION)) 1366 -$(MAKE) -C bridge-1.x clean 1367else 1368 -$(MAKE) -C bridge clean 1369endif 1370 1371ifeq ($(call wlan_version_ge,$(BCM_KVERSIONSTRING),2.6.36),TRUE) 1372dnsmasq: 1373 +$(MAKE) -C $(DNSMASQ_DIR) 1374 1375dnsmasq-install: 1376 install -D $(DNSMASQ_DIR)/src/dnsmasq $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq 1377 $(STRIP) $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq 1378else 1379dnsmasq-install: 1380 install -D dnsmasq/dnsmasq $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq 1381 $(STRIP) $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq 1382endif 1383 1384libstdcpp: 1385 # So that generic rule does not take precedence 1386 @: 1387 1388libstdcpp-install: 1389 install -D $(TOOLCHAIN)/usr/lib/libstdc++.so.6.0.14 $(INSTALLDIR)/libstdcpp/usr/lib/libstdc++.so.6.0.14 1390 +ldconfig -N -n -r $(INSTALLDIR)/libstdcpp usr/lib 1391 +$(STRIP) $(INSTALLDIR)/libstdcpp/usr/lib/libstdc++.so.6.0.14 1392 1393libmnl: 1394 [ -f $(LIBMNL_DIR)/Makefile ] || \ 1395 (cd $(LIBMNL_DIR); \ 1396 CC=$(CC) ./configure \ 1397 --target=$(PLATFORM)-linux \ 1398 --host=$(PLATFORM)-linux \ 1399 --build=`/bin/arch`-linux \ 1400 --with-kernel=$(LINUXDIR) \ 1401 --prefix=$(LIBMNL_DIR)/install) 1402 +$(MAKE) -C $(LIBMNL_DIR) 1403 +$(MAKE) -C $(LIBMNL_DIR) install-strip 1404 1405libmnl-install: 1406 install -d $(INSTALLDIR)/libmnl/usr/lib 1407 cp -rf $(LIBMNL_DIR)/install/lib/* $(INSTALLDIR)/libmnl/usr/lib 1408 1409libmnl-clean: 1410 +$(MAKE) -C $(LIBMNL_DIR) KERNEL_DIR=$(LINUXDIR) clean 1411 1412libnfnetlink: 1413 [ -f $(LIBNFNETLINK_DIR)/Makefile ] || \ 1414 (cd $(LIBNFNETLINK_DIR); \ 1415 CC=$(CC) ./configure \ 1416 --target=$(PLATFORM)-linux \ 1417 --host=$(PLATFORM)-linux \ 1418 --build=`/bin/arch`-linux \ 1419 --with-kernel=$(LINUXDIR) \ 1420 --prefix=$(LIBNFNETLINK_DIR)/install) 1421 +$(MAKE) -C $(LIBNFNETLINK_DIR) 1422 +$(MAKE) -C $(LIBNFNETLINK_DIR) install-strip 1423 1424libnfnetlink-install: 1425 install -d $(INSTALLDIR)/libnfnetlink/usr/lib 1426 cp -rf $(LIBNFNETLINK_DIR)/install/lib/* $(INSTALLDIR)/libnfnetlink/usr/lib 1427 1428libnfnetlink-clean: 1429 +$(MAKE) -C $(LIBNFNETLINK_DIR) KERNEL_DIR=$(LINUXDIR) clean 1430 1431libnetfilter_conntrack: libmnl libnfnetlink 1432 [ -f $(LIBNETFILTER_CONNTRACK_DIR)/Makefile ] || \ 1433 (cd $(LIBNETFILTER_CONNTRACK_DIR); \ 1434 CC=$(CC) ./configure \ 1435 --target=$(PLATFORM)-linux \ 1436 --host=$(PLATFORM)-linux \ 1437 --build=`/bin/arch`-linux \ 1438 --with-kernel=$(LINUXDIR) \ 1439 --prefix=$(LIBNETFILTER_CONNTRACK_DIR)/install \ 1440 LIBNFNETLINK_CFLAGS=$(NFNETLINK_CFLAGS) LIBNFNETLINK_LIBS=$(NFNETLINK_LIBS) \ 1441 LIBMNL_CFLAGS=$(MNL_CFLAGS) LIBMNL_LIBS=$(MNL_LIBS)) 1442 +$(MAKE) -C $(LIBNETFILTER_CONNTRACK_DIR) 1443 +$(MAKE) -C $(LIBNETFILTER_CONNTRACK_DIR) install-strip 1444 1445libnetfilter_conntrack-install: 1446 install -d $(INSTALLDIR)/libnetfilter_conntrack/usr/lib 1447 cp -rf $(LIBNETFILTER_CONNTRACK_DIR)/install/lib/* $(INSTALLDIR)/libnetfilter_conntrack/usr/lib 1448 1449libnetfilter_conntrack-clean: 1450 +$(MAKE) -C $(LIBNETFILTER_CONNTRACK_DIR) KERNEL_DIR=$(LINUXDIR) clean 1451 1452libnetfilter_queue: libmnl libnfnetlink 1453 [ -f $(LIBNETFILTER_QUEUE_DIR)/Makefile ] || \ 1454 (cd $(LIBNETFILTER_QUEUE_DIR); \ 1455 CC=$(CC) ./configure \ 1456 --target=$(PLATFORM)-linux \ 1457 --host=$(PLATFORM)-linux \ 1458 --build=`/bin/arch`-linux \ 1459 --with-kernel=$(LINUXDIR) \ 1460 --prefix=$(LIBNETFILTER_QUEUE_DIR)/install \ 1461 LIBNFNETLINK_CFLAGS=$(NFNETLINK_CFLAGS) LIBNFNETLINK_LIBS=$(NFNETLINK_LIBS) \ 1462 LIBMNL_CFLAGS=$(MNL_CFLAGS) LIBMNL_LIBS=$(MNL_LIBS)) 1463 +$(MAKE) -C $(LIBNETFILTER_QUEUE_DIR) 1464 +$(MAKE) -C $(LIBNETFILTER_QUEUE_DIR) install-strip 1465 1466libnetfilter_queue-install: 1467 install -d $(INSTALLDIR)/libnetfilter_queue/usr/lib 1468 cp -rf $(LIBNETFILTER_QUEUE_DIR)/install/lib/* $(INSTALLDIR)/libnetfilter_queue/usr/lib 1469 1470libnetfilter_queue-clean: 1471 +$(MAKE) -C $(LIBNETFILTER_QUEUE_DIR) KERNEL_DIR=$(LINUXDIR) clean 1472 1473LIBFLOW_DIR := $(BASEDIR)/components/shared/libflow 1474 1475libflow: libnetfilter_conntrack 1476 $(MAKE) -C $(LIBFLOW_DIR) LIBMNL_CFLAGS=$(MNL_CFLAGS) LIBMNL_LIBS=$(MNL_LIBS) LIBNFNETLINK_CFLAGS=$(NFNETLINK_CFLAGS) LIBNFNETLINK_LIBS=$(NFNETLINK_LIBS) LIBNETFILTER_CONNTRACK_CFLAGS=$(NETFILTER_CONNTRACK_CFLAGS) LIBNETFILTER_CONNTRACK_LIBS=$(NETFILTER_CONNTRACK_LIBS) 1477 1478libflow-install: 1479 install -d $(INSTALLDIR)/libflow/usr/lib 1480 install -D $(LIBFLOW_DIR)/libflow.so $(INSTALLDIR)/libflow/usr/lib 1481 $(STRIP) $(INSTALLDIR)/libflow/usr/lib/libflow.so 1482 1483libflow-clean: 1484 $(MAKE) -C $(LIBFLOW_DIR) clean 1485 1486libsqlite3: 1487ifeq ($(CONFIG_VISUALIZATION),y) 1488 [ -f $(LIBSQLITE3_DIR)/Makefile ] || \ 1489 (cd $(LIBSQLITE3_DIR); \ 1490 CC=$(CC) ./configure \ 1491 --target=$(PLATFORM)-linux \ 1492 --host=$(PLATFORM)-linux \ 1493 --enable-static=no \ 1494 --prefix=$(LIBSQLITE3_DIR)/installbin) 1495 +$(MAKE) -C $(LIBSQLITE3_DIR) 1496 +$(MAKE) -C $(LIBSQLITE3_DIR) install-strip 1497endif 1498 1499libsqlite3-install: 1500ifeq ($(CONFIG_VISUALIZATION),y) 1501 install -d $(INSTALLDIR)/libsqlite3/usr/lib 1502 cp -rf $(LIBSQLITE3_DIR)/installbin/lib/libsqlite3.so* $(INSTALLDIR)/libsqlite3/usr/lib 1503endif 1504 1505libsqlite3-clean: 1506ifeq ($(CONFIG_VISUALIZATION),y) 1507 +$(MAKE) -C $(LIBSQLITE3_DIR) clean 1508endif 1509 1510libjsonc: 1511 [ -f $(LIBJSONC_DIR)/Makefile ] || \ 1512 (cd $(LIBJSONC_DIR); \ 1513 CC=$(CC) ./configure \ 1514 --target=$(PLATFORM)-linux \ 1515 --host=$(PLATFORM)-linux \ 1516 --disable-oldname-compat \ 1517 --enable-static=no \ 1518 --prefix=$(LIBJSONC_DIR)/installbin) 1519 +$(MAKE) -C $(LIBJSONC_DIR) 1520 +$(MAKE) -C $(LIBJSONC_DIR) install-strip 1521 1522libjsonc-install: 1523 install -d $(INSTALLDIR)/libjsonc/usr/lib 1524 cp -rf $(LIBJSONC_DIR)/installbin/lib/libjson-c.so* $(INSTALLDIR)/libjsonc/usr/lib 1525 1526libjsonc-clean: 1527 +$(MAKE) -C $(LIBJSONC_DIR) clean 1528 1529libxml2: 1530ifeq ($(CONFIG_VISUALIZATION),y) 1531 [ -f $(LIBXML2_DIR)/Makefile ] || \ 1532 (cd $(LIBXML2_DIR); \ 1533 CC=$(CC) ./configure \ 1534 --target=$(PLATFORM)-linux \ 1535 --host=$(PLATFORM)-linux \ 1536 --with-python=no \ 1537 --without-zlib \ 1538 --without-ftp \ 1539 --without-http \ 1540 --without-html \ 1541 --without-debug \ 1542 --without-docbook \ 1543 --without-catalog \ 1544 --without-schemas \ 1545 --enable-static=no \ 1546 --prefix=$(LIBXML2_DIR)/installbin) 1547 +$(MAKE) -C $(LIBXML2_DIR) 1548 +$(MAKE) -C $(LIBXML2_DIR) install-strip 1549endif 1550 1551libxml2-install: 1552ifeq ($(CONFIG_VISUALIZATION),y) 1553 install -d $(INSTALLDIR)/libxml2/usr/lib 1554 cp -rf $(LIBXML2_DIR)/installbin/lib/libxml2.so* $(INSTALLDIR)/libxml2/usr/lib 1555endif 1556 1557libxml2-clean: 1558ifeq ($(CONFIG_VISUALIZATION),y) 1559 +$(MAKE) -C $(LIBXML2_DIR) clean 1560endif 1561 1562visdcoll: 1563ifeq ($(CONFIG_VISUALIZATION),y) 1564 [ -f $(VISDCOLL_DIR)/Makefile ] || \ 1565 (cd $(VISDCOLL_DIR); \ 1566 CC=$(CC) ./configure \ 1567 --target=$(PLATFORM)-linux \ 1568 --host=$(PLATFORM)-linux \ 1569 --prefix=$(VISDCOLL_DIR)/installbin) 1570 +$(MAKE) -C $(VISDCOLL_DIR) 1571 +$(MAKE) -C $(VISDCOLL_DIR) install-strip 1572endif 1573 1574visdcoll-install: 1575ifeq ($(CONFIG_VISUALIZATION),y) 1576 install -d $(INSTALLDIR)/visdcoll/usr/sbin 1577 cp -rf $(VISDCOLL_DIR)/installbin/bin/* $(INSTALLDIR)/visdcoll/usr/sbin 1578endif 1579 1580visdcoll-clean: 1581ifeq ($(CONFIG_VISUALIZATION),y) 1582 +$(MAKE) -C $(VISDCOLL_DIR) clean 1583endif 1584 1585visdcon: 1586ifeq ($(CONFIG_VISUALIZATION),y) 1587 [ -f $(VISDCON_DIR)/Makefile ] || \ 1588 (cd $(VISDCON_DIR); \ 1589 CC=$(CC) ./configure \ 1590 --target=$(PLATFORM)-linux \ 1591 --host=$(PLATFORM)-linux \ 1592 --prefix=$(VISDCON_DIR)/installbin) 1593 +$(MAKE) -C $(VISDCON_DIR) 1594 +$(MAKE) -C $(VISDCON_DIR) install-strip 1595endif 1596 1597visdcon-install: 1598ifeq ($(CONFIG_VISUALIZATION),y) 1599 install -d $(INSTALLDIR)/visdcon/usr/sbin 1600 cp -rf $(VISDCON_DIR)/installbin/bin/* $(INSTALLDIR)/visdcon/usr/sbin 1601endif 1602 1603visdcon-clean: 1604ifeq ($(CONFIG_VISUALIZATION),y) 1605 +$(MAKE) -C $(VISDCON_DIR) clean 1606endif 1607 1608ifeq ($(CONFIG_LIBNFNETLINK),y) 1609# iptables will try to link with netfilter's libs if enabled. 1610IPTABLES_DEPS := libnfnetlink 1611endif 1612 1613ifeq ($(CONFIG_IPV6),y) 1614DOIPV6=1 1615else 1616DOIPV6=0 1617endif 1618 1619ifeq (2_6_36,$(LINUX_VERSION)) 1620iptables: $(IPTABLES_DEPS) 1621 +$(MAKE) -C iptables-1.4.12 BINDIR=/usr/sbin LIBDIR=/usr/lib \ 1622 KERNEL_DIR=$(LINUXDIR) 1623 1624iptables-install: 1625ifeq ($(CONFIG_IPTABLES),y) 1626 install -d $(INSTALLDIR)/iptables/usr/lib/iptables 1627 install iptables-1.4.12/src/extensions/*.so $(INSTALLDIR)/iptables/usr/lib/iptables 1628 $(STRIP) $(INSTALLDIR)/iptables/usr/lib/iptables/*.so 1629 install -d $(INSTALLDIR)/iptables/usr/sbin 1630 cp -rf iptables-1.4.12/src/install/sbin/* $(INSTALLDIR)/iptables/usr/sbin 1631 install -d $(INSTALLDIR)/iptables/usr/lib 1632 cp -rf iptables-1.4.12/src/install/lib/* $(INSTALLDIR)/iptables/usr/lib 1633else 1634 # So that generic rule does not take precedence 1635 @true 1636endif 1637iptables-clean: 1638 -$(MAKE) -C iptables-1.4.12 KERNEL_DIR=$(LINUXDIR) clean 1639 1640else ifeq (2_6,$(LINUX_VERSION)) 1641iptables: 1642 +$(MAKE) -C iptables-1.x BINDIR=/usr/sbin LIBDIR=/usr/lib \ 1643 KERNEL_DIR=$(LINUXDIR) DO_IPV6=$(DOIPV6) 1644 1645iptables-install: 1646ifeq ($(CONFIG_IPTABLES),y) 1647 install -d $(INSTALLDIR)/iptables/usr/lib/iptables 1648 install iptables-1.x/extensions/*.so $(INSTALLDIR)/iptables/usr/lib/iptables 1649 $(STRIP) $(INSTALLDIR)/iptables/usr/lib/iptables/*.so 1650 install -D iptables-1.x/iptables $(INSTALLDIR)/iptables/usr/sbin/iptables 1651 $(STRIP) $(INSTALLDIR)/iptables/usr/sbin/iptables 1652 install -D iptables-1.x/iptables-restore $(INSTALLDIR)/iptables/usr/sbin/iptables-restore # BCMQOS 1653 $(STRIP) $(INSTALLDIR)/iptables/usr/sbin/iptables-restore # BCMQOS 1654else 1655 # So that generic rule does not take precedence 1656 @true 1657endif 1658iptables-clean: 1659 -$(MAKE) -C iptables-1.x KERNEL_DIR=$(LINUXDIR) DO_IPV6=$(DOIPV6) clean 1660else # linux-2.6 1661iptables: 1662 +$(MAKE) -C iptables BINDIR=/usr/sbin LIBDIR=/usr/lib \ 1663 KERNEL_DIR=$(LINUXDIR) 1664#DO_IPV6=1 1665 1666iptables-install: 1667ifeq ($(CONFIG_IPTABLES),y) 1668 install -d $(INSTALLDIR)/iptables/usr/lib/iptables 1669 install iptables/extensions/*.so $(INSTALLDIR)/iptables/usr/lib/iptables 1670 $(STRIP) $(INSTALLDIR)/iptables/usr/lib/iptables/*.so 1671 install -D iptables/iptables $(INSTALLDIR)/iptables/usr/sbin/iptables 1672 $(STRIP) $(INSTALLDIR)/iptables/usr/sbin/iptables 1673else 1674 # So that generic rule does not take precedence 1675 @true 1676endif 1677iptables-clean: 1678 -$(MAKE) -C iptables KERNEL_DIR=$(LINUXDIR) DO_IPV6=$(DOIPV6) clean 1679 1680endif # linux-2.6 1681 1682nas: nvram shared 1683 1684netconf: iptables 1685ifeq ($(CONFIG_NETCONF),y) 1686 +$(MAKE) LINUXDIR=$(LINUXDIR) -C netconf 1687 1688else 1689 # In case of "Prerequisite 'iptables' is newer than target 'netconf'" 1690 @true 1691endif 1692 1693ntpclient-install: 1694 install -D ntpclient/ntpclient $(INSTALLDIR)/ntpclient/usr/sbin/ntpclient 1695 $(STRIP) $(INSTALLDIR)/ntpclient/usr/sbin/ntpclient 1696 1697ppp : 1698 +$(MAKE) -C ppp/pppoecd $* INSTALLDIR=$(INSTALLDIR)/ppp 1699 1700ppp-install: 1701 +$(MAKE) -C ppp/pppoecd install INSTALLDIR=$(INSTALLDIR)/ppp 1702 1703ppp-clean: 1704 +$(MAKE) -C ppp/pppoecd clean INSTALLDIR=$(INSTALLDIR)/ppp 1705 1706udhcpd-install: 1707 install -D udhcpd/udhcpd $(INSTALLDIR)/udhcpd/usr/sbin/udhcpd 1708 $(STRIP) $(INSTALLDIR)/udhcpd/usr/sbin/udhcpd 1709 cd $(INSTALLDIR)/udhcpd/usr/sbin && ln -sf udhcpd udhcpc 1710 1711wlconf: nvram shared 1712 1713vlan: 1714 +$(MAKE) -C vlan CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) 1715 1716vlan-install: 1717 +$(MAKE) install -C vlan \ 1718 CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) INSTALLDIR=$(INSTALLDIR) 1719 1720vlan-clean: 1721 $(MAKE) -C vlan clean 1722 1723buzzz: 1724 +$(MAKE) -C buzzz CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) 1725 1726buzzz-install: 1727 install -d $(TARGETDIR) 1728 +$(MAKE) -C buzzz CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) INSTALLDIR=$(INSTALLDIR) install 1729 1730buzzz-clean: 1731 $(MAKE) -C buzzz clean 1732 1733emf: 1734 +$(MAKE) -C emf/emfconf CROSS=$(CROSS_COMPILE) 1735 1736emf-install: 1737ifeq ($(CONFIG_EMF),y) 1738 install -d $(TARGETDIR) 1739 +$(MAKE) install -C emf/emfconf \ 1740 CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) 1741 1742endif 1743 1744emf-clean: 1745 $(MAKE) -C emf/emfconf clean 1746 1747igs: 1748 +$(MAKE) -C emf/igsconf CROSS=$(CROSS_COMPILE) 1749 1750igs-install: 1751ifeq ($(CONFIG_EMF),y) 1752 install -d $(TARGETDIR) 1753 +$(MAKE) -C emf/igsconf CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) install 1754 1755endif 1756 1757igs-clean: 1758 $(MAKE) -C emf/igsconf clean 1759 1760igmp: 1761 $(MAKE) -C igmp CROSS=$(CROSS_COMPILE) 1762 1763igmp-install: 1764ifeq ($(CONFIG_IGMP_PROXY),y) 1765 install -d $(TARGETDIR) 1766 +$(MAKE) -C igmp CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) install 1767endif 1768 1769igmp-clean: 1770 $(MAKE) -C igmp clean 1771 1772wps: nvram shared 1773ifneq (,$(and $(filter y,$(CONFIG_WPS)),$(wildcard wps/Makefile))) 1774 +$(MAKE) -C wps EXTRA_LDFLAGS=$(EXTRA_LDFLAGS) 1775 1776else 1777 # Prevent to use generic rules" 1778 @true 1779endif 1780 1781wps-install: 1782ifeq ($(CONFIG_WPS),y) 1783 +$(if $(wildcard wps/Makefile), \ 1784 $(MAKE) -C wps INSTALLDIR=$(INSTALLDIR) EXTRA_LDFLAGS=$(EXTRA_LDFLAGS) install \ 1785 , \ 1786 @true \ 1787 ) 1788else 1789 # Prevent to use generic rules" 1790 @true 1791endif 1792 1793wps-clean: 1794ifeq ($(CONFIG_WPS),y) 1795 [ ! -f wps/Makefile ] || $(MAKE) -C wps clean 1796else 1797 # Prevent to use generic rules" 1798 @true 1799endif 1800 1801# NFC 1802nfc: 1803ifneq (,$(and $(filter y,$(CONFIG_NFC)),$(wildcard nfc/Makefile))) 1804 +$(MAKE) -C nfc EXTRA_LDFLAGS=$(EXTRA_LDFLAGS) 1805else 1806 # Prevent to use generic rules" 1807 @true 1808endif 1809 1810nfc-install: 1811ifeq ($(CONFIG_NFC),y) 1812 +$(if $(wildcard nfc/Makefile), \ 1813 $(MAKE) -C nfc INSTALLDIR=$(INSTALLDIR) EXTRA_LDFLAGS=$(EXTRA_LDFLAGS) install \ 1814 , \ 1815 @true \ 1816 ) 1817else 1818 # Prevent to use generic rules" 1819 @true 1820endif 1821 1822nfc-clean: 1823ifeq ($(CONFIG_NFC),y) 1824 [ ! -f nfc/Makefile ] || $(MAKE) -C nfc clean 1825else 1826 # Prevent to use generic rules" 1827 @true 1828endif 1829 1830ifneq (2_4,$(LINUX_VERSION)) 1831udev: 1832 +$(MAKE) -C udev CROSS_COMPILE=$(CROSS_COMPILE) 1833 1834udev-install: 1835 install -d $(TARGETDIR) 1836 +$(MAKE) install-udevtrigger -C udev \ 1837 CROSS_COMPILE=$(CROSS_COMPILE) DESTDIR=$(INSTALLDIR) prefix=/udev 1838 1839udev-clean: 1840 $(MAKE) -C udev clean 1841 1842hotplug2: 1843 +$(MAKE) -C hotplug2 CROSS_COMPILE=$(CROSS_COMPILE) 1844 1845hotplug2-install: 1846 install -d $(TARGETDIR) 1847 install -d $(INSTALLDIR)/hotplug2 1848 +$(MAKE) install -C hotplug2 \ 1849 CROSS_COMPILE=$(CROSS_COMPILE) PREFIX=$(INSTALLDIR) 1850 1851hotplug2-clean: 1852 $(MAKE) -C hotplug2 clean 1853endif 1854 1855 1856IPROUTE2_SUBDIRS := lib 1857 1858ifeq (2_4,$(LINUX_VERSION)) 1859UCLIBC_IPV6=$(TOP)/lib/mipsel-uclibc/libc.so.0 1860ifeq ($(CONFIG_IPROUTE2),y) 1861IPROUTE2_SUBDIRS += ip 1862endif 1863endif 1864 1865ifeq ($(CONFIG_BCMQOS),y) 1866IPROUTE2_SUBDIRS += tc 1867endif 1868 1869radvd/Makefile: radvd/configure radvd/Makefile.in 1870 [ ! -d $(@D) ] || (cd $(@D) && CC=$(CC) ./configure --host=$(PLT)-linux) 1871 1872.PHONY: radvd 1873radvd: radvd/Makefile flex dummy 1874 +$(if $(wildcard $@/),$(MAKE) -C radvd CC=${CC} radvd_LDADD="-L../flex -lfl",@true) 1875 1876.PHONY: radvd-install 1877radvd-install: 1878 [ ! -d radvd ] || install -D -m 755 radvd/radvd $(INSTALLDIR)/radvd/usr/sbin/radvd 1879 [ ! -d radvd ] || $(STRIP) $(INSTALLDIR)/radvd/usr/sbin/radvd 1880 1881.PHONY: radvd-clean 1882radvd-clean: 1883 [ ! -f radvd/Makefile ] || $(MAKE) -C radvd distclean 1884 1885flex/Makefile: flex/configure flex/Makefile.in 1886 [ ! -d $(@D) ] || (cd $(@D) && CC=$(CC) ./configure --host=$(PLT)-linux) 1887 1888.PHONY: flex 1889flex: flex/Makefile dummy 1890 +$(if $(wildcard $@/),$(MAKE) libfl.a -C $@ CC=${CC} RANLIB=${RANLIB},@true) 1891 1892iproute2: 1893ifneq ($(LINUX_VERSION),2_6_36) 1894 +$(if $(wildcard $@/), \ 1895 $(MAKE) -C $@ KERNEL_INCLUDE=$(LINUXDIR)/include CC=$(CC) \ 1896 AR=$(AR) SUBDIRS="$(IPROUTE2_SUBDIRS)" LDLIBS="$(UCLIBC_IPV6)" \ 1897 , \ 1898 @true \ 1899 ) 1900else 1901 +$(if $(wildcard $(IPROUTE2_DIR)/), \ 1902 $(MAKE) -C $(IPROUTE2_DIR) KERNEL_INCLUDE=$(LINUXDIR)/include CC=$(CC) \ 1903 AR=$(AR) SUBDIRS="$(IPROUTE2_SUBDIRS)" LDLIBS="$(UCLIBC_IPV6)" \ 1904 , \ 1905 @true \ 1906 ) 1907 1908endif 1909 1910iproute2-clean: 1911 [ ! -d $(IPROUTE2_DIR) ] || $(MAKE) -C $(IPROUTE2_DIR) clean 1912 1913iproute2-install: 1914ifeq ($(CONFIG_BCMQOS),y) 1915 [ ! -d $(IPROUTE2_DIR) ] || install -D -m 755 $(IPROUTE2_DIR)/tc/tc $(INSTALLDIR)/iproute2/usr/sbin/tc 1916 [ ! -d $(IPROUTE2_DIR) ] || $(STRIP) $(INSTALLDIR)/iproute2/usr/sbin/tc 1917endif 1918ifeq ($(CONFIG_IPROUTE2),y) 1919 [ ! -d $(IPROUTE2_DIR) ] || install -D -m 755 $(IPROUTE2_DIR)/ip/ip $(INSTALLDIR)/iproute2/usr/sbin/ip 1920 [ ! -d $(IPROUTE2_DIR) ] || $(STRIP) $(INSTALLDIR)/iproute2/usr/sbin/ip 1921endif 1922 1923iputils: 1924ifneq ($(LINUX_VERSION),2_6_36) 1925 [ ! -d $@ ] || [ -f $@/include-glibc/bits/socket.h ] || ( \ 1926 cd $@/include-glibc/bits && ln -s ../socketbits.h socket.h \ 1927 ) 1928endif 1929 +$(if $(wildcard $(IPUTILS_DIR)), \ 1930 $(MAKE) -C $(IPUTILS_DIR) KERNEL_INCLUDE=$(LINUXDIR)/include \ 1931 LINUX_VERSION=$(LINUX_VERSION) CC=$(CC) LDLIBS= \ 1932 , \ 1933 @true \ 1934 ) 1935 1936iputils-clean: 1937 [ ! -d $(IPUTILS_DIR) ] || $(MAKE) -C $(IPUTILS_DIR) clean 1938 1939iputils-install: 1940 [ ! -d $(IPUTILS_DIR) ] || install -D -m 755 $(IPUTILS_DIR)/ping6 $(INSTALLDIR)/iputils/usr/sbin/ping6 1941 [ ! -d $(IPUTILS_DIR) ] || $(STRIP) $(INSTALLDIR)/iputils/usr/sbin/ping6 1942 [ ! -d $(IPUTILS_DIR) ] || install -D -m 755 $(IPUTILS_DIR)/traceroute6 $(INSTALLDIR)/iputils/usr/sbin/traceroute6 1943 [ ! -d $(IPUTILS_DIR) ] || $(STRIP) $(INSTALLDIR)/iputils/usr/sbin/traceroute6 1944 [ ! -d $(IPUTILS_DIR) ] || install -D -m 755 $(IPUTILS_DIR)/tracepath6 $(INSTALLDIR)/iputils/usr/sbin/tracepath6 1945 [ ! -d $(IPUTILS_DIR) ] || $(STRIP) $(INSTALLDIR)/iputils/usr/sbin/tracepath6 1946 1947dhcp6: dummy 1948#dhcp6s dhcp6c: dummy 1949 [ ! -d dhcp6 ] || [ -f dhcp6/Makefile ] || ( \ 1950 cd dhcp6 && ./configure CC=gcc CFLAGS+="-I../shared" \ 1951 ) 1952ifeq ($(CONFIG_UCLIBC),y) 1953 +$(if $(wildcard dhcp6/), \ 1954 $(MAKE) dhcp6s dhcp6c -C dhcp6 CC=$(CC) LIBS="$(UCLIBC_IPV6)" \ 1955 , \ 1956 @true \ 1957 ) 1958else 1959 +$(if $(wildcard dhcp6/), \ 1960 $(MAKE) dhcp6s dhcp6c -C dhcp6 CC=$(CC) \ 1961 LIBS="-lresolv -L../libbcmcrypto -lbcmcrypto \ 1962 -L$(INSTALLDIR)/libbcmcrypto/usr/lib" \ 1963 , \ 1964 @true \ 1965 ) 1966endif 1967 1968dhcp6-install: $(if $(filter y,${CONFIG_DHCPV6S}),dhcp6s-install) \ 1969 $(if $(filter y,${CONFIG_DHCPV6C}),dhcp6c-install) 1970 @true # Keep this rule from falling through to generic and failing. 1971 1972dhcp6s-install: dhcp6 1973 [ ! -d dhcp6 ] || install -D -m 755 dhcp6/dhcp6s $(INSTALLDIR)/dhcp6s/usr/sbin/dhcp6s 1974 [ ! -d dhcp6 ] || $(STRIP) $(INSTALLDIR)/dhcp6s/usr/sbin/dhcp6s 1975 1976dhcp6c-install: dhcp6 1977 [ ! -d dhcp6 ] || install -D -m 755 dhcp6/dhcp6c $(INSTALLDIR)/dhcp6c/usr/sbin/dhcp6c 1978 [ ! -d dhcp6 ] || $(STRIP) $(INSTALLDIR)/dhcp6c/usr/sbin/dhcp6c 1979 1980dhcp6s-clean dhcp6c-clean: 1981#dhcp6s-clean dhcp6c-clean: 1982dhcp6-clean: 1983 1984SRC_WL = ../../../wl-exe/wl/src/wl/exe 1985 1986.PHONY: wlexe 1987wlexe: 1988ifeq ($(CONFIG_WLEXE),y) 1989ifneq ($(wildcard $(SRCBASE_SYS)/wl/exe/GNUmakefile),) 1990ifeq ($(ARCH),arm) 1991 $(MAKE) TARGETARCH=arm_le ARCH_SFX="" TARGET_PREFIX=$(CROSS_COMPILE) -C $(SRC_WL) 1992else 1993 $(MAKE) TARGETARCH=mips ARCH_SFX="" TARGET_PREFIX=$(CROSS_COMPILE) -C $(SRCBASE_SYS)/wl/exe 1994endif 1995 [ -d wlexe ] || install -d wlexe 1996 install $(SRC_WL)/wl wlexe 1997ifeq ($(ARCH),arm) 1998 install $(SRC_WL)/socket_noasd/arm_le/wl_server_socket wlexe 1999else 2000 install $(SRC_WL)/socket_noasd/mips/wl_server_socket wlexe 2001endif 2002endif 2003endif 2004 2005.PHONY: wlexe-clean 2006wlexe-clean: 2007ifneq ($(wildcard $(SRC_WL)/GNUmakefile),) 2008 $(MAKE) TARGET_PREFIX=$(CROSS_COMPILE) -C $(SRC_WL) clean 2009 $(RM) wlexe/wl 2010 $(RM) wlexe/wl_server_socket 2011endif 2012 2013.PHONY: wlexe-install 2014wlexe-install: 2015ifeq ($(CONFIG_WLEXE),y) 2016ifneq ($(wildcard $(SRC_WL)/GNUmakefile),) 2017 [ ! -d wlexe ] || install -D -m 755 wlexe/wl $(INSTALLDIR)/wlexe/usr/sbin/wl 2018 [ ! -d wlexe ] || install -D -m 755 wlexe/wl_server_socket $(INSTALLDIR)/wlexe/usr/sbin/wl_server_socket 2019 [ ! -d wlexe ] || $(STRIP) $(INSTALLDIR)/wlexe/usr/sbin/wl 2020 [ ! -d wlexe ] || $(STRIP) $(INSTALLDIR)/wlexe/usr/sbin/wl_server_socket 2021endif 2022endif 2023 2024# 2025# Generic rules 2026# 2027 2028%: 2029 +$(if $(wildcard $*/),$(MAKE) -C $* EXTRA_LDFLAGS=$(EXTRA_LDFLAGS) ARCH=$(ARCH),@true) 2030 2031%-clean: 2032 [ ! -d $* ] || $(MAKE) -C $* clean 2033 2034%-install: 2035 +$(if $(wildcard $*/), \ 2036 $(MAKE) -C $* install INSTALLDIR=$(INSTALLDIR)/$*, \ 2037 @true \ 2038 ) 2039 2040$(obj-y) $(obj-n) $(obj-clean) $(obj-install): dummy 2041 2042.PHONY: all clean distclean mrproper install package check_kernel_config 2043.PHONY: conf mconf oldconf kconf kmconf config menuconfig oldconfig 2044.PHONY: dummy netconf 2045.PHONY: libstdcpp libstdcpp-install 2046.PHONY: libmnl libmnl-install libmnl-clean 2047.PHONY: libnfnetlink libnfnetlink-install libnfnetlink-clean 2048.PHONY: libnetfilter_conntrack libnetfilter_conntrack-install libnetfilter_conntrack-clean 2049.PHONY: libnetfilter_queue libnetfilter_queue-install libnetfilter_queue-clean 2050.PHONY: libflow libflow-install libflow-clean 2051ifeq ($(CONFIG_VISUALIZATION),y) 2052.PHONY: libsqlite3 libsqlite3-install libsqlite3-clean 2053.PHONY: libjsonc libjsonc-install libjsonc-clean 2054.PHONY: libxml2 libxml2-install libxml2-clean 2055.PHONY: visdcoll visdcoll-install visdcoll-clean 2056.PHONY: visdcon visdcon-install visdcon-clean 2057endif 2058