######################################################
#
#  An example makefile to fetch a package from sources
#  then fetch the ipkg updates required to the base package
#  extract the archives into the build tree
#  and then build the source
#
######################################################


#  For this example we'll use a fairly simple package that compiles easily
#  and has sources available for download at sourceforge
OIDENTD=oidentd-2.0.7
OIDENTD_TARGET=oidentd
OIDENTD_DIR=$(BUILD_DIR)/oidentd-2.0.7
OIDENTD_IPKTARGET=oidentd-2.0.7_mipsel.ipk
OIDENTD_SITE=http://easynews.dl.sourceforge.net/sourceforge/ojnk
OIDENTD_SOURCE=oidentd-2.0.7.tar.gz
OIDENTDIPK_SITE=http://openwrt.rozeware.bc.ca/ipkg-dev
OIDENTDIPK_SRC=oidentd-2.0.7-pkg.tgz




# define a target for the master makefile
oidentd:	$(OIDENTD_DIR)/$(OIDENTD_TARGET)

oidentd-ipk:	$(BUILD_DIR)/$(OIDENTD_IPKTARGET) 

# We need to download sources if we dont have them
$(DL_DIR)/$(OIDENTD_SOURCE) :
	$(WGET) -P $(DL_DIR) $(OIDENTD_SITE)/$(OIDENTD_SOURCE)

# As well as the upstream package sources, we need the updates
# for ipkg packaging
$(DL_DIR)/$(OIDENTDIPK_SRC)  :  
	$(WGET) -P $(DL_DIR) $(OIDENTDIPK_SITE)/$(OIDENTDIPK_SRC)

# if we have the sources, they do no good unless they are unpacked
$(OIDENTD_DIR)/.unpacked:	$(DL_DIR)/$(OIDENTD_SOURCE)
	tar -C $(BUILD_DIR) -zxf $(DL_DIR)/$(OIDENTD_SOURCE)
	touch $(OIDENTD_DIR)/.unpacked
	
# if we have the sources unpacked, we need to configure them
$(OIDENTD_DIR)/.configured:	$(OIDENTD_DIR)/.unpacked
	(cd $(OIDENTD_DIR); rm -rf config.cache; \
		$(TARGET_CONFIGURE_OPTS) \
		./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/usr \
		--exec-prefix=/usr \
		--bindir=/usr/bin \
		--sbindir=/usr/sbin \
	);
	touch $(OIDENTD_DIR)/.configured
	
	
# with the upstream sources unpacked, they still dont do much good without
# the ipkg control and rule files
$(OIDENTD_DIR)/ipkg/rules  :	$(DL_DIR)/$(OIDENTDIPK_SRC) $(OIDENTD_DIR)/.unpacked
	tar -C $(OIDENTD_DIR) -zxf $(DL_DIR)/$(OIDENTDIPK_SRC)
	
# now that we have it all in place, just build it
$(OIDENTD_DIR)/$(OIDENTD_TARGET):	$(OIDENTD_DIR)/.configured
	cd $(OIDENTD_DIR); make
	

$(BUILD_DIR)/$(OIDENTD_IPKTARGET):	$(OIDENTD_DIR)/$(OIDENTD_TARGET) $(OIDENTD_DIR)/ipkg/rules
	(cd $(OIDENTD_DIR); $(IPKG_BUILDPACKAGE))
	
	
		
