You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.3 KiB

######################################################
#
# 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))