# # Broadcom Linux Router Makefile # # Copyright (C) 2010, Broadcom Corporation. All Rights Reserved. # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY # SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION # OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN # CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # # $Id: Makefile,v 1.263 2010/10/22 12:47:08 Exp $ # include .config ifndef FW_TYPE FW_TYPE = WW endif export FW_TYPE BOARDID_FILE=compatible_WNDR4500rev.txt FW_NAME=WNDR4500REV ifeq ($(PROFILE),WNDR4500REV) BOARDID_FILE=compatible_WNDR4500rev.txt FW_NAME=WNDR4500REV endif ifeq ($(PROFILE),WNDR4500v2) BOARDID_FILE=compatible_WNDR4500v2.txt FW_NAME=WNDR4500v2 endif # # Paths # CPU ?= LINUX_VERSION = 2_6 MAKE_ARGS ?= ARCH = mips PLT ?= mipsel # Get ARCH from PLT argument ifneq ($(findstring arm,$(PLT)),) ARCH := arm endif # uClibc wrapper ifeq ($(CONFIG_UCLIBC),y) PLATFORM := $(PLT)-uclibc else ifeq ($(CONFIG_GLIBC),y) PLATFORM := $(PLT)-glibc else PLATFORM := $(PLT) endif # Source bases export PLATFORM LIBDIR USRLIBDIR LINUX_VERSION export BCM_KVERSIONSTRING := $(subst _,.,$(LINUX_VERSION)) WLAN_ComponentsInUse := bcmwifi clm ppr olpc include ../makefiles/WLAN_Common.mk export SRCBASE := $(WLAN_SrcBaseA) export BASEDIR := $(WLAN_TreeBaseA) export TOP = $(CURDIR) ifeq (2_6_36,$(LINUX_VERSION)) export LINUXDIR := $(BASEDIR)/components/opensource/linux/linux-2.6.36 export KBUILD_VERBOSE := 1 export BUILD_MFG := 0 # for now, only suitable for 2.6.36 router platform SUBMAKE_SETTINGS = SRCBASE=$(SRCBASE) BASEDIR=$(BASEDIR) else ifeq (2_6,$(LINUX_VERSION)) export LINUXDIR := $(SRCBASE)/linux/linux-2.6 export KBUILD_VERBOSE := 1 export BUILD_MFG := 0 else export LINUXDIR := $(SRCBASE)/linux/linux endif # # Cross-compile environment variables # # Build platform export BUILD := i386-pc-linux-gnu export HOSTCC := gcc ifeq ($(PLATFORM),mipsel) export CROSS_COMPILE := mipsel-linux- export CONFIGURE := ./configure mipsel-linux --build=$(BUILD) export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/../mipsel-linux && pwd -P) endif ifeq ($(PLATFORM),mipsel-uclibc) ifeq (2_6_36,$(LINUX_VERSION)) export CROSS_COMPILE := mipsel-uclibc-linux-2.6.36- CFLAGS += -D__EXPORTED_HEADERS__ -fPIC else ifeq (2_6,$(LINUX_VERSION)) export CROSS_COMPILE := mipsel-uclibc-linux26- else export CROSS_COMPILE := mipsel-uclibc- endif export CONFIGURE := ./configure mipsel-linux --build=$(BUILD) export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/.. && pwd -P) endif ifeq ($(PLATFORM),mipsel-glibc) ifeq (2_6_36,$(LINUX_VERSION)) export CROSS_COMPILE := mipsel-glibc-linux-2.6.36- export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/.. && pwd -P) CFLAGS += -D__EXPORTED_HEADERS__ -fPIC else ifeq (2_6,$(LINUX_VERSION)) export CROSS_COMPILE := mipsel-linux-linux26- else export CROSS_COMPILE := mipsel-linux- export CONFIGURE := ./configure mipsel-linux --build=$(BUILD) export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/../mipsel-linux && pwd -P) endif endif ifeq ($(PLATFORM),arm-uclibc) export CROSS_COMPILE := arm-brcm-linux-uclibcgnueabi- export CONFIGURE := ./configure arm-linux --build=$(BUILD) export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/.. && pwd -P) export CFLAGS += -fno-strict-aliasing SUBMAKE_SETTINGS += ARCH=$(ARCH) EXTRA_LDFLAGS := -lgcc_s endif ifeq ($(CONFIG_RTR_OPTIMIZE_SIZE),y) export CFLAGS += -Os export OPTCFLAGS = -Os else export CFLAGS += -O2 export OPTCFLAGS = -O2 endif #look at driver configuration WLCFGDIR=$(SRCBASE)/wl/config ifeq ($(CONFIG_NVRAM),y) export CFLAGS += -DBCMNVRAM endif ifeq ($(CONFIG_BCMWPA2),y) export CFLAGS += -DBCMWPA2 endif export CFLAGS += -DRESTART_ALL_PROCESSES #export CFLAGS += -DRESTART_ALL_PROCESSES_DEBUG ifeq ("$(CONFIG_USBAP)","y") export CFLAGS += -D__CONFIG_USBAP__ endif ifeq ($(CONFIG_BCMQOS),y) export CFLAGS += -DBCMQOS endif ifeq ($(CONFIG_WPS),y) export CFLAGS += -D__CONFIG_WPS__ # WFA WPS 2.0 Testbed extra caps #export CFLAGS += -DWFA_WPS_20_TESTBED endif ifeq ($(CONFIG_EMF),y) export CFLAGS += -D__CONFIG_EMF__ endif ifeq ($(CONFIG_IGMP_PROXY),y) export CFLAGS += -D__CONFIG_IGMP_PROXY__ endif #ifdef __CONFIG_NORTON__ ifeq ($(CONFIG_NORTON),y) export CFLAGS += -D__CONFIG_NORTON__ endif #endif /* __CONFIG_NORTON__ */ ifeq ($(CONFIG_TRAFFIC_MGMT_RSSI_POLICY),y) export CFLAGS += -DTRAFFIC_MGMT_RSSI_POLICY endif obj-$(CONFIG_UTELNETD) += utelnetd MNL_CFLAGS:="-I$(LIBMNL_DIR)/install/include" MNL_LIBS:="-L$(LIBMNL_DIR)/install/lib -lmnl" NFNETLINK_CFLAGS:="-I$(LIBNFNETLINK_DIR)/install/include" NFNETLINK_LIBS:="-L$(LIBNFNETLINK_DIR)/install/lib -lnfnetlink" NETFILTER_CONNTRACK_CFLAGS:="-I$(LIBNETFILTER_CONNTRACK_DIR)/install/include" NETFILTER_CONNTRACK_LIBS:="-L$(LIBNETFILTER_CONNTRACK_DIR)/install/lib -lnetfilter_conntrack" NETFILTER_QUEUE_CFLAGS:="-I$(LIBNETFILTER_QUEUE_DIR)/install/include" NETFILTER_QUEUE_LIBS:="-L$(LIBNETFILTER_QUEUE_DIR)/install/lib -lnetfilter_queue" # add probsup for NTGR SmartMesh #ifdef WLPROBSUP export CFLAGS += -DWLPROBSUP #endif ifeq ($(CONFIG_SOUND),y) export CFLAGS += -D__CONFIG_SOUND__ endif ifeq ($(CONFIG_VOIP),y) export CFLAGS += -DBCMVOIP endif ifeq ($(CONFIG_SQUASHFS), y) ROOT_IMG :=target.squashfs else ROOT_IMG := target.cramfs endif ifeq ($(CONFIG_WAPI),y) export CFLAGS += -DBCMWAPI_WAI -DBCMWAPI_WPI endif ifeq ($(CONFIG_PHYMON_UTILITY),y) export CFLAGS += -DPHYMON endif ifeq ($(CONFIG_OPENSSL),y) export CFLAGS += -DSUPPORT_REMOTE_HTTPS endif ifeq ($(CONFIG_NETFLIX_QOS_RULE),y) export CFLAGS += -DNETFLIX_QOS_RULE endif ifeq ($(CONFIG_QOS_AUTO_CHECK_BW),y) export CFLAGS += -DQOS_AUTO_CHECK_BANDWIDTH endif ifeq ($(CONFIG_WPS_V20),y) export CFLAGS += -DINCLUDE_WPS_V20 endif ifeq ($(CONFIG_5G_AUTO_CHANNEL),y) export CFLAGS += -DINCLUDE_5G_AUTO_CHANNEL endif ifneq (2_4,$(LINUX_VERSION)) CRAMFSDIR := cramfs else CRAMFSDIR := $(LINUXDIR)/scripts/cramfs endif ifeq ($(CONFIG_OPENDNS),y) export CFLAGS += -DOPENDNS_PARENTAL_CONTROL endif ifeq ($(CONFIG_ACCESSCONTROL),y) export CFLAGS += -DINCLUDE_ACCESSCONTROL endif ifeq ($(PROFILE),WNDR4500REV) export CFLAGS += -DU12H189 -DWNDR4500REV export CFLAGS += -DMULTIPLE_SSID export CFLAGS += -DENABLE_ML #export CFLAGS += -DWIFI_DISABLE export CFLAGS += -DBCM53125 export CFLAGS += -DCONFIG_RUSSIA_IPTV export CFLAGS += -DINCLUDE_UCP ifeq ($(CONFIG_DLNA),y) export CFLAGS += -DDLNA #export CFLAGS += -DDLNA_DEBUG endif export CFLAGS += -DHTTP_ACCESS_USB #export CFLAGS += -DMAX_USB_ACCESS export CFLAGS += -DSAMBA_ENABLE export CFLAGS += -DUSB_NEW_SPEC export CFLAGS += -DINCLUDE_WIFI_BUTTON export CONFIG_LIBNSL=y export CFLAGS += -DINCLUDE_USB_LED export CFLAGS += -DINCLUDE_DUAL_BAND export CFLAGS += -DSINGLE_FIRMWARE export CFLAGS += -DINCLUDE_GET_ST_CHKSUM export CFLAGS += -DUNIFIED_STR_TBL export CFLAGS += -DFIRST_MTD_ROTATION export CFLAGS += -DWIFI_ON_OFF_SCHE export CFLAGS += -DAUTO_CONN_24HR export CFLAGS += -DIGMP_PROXY export CFLAGS += -DAP_MODE export CFLAGS += -D__CONFIG_IGMP_SNOOPING__ ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) export CFLAGS += -DLINUX26 export CFLAGS += -DINCLUDE_IPV6 endif export CFLAGS += -DPRESET_WL_SECURITY export CFLAGS += -DNEW_BCM_WPS_IPC endif ifeq ($(PROFILE),WNDR4500v2) export CFLAGS += -DU12H189 -DWNDR4500REV -DWNDR4500v2 export CFLAGS += -DMULTIPLE_SSID export CFLAGS += -DENABLE_ML #export CFLAGS += -DWIFI_DISABLE #Foxconn, [DEBUG][MJ] disable wifi. export CFLAGS += -DBCM53125 export CFLAGS += -DCONFIG_RUSSIA_IPTV #added by dennis ,01/02/2013, for ap mode detection #export CFLAGS += -DINCLUDE_DETECT_AP_MODE export CFLAGS += -DINCLUDE_UCP ifeq ($(CONFIG_DLNA),y) export CFLAGS += -DDLNA #export CFLAGS += -DDLNA_DEBUG endif export CFLAGS += -DHTTP_ACCESS_USB #export CFLAGS += -DMAX_USB_ACCESS export CFLAGS += -DSAMBA_ENABLE export CFLAGS += -DUSB_NEW_SPEC export CFLAGS += -DINCLUDE_WIFI_BUTTON export CONFIG_LIBNSL=y export CFLAGS += -DINCLUDE_USB_LED export CFLAGS += -DINCLUDE_DUAL_BAND export CFLAGS += -DSINGLE_FIRMWARE export CFLAGS += -DINCLUDE_GET_ST_CHKSUM export CFLAGS += -DUNIFIED_STR_TBL export CFLAGS += -DFIRST_MTD_ROTATION export CFLAGS += -DWIFI_ON_OFF_SCHE export CFLAGS += -DAUTO_CONN_24HR export CFLAGS += -DIGMP_PROXY export CFLAGS += -DAP_MODE export CFLAGS += -D__CONFIG_IGMP_SNOOPING__ ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) export CFLAGS += -DLINUX26 export CFLAGS += -DINCLUDE_IPV6 endif export CFLAGS += -DPRESET_WL_SECURITY export CFLAGS += -DNEW_BCM_WPS_IPC export CFLAGS += -DSTA_MODE endif ifeq ($(FW_TYPE),NA) export CFLAGS += -DFW_VERSION_NA endif ifeq ($(CONFIG_BCMDCS),y) export CFLAGS += -DBCM_DCS endif ifeq ($(CONFIG_EXTACS),y) export CFLAGS += -DEXT_ACS endif ifeq ($(CONFIG_BCMBSD),y) export CFLAGS += -DBCM_BSD endif ifeq ($(CONFIG_MFP),y) export CFLAGS += -DMFP endif ifeq ($(CONFIG_HSPOT),y) export CFLAGS += -DNAS_GTK_PER_STA endif ifeq ($(CONFIG_MFP_TEST),y) export CFLAGS += -DMFP_TEST endif ifeq ($(CONFIG_SIGMA),y) export CFLAGS += -D__CONFIG_SIGMA__ endif ifeq ($(CONFIG_MINI_ROUTER), y) export CFLAGS += -D__CONFIG_ROUTER_MINI__ endif ifeq ($(CONFIG_WNM), y) export CFLAGS += -DWLWNM endif ifeq ($(CONFIG_TIMEMACHINE),y) export CFLAGS += -DINCLUDE_AFP endif export CC := $(CROSS_COMPILE)gcc export CXX := $(CROSS_COMPILE)g++ export AR := $(CROSS_COMPILE)ar export AS := $(CROSS_COMPILE)as export LD := $(CROSS_COMPILE)ld export NM := $(CROSS_COMPILE)nm export RANLIB := $(CROSS_COMPILE)ranlib export STRIP := $(CROSS_COMPILE)strip export SIZE := $(CROSS_COMPILE)size export OBJCOPY := $(CROSS_COMPILE)objcopy ifneq ("$(LINUX_VERSION)","2_4") export MKSYM := $(shell which $(TOP)/misc/mksym.pl) endif # # Install and target directories # export PLATFORMDIR := $(TOP)/$(PLATFORM) export INSTALLDIR := $(PLATFORMDIR)/install export TARGETDIR := $(PLATFORMDIR)/target define STRIP_DEBUG_SYMBOLS @dbgsymf=$(basename $(1))_dbgsym$(suffix $(1)); \ if [ "$(1)" -nt "$${dbgsymf}" ]; then \ echo "#- $0"; \ ls -ln $1 | awk '{printf "Orig size: %10d bytes, %s\n",$$5,$$NF}'; \ cp -p -v $1 $$dbgsymf; $(STRIP) -d $(1); touch $$dbgsymf; \ ls -ln $1 | awk '{printf "Strip size: %10d bytes, %s\n",$$5,$$NF}'; \ fi endef # USB AP support # note : the dongle target is only for after pre-build obj-$(CONFIG_USBAP) += bmac dongle # always build libbcmcrypto #obj-y += libbcmcrypto # # Configuration # #ifdef BCMSOUND obj-$(CONFIG_SIGMA) += sigma obj-$(CONFIG_SALSA) += salsa obj-$(CONFIG_LIBZ) += libz obj-$(CONFIG_LIBID3TAG) += libid3tag obj-$(CONFIG_LIBMAD) += libmad obj-$(CONFIG_MADPLAY) += madplay obj-$(CONFIG_APLAY) += alsa-utils/aplay #endif obj-$(CONFIG_NVRAM) += nvram obj-$(CONFIG_SHARED) += shared #obj-$(CONFIG_LIBBCM) += libbcm obj-$(CONFIG_OPENSSL) += openssl ifeq ($(CONFIG_ACOS_MODULES),y) #obj-y += ../../ap/acos obj-y += ../../ap/gpl fw_cfg_file := ../../../project/acos/include/ambitCfg.h else obj-$(CONFIG_HTTPD) += httpd obj-$(CONFIG_WWW) += www endif obj-$(CONFIG_RC) += rc obj-$(CONFIG_GLIBC) += lib obj-$(CONFIG_UCLIBC) += lib obj-$(CONFIG_WLCONF) += wlconf obj-$(CONFIG_BRIDGE) += bridge obj-$(CONFIG_BUSYBOX) += busybox obj-$(CONFIG_DNSMASQ) += dnsmasq obj-$(CONFIG_IPTABLES) += iptables obj-$(CONFIG_LIBIPT) += iptables # Build only for kernel >= 2.6.36. ifeq ($(call wlan_version_ge,$(BCM_KVERSIONSTRING),2.6.36),TRUE) #ifdef __CONFIG_NORTON__ obj-$(CONFIG_NORTON) += norton #endif /* __CONFIG_NORTON__ */ obj-$(CONFIG_LIBSTDCPP) += libstdcpp obj-$(CONFIG_LIBFLOW) += libflow obj-$(CONFIG_LIBMNL) += libmnl obj-$(CONFIG_LIBNFNETLINK) += libnfnetlink obj-$(CONFIG_LIBNETFILTER_CONNTRACK) += libnetfilter_conntrack obj-$(CONFIG_LIBNETFILTER_QUEUE) += libnetfilter_queue endif obj-$(CONFIG_HSPOT) += hspot_ap obj-$(CONFIG_NAS) += nas obj-$(CONFIG_WAPI) += wapi/wapid obj-$(CONFIG_WAPI_IAS) += wapi/as obj-$(CONFIG_SES) += ses/ses obj-$(CONFIG_SES_CL) += ses/ses_cl obj-$(CONFIG_EZC) += ezc #obj-$(CONFIG_NETCONF) += netconf #obj-$(CONFIG_NTP) += ntpclient #obj-$(CONFIG_PPP) += ppp obj-$(CONFIG_UDHCPD) += udhcpd #obj-$(CONFIG_IGD) += igd obj-$(CONFIG_LIBUPNP) += libupnp obj-$(CONFIG_FFMPEG) += ffmpeg obj-$(CONFIG_DLNA_DMR) += dlna/dmr obj-$(CONFIG_DLNA_DMS) += dlna/dms obj-$(CONFIG_SAMBA) += samba obj-$(CONFIG_UTILS) += utils obj-$(CONFIG_ETC) += etc obj-$(CONFIG_VLAN) += vlan obj-$(CONFIG_WPS) += wps #obj-$(CONFIG_NFC) += nfc obj-$(CONFIG_EMF) += emf obj-$(CONFIG_EMF) += igs #obj-$(CONFIG_IGMP_PROXY) += igmp obj-$(CONFIG_WL_ACI) += aci ifeq (2_6,$(LINUX_VERSION)) obj-y += udev obj-y += hotplug2 endif obj-$(CONFIG_LLD2D) += lltd/wrt54g-linux #obj-$(CONFIG_ACL_LOGD) += acl_log obj-$(CONFIG_GPIO) += gpio obj-$(CONFIG_SWRESETD) += swresetd #if defined(PHYMON) obj-$(CONFIG_PHYMON_UTILITY) += phymon #endif #if defined(EXT_ACS) obj-$(CONFIG_EXTACS) += acsd #endif obj-$(CONFIG_RADVD) += radvd obj-$(CONFIG_IPROUTE2) += iproute2 obj-$(CONFIG_IPUTILS) += iputils obj-$(CONFIG_DHCPV6S) += dhcp6s obj-$(CONFIG_DHCPV6C) += dhcp6c ifeq ($(LINUX_VERSION)$(PLT),2_6_36arm) obj-$(CONFIG_MPSTAT) += mpstat obj-$(CONFIG_TASKSET) += taskset endif # BUZZZ tools: function call tracing, performance monitoring, event history obj-$(CONFIG_BUZZZ) += buzzz # Gigle apps obj-$(CONFIG_PLC) += plc ifeq ($(CONFIG_PLC),y) export CFLAGS += -D__CONFIG_PLC__ -D__CONFIG_URE__ CFLAGS += -DPLC -DWPS_LONGPUSH_DISABLE endif # always build eap dispatcher obj-y += eapd/linux ifeq ($(CONFIG_VOIP),y) obj-y += voipd endif obj-clean := $(foreach obj,$(obj-y) $(obj-n),$(obj)-clean) obj-install := $(foreach obj,$(obj-y),$(obj)-install) # separate the libraries which need to be built first obj-prelibs =$(filter nvram libbcmcrypto shared netconf libupnp libz libid3tag ffmpeg libbcm, $(obj-y)) # remaining libraries that are built next obj-postlibs := $(filter-out $(obj-prelibs), $(obj-y)) ifneq ($(WLTEST),1) ifneq ($(shell grep "CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR)/.config),) export WLTEST := 1 endif endif ifeq ($(WLTEST),1) export CFLAGS += -DWLTEST endif ifneq (2_4,$(LINUX_VERSION)) ifneq ($(shell grep "CONFIG_BLK_DEV_INITRD=y" $(LINUXDIR)/.config),) ifeq ($(shell grep "CONFIG_BLK_DEV_RAM=y" $(LINUXDIR)/.config),) export BUILD_MFG := 1 endif endif endif # # Basic rules # all: acos_link version $(LINUXDIR)/.config $(obj-y) # Also build kernel ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) $(MAKE) -C $(LINUXDIR) zImage $(MAKE) CONFIG_SQUASHFS=$(CONFIG_SQUASHFS) -C $(SRCBASE)/router/compressed else if ! grep -q "CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR)/.config ; then \ $(MAKE) -C $(LINUXDIR) zImage ; \ fi endif if grep -q "CONFIG_MODULES=y" $(LINUXDIR)/.config ; then \ $(MAKE) -C $(LINUXDIR) modules ; \ fi # Preserve the debug versions of these and strip for release $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/vmlinux) ifneq (2_4,$(LINUX_VERSION)) $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/wl/wl.ko) ifeq ("$(CONFIG_USBAP)","y") $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/wl/wl_high/wl_high.ko) endif # CONFIG_USBAP $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/et/et.ko) $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/ctf/ctf.ko) $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/bcm57xx/bcm57xx.ko) $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/emf/emf.ko) $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/igs/igs.ko) else # LINUXDIR $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/wl/wl.o) ifeq ("$(CONFIG_USBAP)","y") $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/wl/wl_high/wl_high.o) endif # CONFIG_USBAP $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/et/et.o) $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/ctf/ctf.o) $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/bcm57xx/bcm57xx.o) $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/emf/emf.o) $(call STRIP_DEBUG_SYMBOLS,$(LINUXDIR)/drivers/net/igs/igs.o) endif # LINUXDIR # well, we should always be able to use the BOM, but right now, the last build step on # the build machine doesn't have it, so we don't rerun this is the file already # exists version: $(SRCBASE)/router/shared/router_version.h # this could fail if the bom doesn't exist. We don't care as long as there is a valid router_version.h # if not, the build will fail anyway. $(SRCBASE)/router/shared/router_version.h: $(SRCBASE)/router/shared/version.h.in [ ! -e $(SRCBASE)/tools/release/linux-router-bom.mk ] || make SRCBASE=$(SRCBASE) -f $(SRCBASE)/tools/release/linux-router-bom.mk version router-clean: $(obj-clean) config-clean rm -rf $(TARGETDIR) #rm -f $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/target.cramfs rm -f $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/target.squashfs rm -rf $(INSTALLDIR)/busybox clean: router-clean @echo cleaning LINUXDIR = $(LINUXDIR) ifneq (2_4,$(LINUX_VERSION)) # we need to pass some conf file for cleaning 2.6. The kbuild clean doesn't seem to # to load the .config the way our wl Makefile is expecting. $(MAKE) CONFIG_WL_CONF=wlconfig_lx_router_ap -C $(LINUXDIR) clean $(MAKE) -C $(SRCBASE)/router/compressed clean else $(MAKE) -C $(LINUXDIR) clean endif # $(MAKE) -C $(SRCBASE)/cfe/build/broadcom/bcm947xx clean # $(MAKE) -C $(SRCBASE)/tools/misc clean#water, @make clean error, 11/10/2008 distclean mrproper: clean rm -f .config $(LINUXDIR)/.config install package: $(filter-out lib-install,$(obj-install)) $(LINUXDIR)/.config # Install binaries into target directory install -d $(TARGETDIR) for dir in $(wildcard $(patsubst %,$(INSTALLDIR)/%,$(obj-y))) ; do \ (cd $${dir} && tar cpf - .) | (cd $(TARGETDIR) && tar xpf -) \ done # optimize the crypto library by removing unneeded symbols #[ ! -d libbcmcrypto ] || $(MAKE) -C libbcmcrypto optimize ifneq ("$(CONFIG_WAPI)$(CONFIG_WAPI_IAS)","") # optimize the OPENSSL library by removing unneeded symbols # [ ! -d wapi/wapid ] || $(MAKE) -C wapi/wapid optimize endif # Install (and possibly optimize) C library $(MAKE) lib-install # Install modules into filesystem if grep -q "CONFIG_MODULES=y" $(LINUXDIR)/.config ; then \ $(MAKE) -C $(LINUXDIR) modules_install DEPMOD=/bin/true INSTALL_MOD_PATH=$(TARGETDIR) ; \ fi #$(MAKE) acos-install for dir in $(SRCBASE)/prebuilt/$(FW_TYPE); do \ (cd $${dir} && tar cpf - .) | (cd $(TARGETDIR) && tar xpf -) \ done #water, 08/11/2009 rm -rf $(TARGETDIR)/lib/modules/2.6.22/build rm -rf $(TARGETDIR)/lib/modules/2.6.22/source rm -rf $(TARGETDIR)/lib/modules/2.6.22/modules.* rm -rf $(TARGETDIR)/lib/modules/2.6.22/extra find $(TARGETDIR) -name .svn | xargs rm -rf rm -rf $(TARGETDIR)/usr/bin/[ rm -rf $(TARGETDIR)/usr/bin/[[ rm -rf $(TARGETDIR)/usr/bin/test rm -rf $(TARGETDIR)/bin/false rm -rf $(TARGETDIR)/bin/true rm -rf $(TARGETDIR)/usr/sbin/upnpnat rm -rf $(TARGETDIR)/usr/sbin/epi_ttcp $(STRIP) $(TARGETDIR)/bin/eapd install -d $(TARGETDIR)/lib/modules/2.6.22/kernel/drivers/usbprinter install usbprinter/NetUSB.ko $(TARGETDIR)/lib/modules/2.6.22/kernel/drivers/usbprinter install ookla/ookla $(TARGETDIR)/bin install -d $(TARGETDIR)/lib/modules/2.6.22/kernel/drivers/ufsd install ufsd/ufsd.ko $(TARGETDIR)/lib/modules/2.6.22/kernel/drivers/ufsd install ufsd/chkntfs $(TARGETDIR)/bin ifneq (2_4,$(LINUX_VERSION)) ifeq ("$(CONFIG_USBAP)","y") # Don't delete wl_high.ko for USBAP find $(TARGETDIR) -name "wl_*.ko" | sed s/\.\*wl_high\\\.ko//g | xargs rm -rf else find $(TARGETDIR) -name "wl_*.ko" | xargs rm -rf endif else # Linux 2.4 ifeq ("$(CONFIG_USBAP)","y") # Don't delete wl_high.o for USBAP find $(TARGETDIR) -name "wl_*.o" | sed s/\.\*wl_high\\\.o//g | xargs rm -rf else find $(TARGETDIR) -name "wl_*.o" | xargs rm -rf endif endif # Prepare filesystem cd $(TARGETDIR) && $(TOP)/misc/rootprep.sh ifeq ($(CONFIG_SQUASHFS), y) ########################################### ### Create Squashfs filesystem ############ rm -f $(PLATFORMDIR)/$(ROOT_IMG) rm -f $(PLATFORMDIR)/$(ROOT_IMG).trim rm -f $(TARGETDIR)/sbin/st* find $(TARGETDIR) -name ".svn" | xargs rm -rf cd $(TARGETDIR)/etc && ln -s /tmp/resolv.conf resolv.conf endif ifeq ($(CONFIG_SQUASHFS), y) # Make sure mksquashfs 3.0 is used $(MAKE) -C squashfs mksquashfs find $(TARGETDIR) -name ".svn" | xargs rm -rf squashfs/mksquashfs $(TARGETDIR) $(PLATFORMDIR)/$(ROOT_IMG) -noappend -all-root # for i in $(shell ls $(INSTALLDIR)/utils/usr/sbin) ; do \ # rm -f $(TARGETDIR)/usr/sbin/$${i} ; \ # done # squashfs/mksquashfs $(TARGETDIR) $(PLATFORMDIR)/$(ROOT_IMG).trim -noappend -all-root else # Make sure mkcramfs-2.0 is used $(MAKE) -C $(CRAMFSDIR) mkcramfs # '-u 0 -g 0' will set the uid and gid of all the files to 0 (root) # These options are currently only available on our version of mkcramfs $(CRAMFSDIR)/mkcramfs -u 0 -g 0 $(TARGETDIR) $(PLATFORMDIR)/$(ROOT_IMG) endif ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) # Package kernel and filesystem ifeq ($(BUILD_MFG), 1) cd $(TARGETDIR) ; \ find . | cpio -o -H newc | gzip > $(LINUXDIR)/usr/initramfs_data.cpio.gz ls -l $(LINUXDIR)/usr/initramfs_data.cpio.gz $(MAKE) -C $(LINUXDIR) zImage $(MAKE) -C $(SRCBASE)/router/compressed else cp $(SRCBASE)/router/compressed/vmlinuz $(PLATFORMDIR)/ trx -o $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/$(ROOT_IMG) addpattern -i $(PLATFORMDIR)/linux.trx -o $(PLATFORMDIR)/linux_lsys.bin ; \ if grep -q "CONFIG_SQUASHFS=y" $(LINUXDIR)/.config ; then \ cp $(SRCBASE)/router/compressed/vmlinuz-lzma $(PLATFORMDIR)/ ; \ trx -o $(PLATFORMDIR)/linux-lzma.trx $(PLATFORMDIR)/vmlinuz-lzma $(PLATFORMDIR)/$(ROOT_IMG) ; \ fi endif # Pad self-booting Linux to a 64 KB boundary cp $(SRCBASE)/router/compressed/zImage $(PLATFORMDIR)/ else # Package kernel and filesystem if grep -q "CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR)/.config ; then \ cp $(PLATFORMDIR)/$(ROOT_IMG) $(LINUXDIR)/arch/mips/ramdisk/$${CONFIG_EMBEDDED_RAMDISK_IMAGE} ; \ $(MAKE) -C $(LINUXDIR) zImage ; \ else \ cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz $(PLATFORMDIR)/ ; \ trx -o $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/$(ROOT_IMG) ; \ if grep -q "CONFIG_SQUASHFS=y" $(LINUXDIR)/.config ; then \ cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz-lzma $(PLATFORMDIR)/ ; \ trx -o $(PLATFORMDIR)/linux-lzma.trx $(PLATFORMDIR)/vmlinuz-lzma $(PLATFORMDIR)/$(ROOT_IMG) ; \ fi \ fi # Pad self-booting Linux to a 64 KB boundary cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/zImage $(PLATFORMDIR)/ endif dd conv=sync bs=64k < $(PLATFORMDIR)/zImage > $(PLATFORMDIR)/linux.bin # Append filesystem to self-booting Linux cat $(PLATFORMDIR)/$(ROOT_IMG) >> $(PLATFORMDIR)/linux.bin ########################################### ### Create LZMA kernel #################### $(OBJCOPY) -O binary -g $(LINUXDIR)/vmlinux $(PLATFORMDIR)/vmlinux.bin ../../tools/lzma e $(PLATFORMDIR)/vmlinux.bin $(PLATFORMDIR)/vmlinux.lzma trx -o $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinux.lzma $(PLATFORMDIR)/$(ROOT_IMG) rm -f $(PLATFORMDIR)/vmlinux.bin $(PLATFORMDIR)/vmlinux.lzma ########################################### ### Create .chk files for Web UI upgrade ## cd $(PLATFORMDIR) && touch rootfs && \ ../../../tools/packet -k linux.trx -f rootfs -b $(BOARDID_FILE) \ -ok kernel_image -oall kernel_rootfs_image -or rootfs_image \ -i $(fw_cfg_file) && \ rm -f rootfs && \ cp kernel_rootfs_image.chk $(FW_NAME)_`date +%m%d%H%M`.chk #ifeq ($(BOARDID_FILE), compatible_WNR3500v2.txt) # cd $(PLATFORMDIR) && touch rootfs && \ # ../../../tools/packet -k linux.trx -f rootfs -b compatible_WNR3500v2VCNA.txt \ # -ok kernel_image -oall kernel_rootfs_image -or rootfs_image \ # -i $(fw_cfg_file) && \ # rm -f rootfs && \ # cp kernel_rootfs_image.chk WNR3500v2vcna_`date +%m%d%H%M`.chk #endif # # Configuration rules # conf mconf: $(MAKE) -C config @./config/$@ ./config/Config # Also configure kernel $(MAKE) k$@ oldconf: .config $(MAKE) -C config @./config/conf -o ./config/Config # Also configure kernel $(MAKE) k$@ kconf: $(MAKE) -C $(LINUXDIR) config kmconf: $(LINUXDIR)/.config $(MAKE) -C $(LINUXDIR) menuconfig koldconf: $(LINUXDIR)/.config $(MAKE) -C $(LINUXDIR) oldconfig # Convenience config: conf menuconfig: mconf oldconfig: oldconf # Default configurations ifneq ("$(LINUX_VERSION)","2_6") .config: cp config/defconfig $@ $(MAKE) oldconfig else .config: cp config/defconfig-2.6 $@ $(MAKE) oldconfig endif ifneq ("$(CONFIG_USBAP)","y") ifneq ("$(LINUX_VERSION)","2_6") $(LINUXDIR)/.config: cp $(LINUXDIR)/arch/mips/defconfig-bcm947xx $@ else $(LINUXDIR)/.config: cp $(LINUXDIR)/arch/mips/defconfig-bcm947xx-$(if $(CPU),$(CPU)-,)slimrtr $@ endif else ifneq ("LINUX_VERSION","2_6") $(LINUXDIR)/.config: cp $(LINUXDIR)/arch/mips/defconfig-bcm947xx-usbap $@ else $(LINUXDIR)/.config: cp $(LINUXDIR)/arch/mips/defconfig-bcm947xx-slimrtr-usbap $@ endif endif # Overwrite Kernel .config check_kernel_config: $(LINUXDIR)/.config cp $(LINUXDIR)/.config $(LINUXDIR)/.config.tmp ifeq ($(CONFIG_SQUASHFS), y) if ! grep -q "CONFIG_SQUASHFS=y" $(LINUXDIR)/.config ; then \ cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ sed -e "s/CONFIG_CRAMFS=y/# CONFIG_CRAMFS is not set/g" $(LINUXDIR)/.config.chk | \ sed -e "s/# CONFIG_SQUASHFS is not set/CONFIG_SQUASHFS=y/g" > \ $(LINUXDIR)/.config ; \ rm -f $(LINUXDIR)/.config.chk ; \ fi endif ifeq ($(CONFIG_CRAMFS), y) if ! grep -q "CONFIG_CRAMFS=y" $(LINUXDIR)/.config ; then \ cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ sed -e "s/CONFIG_SQUASHFS=y/# CONFIG_SQUASHFS is not set/g" $(LINUXDIR)/.config.chk | \ sed -e "s/# CONFIG_CRAMFS is not set/CONFIG_CRAMFS=y/g" > \ $(LINUXDIR)/.config ; \ rm -f $(LINUXDIR)/.config.chk ; \ fi endif ifeq ($(CONFIG_SHRINK_MEMORY), y) if ! grep -q "CONFIG_SHRINKMEM=y" $(LINUXDIR)/.config ; then \ cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ sed -e "s/# CONFIG_SHRINKMEM is not set/CONFIG_SHRINKMEM=y/g" $(LINUXDIR)/.config.chk > \ $(LINUXDIR)/.config ; \ rm -f $(LINUXDIR)/.config.chk ; \ fi else if grep -q "CONFIG_SHRINKMEM=y" $(LINUXDIR)/.config ; then \ cp $(LINUXDIR)/.config $(LINUXDIR)/.config.chk ; \ sed -e "s/CONFIG_SHRINKMEM=y/# CONFIG_SHRINKMEM is not set/g" $(LINUXDIR)/.config.chk > \ $(LINUXDIR)/.config ; \ rm -f $(LINUXDIR)/.config.chk ; \ fi endif # Make kernel config again if changed if ! cmp $(LINUXDIR)/.config $(LINUXDIR)/.config.tmp ; then \ $(MAKE) -C $(LINUXDIR) oldconfig ; \ fi # # Overrides # ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) busybox-1.x/Config.h: dummy cd busybox-1.x && rm -f Config.h && ln -sf include/autoconf.h Config.h && touch Config.h ifeq ($(PROFILE),WNDR4500REV) cd busybox-1.x && cp configs/bbconfig-$(CONFIG_BUSYBOX_CONFIG)_$(PROFILE) .config && make clean else ifeq ($(PROFILE),WNDR4500v2) cd busybox-1.x && cp configs/bbconfig-$(CONFIG_BUSYBOX_CONFIG)_$(PROFILE) .config && make clean else cd busybox-1.x && cp configs/bbconfig-$(CONFIG_BUSYBOX_CONFIG) .config && make clean endif endif busybox: busybox-1.x/Config.h $(MAKE) -C busybox-1.x ARCH=mips INSTALL busybox-install: $(MAKE) -C busybox-1.x ARCH=mips CONFIG_PREFIX=$(INSTALLDIR)/busybox install rc: netconf nvram shared make LINUXDIR=$(LINUXDIR) -C rc ifneq ($(CONFIG_BUSYBOX),) rc: busybox-1.x/Config.h endif else #linux-2.6 CURBBCFG=$(CONFIG_BUSYBOX_CONFIG).h OLDBBCFG=$(shell basename $$(readlink busybox/Config.h) 2> /dev/null) busybox/Config.h: dummy ifneq ($(OLDBBCFG),$(CURBBCFG)) cd busybox && rm -f Config.h && ln -sf configs/$(CURBBCFG) Config.h && touch Config.h endif busybox: busybox/Config.h $(MAKE) -C busybox STRIPTOOL=$(STRIP) busybox-install: $(MAKE) -C busybox STRIPTOOL=$(STRIP) PREFIX=$(INSTALLDIR)/busybox install # rc: netconf nvram shared rc: nvram shared ifneq ($(CONFIG_BUSYBOX),) rc: busybox/Config.h endif endif #linux-2.6 rc-install: make LINUXDIR=$(LINUXDIR) INSTALLDIR=$(INSTALLDIR)/rc -C rc install lib-install: make LX_VERS=$(LINUX_VERSION) INSTALLDIR=$(INSTALLDIR)/lib -C lib install www www-%: $(MAKE) -C www/$(CONFIG_VENDOR) $* INSTALLDIR=$(INSTALLDIR)/www # To re-build bcmdl target, uncomment and exchange libusb and bcmdl targets # libusb : # cd $(SRCBASE)/usbdev/libusb; ./configure --host=mipsel-linux CC=mipsel-uclibc-gcc; make # bcmdl : # make TARGETENV=linuxmips -C $(SRCBASE)/usbdev/usbdl # bcmdl-install : # install -d $(TARGETDIR)/bin # install -D $(SRCBASE)/usbdev/usbdl/bcmdl $(TARGETDIR)/bin/bcmdl libusb : bcmdl : bcmdl-install : install -d $(INSTALLDIR)/dongle/sbin install -D $(SRCBASE)/usbdev/usbdl/mips_$(LINUX_VERSION)/bcmdl $(INSTALLDIR)/dongle/sbin/bcmdl bridge: ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) $(MAKE) -C bridge-1.x else $(MAKE) -C bridge brctl/brctl endif dongle : bridge-install: ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) install -D bridge-1.x/brctl/brctl $(INSTALLDIR)/bridge/usr/sbin/brctl else install -D bridge/brctl/brctl $(INSTALLDIR)/bridge/usr/sbin/brctl endif $(STRIP) $(INSTALLDIR)/bridge/usr/sbin/brctl dnsmasq-install: install -D dnsmasq/dnsmasq $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq $(STRIP) $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) iptables: $(MAKE) -C iptables-1.x BINDIR=/usr/sbin LIBDIR=/usr/lib KERNEL_DIR=$(LINUXDIR) iptables-install: ifeq ($(CONFIG_IPTABLES),y) install -d $(INSTALLDIR)/iptables/usr/lib/iptables install iptables-1.x/extensions/*.so $(INSTALLDIR)/iptables/usr/lib/iptables $(STRIP) $(INSTALLDIR)/iptables/usr/lib/iptables/*.so install -D iptables-1.x/iptables $(INSTALLDIR)/iptables/usr/sbin/iptables $(STRIP) $(INSTALLDIR)/iptables/usr/sbin/iptables else # So that generic rule does not take precedence @true endif iptables-clean: -$(MAKE) -C iptables-1.x KERNEL_DIR=$(LINUXDIR) clean else # linux-2.6 iptables: $(MAKE) -C iptables BINDIR=/usr/sbin LIBDIR=/usr/lib KERNEL_DIR=$(LINUXDIR) iptables-install: ifeq ($(CONFIG_IPTABLES),y) install -d $(INSTALLDIR)/iptables/usr/lib/iptables install iptables/extensions/*.so $(INSTALLDIR)/iptables/usr/lib/iptables $(STRIP) $(INSTALLDIR)/iptables/usr/lib/iptables/*.so install -D iptables/iptables $(INSTALLDIR)/iptables/usr/sbin/iptables $(STRIP) $(INSTALLDIR)/iptables/usr/sbin/iptables else # So that generic rule does not take precedence @true endif iptables-clean: -$(MAKE) -C iptables KERNEL_DIR=$(LINUXDIR) clean endif # linux-2.6 netconf: iptables ifeq ($(CONFIG_NETCONF),y) make LINUXDIR=$(LINUXDIR) -C netconf else # In case of "Prerequisite 'iptables' is newer than target 'netconf'" @true endif ntpclient-install: install -D ntpclient/ntpclient $(INSTALLDIR)/ntpclient/usr/sbin/ntpclient $(STRIP) $(INSTALLDIR)/ntpclient/usr/sbin/ntpclient ppp ppp-%: $(MAKE) -C ppp/pppoecd $* INSTALLDIR=$(INSTALLDIR)/ppp udhcpd-install: install -D udhcpd/udhcpd $(INSTALLDIR)/udhcpd/usr/sbin/udhcpd $(STRIP) $(INSTALLDIR)/udhcpd/usr/sbin/udhcpd cd $(INSTALLDIR)/udhcpd/usr/sbin && ln -sf udhcpd udhcpc upnp: netconf nvram shared bcmupnp: netconf nvram shared [ ! -f bcmupnp/Makefile ] || $(MAKE) -C bcmupnp bcmupnp-install: [ ! -f bcmupnp/Makefile ] || $(MAKE) -C bcmupnp install INSTALLDIR=$(INSTALLDIR)/bcmupnp bcmupnp-clean: [ ! -f bcmupnp/Makefile ] || $(MAKE) -C bcmupnp clean wlconf: nvram shared vlan: $(MAKE) -C vlan CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) vlan-install: $(MAKE) -C vlan CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) INSTALLDIR=$(INSTALLDIR) install vlan-clean: $(MAKE) -C vlan clean emf: +$(MAKE) -C emf/emfconf CROSS=$(CROSS_COMPILE) emf-install: ifeq ($(CONFIG_EMF),y) install -d $(TARGETDIR) +$(MAKE) install -C emf/emfconf \ CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) endif emf-clean: #$(MAKE) -C emf/emfconf clean igs: +$(MAKE) -C emf/igsconf CROSS=$(CROSS_COMPILE) igs-install: ifeq ($(CONFIG_EMF),y) install -d $(TARGETDIR) +$(MAKE) -C emf/igsconf CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) install endif igs-clean: #$(MAKE) -C emf/igsconf clean igmp: $(MAKE) -C igmp CROSS=$(CROSS_COMPILE) igmp-install: ifeq ($(CONFIG_IGMP_PROXY),y) # install -d $(TARGETDIR) +$(MAKE) -C igmp CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) install endif igmp-clean: $(MAKE) -C igmp clean wps: nvram shared ifeq ($(PROFILE),WNDR4500REV) [ ! -f wps/Makefile ] || $(MAKE) -C wps else ifeq ($(PROFILE),WNDR4500v2) [ ! -f wps/Makefile ] || $(MAKE) -C wps else # Prevent to use generic rules" @true endif endif wps-install: ifeq ($(PROFILE),WNDR4500REV) [ ! -f wps/Makefile ] || $(MAKE) -C wps install INSTALLDIR=$(INSTALLDIR)/wps else ifeq ($(PROFILE),WNDR4500v2) [ ! -f wps/Makefile ] || $(MAKE) -C wps install INSTALLDIR=$(INSTALLDIR)/wps else # Prevent to use generic rules" @true endif endif wps-clean: ifeq ($(PROFILE),WNDR4500REV) [ ! -f wps/Makefile ] || $(MAKE) -C wps clean else ifeq ($(PROFILE),WNDR4500v2) [ ! -f wps/Makefile ] || $(MAKE) -C wps clean else # Prevent to use generic rules" @true endif endif # Foxconn Add, Jasmine Yang, 03/23/2006 acos_link: ifneq ($(PROFILE),) cp ../../ap/gpl/minidlna/minidlna.07.26/config_$(PROFILE).h ../../ap/gpl/minidlna/minidlna.07.26/config.h cd ../../project/acos/include; rm -f ambitCfg.h; ln -s ambitCfg_$(FW_TYPE)_$(PROFILE).h ambitCfg.h else cd ../../project/acos/include; rm -f ambitCfg.h; ln -s ambitCfg_$(FW_TYPE).h ambitCfg.h endif ifneq ($(PROFILE),) ifneq ($(PROFILE), WNR3500v2VCNA) # cp ../../project/acos/config_$(PROFILE).in ../../project/acos/config.in # cp ../../project/acos/config_$(PROFILE).mk ../../project/acos/config.mk # cp ../../project/acos/Makefile_$(PROFILE) ../../project/acos/Makefile cp $(LINUXDIR)/.config_$(PROFILE) $(LINUXDIR)/.config # cp $(LINUXDIR)/autoconf.h_$(PROFILE) $(LINUXDIR)/include/linux/autoconf.h endif else # cp ../../project/acos/config_WNR3500v2.in ../../project/acos/config.in # cp ../../project/acos/config_WNR3500v2.mk ../../project/acos/config.mk # cp ../../project/acos/Makefile_WNR3500v2 ../../project/acos/Makefile # cp $(LINUXDIR)/.config_WNR3500v2 $(LINUXDIR)/.config # cp $(LINUXDIR)/autoconf.h_WNR3500v2 $(LINUXDIR)/include/linux/autoconf.h endif acos: acos-install: acos-clean: gpl: $(MAKE) -C ../../ap/gpl CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) gpl-install: $(MAKE) -C ../../ap/gpl CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) INSTALLDIR=$(INSTALLDIR) install gpl-clean: $(MAKE) -C ../../ap/gpl clean #Leon Lv Add below for UBD,Apr 15,2008 .PHONY:ubd opendns ubd: $(MAKE) -C ubd CROSS=$(CROSS_COMPILE) ubd-install: ifeq ($(CONFIG_UBD),y) install -d $(TARGETDIR) # $(MAKE) -C ubd CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) install install -D ubd/ubd $(INSTALLDIR)/ubdu/usr/sbin/ubd $(STRIP) $(INSTALLDIR)/ubdu/usr/sbin/ubd endif ubd-clean: $(MAKE) -C ubd clean opendns: $(MAKE) -C ../../ap/acos/opendns opendns-install: $(MAKE) -C ../../ap/acos/opendns install opendns-clean: $(MAKE) -C ../../ap/acos/opendns clean netflix_tc: acos_nat: acos_nat-install: acos_nat-clean: ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6) udev: $(MAKE) -C udev CROSS_COMPILE=$(CROSS_COMPILE) udev-install: install -d $(TARGETDIR) $(MAKE) -C udev CROSS_COMPILE=$(CROSS_COMPILE) DESTDIR=$(INSTALLDIR) prefix=/udev install-udevtrigger udev-clean: $(MAKE) -C udev clean hotplug2: $(MAKE) -C hotplug2 CROSS_COMPILE=$(CROSS_COMPILE) hotplug2-install: install -d $(TARGETDIR) install -d $(INSTALLDIR)/hotplug2 $(MAKE) -C hotplug2 CROSS_COMPILE=$(CROSS_COMPILE) PREFIX=$(INSTALLDIR) install hotplug2-clean: $(MAKE) -C hotplug2 clean endif openssl: $(MAKE) -C ../../ap/gpl/openssl CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) openssl-install: $(MAKE) -C ../../ap/gpl/openssl CROSS=$(CROSS_COMPILE) STRIPTOOL=$(STRIP) INSTALLDIR=$(INSTALLDIR) install openssl-clean: $(MAKE) -C ../../ap/gpl/openssl clean ifeq ($(LINUX_VERSION),2_4) UCLIBC_IPV6=../lib/mipsel-uclibc/libc.so.0 endif radvd: flex dummy [ ! -d $@ ] || [ -f $@/Makefile ] || ( cd $@ && CC=$(CC) ./configure --host=mipsel-linux && cd .. ) [ ! -d $@ ] || $(MAKE) -C radvd CC=$(CC) radvd_LDADD="-L../flex -lfl" radvd-install: [ ! -d radvd ] || install -D -m 755 radvd/radvd $(INSTALLDIR)/radvd/usr/sbin/radvd [ ! -d radvd ] || $(STRIP) $(INSTALLDIR)/radvd/usr/sbin/radvd radvd-clean: [ ! -f radvd/Makefile ] || $(MAKE) -C radvd distclean flex: dummy [ ! -d $@ ] || [ -f $@/Makefile ] || ( cd $@ && CC=$(CC) ./configure --host=mipsel-linux && cd .. ) [ ! -d $@ ] || $(MAKE) -C flex CC=$(CC) RANLIB=$(RANLIB) iproute2: [ ! -d $@ ] || $(MAKE) -C iproute2 KERNEL_INCLUDE=$(LINUXDIR)/include CC=$(CC) AR=$(AR) LDLIBS= iproute2-install: [ ! -d iproute2 ] || install -D -m 755 iproute2/ip/ip $(INSTALLDIR)/iproute2/usr/sbin/ip [ ! -d iproute2 ] || $(STRIP) $(INSTALLDIR)/iproute2/usr/sbin/ip iputils: [ ! -d $@ ] || [ -f $@/include-glibc/bits/socket.h ] || ( cd $@/include-glibc/bits && ln -s ../socketbits.h socket.h && cd ../../.. ) [ ! -d $@ ] || $(MAKE) -C iputils KERNEL_INCLUDE=$(LINUXDIR)/include CC=$(CC) LDLIBS= iputils-install: [ ! -d iputils ] || install -D -m 755 iputils/ping6 $(INSTALLDIR)/iputils/usr/sbin/ping6 [ ! -d iputils ] || $(STRIP) $(INSTALLDIR)/iputils/usr/sbin/ping6 [ ! -d iputils ] || install -D -m 755 iputils/traceroute6 $(INSTALLDIR)/iputils/usr/sbin/traceroute6 [ ! -d iputils ] || $(STRIP) $(INSTALLDIR)/iputils/usr/sbin/traceroute6 [ ! -d iputils ] || install -D -m 755 iputils/tracepath6 $(INSTALLDIR)/iputils/usr/sbin/tracepath6 [ ! -d iputils ] || $(STRIP) $(INSTALLDIR)/iputils/usr/sbin/tracepath6 dhcp6s dhcp6c: dummy [ ! -d dhcp6 ] || [ -f dhcp6/Makefile ] || ( cd dhcp6 && ./configure CC=gcc CFLAGS+="-I../shared" && cd .. ) ifeq ($(CONFIG_UCLIBC),y) # [ ! -d dhcp6 ] || $(MAKE) -C dhcp6 CC=$(CC) LIBS="$(UCLIBC_IPV6)" $@ [ ! -d dhcp6 ] || $(MAKE) -C dhcp6 CC=$(CC) LIBS="-L lib" $@ else [ ! -d dhcp6 ] || $(MAKE) -C dhcp6 CC=$(CC) LIBS="-lresolv -L../libbcmcrypto -lbcmcrypto -L$(INSTALLDIR)/libbcmcrypto/usr/lib" $@ endif dhcp6s-install: [ ! -d dhcp6 ] || install -D -m 755 dhcp6/dhcp6s $(INSTALLDIR)/dhcp6s/usr/sbin/dhcp6s [ ! -d dhcp6 ] || $(STRIP) $(INSTALLDIR)/dhcp6s/usr/sbin/dhcp6s dhcp6c-install: [ ! -d dhcp6 ] || install -D -m 755 dhcp6/dhcp6c $(INSTALLDIR)/dhcp6c/usr/sbin/dhcp6c [ ! -d dhcp6 ] || $(STRIP) $(INSTALLDIR)/dhcp6c/usr/sbin/dhcp6c dhcp6s-clean dhcp6c-clean: [ ! -f dhcp6/Makefile ] || $(MAKE) -C dhcp6 distclean swresetd-install: swresetd-clean: acl_log-install: acl_log-clean: gpio-install: gpio-clean: # # Generic rules # %: [ ! -d $* ] || $(MAKE) -C $* %-clean: [ ! -d $* ] || $(MAKE) -C $* clean %-install: [ ! -d $* ] || $(MAKE) -C $* install INSTALLDIR=$(INSTALLDIR)/$* $(obj-y) $(obj-n) $(obj-clean) $(obj-install): dummy .PHONY: all clean distclean mrproper install package .PHONY: conf mconf oldconf kconf kmconf config menuconfig oldconfig .PHONY: dummy