| 1 | #!/usr/bin/make -f |
|---|
| 2 | |
|---|
| 3 | ifndef BUILDROOT |
|---|
| 4 | ERR := $(error Please set BUILDROOT to OpenWRT's buildroot) |
|---|
| 5 | endif |
|---|
| 6 | |
|---|
| 7 | ARCH:=mipsel |
|---|
| 8 | |
|---|
| 9 | WIFIDOG_MAJOR_VERSION := $(shell awk -F= '$$1 == "WIFIDOG_MAJOR_VERSION" {print $$2}' configure.in) |
|---|
| 10 | WIFIDOG_MINOR_VERSION := $(shell awk -F= '$$1 == "WIFIDOG_MINOR_VERSION" {print $$2}' configure.in) |
|---|
| 11 | WIFIDOG_MICRO_VERSION := $(shell awk -F= '$$1 == "WIFIDOG_MICRO_VERSION" {print $$2}' configure.in) |
|---|
| 12 | VERSION=$(WIFIDOG_MAJOR_VERSION).$(WIFIDOG_MINOR_VERSION).$(WIFIDOG_MICRO_VERSION) |
|---|
| 13 | |
|---|
| 14 | BUILD_DIR:=$(CURDIR)/ipkg |
|---|
| 15 | TMP_DIR:=$(BUILD_DIR)/tmp |
|---|
| 16 | STAGING_DIR=$(BUILDROOT)/build_$(ARCH)/staging_dir |
|---|
| 17 | IPTABLES_DIR := $(BUILDROOT)/build_$(ARCH)/iptables-1.2.9 |
|---|
| 18 | KERNEL_MODULES_DIR := $(BUILDROOT)/build_$(ARCH)/WRT54GS/release/src/linux/linux/modules/lib/modules/2.4.20 |
|---|
| 19 | UCLIBC_DIR := $(BUILDROOT)/build_$(ARCH)/uClibc |
|---|
| 20 | |
|---|
| 21 | GNU_TARGET_NAME=$(ARCH)-linux |
|---|
| 22 | TARGET_CROSS=$(STAGING_DIR)/bin/$(ARCH)-linux-uclibc- |
|---|
| 23 | |
|---|
| 24 | CC=$(TARGET_CROSS)gcc |
|---|
| 25 | LD=$(TARGET_CROSS)ld |
|---|
| 26 | AR=$(TARGET_CROSS)ar |
|---|
| 27 | RANLIB=$(TARGET_CROSS)ranlib |
|---|
| 28 | STRIP=$(TARGET_CROSS)strip |
|---|
| 29 | IPKG_BUILD=$(STAGING_DIR)/bin/ipkg-build |
|---|
| 30 | |
|---|
| 31 | all: binary |
|---|
| 32 | |
|---|
| 33 | build: build-wifidog build-iptables |
|---|
| 34 | |
|---|
| 35 | build-wifidog: build-wifidog-stamp |
|---|
| 36 | build-wifidog-stamp: |
|---|
| 37 | ./autogen.sh BUILDROOT=$(BUILDROOT) --prefix=/usr |
|---|
| 38 | $(MAKE) |
|---|
| 39 | |
|---|
| 40 | touch build-wifidog-stamp |
|---|
| 41 | |
|---|
| 42 | build-iptables: build-iptables-stamp |
|---|
| 43 | build-iptables-stamp: |
|---|
| 44 | sed -i "s/PF_EXT_SLIB:=icmp/PF_EXT_SLIB:=mac icmp/" $(IPTABLES_DIR)/extensions/Makefile |
|---|
| 45 | CC=$(CC) LD=$(LD) AR=$(AR) RANLIB=$(RANLIB) $(MAKE) -C $(IPTABLES_DIR) KERNEL_DIR=../../linux/linux/ |
|---|
| 46 | |
|---|
| 47 | touch build-iptables-stamp |
|---|
| 48 | |
|---|
| 49 | clean: |
|---|
| 50 | -$(MAKE) clean |
|---|
| 51 | -$(MAKE) distclean |
|---|
| 52 | $(MAKE) -C $(IPTABLES_DIR) clean |
|---|
| 53 | rm -rf $(TMP_DIR) |
|---|
| 54 | rm -f build-wifidog-stamp |
|---|
| 55 | rm -f build-iptables-stamp |
|---|
| 56 | |
|---|
| 57 | install: build install-wifidog install-iptables install-kernel-modules install-pthread |
|---|
| 58 | mkdir -p $(TMP_DIR)/etc |
|---|
| 59 | cp $(CURDIR)/wifidog.conf $(TMP_DIR)/etc |
|---|
| 60 | |
|---|
| 61 | install-wifidog: |
|---|
| 62 | mkdir -p $(TMP_DIR)/usr/bin |
|---|
| 63 | cp $(CURDIR)/src/wifidog $(TMP_DIR)/usr/bin |
|---|
| 64 | $(STRIP) $(TMP_DIR)/usr/bin/wifidog |
|---|
| 65 | |
|---|
| 66 | install-iptables: |
|---|
| 67 | mkdir -p $(TMP_DIR)/usr/lib/iptables |
|---|
| 68 | cp $(IPTABLES_DIR)/extensions/libipt_{mac,mark,MARK}.so $(TMP_DIR)/usr/lib/iptables |
|---|
| 69 | |
|---|
| 70 | install-kernel-modules: |
|---|
| 71 | mkdir -p $(TMP_DIR)/lib/modules/2.4.20/kernel/net/ipv4/netfilter |
|---|
| 72 | cp $(KERNEL_MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_mac.o $(TMP_DIR)/lib/modules/2.4.20/kernel/net/ipv4/netfilter |
|---|
| 73 | |
|---|
| 74 | install-pthread: |
|---|
| 75 | mkdir -p $(TMP_DIR)/lib |
|---|
| 76 | cp $(UCLIBC_DIR)/lib/libpthread*so $(TMP_DIR)/lib |
|---|
| 77 | cp $(UCLIBC_DIR)/lib/libpthread*so.0 $(TMP_DIR)/lib |
|---|
| 78 | |
|---|
| 79 | binary: build install |
|---|
| 80 | mkdir -p $(TMP_DIR)/CONTROL |
|---|
| 81 | echo "Package: wifidog" > $(TMP_DIR)/CONTROL/control |
|---|
| 82 | echo "Version: $(VERSION)" >> $(TMP_DIR)/CONTROL/control |
|---|
| 83 | echo "Architecture: $(ARCH)" >> $(TMP_DIR)/CONTROL/control |
|---|
| 84 | echo "Section: base" >> $(TMP_DIR)/CONTROL/control |
|---|
| 85 | echo "Maintainer: WiFiDog <wifidog@isf.waglo.com>" >> $(TMP_DIR)/CONTROL/control |
|---|
| 86 | echo "Priority: optional" >> $(TMP_DIR)/CONTROL/control |
|---|
| 87 | echo "Description: The WiFiDog project is a complete and embeedable captive portal solution for wireless community groups or individuals who wish to open a free HotSpot while still preventing abuse of their Internet connection." >> $(TMP_DIR)/CONTROL/control |
|---|
| 88 | echo "Source: http://www.ilesansfil.org/wiki/WiFiDog" >> $(TMP_DIR)/CONTROL/control |
|---|
| 89 | $(IPKG_BUILD) -c -o root -g root $(TMP_DIR) $(CURDIR)/../ |
|---|
| 90 | |
|---|
| 91 | .PHONY: all clean build install binary |
|---|
| 92 | |
|---|