# OpenWrt SDK Makefile
TOPDIR:=${shell pwd}
BIN_DIR:=$(TOPDIR)/bin
BUILD_DIR:=$(TOPDIR)/build
TARGET_PATH := $(TOPDIR)/utils
MKFS_JFFS2:=$(TOPDIR)/utils/mkfs.jffs2
IMAGE:=$(BUILD_DIR)/root_fs
TARGET_DIR:=$(TOPDIR)/root
SED:=PATH="$(TARGET_PATH)" sed -i -e
PACKAGE_DIR=$(TOPDIR)/packages
LINUX_IMAGE:=$(BUILD_DIR)/buildroot-kernel-image
IPKG:=IPKG_INSTROOT=$(TARGET_DIR) IPKG_CONF_DIR=$(BUILD_DIR)/etc $(TARGET_DIR)/bin/ipkg -force-defaults -force-depends

all: build

include ./include/jffs2.mk
include ./include/squashfs-lzma.mk

IMAGE_TARGETS := $(JFFS2_TARGETS) $(SQUASHFS_TARGETS)
TARGET_FS:=squashfs jffs2

define IMAGE_template
$(BIN_DIR)/openwrt-wrt54g-$(1).bin: $(BIN_DIR)/openwrt-generic-$(patsubst jffs2,jffs2-4MB,$(1)).trx
	PATH=$(TARGET_PATH) addpattern -2 -i $$< -o $$@ -g
	$(SED) "1s,^W54S,W54G," $$@
	
$(BIN_DIR)/openwrt-wrt54gs-$(1).bin: $(BIN_DIR)/openwrt-generic-$(patsubst jffs2,jffs2-8MB,$(1)).trx
	PATH=$(TARGET_PATH) addpattern -2 -i $$< -o $$@ -g
	
IMAGE_TARGETS += $(BIN_DIR)/openwrt-wrt54g-$(1).bin
IMAGE_TARGETS += $(BIN_DIR)/openwrt-wrt54gs-$(1).bin


$(BIN_DIR)/openwrt-motorola-$(1).bin: $(BIN_DIR)/openwrt-generic-$(patsubst jffs2,jffs2-8MB,$(1)).trx
	PATH=$(TARGET_PATH) motorola-bin $$< $$@

IMAGE_TARGETS += $(BIN_DIR)/openwrt-motorola-$(1).bin
endef

$(foreach fs,$(TARGET_FS),$(eval $(call IMAGE_template,$(fs))))

$(IMAGE_TARGETS): $(TARGET_DIR) $(BIN_DIR) packages_install

$(BIN_DIR):
	mkdir -p $@

$(TARGET_DIR):
	mkdir -p $@
	cp -a $(TOPDIR)/target_skeleton/* $(TARGET_DIR)/

$(BUILD_DIR)/etc/ipkg.conf:
	mkdir -p $(BUILD_DIR)/etc
	echo -e 'dest root /\noption offline_root $(TARGET_DIR)' > $@

packages_install: $(TARGET_DIR) $(BUILD_DIR)/etc/ipkg.conf
	for package in $(PACKAGE_DIR)/*.ipk; do \
		$(IPKG) install $$package; \
	done

build: clean $(IMAGE_TARGETS)
clean:
	rm -rf $(TARGET_DIR) $(BIN_DIR) $(IMAGE)-* $(BUILD_DIR)/etc
