From 219a6dab8995aad9ac4860cc1a84d6f3509a03a4 Mon Sep 17 00:00:00 2001 From: wbx Date: Sun, 17 May 2009 14:41:34 +0200 Subject: Initial import --- mk/build.mk | 182 ++++++++ mk/buildhlp.mk | 98 ++++ mk/cpu.mk | 23 + mk/fetch.mk | 83 ++++ mk/image.mk | 69 +++ mk/kernel-build.mk | 61 +++ mk/kernel.mk | 77 ++++ mk/linux.mk | 11 + mk/mirrors.mk | 147 ++++++ mk/modules.mk | 1254 ++++++++++++++++++++++++++++++++++++++++++++++++++++ mk/package.mk | 212 +++++++++ mk/pkg-bottom.mk | 212 +++++++++ mk/rootfs.mk | 21 + mk/split-cfg.mk | 10 + mk/toolchain.mk | 6 + mk/tools.mk | 6 + mk/vars.mk | 120 +++++ 17 files changed, 2592 insertions(+) create mode 100644 mk/build.mk create mode 100644 mk/buildhlp.mk create mode 100644 mk/cpu.mk create mode 100644 mk/fetch.mk create mode 100644 mk/image.mk create mode 100644 mk/kernel-build.mk create mode 100644 mk/kernel.mk create mode 100644 mk/linux.mk create mode 100644 mk/mirrors.mk create mode 100644 mk/modules.mk create mode 100644 mk/package.mk create mode 100644 mk/pkg-bottom.mk create mode 100644 mk/rootfs.mk create mode 100644 mk/split-cfg.mk create mode 100644 mk/toolchain.mk create mode 100644 mk/tools.mk create mode 100644 mk/vars.mk (limited to 'mk') diff --git a/mk/build.mk b/mk/build.mk new file mode 100644 index 000000000..b08b97273 --- /dev/null +++ b/mk/build.mk @@ -0,0 +1,182 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +TOPDIR=$(shell pwd) +export TOPDIR + +ifneq ($(shell umask 2>/dev/null | sed 's/0*022/OK/'),OK) +$(error your umask is not 022) +endif + +CONFIG_CONFIG_IN = Config.in +CONFIG = config + +noconfig_targets:= menuconfig \ + _config \ + _mconfig \ + tags + +MAKECLEAN_SYMBOLS= ADK_TARGET_LIB_UCLIBC ADK_TARGET_LIB_GLIBC ADK_SSP ADK_IPV6 ADK_CXX +POSTCONFIG= -@\ + if [ -f .config.old ];then \ + if [ -d .cfg ];then \ + what=cleandevice; \ + for symbol in ${MAKECLEAN_SYMBOLS}; do \ + newval=$$(grep -e "^$$symbol=" -e "^\# $$symbol " .config); \ + oldval=$$(cat .cfg/"$$symbol" 2>&-); \ + [[ $$newval = $$oldval ]] && continue; \ + echo; \ + echo >&2 "WARNING: Toolchain related options have changed, 'make" \ + "$$what' might be required!"; \ + break; \ + done; \ + fi; \ + if [ "$$(grep ^BUSYBOX .config|md5sum)" != "$$(grep ^BUSYBOX .config.old|md5sum)" ];then \ + if [ -f build_$(CPU_ARCH)/w-busybox*/busybox*/.configure_done ];then \ + rm build_$(CPU_ARCH)/w-busybox*/busybox*/.configure_done; \ + fi; \ + fi; \ + fi + +# Pull in the user's configuration file +ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) +-include $(TOPDIR)/.config +endif + +ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y) +include $(TOPDIR)/rules.mk +include ${TOPDIR}/mk/split-cfg.mk + +all: world + +.NOTPARALLEL: +.PHONY: all world clean cleandevice cleandir distclean image_clean + +world: $(DISTDIR) $(BUILD_DIR) $(TARGET_DIR) $(PACKAGE_DIR) ${TOPDIR}/.cfg/ADK_HAVE_DOT_CONFIG + ${BASH} ${TOPDIR}/scripts/scan-pkgs.sh + $(MAKE) -f mk/build.mk toolchain/install target/config-prepare target/compile package/compile root_clean package/install package_index target/install + +package_index: + -cd ${PACKAGE_DIR} && \ + ${BASH} ${TOPDIR}/scripts/ipkg-make-index.sh . >Packages + +$(DISTDIR): + mkdir -p $(DISTDIR) + +$(BUILD_DIR): + mkdir -p $(BUILD_DIR) + +$(TARGET_DIR): + mkdir -p $(TARGET_DIR) + +$(PACKAGE_DIR): + mkdir -p ${PACKAGE_DIR}/.stamps + +${STAGING_DIR} ${STAGING_DIR}/etc ${STAGING_TOOLS}: + mkdir -p ${STAGING_DIR}/{bin,etc,include,lib,usr} \ + ${STAGING_TOOLS}/{bin,lib} + cd ${STAGING_DIR}/usr; ln -s ../include include + +${STAGING_DIR}/etc/ipkg.conf: ${STAGING_DIR}/etc + echo "dest root /" >${STAGING_DIR}/etc/ipkg.conf + echo "option offline_root ${TARGET_DIR}" >>$(STAGING_DIR)/etc/ipkg.conf + +package/%: ${TOPDIR}/.cfg/ADK_HAVE_DOT_CONFIG ${STAGING_DIR}/etc/ipkg.conf + $(MAKE) -C package $(patsubst package/%,%,$@) + +target/%: ${TOPDIR}/.cfg/ADK_HAVE_DOT_CONFIG + $(MAKE) -C target $(patsubst target/%,%,$@) + +toolchain/%: ${STAGING_DIR} + $(MAKE) -C toolchain $(patsubst toolchain/%,%,$@) + +image: + $(MAKE) -C target image + +switch: + echo "Saving configuration for device: ${DEVICE}" + cp .config .config.${DEVICE} + if [ -f .config.${DEV} ];then cp .config.${DEV} .config; \ + cp .config.${DEV} .config.old; \ + echo "Setting configuration to device: ${DEV}"; \ + else echo "No old device config found";mv .config .config.bak;fi + +############################################################# +# +# Cleanup and misc junk +# +############################################################# +root_clean: + @$(TRACE) root_clean + rm -rf $(TARGET_DIR) + +clean: + @$(TRACE) clean + $(MAKE) -C $(CONFIG) clean + rm -rf $(BUILD_DIR) $(BIN_DIR) $(TARGET_DIR) ${TOPDIR}/.cfg + rm -f ${TOPDIR}/package/*/info.mk + +cleankernel: + @$(TRACE) cleankernel + rm -rf $(TOOLCHAIN_BUILD_DIR)/linux* $(BUILD_DIR)/linux + +cleandir: + @$(TRACE) cleandir + $(MAKE) -C $(CONFIG) clean + rm -rf $(BUILD_DIR_PFX) $(BIN_DIR_PFX) $(TARGET_DIR_PFX) ${TOPDIR}/.cfg + rm -rf $(TOOLCHAIN_BUILD_DIR_PFX) $(STAGING_PARENT_PFX) $(TOOLS_BUILD_DIR) + rm -f .tmpconfig.h ${TOPDIR}/package/*/info.mk + +cleandevice: + @$(TRACE) cleandevice + $(MAKE) -C $(CONFIG) clean + rm -rf $(BUILD_DIR) $(BIN_DIR) $(TARGET_DIR) ${TOPDIR}/.cfg + rm -rf $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT) + rm -f .tmpconfig.h ${TOPDIR}/package/*/info.mk + +distclean: + @$(TRACE) distclean + $(MAKE) -C $(CONFIG) clean + rm -rf $(BUILD_DIR_PFX) $(BIN_DIR_PFX) $(TARGET_DIR_PFX) $(DISTDIR) ${TOPDIR}/.cfg + rm -rf $(TOOLCHAIN_BUILD_DIR_PFX) $(STAGING_PARENT_PFX) $(TOOLS_BUILD_DIR) + rm -f .config* .tmpconfig.h ${TOPDIR}/package/*/info.mk + +else # ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y) + +include $(TOPDIR)/prereq.mk + +all: menuconfig + @echo "Start the build with \"make\" or with \"make v\" to be verbose" + +# configuration +# --------------------------------------------------------------------------- + +$(CONFIG)/conf: + @$(MAKE) -C $(CONFIG) conf + +$(CONFIG)/mconf: + @$(MAKE) -C $(CONFIG) + +menuconfig: $(CONFIG)/mconf + @$(CONFIG)/mconf $(CONFIG_CONFIG_IN) + ${POSTCONFIG} + +_config: $(CONFIG)/conf + -@touch .config + @$(CONFIG)/conf ${W} $(CONFIG_CONFIG_IN) >/dev/null + ${POSTCONFIG} + +.NOTPARALLEL: _mconfig +_mconfig: ${CONFIG}/conf _mconfig2 _config +_mconfig2: ${CONFIG}/conf + @${CONFIG}/conf -M ${RCONFIG} >/dev/null + +distclean: + @$(MAKE) -C $(CONFIG) clean + rm -rf $(BUILD_DIR) $(TOOLS_BUILD_DIR) $(BIN_DIR) $(DISTDIR) ${TOPDIR}/.cfg + rm -rf $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT) $(TARGET_DIR) + rm -f .config* .tmpconfig.h ${TOPDIR}/package/*/info.mk + +endif # ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y) diff --git a/mk/buildhlp.mk b/mk/buildhlp.mk new file mode 100644 index 000000000..b6b70d67d --- /dev/null +++ b/mk/buildhlp.mk @@ -0,0 +1,98 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +ifneq ($(strip ${MASTER_SITES}),) +ifeq ($(strip ${DISTFILES}),) +DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz +endif +endif + +# This is where all package operation is done in +WRKDIR?= ${WRKDIR_BASE}/w-${PKG_NAME}-${PKG_VERSION}-${PKG_RELEASE} +# This is where source code is extracted and patched +WRKDIST?= ${WRKDIR}/${PKG_NAME}-${PKG_VERSION} +# This is where the configure script is seeked (localed) +WRKSRC?= ${WRKDIST} +# This is where configure, make and make install (fake) run from +WRKBUILD?= ${WRKSRC} +# This is where make install (fake) writes to +WRKINST?= ${WRKDIR}/fake-${ARCH}/root + +ifeq ($(strip ${NO_CHECKSUM}),) +_CHECKSUM_COOKIE= ${WRKDIR}/.checksum_done +else +_CHECKSUM_COOKIE= +endif + +post-extract: + +ifeq ($(strip ${NO_DISTFILES}),1) +${WRKDIST}/.extract_done: + rm -rf ${WRKDIST} ${WRKSRC} ${WRKBUILD} + mkdir -p ${WRKDIR} ${WRKDIST} + ${MAKE} do-extract + @${MAKE} post-extract + touch $@ + +fetch refetch checksum do-extract: + +__use_generic_patch_target:=42 +else ifneq ($(strip ${DISTFILES}),) +include ${TOPDIR}/mk/fetch.mk + +${WRKDIST}/.extract_done: ${_CHECKSUM_COOKIE} +ifeq (${_CHECKSUM_COOKIE},) + rm -rf ${WRKDIST} ${WRKSRC} ${WRKBUILD} +endif + ${EXTRACT_CMD} + @${MAKE} post-extract + touch $@ + +__use_generic_patch_target:=42 +else ifeq ($(strip ${_IN_PACKAGE}),1) +$(warning This package does not use the generic extraction and patch target; it's most likely to fail.) +endif + +ifeq ($(strip ${__use_generic_patch_target}),42) +post-patch: +${WRKDIST}/.prepared: ${WRKDIST}/.extract_done + [ ! -d ./patches ] || ${PREVENT_PATCH} ${PATCH} ${WRKDIST} ./patches \ + '{patch-!(*.orig),*.patch}' $(MAKE_TRACE) + [ ! -d ./extra ] || (cd extra; $(PREVENT_PATCH) cp -Rp . ${WRKDIST}/) \ + $(MAKE_TRACE) + @${MAKE} post-patch $(MAKE_TRACE) + touch $@ +endif + +update-patches: + @test ! -d ${WRKDIR}.orig || rm -rf ${WRKDIR}.orig + @test ! -d ${WRKDIR}.orig +ifeq ($(strip ${_IN_PACKAGE})$(strip ${_IN_CVTC}),1) + @$(MAKE) -s V=0 patch WRKDIR=${WRKDIR}.orig PREVENT_PATCH=: NO_CHECKSUM=1 +else + @$(MAKE) -s V=0 prepare WRKDIR=${WRKDIR}.orig PREVENT_PATCH=: NO_CHECKSUM=1 +endif + @# restore config.sub/config.guess + @for i in $$(find ${WRKDIR} -name config.sub);do \ + if [ -f $$i.bak ];then \ + mv $$i.bak $$i; \ + fi;\ + done + @for i in $$(find ${WRKDIR} -name config.guess);do \ + if [ -f $$i.bak ];then \ + mv $$i.bak $$i; \ + fi;\ + done + @toedit=$$(WRKDIST='${WRKDIST}' CURDIR=$$(pwd) \ + PATCH_LIST='patch-* *.patch' WRKDIR1='${WRKDIR}' \ + ${BASH} ${TOPDIR}/scripts/update-patches); \ + if [[ -n $$toedit && $$toedit != FAIL ]]; then \ + echo -n 'edit patches: '; read i; \ + cd patches && $${VISUAL:-$${EDITOR:-/usr/bin/vi}} $$toedit; \ + fi; \ + rm -rf ${WRKDIR}.orig; \ + [[ $$toedit != FAIL ]] + +.PHONY: update-patches diff --git a/mk/cpu.mk b/mk/cpu.mk new file mode 100644 index 000000000..8eb047bc9 --- /dev/null +++ b/mk/cpu.mk @@ -0,0 +1,23 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. +# +# optimization configure options for CPU features + +ifeq ($(DEVICE),alix1c) +CONFIGURE_CPU_OPTS:= --disable-ssse3 \ + --disable-sse \ + --enable-amd3dnow \ + --enable-amd3dnowext \ + --enable-mmx \ + --enable-mmx2 +else +CONFIGURE_CPU_OPTS:= --disable-ssse3 \ + --disable-sse \ + --disable-mmxext \ + --disable-amd3dnow \ + --disable-amd3dnowext \ + --disable-mmx \ + --disable-mmx2 +endif diff --git a/mk/fetch.mk b/mk/fetch.mk new file mode 100644 index 000000000..c4625ccee --- /dev/null +++ b/mk/fetch.mk @@ -0,0 +1,83 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. +#- + +ifneq ($(strip ${DIST_SUBDIR}),) +FULLDISTDIR?= ${DISTDIR}/${DIST_SUBDIR} +else +FULLDISTDIR?= ${DISTDIR} +endif + +FULLDISTFILES= $(patsubst %,${FULLDISTDIR}/%,${DISTFILES}) + +FETCH_STYLE?= auto +#pre-fetch: +do-fetch: +#post-fetch: +fetch: +# @${MAKE} pre-fetch +ifneq ($(filter auto,${FETCH_STYLE}),) + ${MAKE} ${FULLDISTFILES} +else + ${MAKE} do-fetch +endif +# @${MAKE} post-fetch + +refetch: + -rm -f ${FULLDISTFILES} + ${MAKE} fetch + +# XXX for now +_CHECKSUM_COOKIE?= ${WRKDIR}/.checksum_done +checksum: ${_CHECKSUM_COOKIE} +ifeq ($(strip ${NO_CHECKSUM}),) +${_CHECKSUM_COOKIE}: ${FULLDISTFILES} + rm -rf ${WRKDIR} + @OK=n; \ + (md5sum ${FULLDISTFILES}; echo exit) | while read sum name; do \ + if [[ $$sum = exit ]]; then \ + [[ $$OK = n ]] && echo >&2 "==> No distfile found!" || :; \ + [[ $$OK = 1 ]] || exit 1; \ + break; \ + fi; \ + if [[ $$sum = "$(strip ${PKG_MD5SUM})" ]]; then \ + [[ $$OK = 0 ]] || OK=1; \ + continue; \ + fi; \ + echo >&2 "==> Checksum mismatch for $${name##*/} (MD5)"; \ + echo >&2 ":---> should be '$(strip ${PKG_MD5SUM})'"; \ + echo >&2 ":---> really is '$$sum'"; \ + OK=0; \ + done + mkdir -p ${WRKDIR} + touch ${_CHECKSUM_COOKIE} +endif + +# GNU make's poor excuse for loops +define FETCH_template +$(1): + @fullname='$(1)'; \ + subname=$$$${fullname##$${DISTDIR}/}; \ + filename=$$$${fullname##*/}; \ + i='$${LOCAL_DISTDIR}'; \ + if [[ -n $$$$i && -e $$$$i/$$$$subname ]]; then \ + cd "$$$$i"; \ + echo pax -rw "$$$$subname" '$${DISTDIR}/'; \ + exec pax -rw "$$$$subname" '$${DISTDIR}/'; \ + fi; \ + mkdir -p "$$$${fullname%%/$$$$filename}"; \ + cd "$$$${fullname%%/$$$$filename}"; \ + for site in $${MASTER_SITES} $${MASTER_SITE_BACKUP}; do \ + : echo "$${FETCH_CMD} $$$$site$$$$filename"; \ + rm -f "$$$$filename"; \ + if $${FETCH_CMD} $$$$site$$$$filename; then \ + : check the size here; \ + [[ ! -e $$$$filename ]] || exit 0; \ + fi; \ + done; \ + exit 1 +endef + +$(foreach distfile,${FULLDISTFILES},$(eval $(call FETCH_template,$(distfile)))) diff --git a/mk/image.mk b/mk/image.mk new file mode 100644 index 000000000..4388dcaad --- /dev/null +++ b/mk/image.mk @@ -0,0 +1,69 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +imageprepare: kernel-install image-prepare-post + +image-prepare-post: + rng=/dev/arandom; test -e $$rng || rng=/dev/urandom; \ + dd if=$$rng bs=512 count=1 >>${TARGET_DIR}/etc/.rnd 2>/dev/null; \ + chmod 600 ${TARGET_DIR}/etc/.rnd + # Sanity checks + @cd ${TARGET_DIR}; ls=; ln=; li=; x=1; md5sum $$(find . -type f) | \ + sed -e "s/*//" | \ + while read sum name; do \ + inode=$$(ls -i "$$name"); \ + echo "$$sum $${inode%% *} $$name"; \ + done | sort | while read sum inode name; do \ + if [[ $$sum = $$ls ]]; then \ + [[ $$li = $$inode ]] && continue; \ + case $$x in \ + 1) echo 'WARNING: duplicate files found' \ + 'in filesystem! Please fix them.' >&2; \ + echo -n "> $$ln "; \ + ;; \ + 2) echo -n "> $$ln "; \ + ;; \ + 3) echo -n ' '; \ + ;; \ + esac; \ + echo -n "$$name"; \ + x=3; \ + else \ + case $$x in \ + 3) echo; \ + x=2; \ + ;; \ + esac; \ + fi; \ + ls=$$sum; \ + ln=$$name; \ + li=$$inode; \ + done + chmod 4511 ${TARGET_DIR}/bin/busybox + chmod 1777 ${TARGET_DIR}/tmp + +INITRAMFS= ${DEVICE}-${ARCH}-${FS} +ROOTFSSQUASHFS= ${DEVICE}-${ARCH}-${FS}.fimage +ROOTFSTARBALL= ${DEVICE}-${ARCH}-${FS}.tar.gz + +${BIN_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR} + cd ${TARGET_DIR}; tar -cf - --owner=0 --group=0 . | gzip -n9 >$@ + +${BIN_DIR}/${INITRAMFS}: ${TARGET_DIR} + cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | sort | \ + cpio -R 0:0 --quiet -oC512 -Mdist -Hnewc | gzip -n9 >$@ + +${BIN_DIR}/${ROOTFSSQUASHFS}: ${TARGET_DIR} + PATH='${TARGET_PATH}' \ + mksquashfs ${TARGET_DIR} ${BUILD_DIR}/root.squashfs \ + -nopad -noappend -root-owned -le $(MAKE_TRACE) + # padding of images is required + cat ${BIN_DIR}/${DEVICE}-${ARCH}-kernel ${BUILD_DIR}/root.squashfs > \ + ${BUILD_DIR}/${ROOTFSSQUASHFS} + dd if=${BUILD_DIR}/${ROOTFSSQUASHFS} of=${BIN_DIR}/${ROOTFSSQUASHFS} \ + bs=4063232 conv=sync $(MAKE_TRACE) + +imageclean: + rm -f $(BIN_DIR)/$(DEVICE)-* diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk new file mode 100644 index 000000000..c07e34c23 --- /dev/null +++ b/mk/kernel-build.mk @@ -0,0 +1,61 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk +include $(TOPDIR)/mk/linux.mk +include ${TOPDIR}/mk/buildhlp.mk + +KERNEL_IDIR:=$(LINUX_BUILD_DIR)/kernel-ipkg + +$(TOOLCHAIN_BUILD_DIR)/linux-$(KERNEL_VERSION)/.patched: + $(TRACE) target/$(DEVICE)-kernel-patch + $(PATCH) $(TOOLCHAIN_BUILD_DIR)/linux-$(KERNEL_VERSION) ../linux/patches *.patch $(MAKE_TRACE) + $(PATCH) $(TOOLCHAIN_BUILD_DIR)/linux-$(KERNEL_VERSION) ../linux/patches/$(KERNEL_VERSION) *.patch $(MAKE_TRACE) + $(PATCH) $(TOOLCHAIN_BUILD_DIR)/linux-$(KERNEL_VERSION) ../$(DEVICE)/patches *.patch $(MAKE_TRACE) + touch $@ + +$(LINUX_DIR)/.prepared: $(TOOLCHAIN_BUILD_DIR)/linux-$(KERNEL_VERSION)/.patched + $(TRACE) target/$(DEVICE)-kernel-prepare + ln -sf $(TOOLCHAIN_BUILD_DIR)/linux-$(KERNEL_VERSION) $(LINUX_DIR) + mkdir -p $(LINUX_BUILD_DIR)/kmod-control + touch $@ + +$(LINUX_DIR)/.config: $(LINUX_DIR)/.prepared $(BUILD_DIR)/.kernelconfig + $(TRACE) target/$(DEVICE)-kernel-configure + for f in $(TARGETS);do if [ -f $$f ];then rm $$f;fi;done $(MAKE_TRACE) + $(CP) $(BUILD_DIR)/.kernelconfig $(LINUX_DIR)/.config + echo N | $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(ARCH) CC="$(TARGET_CC)" oldconfig $(MAKE_TRACE) + $(MAKE) -C $(LINUX_DIR) V=1 CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(ARCH) CC="$(TARGET_CC)" prepare scripts $(MAKE_TRACE) + touch -c $(LINUX_DIR)/.config + +$(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.config + $(TRACE) target/$(DEVICE)-kernel-compile + $(MAKE) -C $(LINUX_DIR) V=1 CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(ARCH) CC="$(TARGET_CC)" $(MAKE_TRACE) + $(TRACE) target/$(DEVICE)-kernel-modules-install + rm -rf $(LINUX_BUILD_DIR)/modules + $(MAKE) -C "$(LINUX_DIR)" V=1 CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(ARCH) DEPMOD=true INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules modules_install $(MAKE_TRACE) + $(TRACE) target/$(DEVICE)-create-packages + $(MAKE) $(KERNEL_IPKG) $(TARGETS) + touch -c $(LINUX_DIR)/vmlinux + +$(KERNEL_IPKG): + $(TRACE) target/$(DEVICE)-create-kernel-package + rm -rf $(KERNEL_IDIR) + @mkdir -p $(KERNEL_IDIR)/etc + ${BASH} ${SCRIPT_DIR}/make-ipkg-dir.sh ${KERNEL_IDIR} \ + ../linux/kernel.control ${DEVICE}-${KERNEL_VERSION} ${ARCH} + $(IPKG_BUILD) $(KERNEL_IDIR) $(PACKAGE_DIR) $(MAKE_TRACE) + +prepare: +compile: $(LINUX_DIR)/vmlinux +install: compile +ifneq ($(strip $(INSTALL_TARGETS)),) + $(TRACE) target/${DEVICE}-modules-install + $(IPKG) install $(INSTALL_TARGETS) $(MAKE_TRACE) +endif + +clean: + rm -rf $(LINUX_BUILD_DIR) + rm -f $(TARGETS) diff --git a/mk/kernel.mk b/mk/kernel.mk new file mode 100644 index 000000000..06f3ebde2 --- /dev/null +++ b/mk/kernel.mk @@ -0,0 +1,77 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + + +LINUX_KMOD_SUFFIX=ko +MODULES_SUBDIR := lib/modules/$(KERNEL_VERSION) +LINUX_BUILD_DIR := $(BUILD_DIR)/linux-$(ARCH)-$(DEVICE) +KMOD_BUILD_DIR := $(LINUX_BUILD_DIR)/linux-modules +MODULES_DIR := $(LINUX_BUILD_DIR)/modules/$(MODULES_SUBDIR) +TARGET_MODULES_DIR := $(LINUX_TARGET_DIR)/$(MODULES_SUBDIR) + +KERNEL_IPKG:=$(PACKAGE_DIR)/kernel_$(DEVICE)-$(KERNEL_VERSION)_$(ARCH).ipk +INSTALL_TARGETS:= $(KERNEL_IPKG) +NOINSTALL_TARGETS:= +TARGETS:= + +# KMOD_template +# +# Adds a target for creating a package containing +# the specified (kernel-provided) modules. +# Parameters: +# 1: the config symbol name (without leading 'ADK_[K,]PACKAGE_KMOD_') +# this _must_ be equal to the kernel config symbol name +# 2: the name for the package, should be unique +# 3: actual modules to add; absolute path inside $(MODULES_DIR) +# OMIT THE KERNEL-SPECIFIC EXTENSION! +# 4: order of module loading at system startup; the modules in $(3) are (in their order) +# added to this file, if $(6) is non-empty +# 5: the kmod packages this package depends on +# +define KMOD_template + +IDEPENDK_$(1):=kernel ($(DEVICE)-$(KERNEL_VERSION)) $(foreach pkg,$(5),", $(pkg)") + +PKG_$(1) := $(PACKAGE_DIR)/kmod-$(2)_$(DEVICE)-$(KERNEL_VERSION)-$(KERNEL_RELEASE)_$(ARCH).ipk +I_$(1) := $(KMOD_BUILD_DIR)/ipkg/$(2) + +ifeq ($$(ADK_KPACKAGE_KMOD_$(1)),m) +TARGETS+=$$(PKG_$(1)) +endif +ifeq ($$(ADK_KPACKAGE_KMOD_$(1)),y) +TARGETS+=$$(PKG_$(1)) +INSTALL_TARGETS+=$$(PKG_$(1)) +endif + +$$(PKG_$(1)): + rm -rf $$(I_$(1)) + echo "Package: kmod-$(2)" > $(LINUX_BUILD_DIR)/kmod-control/kmod-$(2).control + echo "Priority: optional" >> $(LINUX_BUILD_DIR)/kmod-control/kmod-$(2).control + echo "Section: sys" >> $(LINUX_BUILD_DIR)/kmod-control/kmod-$(2).control + echo "Description: kernel module $(2)" >> $(LINUX_BUILD_DIR)/kmod-control/kmod-$(2).control + ${BASH} ${SCRIPT_DIR}/make-ipkg-dir.sh $$(I_$(1)) \ + $(LINUX_BUILD_DIR)/kmod-control/kmod-$(2).control \ + $(DEVICE)-$(KERNEL_VERSION)-$(KERNEL_RELEASE) $(ARCH) + echo "Depends: $$(IDEPENDK_$(1))" >> $$(I_$(1))/CONTROL/control +ifneq ($(strip $(3)),) + mkdir -p $$(I_$(1))/lib/modules/$(KERNEL_VERSION) + $(CP) $(foreach mod,$(3),$(mod).$(LINUX_KMOD_SUFFIX)) $$(I_$(1))/lib/modules/$(KERNEL_VERSION) +ifneq ($(4),) + mkdir -p $$(I_$(1))/etc/modules.d + for module in $(notdir $(3)); do \ + echo $$$$module >> $$(I_$(1))/etc/modules.d/$(4)-$(2); \ + done + echo "#!/bin/sh" >> $$(I_$(1))/CONTROL/postinst + echo "if [ -z \"\$$$${IPKG_INSTROOT}\" ]; then" >> $$(I_$(1))/CONTROL/postinst + echo ". /etc/functions.sh" >> $$(I_$(1))/CONTROL/postinst + echo "load_modules /etc/modules.d/$(4)-$(2)" >> $$(I_$(1))/CONTROL/postinst + echo "fi" >> $$(I_$(1))/CONTROL/postinst + chmod 0755 $$(I_$(1))/CONTROL/postinst +endif +endif + $(IPKG_BUILD) $$(I_$(1)) $(PACKAGE_DIR) $(MAKE_TRACE) +endef + +include $(BUILD_DIR)/.kernelconfig diff --git a/mk/linux.mk b/mk/linux.mk new file mode 100644 index 000000000..e9d17e231 --- /dev/null +++ b/mk/linux.mk @@ -0,0 +1,11 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +PKG_NAME:= linux +PKG_VERSION:= $(KERNEL_VERSION) +PKG_RELEASE:= $(KERNEL_RELEASE) +PKG_MD5SUM= $(KERNEL_MD5SUM) +DISTFILES= $(PKG_NAME)-$(PKG_VERSION).tar.bz2 +MASTER_SITES= ${MASTER_SITE_KERNEL:=kernel/v2.6/} diff --git a/mk/mirrors.mk b/mk/mirrors.mk new file mode 100644 index 000000000..bbf41417a --- /dev/null +++ b/mk/mirrors.mk @@ -0,0 +1,147 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +MASTER_SITE_BACKUP?= ${MASTER_SITE_OPENADK} + +MASTER_SITE_OPENADK?= \ + http://www.openadk.org/distfiles/ \ + +MASTER_SITE_MIRBSD?= \ + http://www.mirbsd.org/MirOS/distfiles/ \ + http://pub.allbsd.org/MirOS/distfiles/ \ + +MASTER_SITE_KERNEL?= \ + http://www.de.kernel.org/pub/linux/ \ + http://www.fi.kernel.org/pub/linux/ \ + http://www.fr.kernel.org/pub/linux/ \ + http://www.kernel.org/pub/linux/ \ + +MASTER_SITE_XORG?= \ + http://ftp.gwdg.de/pub/x11/x.org/pub/X11R7.4/src/everything/ \ + http://xorg.freedesktop.org/releases/X11R7.4/src/everything/ \ + http://xorg.freedesktop.org/releases/individual/lib/ \ + +MASTER_SITE_GNU?= \ + http://ftp.gnu.org/gnu/ \ + ftp://ftp.gnu.org/gnu/ \ + ftp://ftp.funet.fi/pub/gnu/prep/ \ + ftp://mirrors.usc.edu/pub/gnu/ \ + ftp://ftp.cs.tu-berlin.de/pub/gnu/ \ + ftp://aeneas.mit.edu/pub/gnu/ \ + ftp://mirrors.dotsrc.org/gnu/ \ + ftp://ftp.wustl.edu/pub/gnu/ \ + ftp://ftp.kddilabs.jp/GNU/ \ + ftp://ftp.mirror.ac.uk/sites/ftp.gnu.org/gnu/ \ + ftp://sunsite.org.uk/package/gnu/ \ + ftp://ftp.informatik.hu-berlin.de/pub/gnu/ \ + ftp://ftp.rediris.es/mirror/gnu/gnu/ \ + ftp://ftp.cs.univ-paris8.fr/mirrors/ftp.gnu.org/ \ + ftp://ftp.chg.ru/pub/gnu/ \ + ftp://ftp.uvsq.fr/pub/gnu/ \ + ftp://ftp.sunet.se/pub/gnu/ \ + +MASTER_SITE_SOURCEFORGE?= \ + http://easynews.dl.sourceforge.net/sourceforge/ \ + http://puzzle.dl.sourceforge.net/sourceforge/ \ + http://optusnet.dl.sourceforge.net/sourceforge/ \ + http://heanet.dl.sourceforge.net/sourceforge/ \ + http://jaist.dl.sourceforge.net/sourceforge/ \ + http://nchc.dl.sourceforge.net/sourceforge/ \ + http://switch.dl.sourceforge.net/sourceforge/ \ + http://kent.dl.sourceforge.net/sourceforge/ \ + http://internap.dl.sourceforge.net/sourceforge/ \ + http://mesh.dl.sourceforge.net/sourceforge/ \ + http://ovh.dl.sourceforge.net/sourceforge/ \ + http://surfnet.dl.sourceforge.net/sourceforge/ \ + http://ufpr.dl.sourceforge.net/sourceforge/ \ + +MASTER_SITE_MYSQL?= \ + ftp://ftp.fu-berlin.de/unix/databases/mysql/ \ + http://sunsite.informatik.rwth-aachen.de/mysql/ \ + http://mysql.easynet.be/ \ + http://mysql.blic.net/ \ + http://mysql.online.bg/ \ + http://mysql.mirrors.cybercity.dk/ \ + http://mirrors.dotsrc.org/mysql/ \ + http://mysql.tonnikala.org/ \ + ftp://ftp.inria.fr/pub/MySQL/ \ + http://mirrors.ircam.fr/pub/mysql/ \ + http://mirrors.ee.teiath.gr/mysql/ \ + http://mysql.sote.hu/ \ + http://mysql.mirrors.crysys.hit.bme.hu/ \ + http://na.mirror.garr.it/mirrors/MySQL/ \ + http://mysql.bst.lt/ \ + http://mysql.proserve.nl/ \ + http://mirror.hostfuss.com/mysql/ \ + http://mysql.mirrors.webazilla.nl/ \ + http://mirror.dinpris.com/mysql/ \ + http://mysql.nfsi.pt/ \ + http://lisa.gov.pt/ftp/mysql/ \ + ftp://mirrors.fibernet.ro/1/MySQL/ \ + http://mysql.ran.ro/ \ + http://mysql.directnet.ru/ \ + ftp://ftp.dn.ru/pub/MySQL/ \ + http://mysql.dn.ru/ \ + http://mysql.mix.su/ \ + http://www.fastmirrors.org/mysql/ \ + http://mirrors.bevc.net/mysql/ \ + http://www.wsection.com/mysql/ \ + http://mysql.paknet.org/ \ + http://mysql.rediris.es/ \ + http://mysql.dataphone.se/ \ + http://mirror.switch.ch/ftp/mirror/mysql/ \ + ftp://ftp.solnet.ch/mirror/mysql/ \ + http://mysql.net.ua/ \ + ftp://ftp.tlk-l.net/pub/mirrors/mysql.com/ \ + http://mysql.infocom.ua/ \ + http://www.mirrorservice.org/sites/ftp.mysql.com/ \ + http://mirrors.dedipower.com/www.mysql.com/ \ + http://www.mirror.ac.uk/mirror/www.mysql.org/ \ + http://mysql.mirror.rafal.ca/ \ + http://mysql.serenitynet.com/ \ + ftp://mirror.mcs.anl.gov/pub/mysql/ \ + http://mirror.services.wisc.edu/mysql/ \ + http://mysql.orst.edu/ \ + http://mysql.he.net/ \ + http://mysql.mirrors.pair.com/ \ + http://mysql.mirror.redwire.net/ \ + http://mysql.mirrors.hoobly.com/ \ + http://mirror.trouble-free.net/mysql_mirror/ \ + http://mirrors.24-7-solutions.net/pub/mysql/ \ + http://www.stathy.com/mysql/ \ + http://mirror.x10.com/mirror/mysql/ \ + http://mysql.localhost.net.ar/ \ + http://mirrors.uol.com.br/pub/mysql/ \ + http://mysql.vision.cl/ \ + http://mysql.tecnoera.com/ \ + http://mysql.mirrors.arminco.com/ \ + http://mysqlmirror.netandhost.in/ \ + http://mirror.mysql-partners-jp.biz/ \ + http://ftp.iij.ad.jp/pub/db/mysql/ \ + http://mysql.oss.eznetsols.org/ \ + http://mysql.holywar.net/ \ + http://mysql.new21.com/ \ + http://mysql.byungsoo.net/ \ + http://mysql.isu.edu.tw/ \ + http://mysql.cdpa.nsysu.edu.tw/ \ + http://mysql.cs.pu.edu.tw/ \ + http://ftp.stu.edu.tw/pub/Unix/Database/Mysql/ \ + http://mysql.ntu.edu.tw/ \ + http://mysql.planetmirror.com/ \ + http://mysql.mirrors.ilisys.com.au/ \ + http://mysql.inspire.net.nz/ \ + http://mysql.mirror.ac.za/ \ + +MASTER_SITE_GNOME+= \ + ftp://ftp.acc.umu.se/pub/GNOME/sources/ \ + ftp://ftp.rpmfind.net/linux/gnome.org/sources/ \ + ftp://ftp.unina.it/pub/linux/GNOME/sources/ \ + ftp://ftp.belnet.be/mirror/ftp.gnome.org/sources/ \ + ftp://ftp.dit.upm.es/linux/gnome/sources/ \ + ftp://ftp.dataplus.se/pub/linux/gnome/sources/ \ + ftp://ftp.cse.buffalo.edu/pub/Gnome/sources/ \ + ftp://ftp.linux.org.uk/mirrors/ftp.gnome.org/sources/ \ + ftp://ftp.gnome.org/pub/GNOME/sources/ \ + diff --git a/mk/modules.mk b/mk/modules.mk new file mode 100644 index 000000000..5283d1ed7 --- /dev/null +++ b/mk/modules.mk @@ -0,0 +1,1254 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +# +# Ethernet network devices +# +$(eval $(call KMOD_template,NE2K_PCI,ne2k-pci,\ + $(MODULES_DIR)/kernel/drivers/net/8390 \ + $(MODULES_DIR)/kernel/drivers/net/ne2k-pci \ +,20)) + +$(eval $(call KMOD_template,E100,e100,\ + $(MODULES_DIR)/kernel/drivers/net/e100 \ +,20)) + +$(eval $(call KMOD_template,E1000,e1000,\ + $(MODULES_DIR)/kernel/drivers/net/e1000/e1000 \ +,20)) + +# +# Wireless network devices +# +$(eval $(call KMOD_template,MAC80211,mac80211,\ + $(MODULES_DIR)/kernel/net/wireless/cfg80211 \ + $(MODULES_DIR)/kernel/net/mac80211/mac80211 \ +,15, kmod-crypto-aes kmod-crypto-arc4 kmod-crypto-ecb kmod-crc32)) + +$(eval $(call KMOD_template,ATH5K,mac80211-ath5k,\ + $(MODULES_DIR)/kernel/drivers/net/wireless/ath5k/ath5k \ +,20, kmod-led-class)) + +$(eval $(call KMOD_template,RT2X00,mac80211-rt2x00,\ + $(MODULES_DIR)/kernel/drivers/net/wireless/rt2x00/rt2x00lib \ + $(MODULES_DIR)/kernel/drivers/net/wireless/rt2x00/rt2x00pci \ +,17)) + +$(eval $(call KMOD_template,RT2400PCI,mac80211-rt2400pci,\ + $(MODULES_DIR)/kernel/drivers/net/wireless/rt2x00/rt2400pci \ +,20, kmod-led-class kmod-mac80211-rt2x00)) + +$(eval $(call KMOD_template,RT2500PCI,mac80211-rt2500pci,\ + $(MODULES_DIR)/kernel/drivers/net/wireless/rt2x00/rt2500pci \ +,20, kmod-led-class kmod-mac80211-rt2x00)) + +$(eval $(call KMOD_template,RT61PCI,mac80211-rt61pci,\ + $(MODULES_DIR)/kernel/drivers/net/wireless/rt2x00/rt61pci \ +,20, kmod-led-class kmod-mac80211-rt2x00)) + +# +# Networking +# +$(eval $(call KMOD_template,ATM,atm,\ + $(MODULES_DIR)/kernel/net/atm/atm \ +,50)) + +$(eval $(call KMOD_template,BRIDGE,bridge,\ + $(MODULES_DIR)/kernel/net/llc/llc \ + $(MODULES_DIR)/kernel/net/bridge/bridge \ +,10)) + +$(eval $(call KMOD_template,NET_IPGRE,gre,\ + $(MODULES_DIR)/kernel/net/ipv4/ip_gre \ +,50)) + +$(eval $(call KMOD_template,NET_IPIP,ipip,\ + $(MODULES_DIR)/kernel/net/ipv4/tunnel4 \ + $(MODULES_DIR)/kernel/net/ipv4/ipip \ +,60)) + +$(eval $(call KMOD_template,IPV6,ipv6,\ + $(MODULES_DIR)/kernel/net/ipv6/ipv6 \ +,20)) + +$(eval $(call KMOD_template,IPV6_SIT,ipv6-sit,\ + $(MODULES_DIR)/kernel/net/ipv6/sit \ +,25)) + +$(eval $(call KMOD_template,PPP,ppp,\ + $(MODULES_DIR)/kernel/drivers/net/slhc \ + $(MODULES_DIR)/kernel/drivers/net/ppp_generic \ + $(MODULES_DIR)/kernel/drivers/net/ppp_async \ + $(MODULES_DIR)/kernel/drivers/net/pppox \ +,50)) + +$(eval $(call KMOD_template,MPPE,mppe,\ + $(MODULES_DIR)/kernel/drivers/net/ppp_mppe_mppc \ +,55)) + +$(eval $(call KMOD_template,PPPOATM,pppoatm,\ + $(MODULES_DIR)/kernel/net/atm/pppoatm \ +,60)) + +$(eval $(call KMOD_template,PPPOE,pppoe,\ + $(MODULES_DIR)/kernel/drivers/net/pppoe \ +,60)) + +$(eval $(call KMOD_template,TUN,tun,\ + $(MODULES_DIR)/kernel/drivers/net/tun \ +,20)) + +$(eval $(call KMOD_template,BONDING,bonding,\ + $(MODULES_DIR)/kernel/drivers/net/bonding/bonding \ +,20)) + +# +# Traffic scheduling +# +$(eval $(call KMOD_template,NET_SCH_CBQ,net-sched-cbq,\ + $(MODULES_DIR)/kernel/net/sched/sch_cbq \ +,40)) + +$(eval $(call KMOD_template,NET_SCH_HTB,net-sched-htb,\ + $(MODULES_DIR)/kernel/net/sched/sch_htb \ +,40)) + +$(eval $(call KMOD_template,NET_SCH_HFSC,net-sched-hfsc,\ + $(MODULES_DIR)/kernel/net/sched/sch_hfsc \ +,40)) + +$(eval $(call KMOD_template,NET_SCH_ATM,net-sched-atm,\ + $(MODULES_DIR)/kernel/net/sched/sch_atm \ +,40)) + +$(eval $(call KMOD_template,NET_SCH_PRIO,net-sched-prio,\ + $(MODULES_DIR)/kernel/net/sched/sch_prio \ +,40)) + +$(eval $(call KMOD_template,NET_SCH_RED,net-sched-red,\ + $(MODULES_DIR)/kernel/net/sched/sch_red \ +,40)) + +$(eval $(call KMOD_template,NET_SCH_SFQ,net-sched-sfq,\ + $(MODULES_DIR)/kernel/net/sched/sch_sfq \ +,40)) + +# busybox netapps crash, when module loaded +#$(eval $(call KMOD_template,NET_SCH_TEQL,net-sched-teql,\ +# $(MODULES_DIR)/kernel/net/sched/sch_teql \ +#,40)) + +$(eval $(call KMOD_template,NET_SCH_TBF,net-sched-tbf,\ + $(MODULES_DIR)/kernel/net/sched/sch_tbf \ +,40)) + +$(eval $(call KMOD_template,NET_SCH_GRED,net-sched-gred,\ + $(MODULES_DIR)/kernel/net/sched/sch_gred \ +,40)) + +$(eval $(call KMOD_template,NET_SCH_DSMARK,net-sched-dsmark,\ + $(MODULES_DIR)/kernel/net/sched/sch_dsmark \ +,40)) + +$(eval $(call KMOD_template,NET_SCH_INGRESS,net-sched-ingress,\ + $(MODULES_DIR)/kernel/net/sched/sch_ingress \ +,40)) + +# +# classifications +# +$(eval $(call KMOD_template,NET_CLS_BASIC,net-cls-basic,\ + $(MODULES_DIR)/kernel/net/sched/cls_basic \ +,40)) + +$(eval $(call KMOD_template,NET_CLS_TCINDEX,net-cls-tcindex,\ + $(MODULES_DIR)/kernel/net/sched/cls_tcindex \ +,40)) + +$(eval $(call KMOD_template,NET_CLS_ROUTE4,net-cls-route,\ + $(MODULES_DIR)/kernel/net/sched/cls_route \ +,40)) + +$(eval $(call KMOD_template,NET_CLS_FW,net-cls-fw,\ + $(MODULES_DIR)/kernel/net/sched/cls_fw \ +,40)) + +$(eval $(call KMOD_template,NET_CLS_U32,net-cls-u32,\ + $(MODULES_DIR)/kernel/net/sched/cls_u32 \ +,40)) + +# +# actions +# +$(eval $(call KMOD_template,NET_ACT_POLICE,net-act-police,\ + $(MODULES_DIR)/kernel/net/sched/act_police \ +,45)) + +$(eval $(call KMOD_template,NET_ACT_GACT,net-act-gact,\ + $(MODULES_DIR)/kernel/net/sched/act_gact \ +,45)) + +$(eval $(call KMOD_template,NET_ACT_MIRRED,net-act-mirred,\ + $(MODULES_DIR)/kernel/net/sched/act_mirred \ +,45)) + +$(eval $(call KMOD_template,NET_ACT_IPT,net-act-ipt,\ + $(MODULES_DIR)/kernel/net/sched/act_ipt \ +,45)) + +$(eval $(call KMOD_template,NET_ACT_PEDIT,net-act-pedit,\ + $(MODULES_DIR)/kernel/net/sched/act_pedit \ +,45)) + +## +## Filtering / Firewalling +## +# +# Netfilter Core +# +$(eval $(call KMOD_template,NETFILTER_XT_TARGET_CLASSIFY,nf-classify,\ + $(MODULES_DIR)/kernel/net/netfilter/xt_CLASSIFY \ +,50)) + +$(eval $(call KMOD_template,NETFILTER_XT_TARGET_CONNMARK,nf-connmark,\ + $(MODULES_DIR)/kernel/net/netfilter/xt_CONNMARK \ +,50)) + +$(eval $(call KMOD_template,NETFILTER_XT_TARGET_MARK,nf-mark,\ + $(MODULES_DIR)/kernel/net/netfilter/xt_MARK \ +,50)) + +$(eval $(call KMOD_template,NETFILTER_XT_TARGET_NFQUEUE,nf-queue,\ + $(MODULES_DIR)/kernel/net/netfilter/xt_NFQUEUE \ +,50)) + +$(eval $(call KMOD_template,NETFILTER_XT_TARGET_NOTRACK,nf-notrack,\ + $(MODULES_DIR)/kernel/net/netfilter/xt_NOTRACK \ +,50)) + +# +# IP: Netfilter +# +$(eval $(call KMOD_template,NF_CONNTRACK,nf-conntrack,\ + $(MODULES_DIR)/kernel/net/netfilter/nf_conntrack \ +,50)) + +$(eval $(call KMOD_template,NF_CONNTRACK_IPV4,nf-conntrack-ipv4,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/nf_defrag_ipv4 \ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/nf_conntrack_ipv4 \ +,51)) + +$(eval $(call KMOD_template,IP_NF_FTP,nf-ip-conntrack-ftp,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_conntrack_ftp \ +,55)) + +$(eval $(call KMOD_template,IP_NF_IRC,nf-ip-conntrack-irc,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_conntrack_irc \ +,55)) + +$(eval $(call KMOD_template,IP_NF_NETBIOS_NS,nf-ip-conntrack-netbios-ns,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_conntrack_netbios_ns \ +,55)) + +$(eval $(call KMOD_template,IP_NF_TFTP,nf-ip-conntrack-tftp,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_conntrack_tftp \ +,55)) + +$(eval $(call KMOD_template,IP_NF_AMANDA,nf-ip-conntrack-amanda,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_conntrack_amanda \ +,55)) + +$(eval $(call KMOD_template,IP_NF_PPTP,nf-ip-conntrack-pptp,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_conntrack_pptp \ +,55)) + +$(eval $(call KMOD_template,IP_NF_H323,nf-ip-conntrack-h323,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_conntrack_h323 \ +,55)) + +$(eval $(call KMOD_template,IP_NF_SIP,nf-ip-conntrack-sip,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_conntrack_sip \ +,55)) + +$(eval $(call KMOD_template,IP_NF_IPTABLES,nf-ip-iptables,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_tables \ +,50)) + +$(eval $(call KMOD_template,IP_NF_MATCH_IPRANGE,nf-ip-match-iprange,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_iprange \ +,55)) + +$(eval $(call KMOD_template,IP_NF_MATCH_TOS,nf-ip-match-tos,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_tos \ +,55)) + +$(eval $(call KMOD_template,IP_NF_MATCH_RECENT,nf-ip-match-recent,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_recent \ +,55)) + +$(eval $(call KMOD_template,IP_NF_MATCH_ECN,nf-ip-match-ecn,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_ecn \ +,55)) + +$(eval $(call KMOD_template,IP_NF_MATCH_AH,nf-ip-match-ah,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_ah \ +,55)) + +$(eval $(call KMOD_template,IP_NF_MATCH_TTL,nf-ip-match-ttl,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_ttl \ +,55)) + +$(eval $(call KMOD_template,IP_NF_MATCH_OWNER,nf-ip-match-owner,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_owner \ +,55)) + +$(eval $(call KMOD_template,IP_NF_MATCH_ADDRTYPE,nf-ip-match-addrtype,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_addrtype \ +,55)) + +$(eval $(call KMOD_template,IP_NF_MATCH_HASHLIMIT,nf-ip-match-hashlimit,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_hashlimit \ +,55)) + +$(eval $(call KMOD_template,IP_NF_MATCH_STATE,nf-ip-match-state,\ + $(MODULES_DIR)/kernel/net/netfilter/xt_state \ +,55)) + +$(eval $(call KMOD_template,IP_NF_MATCH_MULTIPORT,nf-ip-match-multiport,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_multiport \ +,55)) + +# +# Filtering +# +$(eval $(call KMOD_template,IP_NF_FILTER,nf-ip-filter,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/iptable_filter \ +,55)) + +$(eval $(call KMOD_template,IP_NF_TARGET_REJECT,nf-ip-target-reject,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_REJECT \ +,60)) + +$(eval $(call KMOD_template,IP_NF_TARGET_LOG,nf-ip-target-log,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_LOG \ +,60)) + +$(eval $(call KMOD_template,IP_NF_TARGET_ULOG,nf-ip-target-ulog,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_ULOG \ +,60)) + +$(eval $(call KMOD_template,IP_NF_TARGET_TCPMSS,nf-ip-target-tcpmss,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_TCPMSS \ +,60)) + +$(eval $(call KMOD_template,NF_NAT,nf-nat,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/nf_nat \ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/iptable_nat \ +,60)) + +$(eval $(call KMOD_template,IP_NF_PPTP,nf-ip-nat-pptp,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_nat_pptp \ +,65)) + +$(eval $(call KMOD_template,IP_NF_TFTP,nf-ip-nat-tftp,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_nat_tftp \ +,65)) + +$(eval $(call KMOD_template,IP_NF_FTP,nf-ip-nat-ftp,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_nat_ftp \ +,65)) + +$(eval $(call KMOD_template,IP_NF_IRC,nf-ip-nat-irc,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_nat_irc \ +,65)) + +$(eval $(call KMOD_template,IP_NF_AMANDA,nf-ip-nat-amanda,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_nat_amanda \ +,65)) + +$(eval $(call KMOD_template,IP_NF_SIP,nf-ip-nat-sip,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_nat_sip \ +,65)) + +$(eval $(call KMOD_template,IP_NF_H323,nf-ip-nat-h323,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ip_nat_h323 \ +,65)) + +$(eval $(call KMOD_template,IP_NF_TARGET_MASQUERADE,nf-ip-target-masquerade,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_MASQUERADE \ +,65)) + +$(eval $(call KMOD_template,IP_NF_TARGET_REDIRECT,nf-ip-target-redirect,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_REDIRECT \ +,65)) + +$(eval $(call KMOD_template,IP_NF_TARGET_NETMAP,nf-ip-target-netmap,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_NETMAP \ +,65)) + +$(eval $(call KMOD_template,IP_NF_TARGET_SAME,nf-ip-target-same,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_SAME \ +,65)) + +# +# Mangle +# +$(eval $(call KMOD_template,IP_NF_MANGLE,nf-ip-mangle,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/iptable_mangle \ +,60)) + +$(eval $(call KMOD_template,IP_NF_TARGET_TOS,nf-ip-target-tos,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_TOS \ +,65)) + +$(eval $(call KMOD_template,IP_NF_TARGET_ECN,nf-ip-target-ecn,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_ECN \ +,65)) + +$(eval $(call KMOD_template,IP_NF_TARGET_TTL,nf-ip-target-ttl,\ + $(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_TTL \ +,65)) + +# +# IPVS +# + +IPVSPATH=$(MODULES_DIR)/kernel/net/netfilter/ipvs + +$(eval $(call KMOD_template,IP_VS,ip-vs,\ + $(IPVSPATH)/ip_vs \ +,55)) + +$(eval $(call KMOD_template,IP_VS_RR,ip-vs-rr,\ + $(IPVSPATH)/ip_vs_rr \ +,55)) + +$(eval $(call KMOD_template,IP_VS_WRR,ip-vs-wrr,\ + $(IPVSPATH)/ip_vs_wrr \ +,55)) + +$(eval $(call KMOD_template,IP_VS_LC,ip-vs-lc,\ + $(IPVSPATH)/ip_vs_lc \ +,55)) + +$(eval $(call KMOD_template,IP_VS_WLC,ip-vs-wlc,\ + $(IPVSPATH)/ip_vs_wlc \ +,55)) + +$(eval $(call KMOD_template,IP_VS_LBLC,ip-vs-lblc,\ + $(IPVSPATH)/ip_vs_lblc \ +,55)) + +$(eval $(call KMOD_template,IP_VS_LBLCR,ip-vs-lblcr,\ + $(IPVSPATH)/ip_vs_lblcr \ +,55)) + +$(eval $(call KMOD_template,IP_VS_DH,ip-vs-dh,\ + $(IPVSPATH)/ip_vs_dh \ +,55)) + +$(eval $(call KMOD_template,IP_VS_SH,ip-vs-sh,\ + $(IPVSPATH)/ip_vs_sh \ +,55)) + +$(eval $(call KMOD_template,IP_VS_SED,ip-vs-sed,\ + $(IPVSPATH)/ip_vs_sed \ +,55)) + +$(eval $(call KMOD_template,IP_VS_NQ,ip-vs-nq,\ + $(IPVSPATH)/ip_vs_nq \ +,55)) + +$(eval $(call KMOD_template,IP_VS_FTP,ip-vs-ftp,\ + $(IPVSPATH)/ip_vs_ftp \ +,55)) + +# +# Block devices +# +$(eval $(call KMOD_template,BLK_DEV_LOOP,loop,\ + $(MODULES_DIR)/kernel/drivers/block/loop \ +,20)) + +$(eval $(call KMOD_template,BLK_DEV_NBD,nbd,\ + $(MODULES_DIR)/kernel/drivers/block/nbd \ +,20)) + +$(eval $(call KMOD_template,SCSI,scsi,\ + $(MODULES_DIR)/kernel/drivers/scsi/scsi_wait_scan \ +,20)) + +$(eval $(call KMOD_template,BLK_DEV_SD,scsi-disk,\ + $(MODULES_DIR)/kernel/drivers/scsi/sd_mod \ +,25)) + +$(eval $(call KMOD_template,BLK_DEV_SR,scsi-cdrom,\ + $(MODULES_DIR)/kernel/drivers/cdrom/cdrom \ + $(MODULES_DIR)/kernel/drivers/scsi/sr_mod \ +,25)) + +# +# RAID +# +$(eval $(call KMOD_template,BLK_DEV_MD,md,\ + $(MODULES_DIR)/kernel/drivers/md/md-mod \ +,30)) + +$(eval $(call KMOD_template,MD_RAID0,md-raid0,\ + $(MODULES_DIR)/kernel/drivers/md/raid0 \ +,35)) + +$(eval $(call KMOD_template,MD_RAID1,md-raid1,\ + $(MODULES_DIR)/kernel/drivers/md/raid1 \ +,35)) + +$(eval $(call KMOD_template,MD_RAID456,md-raid456,\ + $(MODULES_DIR)/kernel/drivers/md/raid456 \ +,35)) + +# +# Device Mapper +# +$(eval $(call KMOD_template,BLK_DEV_DM,dm-mod,\ + $(MODULES_DIR)/kernel/drivers/md/dm-mod \ +,35)) + +$(eval $(call KMOD_template,DM_CRYPT,dm-crypt,\ + $(MODULES_DIR)/kernel/drivers/md/dm-crypt \ +,40)) + +$(eval $(call KMOD_template,DM_MIRROR,dm-mirror,\ + $(MODULES_DIR)/kernel/drivers/md/dm-mirror \ +,40)) + +$(eval $(call KMOD_template,DM_SNAPSHOT,dm-snapshot,\ + $(MODULES_DIR)/kernel/drivers/md/dm-snapshot \ +,40)) + + +# +# Crypto +# + +$(eval $(call KMOD_template,CRYPTO_DEV_GEODE,crypto-hw-geode,\ + $(MODULES_DIR)/kernel/drivers/crypto/geode-aes \ +,10)) + +$(eval $(call KMOD_template,CRYPTO_ALGAPI,crypto-algapi,\ + $(MODULES_DIR)/kernel/crypto/crypto_algapi \ +,03)) + +$(eval $(call KMOD_template,CRYPTO_AEAD,crypto-aead,\ + $(MODULES_DIR)/kernel/crypto/aead \ +,04)) + +$(eval $(call KMOD_template,CRYPTO_BLKCIPHER,crypto-blkcipher,\ + $(MODULES_DIR)/kernel/crypto/crypto_blkcipher \ + $(MODULES_DIR)/kernel/crypto/rng \ + $(MODULES_DIR)/kernel/crypto/krng \ + $(MODULES_DIR)/kernel/crypto/eseqiv \ + $(MODULES_DIR)/kernel/crypto/chainiv \ +,05)) + +$(eval $(call KMOD_template,CRYPTO_HASH,crypto-hash,\ + $(MODULES_DIR)/kernel/crypto/crypto_hash \ +,05)) + +$(eval $(call KMOD_template,CRYPTO_MANAGER,crypto-manager,\ + $(MODULES_DIR)/kernel/crypto/cryptomgr \ +,06)) + +$(eval $(call KMOD_template,CRYPTO_HMAC,crypto-hmac,\ + $(MODULES_DIR)/kernel/crypto/hmac \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_NULL,crypto-null,\ + $(MODULES_DIR)/kernel/crypto/crypto_null \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_MD4,crypto-md4,\ + $(MODULES_DIR)/kernel/crypto/md4 \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_MD5,crypto-md5,\ + $(MODULES_DIR)/kernel/crypto/md5 \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_SHA1,crypto-sha1,\ + $(MODULES_DIR)/kernel/crypto/sha1_generic \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_SHA256,crypto-sha256,\ + $(MODULES_DIR)/kernel/crypto/sha256_generic \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_SHA512,crypto-sha512,\ + $(MODULES_DIR)/kernel/crypto/sha512_generic \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_WP512,crypto-whirlpool,\ + $(MODULES_DIR)/kernel/crypto/wp512 \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_TGR192,crypto-tiger,\ + $(MODULES_DIR)/kernel/crypto/tgr192 \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_ECB,crypto-ecb,\ + $(MODULES_DIR)/kernel/crypto/ecb \ +,10)) + +$(eval $(call KMOD_template,CRYPTO_CBC,crypto-cbc,\ + $(MODULES_DIR)/kernel/crypto/cbc \ +,10)) + +$(eval $(call KMOD_template,CRYPTO_DES,crypto-des,\ + $(MODULES_DIR)/kernel/crypto/des_generic \ +,10)) + +$(eval $(call KMOD_template,CRYPTO_BLOWFISH,crypto-blowfish,\ + $(MODULES_DIR)/kernel/crypto/blowfish \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_TWOFISH,crypto-twofish,\ + $(MODULES_DIR)/kernel/crypto/twofish_common \ + $(MODULES_DIR)/kernel/crypto/twofish \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_TWOFISH_586,crypto-twofish-i586,\ + $(MODULES_DIR)/kernel/arch/x86/crypto/twofish-i586 \ +,12)) + +$(eval $(call KMOD_template,CRYPTO_SERPENT,crypto-serpent,\ + $(MODULES_DIR)/kernel/crypto/serpent \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_AES,crypto-aes,\ + $(MODULES_DIR)/kernel/crypto/aes_generic \ +,10)) + +$(eval $(call KMOD_template,CRYPTO_AES_586,crypto-aes-i586,\ + $(MODULES_DIR)/kernel/arch/x86/crypto/aes-i586 \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_CAST5,crypto-cast5,\ + $(MODULES_DIR)/kernel/crypto/cast5 \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_CAST6,crypto-cast6,\ + $(MODULES_DIR)/kernel/crypto/cast6 \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_TEA,crypto-tea,\ + $(MODULES_DIR)/kernel/crypto/tea \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_ARC4,crypto-arc4,\ + $(MODULES_DIR)/kernel/crypto/arc4 \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_KHAZAD,crypto-khazad,\ + $(MODULES_DIR)/kernel/crypto/khazad \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_ANUBIS,crypto-anubis,\ + $(MODULES_DIR)/kernel/crypto/anubis \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_CAMELLIA,crypto-camellia,\ + $(MODULES_DIR)/kernel/crypto/camellia \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_FCRYPT,crypto-fcrypt,\ + $(MODULES_DIR)/kernel/crypto/fcrypt \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_DEFLATE,crypto-deflate,\ + $(MODULES_DIR)/kernel/crypto/deflate \ +,10)) + +$(eval $(call KMOD_template,CRYPTO_LZO,crypto-lzo,\ + $(MODULES_DIR)/kernel/crypto/lzo \ +,10)) + +$(eval $(call KMOD_template,CRYPTO_MICHAEL_MIC,crypto-michael-mic,\ + $(MODULES_DIR)/kernel/crypto/michael_mic \ +,11)) + +$(eval $(call KMOD_template,CRYPTO_CRC32C,crypto-crc32c,\ + $(MODULES_DIR)/kernel/crypto/crc32c \ +,11)) + +$(eval $(call KMOD_template,OCF_CRYPTOSOFT,cryptodev-cryptosoft,\ + ${MODULES_DIR}/kernel/crypto/ocf/cryptosoft \ +,12)) + +$(eval $(call KMOD_template,OCF_SAFE,cryptodev-safe,\ + ${MODULES_DIR}/kernel/crypto/ocf/safe/safe \ +,12)) + +$(eval $(call KMOD_template,OCF_IXP4XX,cryptodev-ixp4xx,\ + ${MODULES_DIR}/kernel/crypto/ocf/ixp4xx/ixp4xx \ +,12)) + +$(eval $(call KMOD_template,OCF_HIFN,cryptodev-hifn,\ + ${MODULES_DIR}/kernel/crypto/ocf/hifn/hifn7751 \ +,12)) + +$(eval $(call KMOD_template,OCF_TALITOS,cryptodev-talitos,\ + ${MODULES_DIR}/kernel/crypto/ocf/talitos/talitos \ +,12)) + +# +# Filesystems +# +$(eval $(call KMOD_template,CIFS,fs-cifs,\ + $(MODULES_DIR)/kernel/fs/cifs/cifs \ +,30)) + +$(eval $(call KMOD_template,CODA_FS,fs-coda,\ + $(MODULES_DIR)/kernel/fs/coda/coda \ +,30)) + +ifneq ($(ADK_KERNEL_EXT2_FS),y) +$(eval $(call KMOD_template,EXT2_FS,fs-ext2,\ + $(MODULES_DIR)/kernel/fs/ext2/ext2 \ +,30)) +endif + +$(eval $(call KMOD_template,EXT3_FS,fs-ext3,\ + $(MODULES_DIR)/kernel/fs/jbd/jbd \ + $(MODULES_DIR)/kernel/fs/ext3/ext3 \ +,30)) + +$(eval $(call KMOD_template,FUSE_FS,fs-fuse,\ + $(MODULES_DIR)/kernel/fs/fuse/fuse \ +,30)) + +$(eval $(call KMOD_template,HFSPLUS_FS,fs-hfsplus,\ + $(MODULES_DIR)/kernel/fs/hfsplus/hfsplus \ +,30)) + +$(eval $(call KMOD_template,SUNRPC,fs-rpc,\ + $(MODULES_DIR)/kernel/net/sunrpc/sunrpc \ +,24)) + +$(eval $(call KMOD_template,SUNRPC_GSS,fs-rpcgss,\ + $(MODULES_DIR)/kernel/net/sunrpc/auth_gss/auth_rpcgss \ +,25)) + +$(eval $(call KMOD_template,RPCSEC_GSS_KRB5,fs-rpcsec-krb5,\ + $(MODULES_DIR)/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5 \ +,26)) + +ifneq ($(ADK_KERNEL_NFS_FS),y) +$(eval $(call KMOD_template,NFS_FS,fs-nfs,\ + $(MODULES_DIR)/kernel/fs/lockd/lockd \ + $(MODULES_DIR)/kernel/fs/nfs/nfs \ +,30)) +endif + +$(eval $(call KMOD_template,EXPORTFS,fs-exportfs,\ + $(MODULES_DIR)/kernel/fs/exportfs/exportfs \ +,20)) + +$(eval $(call KMOD_template,NFSD,fs-nfsd,\ + $(MODULES_DIR)/kernel/fs/nfsd/nfsd \ +,30)) + +$(eval $(call KMOD_template,NTFS_FS,fs-ntfs,\ + $(MODULES_DIR)/kernel/fs/ntfs/ntfs \ +,30)) + +$(eval $(call KMOD_template,VFAT_FS,fs-vfat,\ + $(MODULES_DIR)/kernel/fs/fat/fat \ + $(MODULES_DIR)/kernel/fs/fat/vfat \ +,30)) + +$(eval $(call KMOD_template,XFS_FS,fs-xfs,\ + $(MODULES_DIR)/kernel/fs/xfs/xfs \ +,30)) + +$(eval $(call KMOD_template,YAFFS_FS,fs-yaffs,\ + $(MODULES_DIR)/kernel/fs/yaffs2/yaffs \ +,30)) + +$(eval $(call KMOD_template,REISERFS_FS,fs-reiserfs,\ + $(MODULES_DIR)/kernel/fs/reiserfs/reiserfs \ +,30)) + +$(eval $(call KMOD_template,ISO9660_FS,fs-iso9660,\ + $(MODULES_DIR)/kernel/fs/isofs/isofs \ +,30)) + +$(eval $(call KMOD_template,UDF_FS,fs-udf,\ + $(MODULES_DIR)/kernel/fs/udf/udf \ +,30)) + +# +# Multimedia +# +$(eval $(call KMOD_template,SOUND,soundcore,\ + $(MODULES_DIR)/kernel/sound/soundcore \ +,30)) + +$(eval $(call KMOD_template,SND,sound-alsa,\ + $(MODULES_DIR)/kernel/sound/core/snd-page-alloc \ + $(MODULES_DIR)/kernel/sound/core/snd \ + $(MODULES_DIR)/kernel/sound/core/snd-timer \ + $(MODULES_DIR)/kernel/sound/core/snd-pcm \ +,40)) + +$(eval $(call KMOD_template,SND_OSSEMUL,sound-alsa-oss-emul,\ + $(MODULES_DIR)/kernel/sound/core/oss/snd-mixer-oss \ + $(MODULES_DIR)/kernel/sound/core/oss/snd-pcm-oss \ +,45)) + +$(eval $(call KMOD_template,SND_AC97_CODEC,sound-alsa-ac97-codec,\ + $(MODULES_DIR)/kernel/sound/ac97_bus \ + $(MODULES_DIR)/kernel/sound/pci/ac97/snd-ac97-codec \ +,50)) + +$(eval $(call KMOD_template,SND_VIA82XX,sound-alsa-via82xx,\ + $(MODULES_DIR)/kernel/sound/drivers/mpu401/snd-mpu401-uart \ + $(MODULES_DIR)/kernel/sound/pci/snd-via82xx \ +,55)) + +$(eval $(call KMOD_template,SND_CS5535AUDIO,sound-alsa-cs5535,\ + $(MODULES_DIR)/kernel/sound/pci/cs5535audio/snd-cs5535audio \ +,55)) + +$(eval $(call KMOD_template,VIDEODEV,videodev,\ + $(MODULES_DIR)/kernel/drivers/media/video/videodev \ +,65)) + +$(eval $(call KMOD_template,PWC,pwc,\ + $(MODULES_DIR)/kernel/drivers/usb/pwc \ +,70)) + + +# +# PCMCIA/CardBus +# + +$(eval $(call KMOD_template,PCCARD,pccard,\ + $(MODULES_DIR)/kernel/drivers/pcmcia/pcmcia_core \ +,40)) + +$(eval $(call KMOD_template,PCMCIA,pcmcia,\ + $(MODULES_DIR)/kernel/drivers/pcmcia/pcmcia \ +,50)) + +$(eval $(call KMOD_template,CARDBUS,cardbus,\ + $(MODULES_DIR)/kernel/drivers/pcmcia/rsrc_nonstatic \ + $(MODULES_DIR)/kernel/drivers/pcmcia/yenta_socket \ +,50)) + +$(eval $(call KMOD_template,PCMCIA_SERIAL_CS,pcmcia-serial,\ + $(MODULES_DIR)/kernel/drivers/serial/serial_cs \ +,55)) + +# +# Input +# + +$(eval $(call KMOD_template,KEYBOARD_ATKBD,input-keyboard,\ + $(MODULES_DIR)/kernel/drivers/input/keyboard/atkbd \ +,45)) + +$(eval $(call KMOD_template,INPUT_MOUSEDEV,input-mouse,\ + $(MODULES_DIR)/kernel/drivers/input/mousedev \ +,45)) + +# +# USB +# +USB_CORE_MODULE = drivers/usb/core/usbcore +USB_OHCI_MODULE = drivers/usb/host/ohci-hcd +USB_UHCI_MODULE = drivers/usb/host/uhci-hcd +USB_OHCI_SYMBOL = USB_OHCI_HCD +USB_UHCI_SYMBOL = USB_UHCI_HCD + +ifeq ($(ADK_LINUX_CRIS_FOXBOARD),) +$(eval $(call KMOD_template,USB,usb-core,\ + $(MODULES_DIR)/kernel/$(USB_CORE_MODULE) \ +,50)) +endif + +$(eval $(call KMOD_template,$(USB_OHCI_SYMBOL),usb-ohci,\ + $(MODULES_DIR)/kernel/$(USB_OHCI_MODULE) \ +,60)) + +$(eval $(call KMOD_template,$(USB_UHCI_SYMBOL),usb-uhci,\ + $(MODULES_DIR)/kernel/$(USB_UHCI_MODULE) \ +,60)) + +$(eval $(call KMOD_template,USB_EHCI_HCD,usb-ehci,\ + $(MODULES_DIR)/kernel/drivers/usb/host/ehci-hcd \ +,60)) + +USB_ACM_MODULES = drivers/usb/class/cdc-acm +USB_PRINTER_MODULES = drivers/usb/class/usblp + +$(eval $(call KMOD_template,USB_ACM,usb-acm,\ + $(foreach mod,$(USB_ACM_MODULES),$(MODULES_DIR)/kernel/$(mod)) \ +,70)) + +$(eval $(call KMOD_template,USB_HID,usb-hid,\ + $(MODULES_DIR)/kernel/drivers/hid/usbhid/usbhid \ +,60)) + +$(eval $(call KMOD_template,USB_PRINTER,usb-printer,\ + $(foreach mod,$(USB_PRINTER_MODULES),$(MODULES_DIR)/kernel/$(mod)) \ +,60)) + +$(eval $(call KMOD_template,USB_SERIAL,usb-serial,\ + $(MODULES_DIR)/kernel/drivers/usb/serial/usbserial \ +,60)) + +$(eval $(call KMOD_template,USB_SERIAL_BELKIN,usb-serial-belkin,\ + $(MODULES_DIR)/kernel/drivers/usb/serial/belkin_sa \ +,61)) + +$(eval $(call KMOD_template,USB_SERIAL_FTDI_SIO,usb-serial-ftdi,\ + $(MODULES_DIR)/kernel/drivers/usb/serial/ftdi_sio \ +,61)) + +$(eval $(call KMOD_template,USB_SERIAL_MCT_U232,usb-serial-mct-u232,\ + $(MODULES_DIR)/kernel/drivers/usb/serial/mct_u232 \ +,61)) + +$(eval $(call KMOD_template,USB_SERIAL_PL2303,usb-serial-pl2303,\ + $(MODULES_DIR)/kernel/drivers/usb/serial/pl2303 \ +,61)) + +$(eval $(call KMOD_template,USB_SERIAL_VISOR,usb-serial-visor,\ + $(MODULES_DIR)/kernel/drivers/usb/serial/visor \ +,61)) + +$(eval $(call KMOD_template,USB_STORAGE,usb-storage,\ + $(MODULES_DIR)/kernel/drivers/usb/storage/usb-storage \ +,65)) + +$(eval $(call KMOD_template,USB_PEGASUS,usb-pegasus,\ + $(MODULES_DIR)/kernel/drivers/net/usb/pegasus \ +,65)) + +# +# Bluetooth +# +BLUETOOTH_PREFIX = BT +BLUETOOTH = bluetooth + +$(eval $(call KMOD_template,$(BLUETOOTH_PREFIX),bluetooth,\ + $(MODULES_DIR)/kernel/net/bluetooth/$(BLUETOOTH) \ +,70)) + +$(eval $(call KMOD_template,$(BLUETOOTH_PREFIX)_HCIUSB,bluetooth-hci-usb,\ + $(MODULES_DIR)/kernel/drivers/bluetooth/hci_usb \ +,75)) + +$(eval $(call KMOD_template,$(BLUETOOTH_PREFIX)_HCIUART,bluetooth-hci-uart,\ + $(MODULES_DIR)/kernel/drivers/bluetooth/hci_uart \ +,75)) + +$(eval $(call KMOD_template,$(BLUETOOTH_PREFIX)_L2CAP,bluetooth-l2cap,\ + $(MODULES_DIR)/kernel/net/bluetooth/l2cap \ +,80)) + +$(eval $(call KMOD_template,$(BLUETOOTH_PREFIX)_SCO,bluetooth-sco,\ + $(MODULES_DIR)/kernel/net/bluetooth/sco \ +,85)) + +$(eval $(call KMOD_template,$(BLUETOOTH_PREFIX)_BNEP,bluetooth-bnep,\ + $(MODULES_DIR)/kernel/net/bluetooth/bnep/bnep \ +,85)) + +$(eval $(call KMOD_template,$(BLUETOOTH_PREFIX)_RFCOMM,bluetooth-rfcomm,\ + $(MODULES_DIR)/kernel/net/bluetooth/rfcomm/rfcomm \ +,85)) + +# +# Misc devices +# +SOFTDOG_MODULES = drivers/char/watchdog/softdog + +$(eval $(call KMOD_template,SOFTDOG,softdog,\ + $(foreach mod,$(SOFTDOG_MODULES),$(MODULES_DIR)/kernel/$(mod)) \ +,95)) + +$(eval $(call KMOD_template,FW_LOADER,fw-loader,\ + $(MODULES_DIR)/kernel/drivers/base/firmware_class \ +,01)) + +$(eval $(call KMOD_template,EEPROM_93CX6,eeprom-93cx6,\ + $(MODULES_DIR)/kernel/drivers/misc/eeprom/eeprom_93cx6 \ +,05)) + +$(eval $(call KMOD_template,LEDS_CLASS,led-class,\ + $(MODULES_DIR)/kernel/drivers/leds/led-class \ +,05)) + +# +# NLS +# +$(eval $(call KMOD_template,NLS,nls-base,\ + $(MODULES_DIR)/kernel/fs/nls/nls_base \ +,10)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_437,nls-cp437,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp437 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_737,nls-cp737,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp737 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_775,nls-cp775,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp775 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_850,nls-cp850,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp850 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_852,nls-cp852,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp852 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_857,nls-cp857,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp857 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_860,nls-cp860,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp860 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_861,nls-cp861,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp861 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_862,nls-cp862,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp862 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_863,nls-cp863,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp863 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_864,nls-cp864,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp864 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_865,nls-cp865,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp865 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_866,nls-cp866,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp866 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_869,nls-cp869,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp869 \ +,20)) + +NLS_CODEPAGE_874_MODULES := fs/nls/nls_cp874 + +$(eval $(call KMOD_template,NLS_CODEPAGE_874,nls-cp874,\ + $(foreach mod,$(NLS_CODEPAGE_874_MODULES),$(MODULES_DIR)/kernel/$(mod)) \ +,20)) + +NLS_CODEPAGE_932_MODULES := fs/nls/nls_cp932 +NLS_CODEPAGE_932_MODULES += fs/nls/nls_euc-jp + +$(eval $(call KMOD_template,NLS_CODEPAGE_932,nls-cp932,\ + $(foreach mod,$(NLS_CODEPAGE_932_MODULES),$(MODULES_DIR)/kernel/$(mod)) \ +,20)) + +NLS_CODEPAGE_936_MODULES := fs/nls/nls_cp936 + +$(eval $(call KMOD_template,NLS_CODEPAGE_936,nls-cp936,\ + $(foreach mod,$(NLS_CODEPAGE_936_MODULES),$(MODULES_DIR)/kernel/$(mod)) \ +,20)) + +NLS_CODEPAGE_949_MODULES := fs/nls/nls_cp949 + +$(eval $(call KMOD_template,NLS_CODEPAGE_949,nls-cp949,\ + $(foreach mod,$(NLS_CODEPAGE_949_MODULES),$(MODULES_DIR)/kernel/$(mod)) \ +,20)) + +NLS_CODEPAGE_950_MODULES := fs/nls/nls_cp950 + +$(eval $(call KMOD_template,NLS_CODEPAGE_950,nls-cp950,\ + $(foreach mod,$(NLS_CODEPAGE_950_MODULES),$(MODULES_DIR)/kernel/$(mod)) \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_1250,nls-cp1250,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp1250 \ +,20)) + +$(eval $(call KMOD_template,NLS_CODEPAGE_1251,nls-cp1251,\ + $(MODULES_DIR)/kernel/fs/nls/nls_cp1251 \ +,20)) + +$(eval $(call KMOD_template,NLS_ASCII,nls-ascii, \ + $(MODULES_DIR)/kernel/fs/nls/nls_ascii \ +,20)) + +$(eval $(call KMOD_template,NLS_ISO8859_1,nls-iso8859-1, \ + $(MODULES_DIR)/kernel/fs/nls/nls_iso8859-1 \ +,20)) + +$(eval $(call KMOD_template,NLS_ISO8859_2,nls-iso8859-2, \ + $(MODULES_DIR)/kernel/fs/nls/nls_iso8859-2 \ +,20)) + +$(eval $(call KMOD_template,NLS_ISO8859_3,nls-iso8859-3, \ + $(MODULES_DIR)/kernel/fs/nls/nls_iso8859-3 \ +,20)) + +$(eval $(call KMOD_template,NLS_ISO8859_4,nls-iso8859-4, \ + $(MODULES_DIR)/kernel/fs/nls/nls_iso8859-4 \ +,20)) + +$(eval $(call KMOD_template,NLS_ISO8859_5,nls-iso8859-5, \ + $(MODULES_DIR)/kernel/fs/nls/nls_iso8859-5 \ +,20)) + +$(eval $(call KMOD_template,NLS_ISO8859_6,nls-iso8859-6, \ + $(MODULES_DIR)/kernel/fs/nls/nls_iso8859-6 \ +,20)) + +$(eval $(call KMOD_template,NLS_ISO8859_7,nls-iso8859-7, \ + $(MODULES_DIR)/kernel/fs/nls/nls_iso8859-7 \ +,20)) + +NLS_ISO8859_8_MODULES := fs/nls/nls_cp1255 + +$(eval $(call KMOD_template,NLS_ISO8859_8,nls-iso8859-8, \ + $(foreach mod,$(NLS_ISO8859_8_MODULES),$(MODULES_DIR)/kernel/$(mod)) \ +,20)) + +$(eval $(call KMOD_template,NLS_ISO8859_9,nls-iso8859-9, \ + $(MODULES_DIR)/kernel/fs/nls/nls_iso8859-9 \ +,20)) + +$(eval $(call KMOD_template,NLS_ISO8859_13,nls-iso8859-13, \ + $(MODULES_DIR)/kernel/fs/nls/nls_iso8859-13 \ +,20)) + +$(eval $(call KMOD_template,NLS_ISO8859_14,nls-iso8859-14, \ + $(MODULES_DIR)/kernel/fs/nls/nls_iso8859-14 \ +,20)) + +$(eval $(call KMOD_template,NLS_ISO8859_15,nls-iso8859-15, \ + $(MODULES_DIR)/kernel/fs/nls/nls_iso8859-15 \ +,20)) + +$(eval $(call KMOD_template,NLS_KOI8_R,nls-koi8-r, \ + $(MODULES_DIR)/kernel/fs/nls/nls_koi8-r \ +,20)) + +$(eval $(call KMOD_template,NLS_KOI8_U,nls-koi8-u, \ + $(MODULES_DIR)/kernel/fs/nls/nls_koi8-u \ + $(MODULES_DIR)/kernel/fs/nls/nls_koi8-ru \ +,20)) + +$(eval $(call KMOD_template,NLS_UTF8,nls-utf8, \ + $(MODULES_DIR)/kernel/fs/nls/nls_utf8 \ +,20)) + +# ISDN +ISDN_MODULES=drivers/isdn/i4l/isdn + +$(eval $(call KMOD_template,ISDN,isdn, \ + $(foreach mod,$(ISDN_MODULES),$(MODULES_DIR)/kernel/$(mod)) \ +,60)) + +$(eval $(call KMOD_template,ISDN_CAPI,isdn-capi, \ + $(MODULES_DIR)/kernel/drivers/isdn/capi/kernelcapi \ + $(MODULES_DIR)/kernel/drivers/isdn/capi/capi \ +,60)) + +$(eval $(call KMOD_template,SLHC,slhc, \ + $(MODULES_DIR)/kernel/drivers/net/slhc \ +,65)) + +$(eval $(call KMOD_template,HISAX,hisax, \ + $(MODULES_DIR)/kernel/drivers/isdn/hisax/hisax \ +,70)) + +MISDN_MODULES=drivers/isdn/hardware/mISDN/mISDN_core +MISDN_MODULES+=drivers/isdn/hardware/mISDN/mISDN_l1 +MISDN_MODULES+=drivers/isdn/hardware/mISDN/mISDN_l2 +MISDN_MODULES+=drivers/isdn/hardware/mISDN/mISDN_dsp +MISDN_MODULES+=drivers/isdn/hardware/mISDN/mISDN_dtmf +MISDN_MODULES+=drivers/isdn/hardware/mISDN/mISDN_isac +MISDN_MODULES+=drivers/isdn/hardware/mISDN/mISDN_x25dte +MISDN_MODULES+=drivers/isdn/hardware/mISDN/l3udss1 + +$(eval $(call KMOD_template,MISDN_DRV,misdn, \ + $(foreach mod, $(MISDN_MODULES),$(MODULES_DIR)/kernel/$(mod)) \ +,75)) + +$(eval $(call KMOD_template,MISDN_AVM_FRITZ,misdn-avm, \ + $(MODULES_DIR)/kernel/drivers/isdn/hardware/mISDN/avmfritz \ +,80)) + +$(eval $(call KMOD_template,MISDN_HFCPCI,misdn-hfc-pci, \ + $(MODULES_DIR)/kernel/drivers/isdn/hardware/mISDN/hfcpci \ +,80)) + +$(eval $(call KMOD_template,MISDN_HFCMULTI,misdn-hfc-multi, \ + $(MODULES_DIR)/kernel/drivers/isdn/hardware/mISDN/hfcmulti \ +,80)) + +$(eval $(call KMOD_template,MISDN_HFCMINI,misdn-hfc-minipci, \ + $(MODULES_DIR)/kernel/drivers/isdn/hardware/mISDN/hfcsmini \ +,80)) + +$(eval $(call KMOD_template,MISDN_XHFC,misdn-xhfc, \ + $(MODULES_DIR)/kernel/drivers/isdn/hardware/mISDN/xhfc \ +,80)) + +$(eval $(call KMOD_template,MISDN_SPEEDFAX,misdn-speedfax, \ + $(MODULES_DIR)/kernel/drivers/isdn/hardware/mISDN/sedlfax \ +,80)) + +# Library modules +$(eval $(call KMOD_template,CRC_CCITT,crc-ccitt, \ + $(MODULES_DIR)/kernel/lib/crc-ccitt \ +,01)) + +$(eval $(call KMOD_template,CRC_ITU_T,crc-itu-t, \ + $(MODULES_DIR)/kernel/lib/crc-itu-t \ +,01)) + +$(eval $(call KMOD_template,CRC32,crc32, \ + $(MODULES_DIR)/kernel/lib/crc32 \ +,01)) + +$(eval $(call KMOD_template,LIBCRC32C,libcrc32c, \ + $(MODULES_DIR)/kernel/lib/libcrc32c \ +,01)) + +# +# parallel port support + +$(eval $(call KMOD_template,LP,lp,\ + $(MODULES_DIR)/kernel/drivers/char/lp \ +,60)) + +$(eval $(call KMOD_template,PPDEV,ppdev,\ + $(MODULES_DIR)/kernel/drivers/char/ppdev \ +,60)) + +$(eval $(call KMOD_template,PARPORT,parport,\ + $(MODULES_DIR)/kernel/drivers/parport/parport \ +,50)) + +$(eval $(call KMOD_template,PLIP,plip,\ + $(MODULES_DIR)/kernel/drivers/net/plip \ +,51)) diff --git a/mk/package.mk b/mk/package.mk new file mode 100644 index 000000000..8b5d547b8 --- /dev/null +++ b/mk/package.mk @@ -0,0 +1,212 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +all: build-all-ipkgs + +TCFLAGS:= ${TARGET_CFLAGS} +TCXXFLAGS:= ${TARGET_CFLAGS} +TCPPFLAGS:= ${TARGET_CPPFLAGS} +ifneq ($(DEBUG),1) +TCPPFLAGS+= -DNDEBUG +endif +TLDFLAGS:= ${TARGET_LDFLAGS} -Wl,-rpath -Wl,/usr/lib \ + -Wl,-rpath-link -Wl,${STAGING_DIR}/usr/lib \ + -L${STAGING_DIR}/lib -L${STAGING_DIR}/usr/lib +ifeq ($(DEBUG),1) +CONFIGURE_ARGS+= --enable-debug +else +CONFIGURE_ARGS+= --disable-debug +endif +ifeq ($(ADK_IPV6),y) +CONFIGURE_ARGS+= --enable-ipv6 +else +CONFIGURE_ARGS+= --disable-ipv6 +endif +CONFIGURE_ENV+= ${TARGET_CONFIGURE_OPTS} \ + ${HOST_CONFIGURE_OPTS} \ + CC='${TARGET_CC}' CXX='${TARGET_CXX}' \ + CFLAGS='$(strip ${TCFLAGS})' \ + CXXFLAGS='$(strip ${TCXXFLAGS})' \ + CPPFLAGS='$(strip ${TCPPFLAGS})' \ + LDFLAGS='$(strip ${TLDFLAGS})' \ + PKG_CONFIG_PATH='${STAGING_DIR}/usr/lib/pkgconfig' \ + PKG_CONFIG_LIBDIR=/dev/null \ + CONFIG_SHELL='$(strip ${SHELL})' \ + ac_cv_func_realloc_0_nonnull=yes \ + ac_cv_func_malloc_0_nonnull=yes +MAKE_FILE?= Makefile +# this is environment for 'make all' and 'make install' +MAKE_ENV?= +# this is arguments for 'make all' and 'make install' +XAKE_FLAGS?= +# this is arguments for 'make all' ONLY +MAKE_FLAGS?= +# this is arguments for 'make install' ONLY +FAKE_FLAGS?= +ALL_TARGET?= all +INSTALL_TARGET?= install +MAKE_ENV+= PATH='${TARGET_PATH}' \ + ${HOST_CONFIGURE_OPTS} \ + WRKDIR='${WRKDIR}' WRKDIST='${WRKDIST}' \ + WRKSRC='${WRKSRC}' WRKBUILD='${WRKBUILD}' \ + PKG_CONFIG_PATH='${STAGING_DIR}/usr/lib/pkgconfig' \ + PKG_CONFIG_LIBDIR=/dev/null \ + CC='${TARGET_CC}' CXX='${TARGET_CXX}' \ + AR='${TARGET_CROSS}ar' RANLIB='${TARGET_CROSS}ranlib' \ + NM='${TARGET_CROSS}nm' \ + CFLAGS='$(strip ${TCFLAGS})' \ + CXXFLAGS='$(strip ${TCXXFLAGS})' \ + CPPFLAGS='$(strip ${TCPPFLAGS})' \ + LDFLAGS='$(strip ${TLDFLAGS})' +MAKE_FLAGS+= ${XAKE_FLAGS} +FAKE_FLAGS+= ${XAKE_FLAGS} + +ifeq ($(strip ${WRKDIR_BSD}),) +WRKDIR_BASE:= ${BUILD_DIR} +else +WRKDIR_BASE:= $(shell pwd) +endif + +_EXTRACT_COOKIE= ${WRKDIST}/.extract_done +_PATCH_COOKIE= ${WRKDIST}/.prepared +_CONFIGURE_COOKIE= ${WRKBUILD}/.configure_done +_BUILD_COOKIE= ${WRKBUILD}/.build_done +_FAKE_COOKIE= ${WRKINST}/.fake_done +_IPKGS_COOKIE= ${PACKAGE_DIR}/.stamps/${PKG_NAME}${PKG_VERSION}-${PKG_RELEASE} + +_IN_PACKAGE:= 1 +include ${TOPDIR}/mk/buildhlp.mk +-include info.mk + +# defined in buildhlp.mk ('extract' can fail, use 'patch' then) +extract: ${_EXTRACT_COOKIE} +patch: ${_PATCH_COOKIE} + +# defined below (will be moved to pkg-bottom.mk!) +configure: ${_CONFIGURE_COOKIE} +build: ${_BUILD_COOKIE} +fake: ${_FAKE_COOKIE} + +# our recursive build entry point +build-all-ipkgs: ${_IPKGS_COOKIE} + +define PKG_template +IPKG_$(1)= $(PACKAGE_DIR)/$(2)_$(3)_$(4).ipk +IDIR_$(1)= $(WRKDIR)/fake-${ARCH}/ipkg-$(2) +ifneq (${ADK_PACKAGE_$(1)}${DEVELOPER},) +ALL_IPKGS+= $$(IPKG_$(1)) +ALL_IDIRS+= $${IDIR_$(1)} +endif +INFO_$(1)= $(IPKG_STATE_DIR)/info/$(2).list + +ifeq ($(ADK_PACKAGE_$(1)),y) +install-targets: $$(INFO_$(1)) +endif + +IDEPEND_$(1):= $$(strip $(5)) + +_ALL_CONTROLS+= $$(IDIR_$(1))/CONTROL/control +ICONTROL_$(1)?= ipkg/$(2).control +$$(IDIR_$(1))/CONTROL/control: ${_PATCH_COOKIE} + ${BASH} ${SCRIPT_DIR}/make-ipkg-dir.sh $${IDIR_$(1)} $${ICONTROL_$(1)} $(3) $(4) + @adeps='$$(strip $${IDEPEND_$(1)})'; if [[ -n $$$$adeps ]]; then \ + comma=; \ + deps=; \ + last=; \ + for dep in $$$$adeps; do \ + if [[ $$$$last = kernel && $$$$dep = \(* ]]; then \ + deps="$$$$deps $$$$dep"; \ + else \ + deps="$$$$deps$$$$comma$$$$dep"; \ + fi; \ + comma=", "; \ + last=$$$$dep; \ + done; \ + echo "Depends: $$$$deps" >>$${IDIR_$(1)}/CONTROL/control; \ + fi + for file in conffiles preinst postinst prerm postrm; do \ + [ ! -f ./ipkg/$(2).$$$$file ] || cp ./ipkg/$(2).$$$$file $$(IDIR_$(1))/CONTROL/$$$$file; \ + done +ifneq ($(strip $${ICONTROL_ADDON_$(1)}),) + echo $${ICONTROL_ADDON_$(1)} >> $${IDIR_$(1)}/CONTROL/control +endif + +$$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $${_FAKE_COOKIE} +ifneq ($(DEBUG),1) + $${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE) +endif + cd $${IDIR_$(1)}; for script in etc/init.d/*; do \ + [[ -e $$$$script ]] || continue; \ + chmod 0755 "$$$$script"; \ + done + @mkdir -p $${PACKAGE_DIR} '$${STAGING_PARENT}/pkg' \ + '$${STAGING_DIR}/scripts' + @if test -s '$${STAGING_PARENT}/pkg/$(1)'; then \ + cd '$${STAGING_DIR}'; \ + while read fn; do \ + rm -f "$$$$fn"; \ + done <'$${STAGING_PARENT}/pkg/$(1)'; \ + fi + @rm -f '$${STAGING_PARENT}/pkg/$(1)' + @cd $${IDIR_$(1)}; \ + x=$$$$(find tmp var -mindepth 1 2>/dev/null); if [[ -n $$$$x ]]; then \ + echo 'WARNING: $${IPKG_$(1)} installs files into a' \ + 'ramdisk location:' >&2; \ + echo "$$$$x" | sed 's/^/- /' >&2; \ + fi; \ + if [ "${PKG_NAME}" != "uClibc" -a "${PKG_NAME}" != "glibc" -a "${PKG_NAME}" != "libpthread" -a "${PKG_NAME}" != "libstdcxx" -a "${PKG_NAME}" != "libthread-db" ];then \ + find lib \( -name lib\*.so\* -o -name lib\*.a \) \ + -exec echo 'WARNING: $${IPKG_$(1)} installs files in /lib -' \ + ' fix this!' >&2 \; -quit 2>/dev/null; fi; \ + find usr ! -type d 2>/dev/null | \ + grep -v -e '^usr/share' -e '^usr/man' -e '^usr/info' | \ + tee '$${STAGING_PARENT}/pkg/$(1)' | \ + cpio -apdlmu --quiet '$${STAGING_DIR}' + @cd '$${STAGING_DIR}'; grep 'usr/lib/.*\.la$$$$' \ + '$${STAGING_PARENT}/pkg/$(1)' | while read fn; do \ + chmod u+w $$$$fn; \ + printf '%s\nwq\n' '/^libdir='\''*/s##&${STAGING_DIR}#' | \ + ed -s $$$$fn; \ + done; grep 'usr/s*bin/' '$${STAGING_PARENT}/pkg/$(1)' | \ + while read fn; do \ + b="$$$$(dd if="$$$$fn" bs=2 count=1 2>/dev/null)"; \ + [[ $$$$b = '#!' ]] || continue; \ + cp "$$$$fn" scripts/; \ + echo "scripts/$$$$(basename "$$$$fn")" \ + >>'$${STAGING_PARENT}/pkg/$(1)'; \ + done + $${IPKG_BUILD} $${IDIR_$(1)} $${PACKAGE_DIR} $(MAKE_TRACE) + +clean-targets: clean-dev-$(1) + +clean-dev-$(1): + @if test -s '$${STAGING_PARENT}/pkg/$(1)'; then \ + cd '$${STAGING_DIR}'; \ + while read fn; do \ + rm -f "$$$$fn"; \ + done <'$${STAGING_PARENT}/pkg/$(1)'; \ + fi + @rm -f '$${STAGING_PARENT}/pkg/$(1)' + +$$(INFO_$(1)): $$(IPKG_$(1)) + $(IPKG) install $$(IPKG_$(1)) +endef + +install-targets: +install: + @$(CMD_TRACE) "installing... " + @$(MAKE) install-targets $(MAKE_TRACE) + +clean-targets: +clean: + @$(CMD_TRACE) "cleaning... " + @$(MAKE) clean-targets $(MAKE_TRACE) + rm -rf ${WRKDIR} ${ALL_IPKGS} ${PACKAGE_DIR}/.stamps/${PKG_NAME}* + +distclean: clean + rm -f ${FULLDISTFILES} + +.PHONY: all refetch extract patch configure \ + build fake package install clean build-all-ipkgs diff --git a/mk/pkg-bottom.mk b/mk/pkg-bottom.mk new file mode 100644 index 000000000..c5ac91df3 --- /dev/null +++ b/mk/pkg-bottom.mk @@ -0,0 +1,212 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. +#- +# Comments: +# * pre/do/post-foo are always defined here, but empty. This is so +# that we can call it (BSD make has .if target(foo) but GNU not) +# and it won't error out. +# * ${_foo_COOKIE} are the actual targets +# * default is "manual" -> define a do-foo: target in the Makefile +# * if you have a style -> define a pre-foo: and post-foo: if they +# are required, but the do-foo: magic is done here +# * we want to use styles (configure:gnu, build/install:auto), for +# making the Makefiles of the packages more clear + +#--- configure +pre-configure: +do-configure: +post-configure: +${_CONFIGURE_COOKIE}: ${_PATCH_COOKIE} + mkdir -p ${WRKBUILD} + @${MAKE} pre-configure $(MAKE_TRACE) + +ifneq ($(filter autotool,${CONFIGURE_STYLE}),) + cd ${WRKBUILD}; \ + autoreconf -vif $(MAKE_TRACE) +endif +ifneq ($(filter autoconf,${CONFIGURE_STYLE}),) + cd ${WRKBUILD}; \ + autoconf $(MAKE_TRACE) +endif +ifneq ($(filter gnu,${CONFIGURE_STYLE}),) + @$(CMD_TRACE) "configuring... " + @cd ${WRKBUILD}; \ + for i in $$(find . -name config.sub);do \ + if [ -f $$i ]; then \ + ${CP} $$i $$i.bak; \ + ${CP} ${SCRIPT_DIR}/config.sub $$i; \ + fi; \ + done; \ + for i in $$(find . -name config.guess);do \ + if [ -f $$i ]; then \ + ${CP} $$i $$i.bak; \ + ${CP} ${SCRIPT_DIR}/config.guess $$i; \ + fi; \ + done; + cd ${WRKBUILD}; rm -f config.{cache,status}; \ + env ${CONFIGURE_ENV} \ + ${BASH} ${WRKSRC}/configure \ + --build=${GNU_HOST_NAME} \ + --host=${GNU_TARGET_NAME} \ + --target=${GNU_TARGET_NAME} \ + --program-prefix= \ + --program-suffix= \ + --prefix=/usr \ + --datadir=/usr/share \ + --mandir=/usr/share/man \ + --libexecdir=/usr/sbin \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --disable-nls \ + --enable-shared \ + --enable-static \ + --disable-dependency-tracking \ + --disable-libtool-lock \ + ${CONFIGURE_ARGS} $(MAKE_TRACE) +else ifeq ($(filter-out manual,${CONFIGURE_STYLE}),) + env ${CONFIGURE_ENV} ${MAKE} do-configure $(MAKE_TRACE) +else + @echo "Invalid CONFIGURE_STYLE '${CONFIGURE_STYLE}'" >&2 + @exit 1 +endif + @${MAKE} post-configure $(MAKE_TRACE) + touch $@ + +#--- build +pre-build: +do-build: +post-build: +${_BUILD_COOKIE}: ${_CONFIGURE_COOKIE} + @env ${MAKE_ENV} ${MAKE} pre-build $(MAKE_TRACE) + @$(CMD_TRACE) "compiling... " +ifneq ($(filter auto,${BUILD_STYLE}),) + cd ${WRKBUILD} && env ${MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \ + ${MAKEJOBS} ${MAKE_FLAGS} ${ALL_TARGET} $(MAKE_TRACE) +else ifneq ($(filter manual,${BUILD_STYLE}),) + env ${MAKE_ENV} ${MAKE} do-build $(MAKE_TRACE) +else ifeq ($(strip ${BUILD_STYLE}),) + env ${MAKE_ENV} ${MAKE} do-build $(MAKE_TRACE) +else + @echo "Invalid BUILD_STYLE '${BUILD_STYLE}'" >&2 + @exit 1 +endif + @env ${MAKE_ENV} ${MAKE} post-build $(MAKE_TRACE) + touch $@ + +#--- fake +pre-install: +do-install: +post-install: +${_FAKE_COOKIE}: ${_BUILD_COOKIE} + -rm -f ${_ALL_CONTROLS} + @mkdir -p '${STAGING_PARENT}/pkg' ${WRKINST} '${STAGING_DIR}/scripts' + @${MAKE} ${_ALL_CONTROLS} $(MAKE_TRACE) + @env ${MAKE_ENV} ${MAKE} pre-install $(MAKE_TRACE) +ifneq ($(filter auto,${INSTALL_STYLE}),) + cd ${WRKBUILD} && env ${MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \ + DESTDIR='${WRKINST}' ${FAKE_FLAGS} ${INSTALL_TARGET} $(MAKE_TRACE) +else ifneq ($(filter manual,${INSTALL_STYLE}),) + env ${MAKE_ENV} ${MAKE} do-install $(MAKE_TRACE) +else ifeq ($(strip ${INSTALL_STYLE}),) + env ${MAKE_ENV} ${MAKE} do-install $(MAKE_TRACE) +else + @echo "Invalid INSTALL_STYLE '${INSTALL_STYLE}'" >&2 + @exit 1 +endif +ifneq ($(filter confprog,${INSTALL_STYLE}),) + for a in ${WRKINST}/usr/{bin/*-config,lib/pkgconfig/*.pc}; do \ + [[ -e $$a ]] || continue; \ + $(SED) "s,^prefix=.*,prefix=${STAGING_DIR}/usr," $$a; \ + done +endif + @env ${MAKE_ENV} ${MAKE} post-install $(MAKE_TRACE) + @if test -s '${STAGING_PARENT}/pkg/${PKG_NAME}'; then \ + cd '${STAGING_DIR}'; \ + while read fn; do \ + rm -f "$$fn"; \ + done <'${STAGING_PARENT}/pkg/${PKG_NAME}'; \ + fi + @rm -f '${STAGING_PARENT}/pkg/${PKG_NAME}' + @cd ${WRKINST}; \ + if [ "${PKG_NAME}" != "uClibc" -a "${PKG_NAME}" != "glibc" -a "${PKG_NAME}" != "libpthread" -a "${PKG_NAME}" != "libstdcxx" -a "${PKG_NAME}" != "libthread-db" ];then \ + find lib \( -name lib\*.so\* -o -name lib\*.a \) \ + -exec echo 'WARNING: ${PKG_NAME} installs files in /lib -' \ + ' fix this!' >&2 \; -quit 2>/dev/null; fi;\ + find usr ! -type d 2>/dev/null | \ + grep -v -e '^usr/share' -e '^usr/man' -e '^usr/info' | \ + tee '${STAGING_PARENT}/pkg/${PKG_NAME}' | \ + cpio -apdlmu --quiet '${STAGING_DIR}' + @cd '${STAGING_DIR}'; grep 'usr/lib/.*\.la$$' \ + '${STAGING_PARENT}/pkg/${PKG_NAME}' | while read fn; do \ + chmod u+w $$fn; \ + $(SED) "s,\(^libdir='\| \|-L\|^dependency_libs='\)/usr/lib,\1$(STAGING_DIR)/usr/lib,g" $$fn; \ + done; grep 'usr/s*bin/' '${STAGING_PARENT}/pkg/${PKG_NAME}' | \ + while read fn; do \ + b="$$(dd if="$$fn" bs=2 count=1 2>/dev/null)"; \ + [[ $$b = '#!' ]] || continue; \ + cp "$$fn" scripts/; \ + echo "scripts/$$(basename "$$fn")" \ + >>'${STAGING_PARENT}/pkg/${PKG_NAME}'; \ + done + touch $@ + +#--- package +${_IPKGS_COOKIE}: + @clean=0; \ + for f in ${ALL_IPKGS}; do \ + [[ -e $$f ]] && clean=1; \ + done; \ + [[ $$clean = 0 ]] || ${MAKE} clean + exec ${MAKE} package + +package: ${ALL_IPKGS} + @cd ${WRKDIR}/fake-${ARCH} || exit 1; \ + y=; sp=; for x in ${ALL_IDIRS}; do \ + y="$$y$$sp$${x#$(WRKDIR)/fake-${ARCH}/}"; \ + sp=' '; \ + done; ls=; ln=; x=1; [[ -z $$y ]] || \ + md5sum $$(find $$y -type f) | sed -e "s/*//" | \ + while read sum name; do \ + inode=$$(ls -i "$$name"); \ + echo "$$sum $${inode%% *} $$name"; \ + done | sort | while read sum inode name; do \ + if [[ $$sum = $$ls ]]; then \ + [[ $$li = $$inode ]] && continue; \ + case $$x in \ + 1) echo 'WARNING: duplicate files found in' \ + 'package "${PKG_NAME}"! Fix them.' >&2; \ + echo -n "> $$ln "; \ + ;; \ + 2) echo -n "> $$ln "; \ + ;; \ + 3) echo -n ' '; \ + ;; \ + esac; \ + echo -n "$$name"; \ + x=3; \ + else \ + case $$x in \ + 3) echo; \ + x=2; \ + ;; \ + esac; \ + fi; \ + ls=$$sum; \ + ln=$$name; \ + li=$$inode; \ + done + touch ${_IPKGS_COOKIE} + +#--- clean +clean-targets: clean-dev-generic + +clean-dev-generic: + @if test -s '${STAGING_PARENT}/pkg/${PKG_NAME}'; then \ + cd '${STAGING_DIR}'; \ + while read fn; do \ + rm -f "$$fn"; \ + done <'${STAGING_PARENT}/pkg/${PKG_NAME}'; \ + fi + @rm -f '${STAGING_PARENT}/pkg/${PKG_NAME}' diff --git a/mk/rootfs.mk b/mk/rootfs.mk new file mode 100644 index 000000000..e23769979 --- /dev/null +++ b/mk/rootfs.mk @@ -0,0 +1,21 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +define rootfs_template +ifeq ($(ADK_TARGET_ROOTFS_$(2)),y) +FS:=$(1) +FS_CMDLINE:=$(3) +endif +endef + +$(eval $(call rootfs_template,ext2-cf,EXT2_CF)) +$(eval $(call rootfs_template,ext2-mmc,EXT2_MMC)) +$(eval $(call rootfs_template,ext2,EXT2)) +$(eval $(call rootfs_template,initramfs,INITRAMFS)) +$(eval $(call rootfs_template,squashfs,SQUASHFS)) +$(eval $(call rootfs_template,yaffs,YAFFS)) +$(eval $(call rootfs_template,nfsroot,NFSROOT,root=/dev/nfs ip=dhcp)) + +export FS diff --git a/mk/split-cfg.mk b/mk/split-cfg.mk new file mode 100644 index 000000000..0aa5acba1 --- /dev/null +++ b/mk/split-cfg.mk @@ -0,0 +1,10 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. +#- +# must work with both BSD and GNU make + +${TOPDIR}/.cfg/ADK_HAVE_DOT_CONFIG: ${TOPDIR}/.config \ + ${TOPDIR}/mk/split-cfg.mk ${TOPDIR}/scripts/split-cfg.sh + ${BASH} ${TOPDIR}/scripts/split-cfg.sh '${TOPDIR}' diff --git a/mk/toolchain.mk b/mk/toolchain.mk new file mode 100644 index 000000000..2701736ca --- /dev/null +++ b/mk/toolchain.mk @@ -0,0 +1,6 @@ +prepare: ${WRKDIST}/.prepared $(WRKBUILD)/.headers +configure: ${WRKBUILD}/.configure_done +compile: $(WRKBUILD)/.compiled +install: $(WRKBUILD)/.installed +clean: + rm -rf $(WRKDIR) diff --git a/mk/tools.mk b/mk/tools.mk new file mode 100644 index 000000000..429e741c2 --- /dev/null +++ b/mk/tools.mk @@ -0,0 +1,6 @@ +prepare: ${WRKDIST}/.prepared +configure: ${WRKBUILD}/.configure_done +compile: $(WRKBUILD)/.compiled +install: $(WRKBUILD)/.installed +clean: + rm -rf $(WRKDIR) diff --git a/mk/vars.mk b/mk/vars.mk new file mode 100644 index 000000000..93f40be23 --- /dev/null +++ b/mk/vars.mk @@ -0,0 +1,120 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +CP= cp -fpR +INSTALL_DIR= install -d -m0755 +INSTALL_DATA= install -m0644 +INSTALL_BIN= install -m0755 +INSTALL_SCRIPT= install -m0755 +MAKEFLAGS= $(EXTRA_MAKEFLAGS) +BUILD_USER= $(shell id -un) +BUILD_GROUP= $(shell id -gn) +ifeq ($(DEBUG),1) +TARGET_DEBUGGING:= -g -O0 -fno-omit-frame-pointer +else +TARGET_DEBUGGING:= -fomit-frame-pointer +endif +ifeq ($(ADK_SSP),y) +TARGET_SSP:= -fstack-protector-all +endif +TARGET_CFLAGS:= $(TARGET_OPTIMIZATION) $(TARGET_CFLAGS_ARCH) $(TARGET_DEBUGGING) $(TARGET_SSP) + +BASE_DIR:= $(TOPDIR) +DISTDIR?= ${BASE_DIR}/dl +BUILD_DIR:= ${BASE_DIR}/build_${CPU_ARCH} +BUILD_DIR_PFX:= $(BASE_DIR)/build_* +STAGING_PARENT:= ${BASE_DIR}/cross_${CPU_ARCH} +STAGING_PARENT_PFX:= ${BASE_DIR}/cross_* +STAGING_TOOLS:= ${STAGING_PARENT}/host +STAGING_DIR:= ${STAGING_PARENT}/target +TOOLCHAIN_BUILD_DIR= $(BASE_DIR)/toolchain_build_${CPU_ARCH} +TOOLCHAIN_BUILD_DIR_PFX=$(BASE_DIR)/toolchain_build_* +TOOLS_BUILD_DIR= $(BASE_DIR)/tools_build +SCRIPT_DIR:= $(BASE_DIR)/scripts +BIN_DIR:= $(BASE_DIR)/bin_${DEVICE} +BIN_DIR_PFX:= $(BASE_DIR)/bin_* +PACKAGE_DIR:= $(BIN_DIR)/packages +TARGET_DIR:= $(BASE_DIR)/root_${DEVICE} +TARGET_DIR_PFX:= $(BASE_DIR)/root_* +TARGET_PATH= ${SCRIPT_DIR}:${STAGING_TOOLS}/bin:${STAGING_DIR}/scripts:${_PATH} +ifeq ($(ADK_TARGET_LIB_GLIBC),y) +REAL_GNU_TARGET_NAME= $(CPU_ARCH)-linux-gnu +GNU_TARGET_NAME= $(CPU_ARCH)-linux +KERNEL_CROSS:= $(STAGING_TOOLS)/bin/$(CPU_ARCH)-linux-gnu- +TARGET_CROSS:= $(STAGING_TOOLS)/bin/$(CPU_ARCH)-linux-gnu- +else +REAL_GNU_TARGET_NAME= $(CPU_ARCH)-linux-uclibc +GNU_TARGET_NAME= $(CPU_ARCH)-linux +KERNEL_CROSS:= $(STAGING_TOOLS)/bin/$(CPU_ARCH)-linux-uclibc- +TARGET_CROSS:= $(STAGING_TOOLS)/bin/$(CPU_ARCH)-linux-uclibc- +endif +TOOLCHAIN_SYSROOT:= $(TOOLCHAIN_BUILD_DIR)/libc_dev +TARGET_COMPILER_PREFIX?=${TARGET_CROSS} +TARGET_CC:= ${TARGET_COMPILER_PREFIX}gcc +TARGET_CXX:= ${TARGET_COMPILER_PREFIX}g++ +TARGET_CPPFLAGS+= -I${STAGING_DIR}/usr/include +TARGET_LDFLAGS+= -Wl,-O2 +PATCH= ${BASH} $(SCRIPT_DIR)/patch.sh +SED:= sed -i -e +LINUX_DIR:= $(BUILD_DIR)/linux + +TARGET_CONFIGURE_OPTS= PATH='${TARGET_PATH}' \ + AR=$(TARGET_CROSS)ar \ + AS=$(TARGET_CROSS)as \ + LD=$(TARGET_CROSS)ld \ + NM=$(TARGET_CROSS)nm \ + CC="$(TARGET_CC)" \ + GCC="$(TARGET_CC)" \ + CXX="$(TARGET_CXX)" \ + RANLIB=$(TARGET_CROSS)ranlib +HOST_CONFIGURE_OPTS= CC_FOR_BUILD='${HOSTCC}' \ + CFLAGS_FOR_BUILD='${HOSTCFLAGS}' \ + CPPFLAGS_FOR_BUILD='${HOSTCPPFLAGS}' \ + LDFLAGS_FOR_BUILD='${HOSTLDFLAGS}' + +# invoke ipkg-build with some default options +IPKG_BUILD:= PATH='${TARGET_PATH}' ${BASH} \ + ${TOPDIR}/scripts/ipkg-build -c -o 0 -g 0 +# where to build (and put) .ipk packages +IPKG_TARGET_DIR:= $(PACKAGE_DIR) +IPKG:= IPKG_TMP=$(BUILD_DIR)/tmp \ + IPKG_INSTROOT=$(TARGET_DIR) \ + IPKG_CONF_DIR=$(STAGING_DIR)/etc \ + IPKG_OFFLINE_ROOT=$(TARGET_DIR) \ + ${BASH} ${SCRIPT_DIR}/ipkg -force-defaults -force-depends +IPKG_STATE_DIR:= $(TARGET_DIR)/usr/lib/ipkg + +RSTRIP:= prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh + +EXTRACT_CMD= mkdir -p ${WRKDIR}; \ + cd ${WRKDIR} && \ + for file in ${FULLDISTFILES}; do case $$file in \ + *.cpio) \ + cat $$file | cpio -i -d --quiet ;; \ + *.tar) \ + tar -xf $$file ;; \ + *.cpio.Z | *.cpio.gz | *.cgz | *.mcz) \ + gzip -dc $$file | cpio -i -d --quiet ;; \ + *.tar.Z | *.tar.gz | *.taz | *.tgz) \ + gzip -dc $$file | tar -xf - ;; \ + *.cpio.bz2 | *.cbz) \ + bzip2 -dc $$file | cpio -i -d --quiet ;; \ + *.tar.bz2 | *.tbz | *.tbz2) \ + bzip2 -dc $$file | tar -xf - ;; \ + *.zip) \ + unzip -d ${WRKDIR} $$file ;; \ + *) \ + echo "Cannot extract '$$file'" >&2; \ + false ;; \ + esac; done + +ifeq ($(VERBOSE),1) +QUIET:= +else +QUIET:= --quiet +endif +FETCH_CMD?= wget -t1 --timeout=30 $(QUIET) + +include $(TOPDIR)/mk/mirrors.mk -- cgit v1.2.3