#
# Broadcom Linux Router Makefile
# 
# Copyright 2004, Broadcom Corporation
# All Rights Reserved.
# 
# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
#
# $Id$
#

include .config

RELEASE=1.9.2.7-3b

#
# asus trx trailer
#

KERNEL_VER=1.9
FS_VER=2.7
HWL1=0.02
HWH1=2.99

#
# Paths
#

# Source bases
export PLATFORM LINUXDIR LIBDIR USRLIBDIR
export TOP := $(shell pwd)
export SRCBASE := $(shell (cd $(TOP)/.. && pwd -P))

#
# Cross-compile environment variables
#

# Build platform
export BUILD := i386-pc-linux-gnu
export HOSTCC := gcc

# uClibc wrapper
ifeq ($(CONFIG_UCLIBC),y)
export PLATFORM := $(PLATFORM)-uclibc
endif

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)
export CROSS_COMPILE := mipsel-uclibc-
export CONFIGURE := ./configure mipsel-linux --build=$(BUILD)
export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/.. && pwd -P)
endif

ifeq ($(CONFIG_BCMWPA2),y)
export CFLAGS += -DBCMWPA2 
endif

ifeq ($(CONFIG_IPV6),y)
export CONFIG_IPV6 := y
endif

export CC := $(CROSS_COMPILE)gcc
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

#
# Install and target directories
#

export PLATFORMDIR := $(TOP)/$(PLATFORM)
export INSTALLDIR := $(PLATFORMDIR)/install
export TARGETDIR := $(PLATFORMDIR)/target

# always build libcrypto, required by nas
obj-y += libcrypto 

#
# Configuration
#

obj-$(CONFIG_HTTPD) += httpd
obj-$(CONFIG_RC) += rc
obj-$(CONFIG_LIBBCM) += libbcm
obj-$(CONFIG_SHARED) += shared
obj-$(CONFIG_WWW) += www
ifeq ($(CONFIG_SENTRY5),y)
include Makefiles5.cnf
endif
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
obj-$(CONFIG_NAS) += nas
obj-$(CONFIG_NETCONF) += netconf
obj-$(CONFIG_NTP) += ntpclient
obj-$(CONFIG_NVRAM) += nvram
obj-$(CONFIG_PPP) += ppp
obj-$(CONFIG_UDHCPD) += udhcpd
obj-$(CONFIG_UPNP) += upnp
obj-$(CONFIG_UTILS) += utils
obj-$(CONFIG_ETC) += etc
obj-$(CONFIG_VLAN) += vlan

# Added by Joey for ASUS application
obj-$(CONFIG_PPTP) += pptp-client
obj-$(CONFIG_PPPOERELAY) += pppoe-relay
obj-$(CONFIG_INFOSVR) += infosvr
obj-$(CONFIG_EZIPUPDATE) += ez-ipupdate
obj-$(CONFIG_STUPIDFTPD) += stupid-ftpdmips
obj-$(CONFIG_JPEG6B) += jpeg-6b
obj-$(CONFIG_RCAMD) += rcamdmips
obj-$(CONFIG_SENDMAIL) += sendmail
obj-$(CONFIG_LPRNG) += LPRng
obj-$(CONFIG_OTHERS) += others
obj-$(CONFIG_TEST) += test
obj-$(CONFIG_BPALOGIN) += bpalogin
obj-$(CONFIG_WAVESERVER) += waveserver

# custom firmware
obj-$(CONFIG_SSHD) += dropbear
obj-$(CONFIG_JETDIRECT) += p910nd
obj-$(CONFIG_ETHERWAKE) += etherwake
obj-$(CONFIG_SAMBA) += samba
obj-$(CONFIG_IPROUTE2) += iproute2
obj-$(CONFIG_E2FSPROGS) += e2fsprogs
obj-$(CONFIG_IPV6) += radvd

