75 lines
2.3 KiB
Makefile
75 lines
2.3 KiB
Makefile
######################################################
|
|
#
|
|
# 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))
|
|
|
|
|
|
|