150 lines
6.2 KiB
Makefile
150 lines
6.2 KiB
Makefile
#
|
|
# Copyright(C) 2010-2013, Asio Software Technologies
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See COPYING in the top level directory for more information.
|
|
#
|
|
|
|
FORCE+=kernel_menuconfig openwrt_menuconfig
|
|
|
|
kernel_menuconfig: openwrt/prepare
|
|
@cd $(TOPDIR)/temp/build/$(TARGET_ARCH); $(MAKE) kernel_menuconfig
|
|
|
|
openwrt_menuconfig: openwrt/prepare
|
|
@cd $(TOPDIR)/temp/build/$(TARGET_ARCH); $(MAKE) menuconfig
|
|
|
|
openwrt/feeds: openwrt/fetch
|
|
@if [ ! -d $(TOPDIR)/temp/build/$(TARGET_ARCH)/feeds ]; then \
|
|
if [ "$(CONFIG_PACKAGES_ESSENTIAL_REPO_GIT)" == "y" ]; then \
|
|
if [ "$(PACKAGES_ESSENTIAL_REPO_GIT_URL)" == "" ]; then \
|
|
echo "Invalid essential packages GIT address. Please check your configuration..."; \
|
|
exit 1; \
|
|
fi; \
|
|
FEED="src-git packages $(PACKAGES_ESSENTIAL_REPO_GIT_URL)"; \
|
|
if [ "$(PACKAGES_ESSENTIAL_REPO_GIT_BRANCH)" != "master" ]; then \
|
|
FEED="$$FEED;$(PACKAGES_ESSENTIAL_REPO_GIT_BRANCH)"; \
|
|
fi; \
|
|
elif [ "$(CONFIG_PACKAGES_ESSENTIAL_REPO_SVN)" == "y" ]; then \
|
|
if [ "$(PACKAGES_ESSENTIAL_REPO_SVN_URL)" == "" ]; then \
|
|
echo "Invalid essential packages SVN address. Please check your configuration..."; \
|
|
exit 1; \
|
|
fi; \
|
|
FEED="src-svn packages $(PACKAGES_ESSENTIAL_REPO_SVN_URL)"; \
|
|
if [ "$(PACKAGES_ESSENTIAL_REPO_SVN_REV)" != "0" ]; then \
|
|
FEED="$$FEED@$(PACKAGES_ESSENTIAL_REPO_SVN_REV)"; \
|
|
fi; \
|
|
else \
|
|
echo "Unsupported repository type used for essential packages. Please check your configuration..."; \
|
|
exit 1; \
|
|
fi; \
|
|
echo "$$FEED" > $(TOPDIR)/temp/build/$(TARGET_ARCH)/feeds.conf; \
|
|
if [ "$(CONFIG_PACKAGES_EXTRA_REPO)" == "y" ]; then \
|
|
if [ "$(CONFIG_PACKAGES_EXTRA_REPO_GIT)" == "y" ]; then \
|
|
if [ "$(PACKAGES_EXTRA_REPO_GIT_URL)" == "" ]; then \
|
|
echo "Invalid extra packages GIT address. Please check your configuration..."; \
|
|
exit 1; \
|
|
fi; \
|
|
FEED="src-git extra $(PACKAGES_EXTRA_REPO_GIT_URL)"; \
|
|
if [ "$(PACKAGES_EXTRA_REPO_GIT_BRANCH)" != "master" ]; then \
|
|
FEED="$$FEED;$(PACKAGES_EXTRA_REPO_GIT_BRANCH)"; \
|
|
fi; \
|
|
elif [ "$(CONFIG_PACKAGES_EXTRA_REPO_SVN)" == "y" ]; then \
|
|
if [ "$(PACKAGES_EXTRA_REPO_SVN_URL)" == "" ]; then \
|
|
echo "Invalid essential packages SVN address. Please check your configuration..."; \
|
|
exit 1; \
|
|
fi; \
|
|
FEED="src-svn extra $(PACKAGES_EXTRA_REPO_SVN_URL)"; \
|
|
if [ "$(PACKAGES_EXTRA_REPO_SVN_REV)" != "0" ]; then \
|
|
FEED="$$FEED@$(PACKAGES_EXTRA_REPO_SVN_REV)"; \
|
|
fi; \
|
|
else \
|
|
echo "Unsupported repository type used for extra packages. Please check your configuration..."; \
|
|
exit 1; \
|
|
fi; \
|
|
echo "$$FEED" >> $(TOPDIR)/temp/build/$(TARGET_ARCH)/feeds.conf; \
|
|
fi; \
|
|
fi
|
|
|
|
openwrt/fetch: kagera/prepare
|
|
@if [ ! -d $(TOPDIR)/temp/build/$(TARGET_ARCH) ]; then \
|
|
if [ "$(CONFIG_OPENWRT_REPO_GIT)" == "y" ]; then \
|
|
if [ "$(OPENWRT_REPO_GIT_URL)" == "" ]; then \
|
|
echo "Invalid OpenWrt GIT address. Please check your configuration..."; \
|
|
exit 1; \
|
|
fi; \
|
|
git clone --depth 1 $(OPENWRT_REPO_GIT_URL) $(TOPDIR)/temp/build/$(TARGET_ARCH); \
|
|
if [ "$(OPENWRT_REPO_GIT_BRANCH)" != "master" ]; then \
|
|
cd $(TOPDIR)/temp/build/$(TARGET_ARCH); \
|
|
git checkout $(OPENWRT_REPO_GIT_BRANCH); \
|
|
fi; \
|
|
elif [ "$(CONFIG_OPENWRT_REPO_SVN)" == "y" ]; then \
|
|
if [ "$(OPENWRT_REPO_SVN_URL)" == "" ]; then \
|
|
echo "Invalid OpenWrt SVN address. Please check your configuration..."; \
|
|
exit 1; \
|
|
fi; \
|
|
if [ $(OPENWRT_REPO_SVN_REV) == "0" ]; then \
|
|
svn checkout $(OPENWRT_REPO_SVN_URL) $(TOPDIR)/temp/build/$(TARGET_ARCH); \
|
|
else \
|
|
svn checkout $(OPENWRT_REPO_SVN_URL) $(TOPDIR)/temp/build/$(TARGET_ARCH) -r $(OPENWRT_REPO_SVN_REV); \
|
|
fi; \
|
|
else \
|
|
echo "Unsupported repository type used for OpenWrt source code. Please check your configuration..."; \
|
|
exit 1; \
|
|
fi; \
|
|
cd $(TOPDIR); \
|
|
rm -f $(TOPDIR)/temp/build/$(TARGET_ARCH)/feeds.conf.default; \
|
|
fi
|
|
|
|
openwrt/prepare: openwrt/feeds
|
|
@rm -rf $(TOPDIR)/temp/build/$(TARGET_ARCH)/dl
|
|
@ln -sf $(TOPDIR)/temp/download $(TOPDIR)/temp/build/$(TARGET_ARCH)/dl
|
|
@cp -afr $(TOPDIR)/packages/* $(TOPDIR)/temp/build/$(TARGET_ARCH)/package/
|
|
@cp -afr $(TOPDIR)/tools/* $(TOPDIR)/temp/build/$(TARGET_ARCH)/tools/
|
|
@if [ "$(CONFIG_KAGERA_APPLY_PATCHES)" == "y" ]; then \
|
|
if [ ! -f $(TOPDIR)/temp/.$(TARGET_ARCH).patched ]; then \
|
|
PATCHES=`find $(TOPDIR)/patches/ -name "*.diff" -o -name "*.patch" | sort -n`; \
|
|
if [ -n "$$PATCHES" ]; then \
|
|
for PATCH in $$PATCHES; do \
|
|
for PREFIX in {0..4}; do \
|
|
if patch -d "$(TOPDIR)/temp/build/$(TARGET_ARCH)" --dry-run -p$$PREFIX -i "$$PATCH" --silent > /dev/null; then \
|
|
patch -d "$(TOPDIR)/temp/build/$(TARGET_ARCH)" -p$$PREFIX -i "$$PATCH" --silent; \
|
|
break; \
|
|
elif [ "$$PREFIX" -ge 4 ]; then \
|
|
echo "Patch $$PATCH does not fit..."; \
|
|
exit 2; \
|
|
fi; \
|
|
done; \
|
|
done; \
|
|
fi; \
|
|
if [ "$(CONFIG_KAGERA_DISABLE_ARCH_PATCHES)" != "y" ]; then \
|
|
PATCHES=`find $(TOPDIR)/targets/$(TARGET_ARCH)/patches/ -name "*.diff" -o -name "*.patch" | sort -n`; \
|
|
if [ -n "$$PATCHES" ]; then \
|
|
for PATCH in $$PATCHES; do \
|
|
for PREFIX in {0..4}; do \
|
|
if patch -d "$(TOPDIR)/temp/build/$(TARGET_ARCH)" --dry-run -p$$PREFIX -i "$$PATCH" --silent > /dev/null; then \
|
|
patch -d "$(TOPDIR)/temp/build/$(TARGET_ARCH)" -p$$PREFIX -i "$$PATCH" --silent; \
|
|
break; \
|
|
elif [ "$$PREFIX" -ge 4 ]; then \
|
|
echo "Patch $$PATCH does not fit..."; \
|
|
exit 2; \
|
|
fi; \
|
|
done; \
|
|
done; \
|
|
fi; \
|
|
fi; \
|
|
touch $(TOPDIR)/temp/.$(TARGET_ARCH).patched; \
|
|
fi; \
|
|
fi
|
|
$(VSED) $(TOPDIR)/temp/build/$(TARGET_ARCH)/package/base-files/files/etc/banner
|
|
$(VSED) $(TOPDIR)/temp/build/$(TARGET_ARCH)/package/base-files/files/etc/version
|
|
$(VSED) $(TOPDIR)/temp/build/$(TARGET_ARCH)/package/system/opkg/files/opkg.conf
|
|
@if [ ! -d $(TOPDIR)/temp/build/$(TARGET_ARCH)/feeds ]; then \
|
|
cd $(TOPDIR)/temp/build/$(TARGET_ARCH); \
|
|
./scripts/feeds update -a; \
|
|
./scripts/feeds install -a; \
|
|
fi
|
|
@if [ ! -f $(TOPDIR)/temp/.$(TARGET_ARCH).config ]; then \
|
|
cp -af $(TOPDIR)/targets/$(TARGET_ARCH)/profiles/$(TARGET_BOARD)/config $(TOPDIR)/temp/build/$(TARGET_ARCH)/.config; \
|
|
touch $(TOPDIR)/temp/.$(TARGET_ARCH).config; \
|
|
fi
|