obj-clean := $(foreach obj,$(obj-y) $(obj-n),$(obj)-clean)
obj-install := $(foreach obj,$(obj-y),$(obj)-install)

# wl500g defaults
export GLOBAL_OPTIONS := -DUSB_SUPPORT -DPARPORT_SUPPORT -DPRNINFO -DQOS -DWPA2_WMM
export LANGUAGE := "EN"
MODEL=WL500g

#
# Basic rules
#

all: $(obj-y) $(LINUXDIR)/.config
        # Also build kernel
	( . $(LINUXDIR)/.config ; \
	if [ "$${CONFIG_EMBEDDED_RAMDISK}" = "" ] ; then \
	    $(MAKE) -C $(LINUXDIR) zImage ; \
	fi ; \
	if [ "$${CONFIG_MODULES}" = "y" ] ; then \
	    $(MAKE) -C $(LINUXDIR) modules ; \
	fi )

clean: $(obj-clean) config-clean
	rm -rf $(TARGETDIR)
	rm -f $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/target.cramfs
	rm -f full usb20 lite
	$(MAKE) -C $(LINUXDIR) clean

distclean mrproper: clean
	rm -f .config $(LINUXDIR)/.config

modules_install-WL500g modules_install-WL500b: modules_install
	rm -f $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/host/usb-uhci.o
	rm -f $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/host/ehci-hcd.o
	rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/ide
	rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/net/robo

modules_install-WL500bv2: modules_install
	rm -f $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/host/usb-uhci.o
	rm -f $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/host/ehci-hcd.o
	rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/ide
	rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/net/robo
	rm -f $(TARGETDIR)/lib/modules/*/kernel/drivers/net/wl/wl.o
	cp rt2460/rt2400.o $(PLATFORMDIR)/target/lib/modules/*/kernel/drivers/net/wl/ -f

modules_install-WL300g: modules_install
	rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/net/robo
	rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/ide
	rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/media
	rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/scsi
	rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/usb
	rm -rf $(TARGETDIR)/lib/modules/*/parport

modules_install-WL500gx: modules_install
	rm -f $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/host/usb-ohci.o
	rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/ide
	rm -rf $(TARGETDIR)/lib/modules/*/parport
	cp et.SENTRY5/et.o $(PLATFORMDIR)/target/lib/modules/*/kernel/drivers/net/et/. -f

modules_install-WLHDD: modules_install
	rm -f $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/host/usb-uhci.o
	rm -f $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/host/ehci-hcd.o
	rm -rf $(TARGETDIR)/lib/modules/*/parport
	rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/net/robo
	
modules_install:
	( . $(LINUXDIR)/.config ; \
	if [ "$${CONFIG_MODULES}" = "y" ] ; then \
	    $(MAKE) -C $(LINUXDIR) modules_install DEPMOD=/bin/true INSTALL_MOD_PATH=$(TARGETDIR) ; \
	fi )
	rm -f $(TARGETDIR)/lib/modules/*/build
	rm -rf $(TARGETDIR)/lib/modules/*/pcmcia

install: package-$(MODEL)
	@true

package-%: $(filter-out lib-install www-install,$(obj-install)) $(LINUXDIR)/.config
	$(MAKE) www-pages-$*
        # Install binaries into target directory
	rm -rf $(TARGETDIR) && install -d $(TARGETDIR)
	echo $(RELEASE) > $(TARGETDIR)/.version
	for dir in $(wildcard $(patsubst %,$(INSTALLDIR)/%,$(obj-y))) $(INSTALLDIR)/www ; do \
	    (cd $${dir} && tar cpf - .) | (cd $(TARGETDIR) && tar xpf -) \
	done
	# Optimize crypto library
	$(MAKE) -C libcrypto optimize
        # Install (and possibly optimize) C library
	$(MAKE) lib-install
	# statically linked ASUS shit
ifeq ($(CONFIG_WAVESERVER),y)
	cp others/waveserver $(TARGETDIR)/usr/sbin/ -f
