1# 2# Broadcom Linux Router Makefile 3# 4# Copyright (C) 2010, 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,v 1.263 2010/10/22 12:47:08 Exp $ 19# 20 21include .config 22 23export PROFILE = WNDR4500REV 24export FW_TYPE = WW 25 26BOARDID_FILE=compatible_WNDR4500rev.txt 27FW_NAME=WNDR4500REV 28 29 30# 31# Paths 32# 33 34 35CPU ?= 36LINUX_VERSION = 2_6 37 38# Source bases 39export PLATFORM LIBDIR USRLIBDIR LINUX_VERSION 40export TOP := $(shell pwd) 41export SRCBASE := $(shell (cd $(TOP)/.. && pwd -P)) 42 43ifeq ($(LINUX_VERSION),2_6) 44export LINUXDIR := $(SRCBASE)/linux/linux-2.6 45export KBUILD_VERBOSE := 1 46export PATH := /projects/hnd/tools/linux/hndtools-mipsel-linux-uclibc-4.2.3/bin:$(PATH) 47else 48export LINUXDIR := $(SRCBASE)/linux/linux 49endif 50 51 52# 53# Cross-compile environment variables 54# 55 56# Build platform 57export BUILD := i386-pc-linux-gnu 58export HOSTCC := gcc 59 60# uClibc wrapper 61ifeq ($(CONFIG_UCLIBC),y) 62export PLATFORM := $(PLATFORM)-uclibc 63endif 64 65ifeq ($(PLATFORM),mipsel) 66export CROSS_COMPILE := mipsel-linux- 67export CONFIGURE := ./configure mipsel-linux --build=$(BUILD) 68export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/../mipsel-linux && pwd -P) 69endif 70 71ifeq ($(PLATFORM),mipsel-uclibc) 72ifeq ($(LINUX_VERSION),2_6) 73export CROSS_COMPILE := mipsel-uclibc-linux26- 74else 75export CROSS_COMPILE := mipsel-uclibc- 76endif 77export CONFIGURE := ./configure mipsel-linux --build=$(BUILD) 78export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/.. && pwd -P) 79endif 80 81CFLAGS = -Os 82 83ifeq ($(CONFIG_RTR_OPTIMIZE_SIZE),y) 84export CFLAGS += -Os 85export OPTCFLAGS = -Os 86else 87export CFLAGS += -O2 88export OPTCFLAGS = -O2 89endif 90 91#look at driver configuration 92WLCFGDIR=$(SRCBASE)/wl/config 93 94ifeq ($(CONFIG_BCMWPA2),y) 95export CFLAGS += -DBCMWPA2 96endif 97export CFLAGS += -DRESTART_ALL_PROCESSES 98#export CFLAGS += -DRESTART_ALL_PROCESSES_DEBUG 99 100ifeq ("$(CONFIG_USBAP)","y") 101export CFLAGS += -D__CONFIG_USBAP__ 102endif 103 104ifeq ($(CONFIG_BCMQOS),y) 105export CFLAGS += -DBCMQOS 106endif 107ifeq ($(CONFIG_WSCCMD),y) 108export CONFIG_WSCCMD 109export CFLAGS += -DBCMWPS 110# WFA WPS 2.0 Testbed extra caps 111#export CFLAGS += -DWFA_WPS_20_TESTBED 112endif 113 114ifeq ($(CONFIG_EMF),y) 115export CFLAGS += -D__CONFIG_EMF__ 116endif 117 118ifeq ($(CONFIG_IGMP_PROXY),y) 119export CFLAGS += -D__CONFIG_IGMP_PROXY__ 120endif 121 122ifeq ($(CONFIG_WL_ACI),y) 123export CFLAGS += -D__CONFIG_WL_ACI__ 124endif 125 126ifeq ($(CONFIG_MEDIA_IPTV),y) 127export CFLAGS += -D__CONFIG_MEDIA_IPTV__ 128endif 129 130ifeq ($(CONFIG_SOUND),y) 131export CFLAGS += -D__CONFIG_SOUND__ 132endif 133 134ifeq ($(CONFIG_VOIP),y) 135export CFLAGS += -DBCMVOIP 136endif 137 138ifeq ($(CONFIG_SQUASHFS), y) 139ROOT_IMG :=target.squashfs 140else 141ROOT_IMG := target.cramfs 142endif 143 144ifeq ($(CONFIG_WAPI),y) 145export CFLAGS += -DBCMWAPI_WAI -DBCMWAPI_WPI 146endif 147 148ifeq ($(CONFIG_PHYMON_UTILITY),y) 149export CFLAGS += -DPHYMON 150endif 151 152ifeq ($(CONFIG_OPENSSL),y) 153export CFLAGS += -DSUPPORT_REMOTE_HTTPS 154endif 155 156ifeq ($(CONFIG_QOS_AUTO_CHECK_BW),y) 157export CFLAGS += -DQOS_AUTO_CHECK_BANDWIDTH 158endif 159 160ifeq ($(CONFIG_WPS_V20),y) 161export CFLAGS += -DINCLUDE_WPS_V20 162endif 163 164ifeq ($(CONFIG_5G_AUTO_CHANNEL),y) 165export CFLAGS += -DINCLUDE_5G_AUTO_CHANNEL 166endif 167 168ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 169CRAMFSDIR := cramfs 170else 171CRAMFSDIR := $(LINUXDIR)/scripts/cramfs 172endif 173 174ifeq ($(CONFIG_OPENDNS),y) 175export CFLAGS += -DOPENDNS_PARENTAL_CONTROL 176endif 177 178export CFLAGS += -DU12H189 -DWNDR4500REV 179export CFLAGS += -DMULTIPLE_SSID 180export CFLAGS += -DENABLE_ML 181#export CFLAGS += -DWIFI_DISABLE 182export CFLAGS += -DBCM53125 183export CFLAGS += -DCONFIG_RUSSIA_IPTV 184 185ifeq ($(CONFIG_DLNA),y) 186export CFLAGS += -DDLNA 187#export CFLAGS += -DDLNA_DEBUG 188endif 189export CFLAGS += -DHTTP_ACCESS_USB 190#export CFLAGS += -DMAX_USB_ACCESS 191export CFLAGS += -DSAMBA_ENABLE 192export CFLAGS += -DUSB_NEW_SPEC 193export CFLAGS += -DINCLUDE_WIFI_BUTTON 194export CONFIG_LIBNSL=y 195export CFLAGS += -DINCLUDE_USB_LED 196export CFLAGS += -DINCLUDE_DUAL_BAND 197export CFLAGS += -DSINGLE_FIRMWARE 198export CFLAGS += -DINCLUDE_GET_ST_CHKSUM 199export CFLAGS += -DUNIFIED_STR_TBL 200export CFLAGS += -DFIRST_MTD_ROTATION 201export CFLAGS += -DWIFI_ON_OFF_SCHE 202export CFLAGS += -DAUTO_CONN_24HR 203export CFLAGS += -DIGMP_PROXY 204export CFLAGS += -DAP_MODE 205export CFLAGS += -D__CONFIG_IGMP_SNOOPING__ 206ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 207export CFLAGS += -DLINUX26 208export CFLAGS += -DINCLUDE_IPV6 209endif 210export CFLAGS += -DPRESET_WL_SECURITY 211export CFLAGS += -DNEW_BCM_WPS_IPC 212 213ifeq ($(FW_TYPE),NA) 214export CFLAGS += -DFW_VERSION_NA 215endif 216 217ifeq ($(CONFIG_MFP),y) 218export CFLAGS += -DMFP 219endif 220 221ifeq ($(CONFIG_SIGMA),y) 222export CFLAGS += -D__CONFIG_SIGMA__ 223endif 224 225 226export CC := $(CROSS_COMPILE)gcc 227export AR := $(CROSS_COMPILE)ar 228export AS := $(CROSS_COMPILE)as 229export LD := $(CROSS_COMPILE)ld 230export NM := $(CROSS_COMPILE)nm 231export RANLIB := $(CROSS_COMPILE)ranlib 232export STRIP := $(CROSS_COMPILE)strip 233export SIZE := $(CROSS_COMPILE)size 234export OBJCOPY := $(CROSS_COMPILE)objcopy 235 236# 237# Install and target directories 238# 239 240export PLATFORMDIR := $(TOP)/$(PLATFORM) 241export INSTALLDIR := $(PLATFORMDIR)/install 242export TARGETDIR := $(PLATFORMDIR)/target 243 244define STRIP_DEBUG_SYMBOLS 245 @dbgsymf=$(basename $(1))_dbgsym$(suffix $(1)); \ 246 if [ "$(1)" -nt "$${dbgsymf}" ]; then \ 247 echo "#- $0"; \ 248 ls -ln $1 | awk '{printf "Orig size: %10d bytes, %s\n",$$5,$$NF}'; \ 249 cp -p -v $1 $$dbgsymf; $(STRIP) -d $(1); touch $$dbgsymf; \ 250 ls -ln $1 | awk '{printf "Strip size: %10d bytes, %s\n",$$5,$$NF}'; \ 251 fi 252endef 253 254 255 256# USB AP support 257# note : the dongle target is only for after pre-build 258obj-$(CONFIG_USBAP) += bmac dongle 259 260# always build libbcmcrypto 261obj-y += libbcmcrypto 262 263# 264# Configuration 265# 266 267#ifdef BCMSOUND 268obj-$(CONFIG_SIGMA) += sigma 269obj-$(CONFIG_SALSA) += salsa 270obj-$(CONFIG_LIBZ) += libz 271obj-$(CONFIG_LIBID3TAG) += libid3tag 272obj-$(CONFIG_LIBMAD) += libmad 273obj-$(CONFIG_MADPLAY) += madplay 274obj-$(CONFIG_APLAY) += alsa-utils/aplay 275#endif 276obj-$(CONFIG_NVRAM) += nvram 277obj-$(CONFIG_SHARED) += shared 278obj-$(CONFIG_LIBBCM) += libbcm 279 280obj-$(CONFIG_OPENSSL) += openssl 281 282ifeq ($(CONFIG_ACOS_MODULES),y) 283#obj-y += ../../ap/acos 284obj-y += ../../ap/gpl 285fw_cfg_file := ../../../project/acos/include/ambitCfg.h 286else 287obj-$(CONFIG_HTTPD) += httpd 288obj-$(CONFIG_WWW) += www 289endif 290 291obj-$(CONFIG_RC) += rc 292obj-$(CONFIG_GLIBC) += lib 293obj-$(CONFIG_UCLIBC) += lib 294obj-$(CONFIG_WLCONF) += wlconf 295obj-$(CONFIG_BRIDGE) += bridge 296obj-$(CONFIG_BUSYBOX) += busybox 297obj-$(CONFIG_DNSMASQ) += dnsmasq 298obj-$(CONFIG_IPTABLES) += iptables 299obj-$(CONFIG_LIBIPT) += iptables 300obj-$(CONFIG_NAS) += nas 301obj-$(CONFIG_WAPI) += wapi/wapid 302obj-$(CONFIG_WAPI_IAS) += wapi/as 303obj-$(CONFIG_SES) += ses/ses 304obj-$(CONFIG_SES_CL) += ses/ses_cl 305obj-$(CONFIG_EZC) += ezc 306#obj-$(CONFIG_NETCONF) += netconf 307obj-$(CONFIG_NTP) += ntpclient 308obj-$(CONFIG_PPP) += ppp 309obj-$(CONFIG_UDHCPD) += udhcpd 310obj-$(CONFIG_UPNP) += upnp 311obj-$(CONFIG_LIBUPNP) += libupnp 312obj-$(CONFIG_FFMPEG) += ffmpeg 313obj-$(CONFIG_DLNA_DMR) += dlna/dmr 314obj-$(CONFIG_DLNA_DMS) += dlna/dms 315obj-$(CONFIG_SAMBA) += samba 316obj-$(CONFIG_UTILS) += utils 317obj-$(CONFIG_ETC) += etc 318obj-$(CONFIG_VLAN) += vlan 319obj-y += wps 320obj-$(CONFIG_WSCCMD) += netconf 321obj-$(CONFIG_WSCCMD) += iptables 322#obj-$(CONFIG_WSCCMD) += bcmupnp 323obj-$(CONFIG_EMF) += emf 324obj-$(CONFIG_EMF) += igs 325obj-$(CONFIG_IGMP_PROXY) += igmp 326obj-$(CONFIG_WL_ACI) += aci 327ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 328obj-y += udev 329obj-y += hotplug2 330endif 331obj-$(CONFIG_LLD2D) += lltd/wrt54g-linux 332obj-$(CONFIG_ACL_LOGD) += acl_log 333obj-$(CONFIG_GPIO) += gpio 334obj-$(CONFIG_SWRESETD) += swresetd 335#if defined(PHYMON) 336obj-$(CONFIG_PHYMON_UTILITY) += phymon 337#endif 338#if defined(EXT_ACS) 339obj-$(CONFIG_EXTACS) += acsd 340#endif 341 342obj-$(CONFIG_RADVD) += radvd 343obj-$(CONFIG_IPROUTE2) += iproute2 344obj-$(CONFIG_IPUTILS) += iputils 345obj-$(CONFIG_DHCPV6S) += dhcp6s 346obj-$(CONFIG_DHCPV6C) += dhcp6c 347 348# Gigle apps 349obj-$(CONFIG_PLC) += gigled libgigle gigle_util 350ifeq ($(CONFIG_PLC),y) 351CFLAGS += -DPLC 352endif 353 354# always build eap dispatcher 355obj-y += eapd/linux 356 357ifeq ($(CONFIG_VOIP),y) 358obj-y += voipd 359endif 360 361obj-clean := $(foreach obj,$(obj-y) $(obj-n),$(obj)-clean) 362obj-install := $(foreach obj,$(obj-y),$(obj)-install) 363 364ifneq ($(WLTEST),1) 365ifneq ($(shell grep "CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR)/.config),) 366export WLTEST := 1 367endif 368endif 369 370# 371# Basic rules 372# 373 374 375all: acos_link version $(LINUXDIR)/.config $(obj-y) 376 # Also build kernel 377ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 378 $(MAKE) -C $(LINUXDIR) zImage 379 $(MAKE) CONFIG_SQUASHFS=$(CONFIG_SQUASHFS) -C $(SRCBASE)/router/compressed 380else 381 if ! grep -q "CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR)/.config ; then \ 382 $(MAKE) -C $(LINUXDIR) zImage ; \ 383 fi 384endif 385 if grep -q "CONFIG_MODULES=y" $(LINUXDIR)/.config ; then \ 386 $(MAKE) -C $(LINUXDIR) modules ; \ 387 fi 388 # Preserve the debug versions of these and strip for release 389 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/vmlinux) 390ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 391 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/wl/wl.ko) 392ifeq ("$(CONFIG_USBAP)","y") 393 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/wl/wl_high.ko) 394#$(STRIP) $(LINUXDIR)/drivers/net/wl/wl_high.ko 395endif 396 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/et/et.ko) 397 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/ctf/ctf.ko) 398 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/bcm57xx/bcm57xx.ko) 399 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/emf/emf.ko) 400 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/igs/igs.ko) 401else 402 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/wl/wl.o) 403ifeq ("$(CONFIG_USBAP)","y") 404 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/wl/wl_high/wl_high.o) 405endif 406 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/et/et.o) 407 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/ctf/ctf.o) 408 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/bcm57xx/bcm57xx.o) 409 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/emf/emf.o) 410 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/igs/igs.o) 411 $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/ubd/ubd.o) 412endif 413 414 415# well, we should always be able to use the BOM, but right now, the last build step on 416# the build machine doesn't have it, so we don't rerun this is the file already 417# exists 418 419version: $(SRCBASE)/router/shared/router_version.h 420 421# this could fail if the bom doesn't exist. We don't care as long as there is a valid router_version.h 422# if not, the build will fail anyway. 423$(SRCBASE)/router/shared/router_version.h: $(SRCBASE)/router/shared/version.h.in 424 [ ! -e $(SRCBASE)/tools/release/linux-router-bom.mk ] || make SRCBASE=$(SRCBASE) -f $(SRCBASE)/tools/release/linux-router-bom.mk version 425 426 427 428router-clean: $(obj-clean) config-clean 429 rm -rf $(TARGETDIR) 430 #rm -f $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/target.cramfs 431 rm -f $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/target.squashfs 432 rm -rf $(INSTALLDIR)/busybox 433 434clean: router-clean 435 @echo cleaning LINUXDIR = $(LINUXDIR) 436ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 437 # we need to pass some conf file for cleaning 2.6. The kbuild clean doesn't seem to 438 # to load the .config the way our wl Makefile is expecting. 439 $(MAKE) CONFIG_WL_CONF=wlconfig_lx_router_ap -C $(LINUXDIR) clean 440 $(MAKE) -C $(SRCBASE)/router/compressed clean 441else 442 $(MAKE) -C $(LINUXDIR) clean 443endif 444# $(MAKE) -C $(SRCBASE)/cfe/build/broadcom/bcm947xx clean 445# $(MAKE) -C $(SRCBASE)/tools/misc clean#water, @make clean error, 11/10/2008 446 447distclean mrproper: clean 448 rm -f .config $(LINUXDIR)/.config 449 450install package: $(filter-out lib-install,$(obj-install)) $(LINUXDIR)/.config 451 # Install binaries into target directory 452 install -d $(TARGETDIR) 453 for dir in $(wildcard $(patsubst %,$(INSTALLDIR)/%,$(obj-y))) ; do \ 454 (cd $${dir} && tar cpf - .) | (cd $(TARGETDIR) && tar xpf -) \ 455 done 456 # optimize the crypto library by removing unneeded symbols 457 [ ! -d libbcmcrypto ] || $(MAKE) -C libbcmcrypto optimize 458ifneq ("$(CONFIG_WAPI)$(CONFIG_WAPI_IAS)","") 459 # optimize the OPENSSL library by removing unneeded symbols 460# [ ! -d wapi/wapid ] || $(MAKE) -C wapi/wapid optimize 461endif 462 # Install (and possibly optimize) C library 463 $(MAKE) lib-install 464 # Install modules into filesystem 465 if grep -q "CONFIG_MODULES=y" $(LINUXDIR)/.config ; then \ 466 $(MAKE) -C $(LINUXDIR) modules_install DEPMOD=/bin/true INSTALL_MOD_PATH=$(TARGETDIR) ; \ 467 fi 468 #$(MAKE) acos-install 469 for dir in $(SRCBASE)/prebuilt/$(FW_TYPE); do \ 470 (cd $${dir} && tar cpf - .) | (cd $(TARGETDIR) && tar xpf -) \ 471 done 472 #water, 08/11/2009 473 rm -rf $(TARGETDIR)/lib/modules/2.6.22/build 474 rm -rf $(TARGETDIR)/lib/modules/2.6.22/source 475 rm -rf $(TARGETDIR)/lib/modules/2.6.22/modules.* 476 rm -rf $(TARGETDIR)/lib/modules/2.6.22/extra 477 find $(TARGETDIR) -name .svn | xargs rm -rf 478 rm -rf $(TARGETDIR)/usr/bin/[ 479 rm -rf $(TARGETDIR)/usr/bin/[[ 480 rm -rf $(TARGETDIR)/usr/bin/test 481 rm -rf $(TARGETDIR)/bin/false 482 rm -rf $(TARGETDIR)/bin/true 483 rm -rf $(TARGETDIR)/usr/sbin/upnpnat 484 rm -rf $(TARGETDIR)/usr/sbin/epi_ttcp 485 $(STRIP) $(TARGETDIR)/bin/eapd 486 install -d $(TARGETDIR)/lib/modules/2.6.22/kernel/drivers/usbprinter 487 install usbprinter/NetUSB.ko $(TARGETDIR)/lib/modules/2.6.22/kernel/drivers/usbprinter 488 489 install -d $(TARGETDIR)/lib/modules/2.6.22/kernel/drivers/ufsd 490 install ufsd/ufsd.ko $(TARGETDIR)/lib/modules/2.6.22/kernel/drivers/ufsd 491 install ufsd/chkntfs $(TARGETDIR)/bin 492 493ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 494ifeq ("$(CONFIG_USBAP)","y") 495 echo "=====> Don't delete wl_high.ko for USBAP" 496 find $(TARGETDIR) -name "wl_*.ko" | sed s/\.\*wl_high\\\.ko//g | xargs rm -rf 497else 498 echo "=====> delete wl_high.ko" 499 find $(TARGETDIR) -name "wl_*.ko" | xargs rm -rf 500endif 501else # Linux 2.4 502ifeq ("$(CONFIG_USBAP)","y") 503 echo "=====> Don't delete wl_high.o for USBAP" 504 find $(TARGETDIR) -name "wl_*.o" | sed s/\.\*wl_high\\\.o//g | xargs rm -rf 505else 506 echo "=====> delete" 507 find $(TARGETDIR) -name "wl_*.o" | xargs rm -rf 508endif 509endif 510 # Prepare filesystem 511 cd $(TARGETDIR) && $(TOP)/misc/rootprep.sh 512 # Foxconn add start by Hank for ecosystem support 08/14/2012 513 cp -f $(PLATFORMDIR)/cp_installer.sh $(TARGETDIR)/usr/sbin/cp_installer.sh 514 cp -f $(PLATFORMDIR)/cp_checkbox.sh $(TARGETDIR)/usr/sbin/cp_checkbox.sh 515 cp -f $(PLATFORMDIR)/cp_platform.sh $(TARGETDIR)/usr/sbin/cp_platform.sh 516 cp -f $(PLATFORMDIR)/CAs.txt $(TARGETDIR)/etc/CAs.txt 517 # Foxconn add end by Hank for ecosystem support 08/14/2012 518ifeq ($(CONFIG_SQUASHFS), y) 519 ########################################### 520 ### Create Squashfs filesystem ############ 521 rm -f $(PLATFORMDIR)/$(ROOT_IMG) 522 rm -f $(PLATFORMDIR)/$(ROOT_IMG).trim 523 rm -f $(TARGETDIR)/sbin/st* 524 find $(TARGETDIR) -name ".svn" | xargs rm -rf 525endif 526ifeq ($(CONFIG_SQUASHFS), y) 527 # Make sure mksquashfs 3.0 is used 528 $(MAKE) -C squashfs mksquashfs 529 find $(TARGETDIR) -name ".svn" | xargs rm -rf 530 squashfs/mksquashfs $(TARGETDIR) $(PLATFORMDIR)/$(ROOT_IMG) -noappend -all-root 531 # for i in $(shell ls $(INSTALLDIR)/utils/usr/sbin) ; do \ 532 # rm -f $(TARGETDIR)/usr/sbin/$${i} ; \ 533 # done 534 # squashfs/mksquashfs $(TARGETDIR) $(PLATFORMDIR)/$(ROOT_IMG).trim -noappend -all-root 535else 536 # Make sure mkcramfs-2.0 is used 537 $(MAKE) -C $(CRAMFSDIR) mkcramfs 538 # '-u 0 -g 0' will set the uid and gid of all the files to 0 (root) 539 # These options are currently only available on our version of mkcramfs 540 $(CRAMFSDIR)/mkcramfs -u 0 -g 0 $(TARGETDIR) $(PLATFORMDIR)/$(ROOT_IMG) 541endif 542 543ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 544 # Package kernel and filesystem 545ifeq ($(BUILD_MFG), 1) 546 cd $(TARGETDIR) ; \ 547 find . | cpio -o -H newc | gzip > $(LINUXDIR)/usr/initramfs_data.cpio.gz 548 ls -l $(LINUXDIR)/usr/initramfs_data.cpio.gz 549 $(MAKE) -C $(LINUXDIR) zImage 550 $(MAKE) -C $(SRCBASE)/router/compressed 551else 552 cp $(SRCBASE)/router/compressed/vmlinuz $(PLATFORMDIR)/ 553 trx -o $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/$(ROOT_IMG) 554 addpattern -i $(PLATFORMDIR)/linux.trx -o $(PLATFORMDIR)/linux_lsys.bin ; \ 555 if grep -q "CONFIG_SQUASHFS=y" $(LINUXDIR)/.config ; then \ 556 cp $(SRCBASE)/router/compressed/vmlinuz-lzma $(PLATFORMDIR)/ ; \ 557 trx -o $(PLATFORMDIR)/linux-lzma.trx $(PLATFORMDIR)/vmlinuz-lzma $(PLATFORMDIR)/$(ROOT_IMG) ; \ 558 fi 559endif 560 # Pad self-booting Linux to a 64 KB boundary 561 cp $(SRCBASE)/router/compressed/zImage $(PLATFORMDIR)/ 562else 563 # Package kernel and filesystem 564 if grep -q "CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR)/.config ; then \ 565 cp $(PLATFORMDIR)/$(ROOT_IMG) $(LINUXDIR)/arch/mips/ramdisk/$${CONFIG_EMBEDDED_RAMDISK_IMAGE} ; \ 566 $(MAKE) -C $(LINUXDIR) zImage ; \ 567 else \ 568 cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz $(PLATFORMDIR)/ ; \ 569 trx -o $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/$(ROOT_IMG) ; \ 570 if grep -q "CONFIG_SQUASHFS=y" $(LINUXDIR)/.config ; then \ 571 cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz-lzma $(PLATFORMDIR)/ ; \ 572 trx -o $(PLATFORMDIR)/linux-lzma.trx $(PLATFORMDIR)/vmlinuz-lzma $(PLATFORMDIR)/$(ROOT_IMG) ; \ 573 fi \ 574 fi 575 # Pad self-booting Linux to a 64 KB boundary 576 cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/zImage $(PLATFORMDIR)/ 577endif 578 dd conv=sync bs=64k < $(PLATFORMDIR)/zImage > $(PLATFORMDIR)/linux.bin 579 # Append filesystem to self-booting Linux 580 cat $(PLATFORMDIR)/$(ROOT_IMG) >> $(PLATFORMDIR)/linux.bin 581 582 ########################################### 583 ### Create LZMA kernel #################### 584 $(OBJCOPY) -O binary -g $(LINUXDIR)/vmlinux $(PLATFORMDIR)/vmlinux.bin 585 ../../tools/lzma e $(PLATFORMDIR)/vmlinux.bin $(PLATFORMDIR)/vmlinux.lzma 586 trx -o $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinux.lzma $(PLATFORMDIR)/$(ROOT_IMG) 587 rm -f $(PLATFORMDIR)/vmlinux.bin $(PLATFORMDIR)/vmlinux.lzma 588 589 ########################################### 590 ### Create .chk files for Web UI upgrade ## 591 cd $(PLATFORMDIR) && touch rootfs && \ 592 ../../../tools/packet -k linux.trx -f rootfs -b $(BOARDID_FILE) \ 593 -ok kernel_image -oall kernel_rootfs_image -or rootfs_image \ 594 -i $(fw_cfg_file) && \ 595 rm -f rootfs && \ 596 cp kernel_rootfs_image.chk $(FW_NAME)_`date +%m%d%H%M`.chk 597 598#ifeq ($(BOARDID_FILE), compatible_WNR3500v2.txt) 599# cd $(PLATFORMDIR) && touch rootfs && \ 600# ../../../tools/packet -k linux.trx -f rootfs -b compatible_WNR3500v2VCNA.txt \ 601# -ok kernel_image -oall kernel_rootfs_image -or rootfs_image \ 602# -i $(fw_cfg_file) && \ 603# rm -f rootfs && \ 604# cp kernel_rootfs_image.chk WNR3500v2vcna_`date +%m%d%H%M`.chk 605#endif 606 607# 608# Configuration rules 609# 610 611conf mconf: 612 $(MAKE) -C config 613 @./config/$@ ./config/Config 614 # Also configure kernel 615 $(MAKE) k$@ 616 617oldconf: .config 618 $(MAKE) -C config 619 @./config/conf -o ./config/Config 620 # Also configure kernel 621 $(MAKE) k$@ 622 623kconf: 624 $(MAKE) -C $(LINUXDIR) config 625 626kmconf: $(LINUXDIR)/.config 627 $(MAKE) -C $(LINUXDIR) menuconfig 628 629koldconf: $(LINUXDIR)/.config 630 $(MAKE) -C $(LINUXDIR) oldconfig 631 632# Convenience 633config: conf 634 635menuconfig: mconf 636 637oldconfig: oldconf 638 639# Default configurations 640ifneq ("$(LINUX_VERSION)","2_6") 641.config: 642 cp config/defconfig $@ 643 $(MAKE) oldconfig 644else 645.config: 646 cp config/defconfig-2.6 $@ 647 $(MAKE) oldconfig 648endif 649 650ifneq ("$(CONFIG_USBAP)","y") 651ifneq ("$(LINUX_VERSION)","2_6") 652$(LINUXDIR)/.config: 653 cp $(LINUXDIR)/arch/mips/defconfig-bcm947xx $@ 654else 655$(LINUXDIR)/.config: 656 cp $(LINUXDIR)/arch/mips/defconfig-bcm947xx-$(if $(CPU),$(CPU)-,)slimrtr $@ 657endif 658else 659ifneq ("LINUX_VERSION","2_6") 660$(LINUXDIR)/.config: 661 cp $(LINUXDIR)/arch/mips/defconfig-bcm947xx-usbap $@ 662else 663$(LINUXDIR)/.config: 664 cp $(LINUXDIR)/arch/mips/defconfig-bcm947xx-slimrtr-usbap $@ 665endif 666endif 667 668# Overwrite Kernel .config 669check_kernel_config: $(LINUXDIR)/.config 670 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.tmp 671ifeq ($(CONFIG_SQUASHFS), y) 672 if ! grep -q "CONFIG_SQUASHFS=y" $(LINUXDIR)/.config ; then \ 673 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 674 sed -e "s/CONFIG_CRAMFS=y/# CONFIG_CRAMFS is not set/g" $(LINUXDIR)/.config.chk | \ 675 sed -e "s/# CONFIG_SQUASHFS is not set/CONFIG_SQUASHFS=y/g" > \ 676 $(LINUXDIR)/.config ; \ 677 rm -f $(LINUXDIR)/.config.chk ; \ 678 fi 679endif 680ifeq ($(CONFIG_CRAMFS), y) 681 if ! grep -q "CONFIG_CRAMFS=y" $(LINUXDIR)/.config ; then \ 682 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 683 sed -e "s/CONFIG_SQUASHFS=y/# CONFIG_SQUASHFS is not set/g" $(LINUXDIR)/.config.chk | \ 684 sed -e "s/# CONFIG_CRAMFS is not set/CONFIG_CRAMFS=y/g" > \ 685 $(LINUXDIR)/.config ; \ 686 rm -f $(LINUXDIR)/.config.chk ; \ 687 fi 688endif 689ifeq ($(CONFIG_SHRINK_MEMORY), y) 690 if ! grep -q "CONFIG_SHRINKMEM=y" $(LINUXDIR)/.config ; then \ 691 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 692 sed -e "s/# CONFIG_SHRINKMEM is not set/CONFIG_SHRINKMEM=y/g" $(LINUXDIR)/.config.chk > \ 693 $(LINUXDIR)/.config ; \ 694 rm -f $(LINUXDIR)/.config.chk ; \ 695 fi 696else 697 if grep -q "CONFIG_SHRINKMEM=y" $(LINUXDIR)/.config ; then \ 698 cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ 699 sed -e "s/CONFIG_SHRINKMEM=y/# CONFIG_SHRINKMEM is not set/g" $(LINUXDIR)/.config.chk > \ 700 $(LINUXDIR)/.config ; \ 701 rm -f $(LINUXDIR)/.config.chk ; \ 702 fi 703endif 704 # Make kernel config again if changed 705 if ! cmp $(LINUXDIR)/.config $(LINUXDIR)/.config.tmp ; then \ 706 $(MAKE) -C $(LINUXDIR) oldconfig ; \ 707 fi 708 709# 710# Overrides 711# 712 713ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 714busybox-1.x/Config.h: dummy 715 cd busybox-1.x && rm -f Config.h && ln -sf include/autoconf.h Config.h && touch Config.h 716 cd busybox-1.x && cp configs/bbconfig-$(CONFIG_BUSYBOX_CONFIG)_$(PROFILE) .config && make clean 717 718busybox: busybox-1.x/Config.h 719 $(MAKE) -C busybox-1.x ARCH=mips INSTALL 720 721busybox-install: 722 $(MAKE) -C busybox-1.x ARCH=mips CONFIG_PREFIX=$(INSTALLDIR)/busybox install 723 724 725rc: netconf nvram shared 726 make LINUXDIR=$(LINUXDIR) -C rc 727ifneq ($(CONFIG_BUSYBOX),) 728rc: busybox-1.x/Config.h 729endif 730else #linux-2.6 731CURBBCFG=$(CONFIG_BUSYBOX_CONFIG).h 732OLDBBCFG=$(shell basename $$(readlink busybox/Config.h) 2> /dev/null) 733busybox/Config.h: dummy 734ifneq ($(OLDBBCFG),$(CURBBCFG)) 735 cd busybox && rm -f Config.h && ln -sf configs/$(CURBBCFG) Config.h && touch Config.h 736endif 737 738busybox: busybox/Config.h 739 $(MAKE) -C busybox STRIPTOOL=$(STRIP) 740 741busybox-install: 742 $(MAKE) -C busybox STRIPTOOL=$(STRIP) PREFIX=$(INSTALLDIR)/busybox install 743 744# rc: netconf nvram shared 745rc: nvram shared 746ifneq ($(CONFIG_BUSYBOX),) 747rc: busybox/Config.h 748endif 749endif #linux-2.6 750 751rc-install: 752 make LINUXDIR=$(LINUXDIR) INSTALLDIR=$(INSTALLDIR)/rc -C rc install 753 754lib-install: 755 make LX_VERS=$(LINUX_VERSION) INSTALLDIR=$(INSTALLDIR)/lib -C lib install 756 757www www-%: 758 $(MAKE) -C www/$(CONFIG_VENDOR) $* INSTALLDIR=$(INSTALLDIR)/www 759 760 761 762 763 764# To re-build bcmdl target, uncomment and exchange libusb and bcmdl targets 765# libusb : 766# cd $(SRCBASE)/usbdev/libusb; ./configure --host=mipsel-linux CC=mipsel-uclibc-gcc; make 767 768 769# bcmdl : 770# make TARGETENV=linuxmips -C $(SRCBASE)/usbdev/usbdl 771 772# bcmdl-install : 773# install -d $(TARGETDIR)/bin 774# install -D $(SRCBASE)/usbdev/usbdl/bcmdl $(TARGETDIR)/bin/bcmdl 775 776libusb : 777 778bcmdl : 779 780bcmdl-install : 781 install -d $(INSTALLDIR)/dongle/sbin 782 install -D $(SRCBASE)/usbdev/usbdl/mips_$(LINUX_VERSION)/bcmdl $(INSTALLDIR)/dongle/sbin/bcmdl 783 784bridge: 785ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 786 $(MAKE) -C bridge-1.x 787else 788 $(MAKE) -C bridge brctl/brctl 789endif 790 791dongle : 792 793bridge-install: 794ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 795 install -D bridge-1.x/brctl/brctl $(INSTALLDIR)/bridge/usr/sbin/brctl 796else 797 install -D bridge/brctl/brctl $(INSTALLDIR)/bridge/usr/sbin/brctl 798endif 799 $(STRIP) $(INSTALLDIR)/bridge/usr/sbin/brctl 800 801dnsmasq-install: 802 install -D dnsmasq/dnsmasq $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq 803 $(STRIP) $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq 804 805ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 806iptables: 807 $(MAKE) -C iptables-1.x BINDIR=/usr/sbin LIBDIR=/usr/lib KERNEL_DIR=$(LINUXDIR) 808 809iptables-install: 810ifeq ($(CONFIG_IPTABLES),y) 811 install -d $(INSTALLDIR)/iptables/usr/lib/iptables 812 install iptables-1.x/extensions/*.so $(INSTALLDIR)/iptables/usr/lib/iptables 813 $(STRIP) $(INSTALLDIR)/iptables/usr/lib/iptables/*.so 814 install -D iptables-1.x/iptables $(INSTALLDIR)/iptables/usr/sbin/iptables 815 $(STRIP) $(INSTALLDIR)/iptables/usr/sbin/iptables 816else 817 # So that generic rule does not take precedence 818 @true 819endif 820iptables-clean: 821 -$(MAKE) -C iptables-1.x KERNEL_DIR=$(LINUXDIR) clean 822else # linux-2.6 823iptables: 824 $(MAKE) -C iptables BINDIR=/usr/sbin LIBDIR=/usr/lib KERNEL_DIR=$(LINUXDIR) 825 826iptables-install: 827ifeq ($(CONFIG_IPTABLES),y) 828 install -d $(INSTALLDIR)/iptables/usr/lib/iptables 829 install iptables/extensions/*.so $(INSTALLDIR)/iptables/usr/lib/iptables 830 $(STRIP) $(INSTALLDIR)/iptables/usr/lib/iptables/*.so 831 install -D iptables/iptables $(INSTALLDIR)/iptables/usr/sbin/iptables 832 $(STRIP) $(INSTALLDIR)/iptables/usr/sbin/iptables 833else 834 # So that generic rule does not take precedence 835 @true 836endif 837iptables-clean: 838 -$(MAKE) -C iptables KERNEL_DIR=$(LINUXDIR) clean 839endif # linux-2.6 840 841 842netconf: iptables 843ifeq ($(CONFIG_NETCONF),y) 844 make LINUXDIR=$(LINUXDIR) -C netconf 845else 846 # In case of "Prerequisite 'iptables' is newer than target 'netconf'" 847 @true 848endif 849 850ntpclient-install: 851 install -D ntpclient/ntpclient $(INSTALLDIR)/ntpclient/usr/sbin/ntpclient 852 $(STRIP) $(INSTALLDIR)/ntpclient/usr/sbin/ntpclient 853 854ppp ppp-%: 855 $(MAKE) -C ppp/pppoecd $* INSTALLDIR=$(INSTALLDIR)/ppp 856 857udhcpd-install: 858 install -D udhcpd/udhcpd $(INSTALLDIR)/udhcpd/usr/sbin/udhcpd 859 $(STRIP) $(INSTALLDIR)/udhcpd/usr/sbin/udhcpd 860 cd $(INSTALLDIR)/udhcpd/usr/sbin && ln -sf udhcpd udhcpc 861 862upnp: netconf nvram shared 863 864bcmupnp: netconf nvram shared 865 [ ! -f bcmupnp/Makefile ] || $(MAKE) -C bcmupnp 866 867bcmupnp-install: 868 [ ! -f bcmupnp/Makefile ] || $(MAKE) -C bcmupnp install INSTALLDIR=$(INSTALLDIR)/bcmupnp 869 870bcmupnp-clean: 871 [ ! -f bcmupnp/Makefile ] || $(MAKE) -C bcmupnp clean 872 873wlconf: nvram shared 874 875vlan: 876 $(MAKE) -C vlan CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) 877 878vlan-install: 879 $(MAKE) -C vlan CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) INSTALLDIR=$(INSTALLDIR) install 880 881vlan-clean: 882 $(MAKE) -C vlan clean 883 884 885emf: 886 $(MAKE) -C emf/emfconf CROSS=$(CROSS_COMPILE) 887 888emf-install: 889ifeq ($(CONFIG_EMF),y) 890 install -d $(TARGETDIR) 891 $(MAKE) -C emf/emfconf CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) install 892endif 893 894emf-clean: 895 #$(MAKE) -C emf/emfconf clean 896 897igs: 898 $(MAKE) -C emf/igsconf CROSS=$(CROSS_COMPILE) 899 900igs-install: 901ifeq ($(CONFIG_EMF),y) 902 install -d $(TARGETDIR) 903 $(MAKE) -C emf/igsconf CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) install 904endif 905 906igs-clean: 907 #$(MAKE) -C emf/igsconf clean 908igmp: 909 $(MAKE) -C igmp CROSS=$(CROSS_COMPILE) 910 911igmp-install: 912ifeq ($(CONFIG_IGMP_PROXY),y) 913 install -d $(TARGETDIR) 914 $(MAKE) -C igmp CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) install 915endif 916 917igmp-clean: 918 $(MAKE) -C igmp clean 919 920wps: nvram shared 921 [ ! -f wps/Makefile ] || $(MAKE) -C wps 922 923wps-install: 924 [ ! -f wps/Makefile ] || $(MAKE) -C wps install INSTALLDIR=$(INSTALLDIR)/wps 925 926wps-clean: 927 [ ! -f wps/Makefile ] || $(MAKE) -C wps clean 928 929acos_link: 930ifneq ($(PROFILE),) 931 cp ../../ap/gpl/minidlna/minidlna.07.26/config_$(PROFILE).h ../../ap/gpl/minidlna/minidlna.07.26/config.h 932 cd ../../project/acos/include; rm -f ambitCfg.h; ln -s ambitCfg_$(FW_TYPE)_$(PROFILE).h ambitCfg.h 933else 934 cd ../../project/acos/include; rm -f ambitCfg.h; ln -s ambitCfg_$(FW_TYPE).h ambitCfg.h 935endif 936 937ifneq ($(PROFILE),) 938ifneq ($(PROFILE), WNR3500v2VCNA) 939# cp ../../project/acos/config_$(PROFILE).in ../../project/acos/config.in 940# cp ../../project/acos/config_$(PROFILE).mk ../../project/acos/config.mk 941# cp ../../project/acos/Makefile_$(PROFILE) ../../project/acos/Makefile 942 cp $(LINUXDIR)/.config_$(PROFILE) $(LINUXDIR)/.config 943# cp $(LINUXDIR)/autoconf.h_$(PROFILE) $(LINUXDIR)/include/linux/autoconf.h 944endif 945else 946# cp ../../project/acos/config_WNR3500v2.in ../../project/acos/config.in 947# cp ../../project/acos/config_WNR3500v2.mk ../../project/acos/config.mk 948# cp ../../project/acos/Makefile_WNR3500v2 ../../project/acos/Makefile 949# cp $(LINUXDIR)/.config_WNR3500v2 $(LINUXDIR)/.config 950# cp $(LINUXDIR)/autoconf.h_WNR3500v2 $(LINUXDIR)/include/linux/autoconf.h 951endif 952 953 954acos: 955 956acos-install: 957 958acos-clean: 959 960gpl: 961 $(MAKE) -C ../../ap/gpl CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) 962 963gpl-install: 964 $(MAKE) -C ../../ap/gpl CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) INSTALLDIR=$(INSTALLDIR) install 965 966gpl-clean: 967 $(MAKE) -C ../../ap/gpl clean 968 969#Leon Lv Add below for UBD,Apr 15,2008 970.PHONY:ubd opendns 971ubd: 972 $(MAKE) -C ubd CROSS=$(CROSS_COMPILE) 973 974ubd-install: 975ifeq ($(CONFIG_UBD),y) 976 install -d $(TARGETDIR) 977# $(MAKE) -C ubd CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) install 978 install -D ubd/ubd $(INSTALLDIR)/ubdu/usr/sbin/ubd 979 $(STRIP) $(INSTALLDIR)/ubdu/usr/sbin/ubd 980endif 981 982ubd-clean: 983 $(MAKE) -C ubd clean 984 985opendns: 986 $(MAKE) -C ../../ap/acos/opendns 987 988opendns-install: 989 $(MAKE) -C ../../ap/acos/opendns install 990 991opendns-clean: 992 $(MAKE) -C ../../ap/acos/opendns clean 993 994acos_nat: 995 996acos_nat-install: 997 998acos_nat-clean: 999 1000ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) 1001udev: 1002 $(MAKE) -C udev CROSS_COMPILE=$(CROSS_COMPILE) 1003 1004udev-install: 1005 install -d $(TARGETDIR) 1006 $(MAKE) -C udev CROSS_COMPILE=$(CROSS_COMPILE) DESTDIR=$(INSTALLDIR) prefix=/udev install-udevtrigger 1007 1008udev-clean: 1009 $(MAKE) -C udev clean 1010 1011hotplug2: 1012 $(MAKE) -C hotplug2 CROSS_COMPILE=$(CROSS_COMPILE) 1013 1014hotplug2-install: 1015 install -d $(TARGETDIR) 1016 install -d $(INSTALLDIR)/hotplug2 1017 $(MAKE) -C hotplug2 CROSS_COMPILE=$(CROSS_COMPILE) PREFIX=$(INSTALLDIR) install 1018 1019hotplug2-clean: 1020 $(MAKE) -C hotplug2 clean 1021endif 1022 1023openssl: 1024 $(MAKE) -C ../../ap/gpl/openssl CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) 1025 1026openssl-install: 1027 $(MAKE) -C ../../ap/gpl/openssl CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) INSTALLDIR=$(INSTALLDIR) install 1028 1029openssl-clean: 1030 $(MAKE) -C ../../ap/gpl/openssl clean 1031 1032 1033 1034ifeq ($(LINUX_VERSION),2_4) 1035UCLIBC_IPV6=../lib/mipsel-uclibc/libc.so.0 1036endif 1037 1038radvd: flex dummy 1039 [ ! -d $@ ] || [ -f $@/Makefile ] || ( cd $@ && CC=$(CC) ./configure --host=mipsel-linux && cd .. ) 1040 [ ! -d $@ ] || $(MAKE) -C radvd CC=$(CC) radvd_LDADD="-L../flex -lfl" 1041 1042radvd-install: 1043 [ ! -d radvd ] || install -D -m 755 radvd/radvd $(INSTALLDIR)/radvd/usr/sbin/radvd 1044 [ ! -d radvd ] || $(STRIP) $(INSTALLDIR)/radvd/usr/sbin/radvd 1045 1046radvd-clean: 1047 [ ! -f radvd/Makefile ] || $(MAKE) -C radvd distclean 1048 1049flex: dummy 1050 [ ! -d $@ ] || [ -f $@/Makefile ] || ( cd $@ && CC=$(CC) ./configure --host=mipsel-linux && cd .. ) 1051 [ ! -d $@ ] || $(MAKE) -C flex CC=$(CC) RANLIB=$(RANLIB) 1052 1053iproute2: 1054 [ ! -d $@ ] || $(MAKE) -C iproute2 KERNEL_INCLUDE=$(LINUXDIR)/include CC=$(CC) AR=$(AR) LDLIBS= 1055 1056iproute2-install: 1057 [ ! -d iproute2 ] || install -D -m 755 iproute2/ip/ip $(INSTALLDIR)/iproute2/usr/sbin/ip 1058 [ ! -d iproute2 ] || $(STRIP) $(INSTALLDIR)/iproute2/usr/sbin/ip 1059 1060iputils: 1061 [ ! -d $@ ] || [ -f $@/include-glibc/bits/socket.h ] || ( cd $@/include-glibc/bits && ln -s ../socketbits.h socket.h && cd ../../.. ) 1062 [ ! -d $@ ] || $(MAKE) -C iputils KERNEL_INCLUDE=$(LINUXDIR)/include CC=$(CC) LDLIBS= 1063 1064iputils-install: 1065 [ ! -d iputils ] || install -D -m 755 iputils/ping6 $(INSTALLDIR)/iputils/usr/sbin/ping6 1066 [ ! -d iputils ] || $(STRIP) $(INSTALLDIR)/iputils/usr/sbin/ping6 1067 [ ! -d iputils ] || install -D -m 755 iputils/traceroute6 $(INSTALLDIR)/iputils/usr/sbin/traceroute6 1068 [ ! -d iputils ] || $(STRIP) $(INSTALLDIR)/iputils/usr/sbin/traceroute6 1069 [ ! -d iputils ] || install -D -m 755 iputils/tracepath6 $(INSTALLDIR)/iputils/usr/sbin/tracepath6 1070 [ ! -d iputils ] || $(STRIP) $(INSTALLDIR)/iputils/usr/sbin/tracepath6 1071 1072dhcp6s dhcp6c: dummy 1073 [ ! -d dhcp6 ] || [ -f dhcp6/Makefile ] || ( cd dhcp6 && ./configure CC=gcc CFLAGS+="-I../shared" && cd .. ) 1074ifeq ($(CONFIG_UCLIBC),y) 1075# [ ! -d dhcp6 ] || $(MAKE) -C dhcp6 CC=$(CC) LIBS="$(UCLIBC_IPV6)" $@ 1076 [ ! -d dhcp6 ] || $(MAKE) -C dhcp6 CC=$(CC) LIBS="-L lib" $@ 1077else 1078 [ ! -d dhcp6 ] || $(MAKE) -C dhcp6 CC=$(CC) LIBS="-lresolv -L../libbcmcrypto -lbcmcrypto -L$(INSTALLDIR)/libbcmcrypto/usr/lib" $@ 1079endif 1080 1081dhcp6s-install: 1082 [ ! -d dhcp6 ] || install -D -m 755 dhcp6/dhcp6s $(INSTALLDIR)/dhcp6s/usr/sbin/dhcp6s 1083 [ ! -d dhcp6 ] || $(STRIP) $(INSTALLDIR)/dhcp6s/usr/sbin/dhcp6s 1084 1085dhcp6c-install: 1086 [ ! -d dhcp6 ] || install -D -m 755 dhcp6/dhcp6c $(INSTALLDIR)/dhcp6c/usr/sbin/dhcp6c 1087 [ ! -d dhcp6 ] || $(STRIP) $(INSTALLDIR)/dhcp6c/usr/sbin/dhcp6c 1088 1089dhcp6s-clean dhcp6c-clean: 1090 [ ! -f dhcp6/Makefile ] || $(MAKE) -C dhcp6 distclean 1091 1092swresetd-install: 1093swresetd-clean: 1094 1095acl_log-install: 1096acl_log-clean: 1097 1098gpio-install: 1099gpio-clean: 1100# 1101# Generic rules 1102# 1103 1104%: 1105 [ ! -d $* ] || $(MAKE) -C $* 1106 1107%-clean: 1108 [ ! -d $* ] || $(MAKE) -C $* clean 1109 1110%-install: 1111 [ ! -d $* ] || $(MAKE) -C $* install INSTALLDIR=$(INSTALLDIR)/$* 1112 1113$(obj-y) $(obj-n) $(obj-clean) $(obj-install): dummy 1114 1115.PHONY: all clean distclean mrproper install package 1116.PHONY: conf mconf oldconf kconf kmconf config menuconfig oldconfig 1117.PHONY: dummy 1118