################################################################################
#	Copyright (c) 2005 QNAP System Inc. All rights reserved.
#
#	File Name:
#		Makefile
#
#	Abstract:
#		Makefile to build QNAP TS-201 series
#
#	Description:
#		Makefile to build QNAP TS-201 series
#
#	Project Name:
#		TS-201
#	
#	Software Component:
#		BUILD
#
#	Exported Functions:
#		None	
#
#	Notes:
#		None
#
#	History:
#		
#
################################################################################

MODEL		=	TS-201
ARCH		=	ppc
TARGET		=	powerpc-linux
CROSS_COMPILE	=	${TARGET}-
TARGET_PREFIX	=	/opt/cross-project/TS-101/tools
KERNEL		=	linux-2.6.12.3
NASWARE_PATH	=	${shell pwd}/../..
KERNEL_PATH	=	${NASWARE_PATH}/Kernel/${KERNEL}
MODEL_PATH	=	${NASWARE_PATH}/Model/${MODEL}
BUILD_PATH	=	${MODEL_PATH}/build
ROOT_PATH	=	${BUILD_PATH}/RootFS
NAS_LIB_PATH	=	${NASWARE_PATH}/NasLib
HOST_UTIL_PATH	=	${NASWARE_PATH}/HostUtil
NAS_CPPFLAGS	=	"-I${NAS_LIB_PATH}/include -I${NAS_LIB_PATH}/uLinux"
NAS_LDFLAGS	=	"-L${ROOT_PATH}/usr/lib -luLinux_Util -luLinux_config -luLinux_PDC -luLinux_NAS -luLinux_quota -luLinux_Storage"
CURRENT_USER	=	${shell /usr/bin/whoami}
TMP_BOOT_DEV	=	$(shell /bin/echo ${BOOT_DEVICE} | /usr/bin/cut -c 6-8)

#get the kernel version
VERSION		=	$(shell awk -F= '/^VERSION/{print $$2}' ${KERNEL_PATH}/Makefile | awk '{print $$1}')
PATCHLEVEL	=	$(shell awk -F= '/^PATCHLEVEL/{print $$2}' ${KERNEL_PATH}/Makefile | awk '{print $$1}')
SUBLEVEL	=	$(shell awk -F= '/^SUBLEVEL/{print $$2}' ${KERNEL_PATH}/Makefile | awk '{print $$1}')
EXTRAVERSION	=	$(shell awk -F= '/^EXTRAVERSION/{print $$2}' ${KERNEL_PATH}/Makefile | awk '{print $$1}')
KERNEL_VERSION	=	${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}

#some settings related to this model
CONSOLE		=	yes
#RAM_DISK_SIZE   =	32768
RAM_DISK_SIZE   =	7168
RAM_DISK_SIZE2  =	25534
ENCRYPT_MODEL	=	TS-201
NAS_VERSION	=	1.0.0
BOOT_DEVICE	=	/dev/mtdblock

#output build message or not
KERNEL_MSG_OUT	=	>/dev/null 2>&1 
#KERNEL_MSG_OUT =

all:
	@echo "QNAP NAS ${MODEL} series making $@..."
	make BASE
	make NAS_LIBRARY
	make INSTALL_NAS_LIBRARY
	make HOST_UTILITY
	make KERNEL
	make NAS_UTILITY
	make DATA_SERVICE
	make NAS_MANAGEMENT
	make OTHER_SERVICE
	make STORAGE_MANAGEMENT
	make SYS_UTILITY
	make NAS_DRIVER
	make WEB_UPGRADE
#	make CLEANUP_NAS_LIBRARY

clean:
	@echo "QNAP NAS ${MODEL} series making $@..."
	make WEB_UPGRADE_CLEAN
	make NAS_DRIVER_CLEAN
	make SYS_UTILITY_CLEAN
	make STORAGE_MANAGEMENT_CLEAN
	make OTHER_SERVICE_CLEAN
	make NAS_MANAGEMENT_CLEAN
	make DATA_SERVICE_CLEAN
	make NAS_UTILITY_CLEAN
	make KERNEL_CLEAN
	make HOST_UTILITY_CLEAN
	make NAS_LIBRARY_CLEAN
	make BASE_CLEAN