endif
        # Install modules into filesystem
	$(MAKE) modules_install-$*
        # Prepare filesystem
	cd $(TARGETDIR) && $(TOP)/misc/rootprep.sh
        # Make sure mksquashfs-2.0 is used
	$(MAKE) -C $(LINUXDIR)/scripts/squashfs mksquashfs CC=$(HOSTCC)
	$(LINUXDIR)/scripts/squashfs/mksquashfs $(TARGETDIR) $(PLATFORMDIR)/target.cramfs -all-root -noappend
        # Package kernel and filesystem
	( . $(LINUXDIR)/.config ; \
	if [ "$${CONFIG_EMBEDDED_RAMDISK}" = "y" ] ; then \
	    cp $(PLATFORMDIR)/target.cramfs $(LINUXDIR)/arch/mips/ramdisk/$${CONFIG_EMBEDDED_RAMDISK_IMAGE} ; \
	    $(MAKE) -C $(LINUXDIR) zImage ; \
	else \
	    cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz $(PLATFORMDIR)/ ; \
	    addver $(PLATFORMDIR)/target.cramfs $(KERNEL_VER) $(FS_VER) $* \
		"$(HWL1)" "$(HWH1)" "$(HWL2)" "$(HWH2)" "$(HWL3)" "$(HWH3)" "$(HWL4)" "$(HWH4)" $(PLATFORMDIR)/vmlinuz; \
	    trx -o $(PLATFORMDIR)/$*-$(RELEASE).trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/target.cramfs ; \
	fi )
        # Pad self-booting Linux to a 64 KB boundary
	cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/zImage $(PLATFORMDIR)/
	dd conv=sync bs=64k < $(PLATFORMDIR)/zImage > $(PLATFORMDIR)/linux.bin
        # Append filesystem to self-booting Linux
	cat $(PLATFORMDIR)/target.cramfs >> $(PLATFORMDIR)/linux.bin

#
# 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:
	$(MAKE) -C $(LINUXDIR) menuconfig

koldconf: $(LINUXDIR)/.config
	$(MAKE) -C $(LINUXDIR) oldconfig

# Convenience
config: conf

menuconfig: mconf

oldconfig: oldconf

# Default configurations
.config:
	cp config/defconfig $@
	$(MAKE) oldconfig

$(LINUXDIR)/.config:
	cp $(LINUXDIR)/arch/mips/defconfig-bcm947xx $@

#
# Overrides
#

httpd: netconf shared nvram $(EXTRA_LIBS)

rc: netconf shared nvram $(EXTRA_LIBS)
#	$(MAKE) -C rc GLOBAL_OPTIONS="$(subst -DWPA2_WMM,,$(GLOBAL_OPTIONS))"

www www-%:
	$(MAKE) -C www/$(CONFIG_VENDOR) $* INSTALLDIR=$(INSTALLDIR)/www

wwwmt wwwmt-%:
	$(MAKE) -C www/mea $* INSTALLDIR=$(INSTALLDIR)/www

ifeq ($(CONFIG_SENTRY5),y)
include $(TOP)/Makefiles5.mk
endif

# [START] Additional entries for IPv6

ipv6:
	$(MAKE) -C ipv6 ipv6.o

radvd: radvd/radvd
	$(MAKE) -C radvd radvd

radvd-install:
	install -D radvd/radvd $(INSTALLDIR)/radvd/sbin/radvd
	$(STRIP) $(INSTALLDIR)/radvd/sbin/radvd

# [END] Additional entries for IPv6

bridge:
	$(MAKE) -C bridge brctl/brctl

bridge-install: bridge
	install -D bridge/brctl/brctl $(INSTALLDIR)/bridge/usr/sbin/brctl
	$(STRIP) $(INSTALLDIR)/bridge/usr/sbin/brctl

