
DF_CROSS ?= arm-none-linux-gnueabi
TARGET_DIR ?= ../../target
LINUX_DIR ?= ../../linux
ALSALIB_PACKAGE = alsa-lib-1.0.16
ALSAUTIL_PACKAGE = alsa-utils-1.0.16
JIFFIES_PACKAGE = a1_get_jiffy
NCURSES_PACKAGE = ncurses-5.5
IPTABLES_PACKAGE = iptables-1.4.3.2
FIREWALL = Firewall
VSFTPD_PACKAGE = vsftpd-3.0.2
DROPBEAR = dropbear-2012.55

all: iptables firewall dropbear vsftpd

alsa-lib:
	if [ ! -f $(ALSALIB_PACKAGE)/Makefile ]; then \
		$(MAKE) alsalib-config; \
		$(MAKE) -C $(ALSALIB_PACKAGE);\
	fi
	cp $(ALSALIB_PACKAGE)/src/.libs/libasound.so.2.0.0 $(TARGET_DIR)/usr/lib;\

alsa-util:
	if [ ! -d $(NCURSES_PACKAGE) ]; then \
		tar -zxf $(NCURSES_PACKAGE).tar.gz; \
		$(MAKE) ncurses-config; \
		$(MAKE) -C $(NCURSES_PACKAGE); \
	fi
#	if [ ! -d $(ALSAUTIL_PACKAGE) ]; then \
		tar xzvf $(ALSAUTIL_PACKAGE).tar.gz; \
	fi
	if [ ! -f $(ALSAUTIL_PACKAGE)/Makefile ]; then \
		$(MAKE) alsautil-config; \
		$(MAKE) -C $(ALSAUTIL_PACKAGE)/amixer;\
		install -s --strip-program=$(STRIP) $(ALSAUTIL_PACKAGE)/amixer/amixer $(TARGET_DIR)/usr/bin;\
	fi
	
alsalib-config:
	cd $(ALSALIB_PACKAGE) && ./configure --host=$(DF_CROSS) --enable-static=no --enable-shared --disable-python CC=$(CC) CFLAGS=-O2

alsautil-config:
	cd $(ALSAUTIL_PACKAGE) && ./configure --host=$(DF_CROSS) LDFLAGS="-L$(shell pwd)/alsa-lib-1.0.16/src/.libs -lasound -L$(shell pwd)/ncurses-5.5/lib/ -lncurses" CFLAGS=-I$(shell pwd)/alsa-lib-1.0.16/include CC=$(CC)

ncurses-config:
	cd $(NCURSES_PACKAGE) && ./configure --host=$(DF_CROSS) --prefix=$(shell pwd) --with-install-prefix CC=$(CC)

jiffies:
	$(MAKE) -C $(JIFFIES_PACKAGE) KERNEL_SRC=$(LINUX_DIR) TARGET=$(TARGET_DIR)/lib/modules modules install
#	$(MAKE) -C $(JIFFIES_PACKAGE)/api #CROSS=$(CROSS)
#	$(MAKE) -C $(JIFFIES_PACKAGE)/driver LINUX_SRC=$(LINUX_DIR) TARGET=$(TARGET_DIR)/lib/modules modules install

iptables:
	if [ ! -d $(IPTABLES_PACKAGE) ]; then \
        tar -jxf $(IPTABLES_PACKAGE).tar.bz2; \
        $(MAKE) iptables-config; \
    fi
	$(MAKE) -C $(IPTABLES_PACKAGE)
	install -s --strip-program=$(STRIP) $(IPTABLES_PACKAGE)/iptables-static $(TARGET_DIR)/sbin/iptables

iptables-config:
	cd $(IPTABLES_PACKAGE) && ./configure --host=$(DF_CROSS) --with-kernel=$(LINUX_DIR) --enable-static=yes --enable-shared=no

firewall:
	make -C $(FIREWALL) TARGET=$(TARGET_DIR)
	if [ -f $(TARGET_DIR)/usr/sbin/DefaultRules.sh ]; then \
		mv $(TARGET_DIR)/usr/sbin/DefaultRules.sh $(TARGET_DIR)/etc/DefaultRules.sh; \
	fi
	if [ -f $(TARGET_DIR)/usr/sbin/IpFilter.sh ]; then \
		mv $(TARGET_DIR)/usr/sbin/IpFilter.sh $(TARGET_DIR)/etc/IpFilter.sh; \
	fi

vsftpd:
	$(MAKE) -C $(VSFTPD_PACKAGE) CC=$(CC)
	install -s --strip-program=$(STRIP) $(VSFTPD_PACKAGE)/vsftpd $(TARGET_DIR)/usr/sbin/
	cp $(VSFTPD_PACKAGE)/vsftpd.conf $(TARGET_DIR)/etc/

dropbear:
	make -C $(DROPBEAR) dropbear
	install -s --strip-program=$(STRIP) $(DROPBEAR)/dropbear $(TARGET_DIR)/usr/sbin

alsa-lib-clean:
	if [ -f $(ALSALIB_PACKAGE)/Makefile ]; then \
		$(MAKE) -C $(ALSALIB_PACKAGE) distclean; \
	fi

alsa-util-clean:
#	$(MAKE) -C $(ALSAUTIL_PACKAGE)/amixer clean
	if [ -f $(ALSAUTIL_PACKAGE)/Makefile ]; then \
		$(MAKE) -C $(ALSAUTIL_PACKAGE) distclean;\
	fi

jiffies-clean:
	$(MAKE) -C $(JIFFIES_PACKAGE) clean
#	$(MAKE) -C $(JIFFIES_PACKAGE)/api clean
#	$(MAKE) -C $(JIFFIES_PACKAGE)/driver LINUX_SRC=$(LINUX_DIR) clean

iptables-clean:
	$(MAKE) -C $(IPTABLES_PACKAGE) clean

vsftpd-clean:
	$(MAKE) -C $(VSFTPD_PACKAGE) clean

clean: jiffies-clean vsftpd-clean