# BASE part begin
BASE:
	@echo "QNAP NAS ${MODEL} series making $@..."
	[ -d ${MODEL_PATH}/build ] || mkdir ${MODEL_PATH}/build
	[ -d ${ROOT_PATH} ] || sudo tar zxf ${NASWARE_PATH}/RootFS/rootfs_basic.tgz -C ${MODEL_PATH}/build
	[ -d ${ROOT_PATH}/etc/init.d ] || \
	( cd ${NASWARE_PATH}/RootFS/; tar -cf - --exclude CVS init.d | sudo tar -xf - -C ${ROOT_PATH}/etc; sudo chmod 755 ${ROOT_PATH}/etc/init.d/* )
	echo ${MODEL} > ${MODEL_PATH}/Config/Model_Name.conf
	cd ${MODEL_PATH}/Config; tar -cf - --exclude CVS * | sudo tar -xf - -C ${ROOT_PATH}/etc/default_config
	cd ${MODEL_PATH}/Config; tar -cf - --exclude CVS * | sudo tar -xf - -C ${ROOT_PATH}/etc/config
	[ ! -f ${ROOT_PATH}/etc/inittab ] || sudo rm -f ${ROOT_PATH}/etc/inittab; \
	if [ "${CONSOLE}" = "yes" ]; then \
		sudo ln -sf inittab.enable ${ROOT_PATH}/etc/inittab; \
	else \
		sudo ln -s inittab.disable ${ROOT_PATH}/etc/inittab; \
	fi
	[ -f ${ROOT_PATH}/tmp/cron/crontabs/administrator ] || \
	sudo ln -sf /etc/config/crontab ${ROOT_PATH}/tmp/cron/crontabs/administrator

BASE_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	sudo rm -Rf ${BUILD_PATH}
# BASE part end

# NAS_LIBRARY part begin
# Shone modified "make" to "make KERNEL_PATH=${KERNEL_PATH}" four lines below for ethernet connection checking use
NAS_LIBRARY:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/NasLib ; \
	make CROSS_COMPILE=${CROSS_COMPILE} TARGET_PREFIX=${TARGET_PREFIX} SYS_TARGET_PREFIX=${TARGET_PREFIX} MODEL=${MODEL}
	sudo ${CROSS_COMPILE}strip ${NASWARE_PATH}/NasLib/NAS/libuLinux_NAS.so.0.0
	sudo install -o root -g root -m 644 ${NASWARE_PATH}/NasLib/NAS/libuLinux_NAS.so.0.0 ${ROOT_PATH}/usr/lib
	sudo ln -sf libuLinux_NAS.so.0.0 ${ROOT_PATH}/usr/lib/libuLinux_NAS.so.0
	sudo ln -sf libuLinux_NAS.so.0 ${ROOT_PATH}/usr/lib/libuLinux_NAS.so
	sudo install -o root -g root -m 644 ${NASWARE_PATH}/NasLib/cgi/cgi_load.html ${ROOT_PATH}/home/httpd
	sudo ${CROSS_COMPILE}strip ${NASWARE_PATH}/NasLib/cgi/libuLinux_cgi.so.0.0
	sudo install -o root -g root -m 644 ${NASWARE_PATH}/NasLib/cgi/libuLinux_cgi.so.0.0 ${ROOT_PATH}/usr/lib
	sudo ln -sf libuLinux_cgi.so.0.0 ${ROOT_PATH}/usr/lib/libuLinux_cgi.so.0
	sudo ln -sf libuLinux_cgi.so.0 ${ROOT_PATH}/usr/lib/libuLinux_cgi.so
	sudo ${CROSS_COMPILE}strip ${NASWARE_PATH}/NasLib/config/libuLinux_config.so.0.0
	sudo install -o root -g root -m 644 ${NASWARE_PATH}/NasLib/config/libuLinux_config.so.0.0 ${ROOT_PATH}/usr/lib
	sudo ln -sf libuLinux_config.so.0.0 ${ROOT_PATH}/usr/lib/libuLinux_config.so.0
	sudo ln -sf libuLinux_config.so.0 ${ROOT_PATH}/usr/lib/libuLinux_config.so
	sudo ${CROSS_COMPILE}strip ${NASWARE_PATH}/NasLib/pdc/libuLinux_PDC.so.0.0
	sudo install -o root -g root -m 644 ${NASWARE_PATH}/NasLib/pdc/libuLinux_PDC.so.0.0 ${ROOT_PATH}/usr/lib
	sudo ln -sf libuLinux_PDC.so.0.0 ${ROOT_PATH}/usr/lib/libuLinux_PDC.so.0
	sudo ln -sf libuLinux_PDC.so.0 ${ROOT_PATH}/usr/lib/libuLinux_PDC.so
	sudo ${CROSS_COMPILE}strip ${NASWARE_PATH}/NasLib/quota/libuLinux_quota.so.0.0
	sudo install -o root -g root -m 644 ${NASWARE_PATH}/NasLib/quota/libuLinux_quota.so.0.0 ${ROOT_PATH}/usr/lib
	sudo ln -sf libuLinux_quota.so.0.0 ${ROOT_PATH}/usr/lib/libuLinux_quota.so.0
	sudo ln -sf libuLinux_quota.so.0 ${ROOT_PATH}/usr/lib/libuLinux_quota.so
	sudo ${CROSS_COMPILE}strip ${NASWARE_PATH}/NasLib/statistics/libuLinux_statistics.so.0.0
	sudo install -o root -g root -m 644 ${NASWARE_PATH}/NasLib/statistics/libuLinux_statistics.so.0.0 ${ROOT_PATH}/usr/lib
	sudo ln -sf libuLinux_statistics.so.0.0 ${ROOT_PATH}/usr/lib/libuLinux_statistics.so.0
	sudo ln -sf libuLinux_statistics.so.0 ${ROOT_PATH}/usr/lib/libuLinux_statistics.so
	sudo ${CROSS_COMPILE}strip ${NASWARE_PATH}/NasLib/storage_201/libuLinux_Storage.so.0.0
	sudo install -o root -g root -m 644 ${NASWARE_PATH}/NasLib/storage_201/libuLinux_Storage.so.0.0 ${ROOT_PATH}/usr/lib
	sudo ln -sf libuLinux_Storage.so.0.0 ${ROOT_PATH}/usr/lib/libuLinux_Storage.so.0
	sudo ln -sf libuLinux_Storage.so.0 ${ROOT_PATH}/usr/lib/libuLinux_Storage.so
	sudo ${CROSS_COMPILE}strip ${NASWARE_PATH}/NasLib/util/libuLinux_Util.so.0.0
	sudo install -o root -g root -m 644 ${NASWARE_PATH}/NasLib/util/libuLinux_Util.so.0.0 ${ROOT_PATH}/usr/lib
	sudo ln -sf libuLinux_Util.so.0.0 ${ROOT_PATH}/usr/lib/libuLinux_Util.so.0
	sudo ln -sf libuLinux_Util.so.0 ${ROOT_PATH}/usr/lib/libuLinux_Util.so
	sudo install -o root -g root -m 644 ${NASWARE_PATH}/NasLib/ImR/libuLinux_ImR.so.0.0 ${ROOT_PATH}/usr/lib
	sudo ln -sf libuLinux_ImR.so.0.0 ${ROOT_PATH}/usr/lib/libuLinux_ImR.so.0
	sudo ln -sf libuLinux_ImR.so.0 ${ROOT_PATH}/usr/lib/libuLinux_ImR.so
#	sudo install -o root -g root -m 644 -s ${NASWARE_PATH}/NasLib/ldap/libuLinux_Ldap.so.0.0 ${ROOT_PATH}/usr/lib
#	sudo ln -sf libuLinux_Ldap.so.0.0 ${ROOT_PATH}/usr/lib/libuLinux_Ldap.so.0
#	sudo ln -sf libuLinux_Ldap.so.0 ${ROOT_PATH}/usr/lib/libuLinux_Ldap.so

NAS_LIBRARY_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/NasLib ; \
	make MODEL=${MODEL} clean
# NAS_LIBRARY part end

INSTALL_NAS_LIBRARY:
	cd ${NASWARE_PATH}/NasLib; \
	sudo make CROSS_COMPILE=${CROSS_COMPILE} TARGET_PREFIX=${TARGET_PREFIX} MODEL=${MODEL} install
	[ -d /var/lock/NAS ] || sudo mkdir -p /var/lock/NAS
	
CLEANUP_NAS_LIBRARY:
	sudo rm -f /usr/lib/*uLinux*
	sudo rm -Rf /var/lock/NAS

# HOST_UTILITY part begin
HOST_UTILITY:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/HostUtil; \
	make
	make PYTHON
	cd ${NASWARE_PATH}/HostUtil; \
	tar -cf - --exclude CVS BitTornado | sudo tar -xf - -C ${ROOT_PATH}/usr/local

HOST_UTILITY_CLEAN:
#	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/HostUtil ; \
	make clean
	make PYTHON_CLEAN
	sudo rm -rf ${ROOT_PATH}/usr/local/BitTornado


PYTHON:
	@echo "QNAP NAS ${MODEL} series making $@..."	
	cd ${NASWARE_PATH}/HostUtil/Python-2.3.4;	\
	[ -f Makefile ] || { OPT="-O1" ./configure --with-cxx=no --disable-nls; \
	make python Parser/pygen;	\
	mv python hostpython;	\
	mv Parser/pgen Parser/hostpgen;	\
	make distclean; \
	AR=${CROSS_COMPILE}ar AS=${CROSS_COMPILE}as LD=${CROSS_COMPILE}ld NM=${CROSS_COMPILE}nm CC=${CROSS_COMPILE}gcc GCC=${CROSS_COMPILE}gcc RANLIB=${CROSS_COMPILE}ranlib OPT="-Os -pipe" ./configure --target=${TARGET}  --host=${TARGET} --build=i386-pc-linux-gun --sysconfdir=/etc/config --with-cxx=no --disable-nls ;  \
	export PYTHON_DISABLE_SSL=1;  \
	make -j1 CC=${CROSS_COMPILE}gcc  -C ./ PYTHON_DISABLE_MODULES="readline pyexpat dbm gdbm bsddb _curses _curses_panel _tkinter"  HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen; \
	${CROSS_COMPILE}strip ./python ./build/lib.linux-i686-2.3/*; }
	cd ${NASWARE_PATH}/HostUtil/Python-2.3.4; \
	[ -d ${ROOT_PATH}/usr/lib/python2.3 ] || sudo mkdir ${ROOT_PATH}/usr/lib/python2.3;	\
	sudo install -o root -g root -m 755 Lib/atexit.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/base64.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/bisect.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/copy.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/copy_reg.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/dis.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/ftplib.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/gopherlib.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/gzip.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/httplib.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/inspect.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/linecache.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/mimetools.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/mimetypes.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/opcode.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/os.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/posixpath.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/pprint.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/random.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/re.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/rfc822.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/site.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/socket.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/sre_compile.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/sre_constants.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/sre_parse.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/sre.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/stat.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/StringIO.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/string.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/tempfile.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/threading.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/tokenize.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/token.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/traceback.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/types.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/urllib2.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/urllib.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/urlparse.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/UserDict.py ${ROOT_PATH}/usr/lib/python2.3/; \
	sudo install -o root -g root -m 755 Lib/warnings.py ${ROOT_PATH}/usr/lib/python2.3/; \
	[ -d ${ROOT_PATH}/usr/lib/python2.3/lib-dynload ] || sudo mkdir ${ROOT_PATH}/usr/lib/python2.3/lib-dynload;	\
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/array.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/binascii.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/cStringIO.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/fcntl.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/math.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/md5.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/pwd.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/_random.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/select.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/sha.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/_socket.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/struct.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/time.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/;  \
	sudo install -o root -g root -m 755 build/lib.linux-i686-2.3/zlib.so ${ROOT_PATH}/usr/lib/python2.3/lib-dynload/; \
	sudo install -o root -g root -m 755 python ${ROOT_PATH}/usr/bin/;

PYTHON_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/HostUtil/Python-2.3.4; \
	make distclean

# HOST_UTILITY part end

# KERNEL part begin
KERNEL:
	@echo "QNAP NAS ${MODEL} series making $@..."
	if [ -f ${KERNEL_PATH}/Model -a "$(shell cat ${KERNEL_PATH}/Model)" = "${MODEL}" ]; then \
		cd ${KERNEL_PATH}; \
		[ -f .config ] || make ARCH=ppc CROSS_COMPILE=${CROSS_COMPILE} sandpoint_defconfig; cp ${MODEL_PATH}/kernel.cfg .config; \
		[ -f arch/ppc/boot/images/uImage ] || make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} uImage ${KERNEL_MSG_OUT}; \
		make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} modules ${KERNEL_MSG_OUT}; \
	else \
		echo "${MODEL}" > ${KERNEL_PATH}/Model; \
		cp ${MODEL_PATH}/kernel.cfg ${KERNEL_PATH}/.config; \
		cd ${KERNEL_PATH}; \
		make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} clean ${KERNEL_MSG_OUT}; \
		make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} uImage ${KERNEL_MSG_OUT}; \
		make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} modules ${KERNEL_MSG_OUT}; \
	fi
	cp ${KERNEL_PATH}/arch/ppc/boot/images/uImage ${BUILD_PATH}
#	[ -d ${ROOT_PATH}/lib/modules/misc ] || sudo mkdir ${ROOT_PATH}/lib/modules/misc; \
	cd ${KERNEL_PATH}; \
	sudo install -o root -g root -m 644 drivers/char/serial.o ${ROOT_PATH}/lib/modules/misc; \
	sudo install -o root -g root -m 644 drivers/md/lvm-mod.o ${ROOT_PATH}/lib/modules/misc; \
	sudo install -o root -g root -m 644 drivers/net/bonding.o ${ROOT_PATH}/lib/modules/misc; \
	sudo install  -o root -g root -m 644 drivers/net/e1000/e1000.o ${ROOT_PATH}/lib/modules/misc; \
	sudo install  -o root -g root -m 644 fs/ext3/ext3.o ${ROOT_PATH}/lib/modules/misc; \
	sudo install  -o root -g root -m 644 fs/jbd/jbd.o ${ROOT_PATH}/lib/modules/misc; \
	sudo install  -o root -g root -m 644 fs/nfsd/nfsd.o ${ROOT_PATH}/lib/modules/misc
	#sudo make modules_install "INSTALL_MOD_PATH=${ROOT_PATH}"

KERNEL_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${KERNEL_PATH}; make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} clean > /dev/null 2>&1; [ ! -f .config ] || rm .config; [ ! -f Model ] || rm Model
# KERNEL part end

# NAS_UTILITY part begin
NAS_UTILITY:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/NasUtil ; \
	make NAS_LIB_PATH=${NAS_LIB_PATH} CROSS_COMPILE=${CROSS_COMPILE} TARGET_PREFIX=${ROOT_PATH} SYS_TARGET_PREFIX=${TARGET_PREFIX} MODEL=${MODEL};	\
	sudo make ROOT_PATH=${ROOT_PATH} CROSS_COMPILE=${CROSS_COMPILE} MODEL=${MODEL} install

NAS_UTILITY_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/NasUtil ; \
	make MODEL=${MODEL} clean
# NAS_UTILITY part end

# DATA_SERVICE begin
DATA_SERVICE:
	@echo "QNAP NAS ${MODEL} series making $@..."
	make AFP
	make CIFS
	make FTP

DATA_SERVICE_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	make AFP_CLEAN
	make CIFS_CLEAN
	make FTP_CLEAN

AFP:
	@echo "QNAP NAS ${MODEL} series making $@..."	
	[ -d ${NASWARE_PATH}/DataService/AFP/netatalk-2.0.3 ] || tar zxvf ${NASWARE_PATH}/DataService/AFP/netatalk-2.0.3-QNAP.tgz -C ${NASWARE_PATH}/DataService/AFP;	\
	cd ${NASWARE_PATH}/DataService/AFP/netatalk-2.0.3; \
	[ -f Makefile ] || ./configure --host=${TARGET} --without-pam --with-shadow --without-logfile --with-libiconv=${TARGET_PREFIX}/usr/local --with-bdb=${NASWARE_PATH}/DataService/AFP/BerkeleyDB --disable-cups; make ROOT_PATH=${ROOT_PATH};	\
	${CROSS_COMPILE}strip etc/afpd/afpd etc/atalkd/atalkd etc/uams/.libs/uams_guest.so etc/uams/.libs/uams_passwd.so; \
	sudo install -o root -g root -m 755 etc/afpd/afpd ${ROOT_PATH}/usr/sbin; \
	sudo install -o root -g root -m 755 etc/atalkd/atalkd ${ROOT_PATH}/usr/sbin; \
	[ -d ${ROOT_PATH}/usr/local/etc/netatalk/uams ] || sudo mkdir -p ${ROOT_PATH}/usr/local/etc/netatalk/uams; \
	sudo install -o root -g root -m 755 etc/uams/.libs/uams_guest.so ${ROOT_PATH}/usr/local/etc/netatalk/uams; \
	sudo install -o root -g root -m 755 etc/uams/.libs/uams_passwd.so ${ROOT_PATH}/usr/local/etc/netatalk/uams

	#should be uncessary.
	#[ ! -f ${ROOT_PATH}/etc/atalk/etc/atalkd.conf ] || sudo rm -f /etc/atalketc/atalkd.conf; \
	#[ ! -f /tmp/atalkd.conf ] || sudo rm -f /tmp/atalkd.conf; \
	#echo "`/usr/local/sbin/getcfg Network Interface1 -f ${ROOT_PATH}/etc/config/uLinux.conf -d eth0`" > /tmp/atalkd.conf; \
	#sudo mv /tmp/atalkd.conf ${ROOT_PATH}/etc/atalk/etc/atalkd.conf

AFP_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."	
	cd ${NASWARE_PATH}/DataService/AFP/netatalk-2.0-B2-QNAP; \
	make clean

CIFS:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/DataService/CIFS/samba-3.0.10/source ; \
	[ -f Makefile ] || CPPFLAGS="-I${TARGET_PREFIX}/include -I${TARGET_PREFIX}/usr/local/include" LDFLAGS="-L${TARGET_PREFIX}/lib -L${TARGET_PREFIX}/usr/local/lib" ./configure --host=${TARGET} --with-quota --with-smbmount --with-libsmbclient --with-acl-support --disable-cups --with-configdir=/etc/config --with-libiconv=${TARGET_PREFIX}/usr/local; make; \
	${CROSS_COMPILE}strip bin/smbd bin/smbmount bin/smbmnt bin/net bin/tdbdump bin/wbinfo; \
	sudo install -o root -g root -m 755 bin/smbd ${ROOT_PATH}/usr/local/samba/sbin; \
	sudo ln -sf /usr/local/samba/sbin/smbd ${ROOT_PATH}/usr/local/samba/sbin/nmbd; \
	sudo ln -sf /usr/local/samba/sbin/smbd ${ROOT_PATH}/usr/local/samba/sbin/winbindd; \
	sudo ln -sf /usr/local/samba/sbin/smbd ${ROOT_PATH}/usr/local/samba/bin/smbstatus; \
	sudo ln -sf /usr/local/samba/sbin/smbd ${ROOT_PATH}/usr/local/samba/bin/smbpasswd; \
	sudo install -o root -g root -m 755 bin/smbmount ${ROOT_PATH}/usr/bin; \
	sudo install -o root -g root -m 755 bin/smbmnt ${ROOT_PATH}/usr/bin; \
	sudo ln -sf /usr/local/samba/sbin/smbd ${ROOT_PATH}/usr/bin/testparm; \
	sudo install -o root -g root -m 755 bin/wbinfo ${ROOT_PATH}/usr/bin; \
	sudo install -o root -g root -m 644 nsswitch/libnss_winbind.so ${ROOT_PATH}/lib; \
	sudo ln -sf libnss_winbind.so ${ROOT_PATH}/lib/libnss_winbind.so.2; \
	sudo install -o root -g root -m 644 nsswitch/libnss_wins.so ${ROOT_PATH}/lib; \
	sudo ln -sf libnss_wins.so ${ROOT_PATH}/lib/libnss_wins.so.2; \
	[ -d ${ROOT_PATH}/usr/local/samba/lib ] || sudo mkdir ${ROOT_PATH}/usr/local/samba/lib;	\
	sudo install -o root -g root -m 644 codepages/lowcase.dat ${ROOT_PATH}/usr/local/samba/lib; \
	sudo install -o root -g root -m 644 codepages/upcase.dat ${ROOT_PATH}/usr/local/samba/lib; \
	sudo install -o root -g root -m 644 codepages/valid.dat ${ROOT_PATH}/usr/local/samba/lib
	
CIFS_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/DataService/CIFS/samba-3.0.10/source ; \
	make clean

FTP:
	@echo "QNAP NAS ${MODEL} series making $@..."
	[ -d ${NASWARE_PATH}/DataService/FTP/proftpd-1.2.7p ] || tar zxvf ${NASWARE_PATH}/DataService/FTP/proftpd-1.2.7p-QNAP.tgz -C ${NASWARE_PATH}/DataService/FTP;	\
	cd ${NASWARE_PATH}/DataService/FTP/proftpd-1.2.7p ; \
	[ -f Makefile ] || CPPFLAGS=-I${TARGET_PREFIX}/usr/local/include LDFLAGS=-L${TARGET_PREFIX}/usr/local/lib ./configure --host=${TARGET} --sysconfdir=/etc/config --localstatedir=/var --with-libiconv=${TARGET_PREFIX}/usr/local --with-modules=mod_codeconv:mod_df --disable-pam --enable-shadow --enable-sendfile; make TARGET_PREFIX=${ROOT_PATH}; \
	${CROSS_COMPILE}strip proftpd;	\
	sudo install -o root -g root -m 755 proftpd ${ROOT_PATH}/usr/local/sbin

FTP_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/DataService/FTP/proftpd-1.2.7p ; \
	make clean

# DATA_SERVICE end

# NAS_MANAGEMTNE begin
NAS_MANAGEMENT:
	@echo "QNAP NAS ${MODEL} series making $@..."
	make HTTP
	make QHTTP
	make TELNET

NAS_MANAGEMENT_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	make HTTP_CLEAN
	make QHTTP_CLEAN
	make TELNET_CLEAN

HTTP:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/NasMgmt/HTTP/thttpd-2.20b ; \
	make TARGET_PREFIX=${ROOT_PATH}; \
	sudo make ROOT_PATH=${ROOT_PATH} CROSS_COMPILE=${CROSS_COMPILE} install	
	cd ${NASWARE_PATH}/NasMgmt/HTTP/WebPage; \
	tar -cf - --exclude CVS v3_menu | sudo tar -xf - -C ${ROOT_PATH}/home/httpd; \
	sudo chmod 644 ${ROOT_PATH}/home/httpd/v3_menu/style1.css
	cd ${MODEL_PATH}/WebFile/Image; \
	tar -cf - --exclude CVS * | sudo tar -xf - -C ${ROOT_PATH}/home/httpd/v3_menu/images; sudo chmod -R 644 ${ROOT_PATH}/home/httpd/v3_menu/images/*
	sudo /bin/rm -rf ${ROOT_PATH}/home/httpd/v3_menu/inc-CODEPAGE
	sudo /bin/rm -rf ${ROOT_PATH}/home/httpd/v3_menu/CVS
#	sudo /bin/ln -sf /home/httpd/v3_menu/inc-CODEPAGE ${ROOT_PATH}/home/httpd/v3_menu/inc
	cd ${NASWARE_PATH}/NasMgmt/HTTP/WebPage ; \
	make NAS_LIB_PATH=${NAS_LIB_PATH} TARGET_PREFIX=${ROOT_PATH} SYS_TARGET_PREFIX=${TARGET_PREFIX} MODEL=${MODEL}; \
	sudo make install ROOT_PATH=${ROOT_PATH} MODEL=${MODEL}
	sudo rm -Rf ${ROOT_PATH}/home/httpd/cgi-bin/network/dns_setting
	sudo rm -Rf ${ROOT_PATH}/home/httpd/cgi-bin/network/prn_setting
	sudo rm -f ${ROOT_PATH}/usr/sbin/lpd
	sudo rm -f ${ROOT_PATH}/usr/bin/lpc
	sudo rm -f ${ROOT_PATH}/usr/bin/lpq
	sudo rm -f ${ROOT_PATH}/usr/bin/lpr
	sudo rm -f ${ROOT_PATH}/usr/bin/lprm
	sudo rm -Rf ${ROOT_PATH}/home/httpd/cgi-bin/wlan_setting
	cd ${MODEL_PATH}/WebFile/Data; \
	tar -cf - --exclude CVS * | sudo tar -xf - -C ${ROOT_PATH}/home/httpd/cgi-bin/data
	cd ${MODEL_PATH}/WebFile/Help; \
	tar -cf - --exclude CVS * | sudo tar -xf - -C ${ROOT_PATH}/home/httpd/help
	sudo /usr/local/sbin/setcfg -f ${ROOT_PATH}/etc/config/uLinux.conf "System" "Version" ${NAS_VERSION}
	sudo /usr/local/sbin/setcfg -f ${ROOT_PATH}/etc/config/uLinux.conf "System" "Build Number" $(shell date +%m%d)
	sudo /usr/local/sbin/setcfg -f ${ROOT_PATH}/etc/default_config/uLinux.conf "System" "Version" ${NAS_VERSION}
	sudo /usr/local/sbin/setcfg -f ${ROOT_PATH}/etc/default_config/uLinux.conf "System" "Build Number" $(shell date +%m%d)
	sudo ${HOST_UTIL_PATH}/genindex ${ROOT_PATH}/etc/config/uLinux.conf ${MODEL_PATH}/WebFile/IndexTemplate/lang.conf ${MODEL_PATH}/WebFile/IndexTemplate ${ROOT_PATH}/home/httpd
	sudo cp ${MODEL_PATH}/WebFile/Image/TS-201.gif ${ROOT_PATH}/home/httpd/v3_menu/images/index_01.gif
	
HTTP_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/NasMgmt/HTTP/thttpd-2.20b ; \
	make clean
	cd ${NASWARE_PATH}/NasMgmt/HTTP/WebPage ; \
	make MODEL=${MODEL} clean
	sudo rm -Rf ${ROOT_PATH}/home/httpd/*

QHTTP:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/NasMgmt/HTTP/Qthttpd-2.20b ; \
	make TARGET_PREFIX=${ROOT_PATH}; \
	sudo make ROOT_PATH=${ROOT_PATH} CROSS_COMPILE=${CROSS_COMPILE} install
	[ -d ${ROOT_PATH}/home/Qhttpd ] || sudo mkdir ${ROOT_PATH}/home/Qhttpd
	[ -L ${ROOT_PATH}/home/Qhttpd/Qmultimedia ] || sudo ln -s ../httpd/Qmultimedia ${ROOT_PATH}/home/Qhttpd/Qmultimedia
	[ -L ${ROOT_PATH}/home/Qhttpd/errors ] || sudo ln -s ../httpd/errors ${ROOT_PATH}/home/Qhttpd/errors
	[ -L ${ROOT_PATH}/home/Qhttpd/v3_menu ] || sudo ln -s ../httpd/v3_menu ${ROOT_PATH}/home/Qhttpd/v3_menu
	[ -d ${ROOT_PATH}/home/Qhttpd/cgi-bin ] || sudo mkdir ${ROOT_PATH}/home/Qhttpd/cgi-bin
	[ -L ${ROOT_PATH}/home/Qhttpd/cgi-bin/Qmultimedia ] || sudo ln -s ../../httpd/cgi-bin/Qmultimedia ${ROOT_PATH}/home/Qhttpd/cgi-bin/Qmultimedia
	[ -L ${ROOT_PATH}/home/Qhttpd/indexnas.cgi ] || sudo ln -s /home/httpd/indexnas.cgi ${ROOT_PATH}/home/Qhttpd/indexnas.cgi
	[ -L ${ROOT_PATH}/home/Qhttpd/cgi-bin/logout.cgi ] || sudo ln -s ../../httpd/cgi-bin/logout.cgi ${ROOT_PATH}/home/Qhttpd/cgi-bin/logout.cgi
	sudo ${HOST_UTIL_PATH}/genindex ${ROOT_PATH}/etc/config/uLinux.conf ${MODEL_PATH}/WebFile/IndexTemplate/lang.conf ${MODEL_PATH}/WebFile/QIndexTemplate ${ROOT_PATH}/home/Qhttpd
	sudo cp ${MODEL_PATH}/WebFile/Help/eng/help_qweb.html ${ROOT_PATH}/home/Qhttpd

QHTTP_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/NasMgmt/HTTP/Qthttpd-2.20b ; \
	make clean
	sudo rm -rf ${ROOT_PATH}/home/Qhttpd

TELNET:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/NasMgmt/Telnet/utelnetd-0.1.1 ; \
	make CC=${CROSS_COMPILE}gcc; \
	${CROSS_COMPILE}strip utelnetd; \
	sudo install -o root -g root -m 755 utelnetd ${ROOT_PATH}/bin
	cd ${NASWARE_PATH}/NasMgmt/Telnet/tinylogin-0.80; \
        make CROSS=${CROSS_COMPILE}; \
        ${CROSS_COMPILE}strip tinylogin; \
        sudo install -o root -g root -m 755 tinylogin ${ROOT_PATH}/bin/naslogin

TELNET_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/NasMgmt/Telnet/utelnetd-0.1.1 ; \
	make clean
	cd ${NASWARE_PATH}/NasMgmt/Telnet/tinylogin-1.4 ; \
        make clean distclean
# NAS_MANAGEMENT end

# OTHER_SERVICE begin
OTHER_SERVICE:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/OtherService/dhcp-2.0 ; \
	make CROSS_COMPILE=${CROSS_COMPILE}; \
	${CROSS_COMPILE}strip server/dhcpd; \
	sudo install -o root -g root -m 755 server/dhcpd ${ROOT_PATH}/usr/sbin

OTHER_SERVICE_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/OtherService/dhcp-2.0 ; \
	make clean
# OTHER_SERVICE end

# STORAGE_MANAGEMENT begin
STORAGE_MANAGEMENT:
	@echo "QNAP NAS ${MODEL} series making $@..."
	make FILE_SYSTEM
	make HDPARM
	make MDADM

STORAGE_MANAGEMENT_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	make FILE_SYSTEM_CLEAN
	make HDPARM_CLEAN
	make MDADM_CLEAN

FILE_SYSTEM:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/StorMgmt/FileSystem/e2fsprogs-1.35 ; \
	[ -f Makefile ] || CC=${CROSS_COMPILE}gcc AR=${CROSS_COMPILE}ar LD=${CROSS_COMPILE}ld STRIP=${CROSS_COMPILE}strip RANLIB=${CROSS_COMPILE}ranlib ./configure --host=${TARGET}; make;	\
	${CROSS_COMPILE}strip e2fsck/e2fsck.shared resize/resize2fs misc/mke2fs misc/dumpe2fs misc/badblocks misc/tune2fs; \
	sudo install -o root -g root -m 755 e2fsck/e2fsck.shared ${ROOT_PATH}/sbin/e2fsck; \
	sudo install -o root -g root -m 755 resize/resize2fs ${ROOT_PATH}/sbin; \
	sudo install -o root -g root -m 755 misc/mke2fs ${ROOT_PATH}/sbin; \
	sudo install -o root -g root -m 755 misc/dumpe2fs ${ROOT_PATH}/sbin; \
	sudo install -o root -g root -m 755 misc/badblocks ${ROOT_PATH}/sbin; \
	sudo install -o root -g root -m 755 misc/tune2fs ${ROOT_PATH}/sbin;

	cd ${NASWARE_PATH}/StorMgmt/FileSystem/quota-3.13 ; \
	./configure --enable-nls=no --enable-rpc=no --host=ppc; \
	make CC=${CROSS_COMPILE}gcc; \
	${CROSS_COMPILE}strip quotacheck setquota repquota quotaon quota; \
	sudo install -o root -g root -m 755 quotacheck ${ROOT_PATH}/sbin; \
	sudo install -o root -g root -m 755 setquota ${ROOT_PATH}/sbin; \
	sudo install -o root -g root -m 755 repquota ${ROOT_PATH}/sbin; \
	sudo install -o root -g root -m 755 quotaon ${ROOT_PATH}/sbin; \
	sudo ln -sf /sbin/quotaon ${ROOT_PATH}/sbin/quotaoff; \
	sudo install -o root -g root -m 755 quota ${ROOT_PATH}/sbin

	cd ${NASWARE_PATH}/StorMgmt/FileSystem/dosfstools-2.8; \
	make CC=${CROSS_COMPILE}gcc;\
	sudo install -o root -g root -m 755 mkdosfs/mkdosfs ${ROOT_PATH}/sbin/mkfs.vfat
	
FILE_SYSTEM_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/StorMgmt/FileSystem/e2fsprogs-1.35 ; \
	[ ! -f Makefile ] || make clean distclean
	cd ${NASWARE_PATH}/StorMgmt/FileSystem/quota-3.13 ; \
	make clean

MDADM:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/StorMgmt/mdadm-2.3 ; \
	make CROSS_COMPILER=${CROSS_COMPILE} ; \
	${CROSS_COMPILE}strip mdadm ; \
	sudo install -o root -g root -m 755 mdadm ${ROOT_PATH}/sbin

MDADM_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/StorMgmt/mdadm-2.3 ; \
	make clean;

HDPARM:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/StorMgmt/hdparm-6.1 ; \
	make ; \
	${CROSS_COMPILE}strip hdparm ; \
	sudo install -o root -g root -m 755 hdparm ${ROOT_PATH}/sbin

HDPARM_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/StorMgmt/hdparm-6.1 ; \
	make clean

# STORAGE_MANAGEMENT end

# SYS_UTILITY part begin
SYS_UTILITY:
	@echo "QNAP NAS ${MODEL} series making $@..."
	
	cd ${NASWARE_PATH}/SysUtil/util-linux-2.12q; \
        CC=${CROSS_COMPILE}gcc RANLIB=${CROSS_COMPILE}ranlib GCC=${CROSS_COMPILE}gcc AR=${CROSS_COMPILE}ar AS=${CROSS_COMPILE}as LD=${CROSS_COMPILE}ld LDFLAGS="-L${TARGET_PREFIX}/lib" CFLAGS="-Os -pipe" ./configure --target=powerpc-linux --disable-nls ARCH=powerpc; \
        make ARCH=powerpc CC=${CROSS_COMPILE}gcc OPT="-Os -pipe " HAVE_SLANG="NO"; \
	${CROSS_COMPILE}strip fdisk/fdisk; \
	${CROSS_COMPILE}strip disk-utils/mkswap; \
        sudo install -o root -g root -m 755 mount/mount ${ROOT_PATH}/bin; \
	sudo install -o root -g root -m 755 mount/umount ${ROOT_PATH}/bin; \
	sudo install -o root -g root -m 755 fdisk/fdisk ${ROOT_PATH}/sbin; \
	sudo install -o root -g root -m 755 disk-utils/mkswap ${ROOT_PATH}/sbin
	cd ${NASWARE_PATH}/SysUtil/busybox-1.01 ; \
	[ -f .config ] || cp ${MODEL_PATH}/busybox.cfg .config; \
	[ -f busybox ] || make dep; make; \
	${CROSS_COMPILE}strip busybox; \
	sudo install -o root -g root -m 4755 busybox ${ROOT_PATH}/bin
	cd ${NASWARE_PATH}/SysUtil/usbutils-0.11; \
	./configure; \
	make CC=${CROSS_COMPILE}gcc; \
	${CROSS_COMPILE}strip lsusb; \
	sudo install -o root -g root -m 755 lsusb ${ROOT_PATH}/usr/sbin;\
	[ -d ${ROOT_PATH}/usr/local/share ] || sudo mkdir ${ROOT_PATH}/usr/local/share; \
	sudo cp usb.ids ${ROOT_PATH}/usr/local/share/
#	cd ${NASWARE_PATH}/SysUtil/ftpcopy-0.4.8/src ; \
	make; \
	${CROSS_COMPILE}strip ftpcopy ftpls; \
	sudo install -o root -g root -m 755 ftpcopy ${ROOT_PATH}/sbin; \
	sudo install -o root -g root -m 755 ftpls ${ROOT_PATH}/sbin
#	cd ${NASWARE_PATH}/SysUtil/genpower-1.0.2 ; \
	make; \
	${CROSS_COMPILE}strip genpowerd gengetstatus; \
	sudo install -o root -g root -m 755 genpowerd ${ROOT_PATH}/sbin; \
	sudo install -o root -g root -m 755 gengetstatus ${ROOT_PATH}/sbin; \
	sudo install -o root -g root -m 755 genpowerfail.sh ${ROOT_PATH}/etc/init.d
#	cd ${NASWARE_PATH}/SysUtil/hc-cron-0.13 ; \
	make; \
	${CROSS_COMPILE}strip cron; \
	sudo install -o root -g root -m 755 cron ${ROOT_PATH}/usr/sbin
	cd ${NASWARE_PATH}/SysUtil/ntp-4.2.0 ; \
	[ -f Makefile ] || CPPFLAGS="-I${TARGET_PREFIX}/include -I${TARGET_PREFIX}/usr/local/include" LDFLAGS="-L${TARGET_PREFIX}/lib -L${TARGET_PREFIX}/usr/local/lib" CC=${CROSS_COMPILE}gcc ./configure --host=ppc --without-openssl-libdir --without-openssl-incdir; \
	make; \
	${CROSS_COMPILE}strip ntpd/ntpd ntpdate/ntpdate ntpq/ntpq; \
	sudo install -o root -g root -m 755 ntpdate/ntpdate ${ROOT_PATH}/sbin
	#sudo install -o root -g root -m 755 ntpd/ntpd ${ROOT_PATH}/usr/sbin; \
	#sudo install -o root -g root -m 755 ntpdate/ntpdate ${ROOT_PATH}/usr/sbin; \
	#sudo install -o root -g root -m 755 ntpq/ntpq ${ROOT_PATH}/usr/sbin

#	cd ${NASWARE_PATH}/SysUtil/ulogd-0.98 ; \
	[ -f Makefile ] || ./configure; make KERNEL_PATH=${KERNEL_PATH}; \
	sudo install -o root -g root -m 755 -s ulogd ${ROOT_PATH}/sbin; \
	sudo install -o root -g root -m 755 ulogd.conf ${ROOT_PATH}/etc

#	cd ${NASWARE_PATH}/SysUtil/mktemp-1.5; \
	[ -f Makefile ] || ./configure; \
	make; \
	${CROSS_COMPILE}strip mktemp; \
	sudo install -o root -g root -m 755 mktemp ${ROOT_PATH}/bin/mktemp

	cd ${NASWARE_PATH}/SysUtil/SCSI/sg3_utils-1.06; \
	make CC=${CROSS_COMPILE}gcc LD=${CROSS_COMPILE}gcc; \
	${CROSS_COMPILE}strip chk_sg; \
	sudo install -o root -g root -m 755 chk_sg ${ROOT_PATH}/sbin;

	cd ${NASWARE_PATH}/SysUtil/rsync-2.6.6 ; \
	[ -f Makefile ] || CFLAGS=-DQNAPNAS CPPFLAGS=${NAS_CPPFLAGS} LDFLAGS=${NAS_LDFLAGS} ./configure --host=${TARGET}; make; \
	${CROSS_COMPILE}strip rsync; \
	sudo install -o root -g root -m 755 rsync ${ROOT_PATH}/usr/bin;	\
	cd ${ROOT_PATH}/usr/bin ; \
	sudo ln -sf ./rsync ./rsyncd ;

	cd ${NASWARE_PATH}/SysUtil/portmap_5beta ; \
	make CC=${CROSS_COMPILE}gcc; \
	${CROSS_COMPILE}strip portmap; \
	sudo install -o root -g root -m 755 portmap ${ROOT_PATH}/usr/bin;

	cd ${NASWARE_PATH}/SysUtil/ez-ipupdate-3.0.10 ; \
	[ -f Makefile ] || ./configure ; \
	make CC=${CROSS_COMPILE}gcc LD=${CROSS_COMPILE}ld; \
	${CROSS_COMPILE}strip ez-ipupdate; \
	sudo install -o root -g root -m 755 ez-ipupdate ${ROOT_PATH}/usr/sbin;

	cd ${NASWARE_PATH}/SysUtil/lpr-0.71; \
	[ -f Makefile ] || ./configure; make CC=${CROSS_COMPILE}gcc LD=${CROSS_COMPILE}ld; \
	${CROSS_COMPILE}strip lpr/lpr; \
	${CROSS_COMPILE}strip lpc/lpc; \
	${CROSS_COMPILE}strip lprm/lprm; \
	${CROSS_COMPILE}strip lpq/lpq; \
	${CROSS_COMPILE}strip lpd/lpd; \
	sudo install --mode=ugo=rsx lpr/lpr ${ROOT_PATH}/usr/bin; \
	sudo install --mode=ugo=rsx lpc/lpc ${ROOT_PATH}/usr/bin; \
	sudo install --mode=ugo=rsx lprm/lprm ${ROOT_PATH}/usr/bin; \
	sudo install --mode=ugo=rsx lpq/lpq ${ROOT_PATH}/usr/bin; \
	sudo install --mode=ugo=rsx lpd/lpd ${ROOT_PATH}/usr/sbin;

	cd ${NASWARE_PATH}/SysUtil/coreutils-5.2.1; \
	[ -f Makefile ] || ./configure --host=${TARGET} CC=${CROSS_COMPILE}gcc LD=${CROSS_COMPILE}ld; \
	make; ${CROSS_COMPILE}strip src/cksum; \
	sudo install -o root -g root -m 755 src/cksum ${ROOT_PATH}/sbin;

	cd ${NASWARE_PATH}/SysUtil/dhcpcd-1.3.22-p14; \
	make; sudo install -o root -g root -m 755 dhcpcd ${ROOT_PATH}/sbin;

SYS_UTILITY_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."

	cd ${NASWARE_PATH}/SysUtil/util-linux-2.12q; \
	make distclean;

	cd ${NASWARE_PATH}/SysUtil/SCSI/sg3_utils-1.06; \
	make clean;

	cd ${NASWARE_PATH}/SysUtil/portmap_5beta ; \
	make clean;

	cd ${NASWARE_PATH}/SysUtil/busybox-1.01 ; \
	make clean

	cd ${NASWARE_PATH}/SysUtil/ez-ipupdate-3.0.10; \
	make distclean;

#	cd ${NASWARE_PATH}/SysUtil/ftpcopy-0.4.8/src ; \
	make clean
#	cd ${NASWARE_PATH}/SysUtil/genpower-1.0.2 ; \
	make clean
#	cd ${NASWARE_PATH}/SysUtil/hc-cron-0.13 ; \
	make clean
#	cd ${NASWARE_PATH}/SysUtil/ntp-4.2.0 ; \
	[ ! -f Makefile ] || make clean distclean
#	cd ${NASWARE_PATH}/SysUtil/ulogd-0.98 ; \
	make clean; make distclean
#	cd ${NASWARE_PATH}/SysUtil/mktemp-1.5; \
	[ ! -f Makefile ] || make clean distclean
	
# SYS_UTILITY part end

# NAS_DRIVER part begin
NAS_DRIVER:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/NasDriver/nasmgr/app/QRAID1 ; \
	make CROSS_COMPILE=${CROSS_COMPILE} NAS_LIB_PATH=${NAS_LIB_PATH}; \
	sudo make CROSS_COMPILE=${CROSS_COMPILE} ROOT_PATH=${ROOT_PATH} install;
	cd ${NASWARE_PATH}/NasDriver/nasmgr/driver/QRAID1 ; \
	make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} KERNEL_PATH=${KERNEL_PATH}; \
	[ -d ${ROOT_PATH}/lib/modules/misc ] || sudo mkdir ${ROOT_PATH}/lib/modules/misc; \
	sudo install  -o root -g root -m 644 qraid1.ko ${ROOT_PATH}/lib/modules/misc;
	

NAS_DRIVER_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	cd ${NASWARE_PATH}/NasDriver/nasmgr/app/QRAID1 ; \
	make clean
	cd ${NASWARE_PATH}/NasDriver/nasmgr/driver/QRAID1 ; \
	make clean
# NAS_DRIVER part end

# WEB_UPGRADE part begin
WEB_UPGRADE:
	@echo "QNAP NAS ${MODEL} series making initrd.boot..."
	sudo chown -Rf 0:0 ${ROOT_PATH}

	@echo "Creating initrd.boot..."
	[ -d ${BUILD_PATH}/MntRD_TMP ] || sudo mkdir ${BUILD_PATH}/MntRD_TMP
	cd ${ROOT_PATH}; \
	sudo tar -cf - * | sudo tar -xf - -C ${BUILD_PATH}/MntRD_TMP
	sudo rm -rf ${BUILD_PATH}/MntRD_TMP/usr ${BUILD_PATH}/MntRD_TMP/home

	[ ! -f ${BUILD_PATH}/initrd.boot ] || sudo rm -f ${BUILD_PATH}/initrd.boot
	sudo dd if=/dev/zero of=${BUILD_PATH}/initrd.img bs=1k count=${RAM_DISK_SIZE}
	sudo /sbin/mke2fs -F -v -m0 -b 1024 ${BUILD_PATH}/initrd.img > /dev/null
	[ -d ${BUILD_PATH}/MntRD ] || sudo mkdir ${BUILD_PATH}/MntRD
	sudo mount -o loop ${BUILD_PATH}/initrd.img ${BUILD_PATH}/MntRD

	cd ${BUILD_PATH}/MntRD_TMP; \
	sudo tar -cf - * | sudo tar -xf - -C ${BUILD_PATH}/MntRD
	sudo umount ${BUILD_PATH}/MntRD

	@echo "Creating rootfs_ext.img..."
	[ ! -f ${BUILD_PATH}/rootfs_ext.img ] || sudo rm -rf ${BUILD_PATH}/rootfs_ext.img
	sudo dd if=/dev/zero of=${BUILD_PATH}/rootfs_ext.img bs=1k count=${RAM_DISK_SIZE2}
	sudo /sbin/mke2fs -F -v -m0 -b 1024 ${BUILD_PATH}/rootfs_ext.img > /dev/null
	[ -d ${BUILD_PATH}/MntRD_Ext ] || sudo mkdir ${BUILD_PATH}/MntRD_Ext
	sudo mount -o loop ${BUILD_PATH}/rootfs_ext.img ${BUILD_PATH}/MntRD_Ext

	cd ${ROOT_PATH}; \
	sudo tar -cf - usr home | sudo tar -xf - -C ${BUILD_PATH}/MntRD_Ext
	sudo touch ${BUILD_PATH}/MntRD_Ext/debug_flag
	sudo umount ${BUILD_PATH}/MntRD_Ext
	cd ${BUILD_PATH}; \
	sudo tar czf rootfs_ext.tgz rootfs_ext.img

	@echo "Removing tmp directory..."
	[ ! -d ${BUILD_PATH}/MntRD ] || sudo rmdir ${BUILD_PATH}/MntRD
	[ ! -d ${BUILD_PATH}/MntRD_Ext ] || sudo rm -rf ${BUILD_PATH}/MntRD_Ext

	@echo "Making initrd.img..."
	sudo gzip -9 < ${BUILD_PATH}/initrd.img > ${BUILD_PATH}/initrd.bin
	sudo mkimage -n 'QNAP RAM Disk' -A ppc -O linux -T ramdisk -C gzip -d ${BUILD_PATH}/initrd.bin ${BUILD_PATH}/initrd.boot
	sudo cksum ${BUILD_PATH}/initrd.boot > ${BUILD_PATH}/initrd.boot.cksum
	sudo rm -f ${BUILD_PATH}/initrd.img ${BUILD_PATH}/initrd.bin

	sudo cksum ${BUILD_PATH}/uImage > ${BUILD_PATH}/uImage.cksum

	sudo cksum ${BUILD_PATH}/rootfs_ext.tgz > ${BUILD_PATH}/rootfs_ext.tgz.cksum
	sudo rm -f ${BUILD_PATH}/rootfs_ext.img

	@echo "Making update image..."
	[ -d ${BUILD_PATH}/WebUpgTmp ] || mkdir ${BUILD_PATH}/WebUpgTmp
	cd ${BUILD_PATH}/WebUpgTmp; \
	mkdir boot; mkdir config; mkdir update; cp ${BUILD_PATH}/initrd.boot* . ; cp ${BUILD_PATH}/uImage* . ; \
	cp ${BUILD_PATH}/rootfs_ext.tgz* .
#	cd ${ROOT_PATH}/etc/config; \
#	sudo tar -cf - --exclude CVS * | tar -xf - -C ${BUILD_PATH}/WebUpgTmp/config
#	cd ${MODEL_PATH}/Update; \
#	tar -cf - --exclude CVS * | tar -xf - -C ${BUILD_PATH}/WebUpgTmp/update
	cd ${BUILD_PATH}/WebUpgTmp; \
	sudo chown -Rf 0:0 *; \
	sudo tar -zcf ../update.img *
	sudo rm -rf ${BUILD_PATH}/WebUpgTmp

	cd ${NASWARE_PATH}/NasUtil/PC1; \
	[ -f ${NASWARE_PATH}/NasUtil/PC1/x86PC1 ] || make x86

	@echo "Encrypt update image..."
	cd ${BUILD_PATH}; \
	sudo ${NASWARE_PATH}/NasUtil/PC1/x86PC1 e QNAPNASVERSION4 update.img encrypt.img; \
	sudo rm update.img; \
	sudo ${NASWARE_PATH}/NasUtil/PC1/x86PC2 encrypt.img ${ENCRYPT_MODEL} ${NAS_VERSION}; \
	sudo mv encrypt.img U_${MODEL}_$(shell date +%Y%m%d)-${NAS_VERSION}.img; \
	cksum U_${MODEL}_$(shell date +%Y%m%d)-${NAS_VERSION}.img > U_${MODEL}_$(shell date +%Y%m%d)-${NAS_VERSION}.cksum

WEB_UPGRADE_CLEAN:
	@echo "QNAP NAS ${MODEL} series making $@..."
	[ ! -f ${BUILD_PATH}/initrd.boot ] || sudo rm -f ${BUILD_PATH}/initrd.boot
	[ ! -d ${BUILD_PATH}/MntRD ] || sudo rmdir ${BUILD_PATH}/MntRD
	
# WEB_UPGRADE part end

FINAL:
	[ ! -f /mnt/pub/NAS_UPDATE_IMAGE/TS/${MODEL}/${MODEL}_$(shell date +%Y%m%d)-${NAS_VERSION}.img ] || sudo rm /mnt/pub/NAS_UPDATE_IMAGE/TS/${MODEL}/${MODEL}_$(shell date +%Y%m%d)-${NAS_VERSION}.img
	[ ! -f /mnt/pub/NAS_UPDATE_IMAGE/TS/${MODEL}/${MODEL}_$(shell date +%Y%m%d)-${NAS_VERSION}.cksum ] || sudo rm /mnt/pub/NAS_UPDATE_IMAGE/TS/${MODEL}/${MODEL}_$(shell date +%Y%m%d)-${NAS_VERSION}.cksum
	sudo cp $(BUILD_PATH)/U_${MODEL}_$(shell date +%Y%m%d)-${NAS_VERSION}.img /mnt/pub/NAS_UPDATE_IMAGE/TS/${MODEL}/${MODEL}_$(shell date +%Y%m%d)-${NAS_VERSION}.img
	sudo cp $(BUILD_PATH)/U_${MODEL}_$(shell date +%Y%m%d)-${NAS_VERSION}.cksum /mnt/pub/NAS_UPDATE_IMAGE/TS/${MODEL}/${MODEL}_$(shell date +%Y%m%d)-${NAS_VERSION}.cksum
	sudo cp -f ${NASWARE_PATH}/release.notes /mnt/pub/NAS_UPDATE_IMAGE/TS/${MODEL}