ez-ipupdate-install:
	install -D ez-ipupdate/ez-ipupdate $(INSTALLDIR)/ez-ipupdate/usr/sbin/ez-ipupdate
	$(STRIP) $(INSTALLDIR)/ez-ipupdate/usr/sbin/ez-ipupdate

busybox/.config:
	cd busybox && rm -f .config && ln -sf sysdeps/linux/$(CONFIG_BUSYBOX_CONFIG) .config
	$(MAKE) -C busybox oldconfig

busybox: ipv6/ipv6.o busybox/.config
	$(MAKE) -C busybox all STRIP=$(STRIP)

busybox-install: busybox
	$(MAKE) -C busybox STRIP=$(STRIP) PREFIX=$(INSTALLDIR)/busybox install

dproxy:
	$(MAKE) -C dproxy

dproxy-install: dproxy
	install -D dproxy/dproxy $(INSTALLDIR)/dproxy/usr/sbin/dproxy
	$(STRIP) $(INSTALLDIR)/dproxy/usr/sbin/dproxy

iptables:
	$(MAKE) -C iptables BINDIR=/usr/sbin LIBDIR=/usr/lib KERNEL_DIR=$(LINUXDIR)

iptables-install: iptables
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
	install -D iptables/iptables-restore $(INSTALLDIR)/iptables/usr/sbin/iptables-restore
	$(STRIP) $(INSTALLDIR)/iptables/usr/sbin/iptables-restore
else
        # So that generic rule does not take precedence
	@true
endif

iptables-clean:
	-$(MAKE) -C iptables KERNEL_DIR=$(LINUXDIR) clean


netconf: iptables

ntpclient-install: ntpclient
	install -D ntpclient/ntpclient $(INSTALLDIR)/ntpclient/usr/sbin/ntpclient
	$(STRIP) $(INSTALLDIR)/ntpclient/usr/sbin/ntpclient

udhcpd-install: udhcpd
	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

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

pptp-client-install: pptp-client
	install -D pptp-client/pptp $(INSTALLDIR)/pptp-client/usr/sbin/pptp
	$(STRIP) $(INSTALLDIR)/pptp-client/usr/sbin/pptp

ppp-install: ppp
	install -D ppp/pppd/pppd $(INSTALLDIR)/ppp/usr/sbin/pppd
	$(STRIP) $(INSTALLDIR)/ppp/usr/sbin/pppd
	install -D ppp/pppd/plugins/rp-pppoe/rp-pppoe.so $(INSTALLDIR)/ppp/usr/lib/pppd/rp-pppoe.so
	$(STRIP) $(INSTALLDIR)/ppp/usr/lib/pppd/*.so

dnsmasq:
	$(MAKE) -C dnsmasq CFLAGS="-Os -DNO_IPV6"
	
dnsmasq-install:
	install -D dnsmasq/src/dnsmasq $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq
	$(STRIP) $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq

	
dropbear:
	$(MAKE) -C dropbear PROGRAMS="dropbear dbclient scp dropbearkey dropbearconvert" MULTI=1 SCPPROGRESS=1
	
dropbear-install:
	install -D dropbear/dropbearmulti $(INSTALLDIR)/dropbear/usr/sbin/dropbear
	$(STRIP) $(INSTALLDIR)/dropbear/usr/sbin/dropbear
	ln -sf dropbear $(INSTALLDIR)/dropbear/usr/sbin/dropbearkey
	ln -sf dropbear $(INSTALLDIR)/dropbear/usr/sbin/dropbearconvert
	install -d $(INSTALLDIR)/dropbear/usr/bin
	ln -sf ../sbin/dropbear $(INSTALLDIR)/dropbear/usr/bin/ssh
	ln -sf ../sbin/dropbear $(INSTALLDIR)/dropbear/usr/bin/scp

p910nd:
	$(CC) -Os p910nd/p910nd.c -o p910nd/p910nd

p910nd-clean:
	rm -f p910nd/p910nd

p910nd-install:
	install -D p910nd/p910nd $(INSTALLDIR)/p910nd/usr/sbin/p910nd
	$(STRIP) $(INSTALLDIR)/p910nd/usr/sbin/p910nd
	
etherwake:
	$(MAKE) -C etherwake CC=$(CC)

etherwake-install:
	install -D etherwake/ether-wake $(INSTALLDIR)/etherwake/usr/sbin/ether-wake
	$(STRIP) $(INSTALLDIR)/etherwake/usr/sbin/ether-wake
samba:
	$(MAKE) -C samba/source shared

samba-install:
	install -D samba/source/smbd.shared $(INSTALLDIR)/samba/usr/sbin/smbd
	install -D samba/source/nmbd.shared $(INSTALLDIR)/samba/usr/sbin/nmbd
	install -D samba/source/smbpasswd.shared $(INSTALLDIR)/samba/usr/bin/smbpasswd
	install -D samba/source/libsmb.so $(INSTALLDIR)/samba/usr/lib/libsmb.so
	install -d $(INSTALLDIR)/samba/usr/codepages/
	install -D samba/source/codepages/* $(INSTALLDIR)/samba/usr/codepages
	$(STRIP) $(INSTALLDIR)/samba/usr/sbin/smbd
	$(STRIP) $(INSTALLDIR)/samba/usr/sbin/nmbd
	$(STRIP) $(INSTALLDIR)/samba/usr/bin/smbpasswd
	$(STRIP) $(INSTALLDIR)/samba/usr/lib/libsmb.so
	
samba-clean:
	$(MAKE) -C samba/source clean

iproute2:
	$(MAKE) -C iproute2 KERNEL_INCLUDE=$(LINUXDIR)/include

iproute2-install:
	install -D iproute2/ip/ip $(INSTALLDIR)/iproute2/usr/sbin/ip
	install -D iproute2/tc/tc $(INSTALLDIR)/iproute2/usr/sbin/tc
	$(STRIP) $(INSTALLDIR)/iproute2/usr/sbin/ip
	$(STRIP) $(INSTALLDIR)/iproute2/usr/sbin/tc

e2fsprogs-install:
	install -D e2fsprogs/e2fsck/e2fsck.shared $(INSTALLDIR)/e2fsprogs/sbin/e2fsck
	$(STRIP) $(INSTALLDIR)/e2fsprogs/sbin/e2fsck
	install -D e2fsprogs/misc/mke2fs $(INSTALLDIR)/e2fsprogs/sbin/mke2fs
	$(STRIP) $(INSTALLDIR)/e2fsprogs/sbin/mke2fs

model-clean:
	make rc-clean
	make infosvr-clean
	make LPRng-clean

image-%:
	make rc-clean
	make infosvr-clean
	make LPRng-clean
	#make vlan-clean
	#make shared-clean

	( if [ "$*" = "WL500gx" ]; then \
		make rc GLOBAL_OPTIONS="-DUSB_SUPPORT -DWL500GX -DQOS -DWPA2_WMM" CONFIG_SENTRY5=y CONFIG_ROBO=y; \
		make infosvr GLOBAL_OPTIONS="-DPRNINFO -DNO_PARALLEL"; \
		make LPRng GLOBAL_OPTIONS="-DUSBONLY"; \
	elif [ "$*" = "WL500g" ]; then \
		make rc GLOBAL_OPTIONS="-DUSB_SUPPORT -DPARPORT_SUPPORT -DQOS -DWPA2_WMM"; \
		make infosvr GLOBAL_OPTIONS="-DPRNINFO"; \
		make LPRng GLOBAL_OPTIONS=""; \
	elif [ "$*" = "WL500b" ]; then \
		make rc GLOBAL_OPTIONS="-DUSB_SUPPORT -DPARPORT_SUPPORT -DQOS"; \
		make infosvr GLOBAL_OPTIONS="-DPRNINFO"; \
		make LPRng GLOBAL_OPTIONS=""; \
	elif [ "$*" = "WL500bv2" ]; then \
		make rc GLOBAL_OPTIONS="-DUSB_SUPPORT -DPARPORT_SUPPORT -DRT2400_SUPPORT -DQOS"; \
		make infosvr GLOBAL_OPTIONS="-DPRNINFO"; \
		make LPRng GLOBAL_OPTIONS=""; \
	elif [ "$*" = "WL500gl" ]; then \
		make rc GLOBAL_OPTIONS="-DWPA2_WMM"; \
		make infosvr GLOBAL_OPTIONS="-DNO_PARALLEL"; \
		make LPRng GLOBAL_OPTIONS=""; \
	elif [ "$*" = "WL500bl" ]; then \
		make rc GLOBAL_OPTIONS=""; \
		make infosvr GLOBAL_OPTIONS="-DNO_PARALLEL"; \
		make LPRng GLOBAL_OPTIONS=""; \
	elif [ "$*" = "WLHDD" ]; then \
		make rc GLOBAL_OPTIONS="-DUSB_SUPPORT -DCONFIG_WLHDD"; \
		make infosvr GLOBAL_OPTIONS="-DPRNINFO -DNO_PARALLEL"; \
		make LPRng GLOBAL_OPTIONS="-DUSBONLY"; \
	elif [ "$*" = "WL300g" ]; then \
		make rc GLOBAL_OPTIONS="-DCONFIG_WL300G -DWPA2_WMM"; \
		make infosvr GLOBAL_OPTIONS="-DNO_PARALLEL"; \
		make LPRng GLOBAL_OPTIONS=""; \
		make shared; \
	elif [ "$*" = "WL300g2" ]; then \
		make rc GLOBAL_OPTIONS="-DCONFIG_WL300G2 -DWPA2_WMM"; \
		make infosvr GLOBAL_OPTIONS="-DNO_PARALLEL"; \
		make LPRng GLOBAL_OPTIONS=""; \
	elif [ "$*" = "WL331g" ]; then \
		make rc GLOBAL_OPTIONS="-DUSB_SUPPORT -DCONFIG_WL331G -DWPA2_WMM -DWOB"; \
		make infosvr GLOBAL_OPTIONS="-DNO_PARALLEL"; \
		make LPRng GLOBAL_OPTIONS=""; \
	elif [ "$*" = "WL331gl" ]; then \
		make rc GLOBAL_OPTIONS="-DCONFIG_WL331G -DWPA2_WMM -DWOB"; \
		make infosvr GLOBAL_OPTIONS="-DNO_PARALLEL"; \
		make LPRng GLOBAL_OPTIONS=""; \
	fi )
	make package-$*

images-%:
	make image-$* LANGUAGE="EN"
	#make image-$* LANGUAGE="KR"
	#make image-$* LANGUAGE="TW"
	#make image-$* LANGUAGE="CN"
	#make image-$* LANGUAGE="JP"

images:
	make images-WL500gx
	make images-WL500g
	make images-WL500b
	make images-WL500bv2
	make images-WL300g
	make images-WLHDD
	#make images-WL331g
	#make images-WL331gl
	#make images-WL500gl
	#make images-WL500bl

image-R100:
	make rc-clean
	make infosvr-clean
	make LPRng-clean
	make rc GLOBAL_OPTIONS="-DUSB_SUPPORT -DPARPORT_SUPPORT"; 
	make infosvr GLOBAL_OPTIONS="-DPRNINFO"; 
	make LPRng GLOBAL_OPTIONS="";
	LANGUAGE="EN" 
	echo $(LANGUAGE)
	make wwwmt-install-R100 
	make install
	#cp et.4702/et.o $(PLATFORMDIR)/target/lib/modules/2.4.20/kernel/drivers/net/et/. -f
	make -C $(PLATFORMDIR) R100 MKCRAMFS=$(LINUXDIR)/scripts/squashfs/mksquashfs

#
# 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
