summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk')
-rw-r--r--mk/build.mk170
-rw-r--r--mk/buildhlp.mk2
-rw-r--r--mk/image.mk7
-rw-r--r--mk/modules.mk23
-rw-r--r--mk/package.mk17
-rw-r--r--mk/pkg-bottom.mk74
-rw-r--r--mk/rootfs.mk2
-rw-r--r--mk/split-cfg.mk8
-rw-r--r--mk/vars.mk34
9 files changed, 210 insertions, 127 deletions
diff --git a/mk/build.mk b/mk/build.mk
index 20c08b15a..f2d58ad5c 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -21,8 +21,8 @@ DEFCONFIG= ADK_DEVELSYSTEM=n \
ADK_COMPILE_HEIMDAL=n \
ADK_PACKAGE_HEIMDAL_PKINIT=n \
ADK_PACKAGE_HEIMDAL_SERVER=n \
- ADK_PACKAGE_HEIMDAL_LIBS=n \
- ADK_PACKAGE_HEIMDAL_CLIENT_LIBS=n \
+ ADK_PACKAGE_LIBHEIMDAL=n \
+ ADK_PACKAGE_LIBHEIMDAL_CLIENT=n \
BUSYBOX_SELINUX=n \
BUSYBOX_MODPROBE_SMALL=n \
BUSYBOX_EJECT=n \
@@ -48,52 +48,21 @@ DEFCONFIG= ADK_DEVELSYSTEM=n \
BUSYBOX_FEATURE_OSF_LABEL=n \
BUSYBOX_FEATURE_SGI_LABEL=n \
ADK_KERNEL_RT2X00_DEBUG=n \
- ADK_KERNEL_ATH5K_DEBUG=n
+ ADK_KERNEL_ATH5K_DEBUG=n \
+ ADK_KERNEL_DEBUG_WITH_KGDB=n
noconfig_targets:= menuconfig \
_config \
_mconfig \
distclean \
+ defconfig \
tags
-MAKECLEANDIR_SYMBOLS= ADK_TARGET_LIB_UCLIBC \
- ADK_TARGET_LIB_GLIBC \
- ADK_TARGET_LIB_ECLIBC \
- ADK_DEBUG
-
-MAKECLEAN_SYMBOLS= ADK_TARGET_PACKAGE_IPKG \
- ADK_TARGET_PACKAGE_RPM \
- ADK_TARGET_PACKAGE_TGZ
-
POSTCONFIG= -@ \
if [ -f .config.old ];then \
- if [ -d .cfg ];then \
- what=cleantarget; \
- for symbol in ${MAKECLEANDIR_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; \
- what=clean; \
- 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: Package backend 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_*/w-busybox*/busybox*/.configure_done ];then \
- rm build_*/w-busybox*/busybox*/.configure_done; \
+ if [ -f .busyboxcfg ];then \
+ rm .busyboxcfg; \
fi; \
- fi; \
fi
# Pull in the user's configuration file
@@ -107,16 +76,13 @@ include ${TOPDIR}/mk/split-cfg.mk
all: world
-allcopy: all
- $(CP) $(BIN_DIR) $(TOPDIR)/bulkdir/${targetdir}/
-
${TOPDIR}/package/Depends.mk: ${TOPDIR}/.config $(wildcard ${TOPDIR}/package/*/Makefile)
mksh ${TOPDIR}/package/depmaker
.NOTPARALLEL:
.PHONY: all world clean cleantarget cleandir distclean image_clean
-world: $(DISTDIR) $(BUILD_DIR) $(TARGET_DIR) $(PACKAGE_DIR) ${TOPDIR}/.cfg/ADK_HAVE_DOT_CONFIG
+world: $(DISTDIR) $(BUILD_DIR) $(TARGET_DIR) $(PACKAGE_DIR) ${TOPDIR}/.ADK_HAVE_DOT_CONFIG
${BASH} ${TOPDIR}/scripts/scan-pkgs.sh
ifeq ($(ADK_NATIVE),y)
$(MAKE) -f mk/build.mk toolchain/kernel-headers-prepare target/config-prepare target/compile package/compile root_clean package/install package_index target/install
@@ -156,10 +122,10 @@ ifeq ($(ADK_TARGET_PACKAGE_IPKG),y)
echo "option offline_root ${TARGET_DIR}" >>$(STAGING_DIR)/etc/ipkg.conf
endif
-package/%: ${TOPDIR}/.cfg/ADK_HAVE_DOT_CONFIG ${STAGING_DIR}/etc/ipkg.conf ${TOPDIR}/package/Depends.mk
+package/%: ${TOPDIR}/.ADK_HAVE_DOT_CONFIG ${STAGING_DIR}/etc/ipkg.conf ${TOPDIR}/package/Depends.mk
$(MAKE) -C package $(patsubst package/%,%,$@)
-target/%: ${TOPDIR}/.cfg/ADK_HAVE_DOT_CONFIG
+target/%: ${TOPDIR}/.ADK_HAVE_DOT_CONFIG
$(MAKE) -C target $(patsubst target/%,%,$@)
toolchain/%: ${STAGING_DIR}
@@ -172,10 +138,10 @@ switch:
echo "Saving configuration for target: ${ADK_TARGET}"
cp -p .config .config.${ADK_TARGET}
if [ -f .config.old ];then cp -p .config.old .config.old.${ADK_TARGET};fi
- mv .cfg .cfg.${ADK_TARGET}
+ if [ -f .config.split ];then cp -p .config.split .config.split.${ADK_TARGET};fi
if [ -f .config.${TARGET} ];then cp -p .config.${TARGET} .config; \
cp -p .config.old.${TARGET} .config.old; \
- mv .cfg.${TARGET} .cfg; \
+ cp -p .config.split.${TARGET} .config.split; \
echo "Setting configuration to target: ${TARGET}"; \
else echo "No old target config found";mv .config .config.bak; make TARGET=${TARGET};fi
@@ -221,8 +187,9 @@ clean:
rm $$f ; \
done \
done
- rm -rf $(BUILD_DIR) $(BIN_DIR) $(TARGET_DIR) ${TOPDIR}/.cfg \
- ${TOPDIR}/package/pkglist.d
+ rm -rf $(BUILD_DIR) $(BIN_DIR) $(TARGET_DIR) \
+ ${TOPDIR}/.cfg_${ADK_TARGET}_${ADK_LIBC} \
+ ${TOPDIR}/package/pkglist.d
rm -f ${TOPDIR}/package/*/info.mk ${TOPDIR}/package/Depends.mk
cleankernel:
@@ -237,23 +204,28 @@ cleandir:
rm -rf $(TOOLCHAIN_BUILD_DIR_PFX) $(STAGING_PARENT_PFX) \
$(TOOLS_BUILD_DIR)
rm -f .menu .tmpconfig.h ${TOPDIR}/package/*/info.mk \
- ${TOPDIR}/package/Depends.mk ${TOPDIR}/prereq.mk
+ ${TOPDIR}/package/Depends.mk ${TOPDIR}/prereq.mk \
+ .busyboxcfg
cleantarget:
@$(TRACE) cleantarget
@$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE)
- rm -rf $(BUILD_DIR) $(BIN_DIR) $(TARGET_DIR) ${TOPDIR}/.cfg
- rm -rf $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT) all.config .defconfig
- rm -f .tmpconfig.h ${TOPDIR}/package/*/info.mk
+ rm -rf $(BUILD_DIR) $(BIN_DIR) $(TARGET_DIR) \
+ ${TOPDIR}/.cfg_${ADK_TARGET}_${ADK_LIBC}
+ rm -rf $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT)
+ rm -f .tmpconfig.h ${TOPDIR}/package/*/info.mk \
+ .busyboxcfg all.config .defconfig
distclean:
@$(TRACE) distclean
@$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE)
@rm -rf $(BUILD_DIR_PFX) $(BIN_DIR_PFX) $(TARGET_DIR_PFX) $(DISTDIR) \
- ${TOPDIR}/.cfg* ${TOPDIR}/package/pkglist.d $(TOPDIR)/bulkdir
- @rm -rf $(TOOLCHAIN_BUILD_DIR_PFX) $(STAGING_PARENT_PFX) $(TOOLS_BUILD_DIR)
+ ${TOPDIR}/.cfg* ${TOPDIR}/package/pkglist.d
+ @rm -rf $(TOOLCHAIN_BUILD_DIR_PFX) $(STAGING_PARENT_PFX) \
+ $(TOOLS_BUILD_DIR)
@rm -f .config* .defconfig .tmpconfig.h all.config ${TOPDIR}/prereq.mk \
- .menu ${TOPDIR}/package/*/info.mk ${TOPDIR}/package/Depends.mk
+ .menu ${TOPDIR}/package/*/info.mk ${TOPDIR}/package/Depends.mk \
+ .busyboxcfg .ADK_HAVE_DOT_CONFIG
else # ! ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y)
@@ -300,22 +272,49 @@ ifneq (,$(filter CYGWIN%,${OStype}))
endif
@if [ ! -z "$(TARGET)" ];then \
grep "^config" target/Config.in \
- |grep -i "$(TARGET)" \
+ |grep -i "$(TARGET)"\$$ \
|sed -e "s#^config \(.*\)#\1=y#" \
>> $(TOPDIR)/.defconfig; \
for symbol in ${DEFCONFIG}; do \
echo $$symbol >> $(TOPDIR)/.defconfig; \
done; \
fi
-ifneq (,$(filter qemu%,${TARGET}))
+ @if [ ! -z "$(FS)" ];then \
+ grep "^config" target/Config.in \
+ |grep -i "$(FS)" \
+ |sed -e "s#^config \(.*\)#\1=y#" \
+ >> $(TOPDIR)/.defconfig; \
+ fi
+ @if [ ! -z "$(PKG)" ];then \
+ grep "^config" target/Config.in \
+ |grep -i "$(PKG)" \
+ |sed -e "s#^config \(.*\)#\1=y#" \
+ >> $(TOPDIR)/.defconfig; \
+ fi
+ @if [ ! -z "$(LIBC)" ];then \
+ grep "^config" target/Config.in \
+ |grep -i "$(LIBC)" \
+ |sed -e "s#^config \(.*\)#\1=y#" \
+ >> $(TOPDIR)/.defconfig; \
+ fi
+ifneq (,$(filter %_qemu,${TARGET}))
@echo ADK_LINUX_QEMU=y >> $(TOPDIR)/.defconfig
endif
+ifneq (,$(filter %_toolchain,${TARGET}))
+ @echo ADK_LINUX_TOOLCHAIN=y >> $(TOPDIR)/.defconfig
+endif
ifneq (,$(filter rescue%,${TARGET}))
@echo ADK_LINUX_RESCUE=y >> $(TOPDIR)/.defconfig
endif
ifneq (,$(filter rb%,${TARGET}))
@echo ADK_LINUX_MIKROTIK=y >> $(TOPDIR)/.defconfig
endif
+ifneq (,$(filter alix%,${TARGET}))
+ @echo ADK_LINUX_ALIX=y >> $(TOPDIR)/.defconfig
+endif
+ifneq (,$(filter wrap%,${TARGET}))
+ @echo ADK_LINUX_ALIX=y >> $(TOPDIR)/.defconfig
+endif
@if [ ! -z "$(TARGET)" ];then \
$(CONFIG)/conf -D .defconfig $(CONFIG_CONFIG_IN); \
fi
@@ -341,7 +340,7 @@ ifneq (,$(filter CYGWIN%,${OStype}))
endif
@if [ ! -z "$(TARGET)" ];then \
grep "^config" target/Config.in \
- |grep -i "$(TARGET)" \
+ |grep -i "$(TARGET)"\$$ \
|sed -e "s#^config \(.*\)#\1=y#" \
>> $(TOPDIR)/all.config; \
for symbol in ${DEFCONFIG}; do \
@@ -369,12 +368,21 @@ endif
ifneq (,$(filter %_qemu,${TARGET}))
@echo ADK_LINUX_QEMU=y >> $(TOPDIR)/all.config
endif
+ifneq (,$(filter %_toolchain,${TARGET}))
+ @echo ADK_LINUX_TOOLCHAIN=y >> $(TOPDIR)/all.config
+endif
ifneq (,$(filter %_rescue,${TARGET}))
@echo ADK_LINUX_RESCUE=y >> $(TOPDIR)/all.config
endif
ifneq (,$(filter rb%,${TARGET}))
@echo ADK_LINUX_MIKROTIK=y >> $(TOPDIR)/all.config
endif
+ifneq (,$(filter alix%,${TARGET}))
+ @echo ADK_LINUX_ALIX=y >> $(TOPDIR)/all.config
+endif
+ifneq (,$(filter wrap%,${TARGET}))
+ @echo ADK_LINUX_ALIX=y >> $(TOPDIR)/all.config
+endif
menuconfig: $(CONFIG)/mconf defconfig .menu
@if [ ! -f .config ];then \
@@ -396,32 +404,48 @@ _mconfig2: ${CONFIG}/conf modconfig .menu
distclean:
@$(MAKE) -C $(CONFIG) clean
@rm -rf $(BUILD_DIR_PFX) $(BIN_DIR_PFX) $(TARGET_DIR_PFX) $(DISTDIR) \
- ${TOPDIR}/.cfg* ${TOPDIR}/package/pkglist.d $(TOPDIR)/bulkdir
+ ${TOPDIR}/.cfg* ${TOPDIR}/package/pkglist.d
@rm -rf $(TOOLCHAIN_BUILD_DIR_PFX) $(STAGING_PARENT_PFX) $(TOOLS_BUILD_DIR)
@rm -f .config* .defconfig .tmpconfig.h all.config ${TOPDIR}/prereq.mk \
- .menu ${TOPDIR}/package/*/info.mk ${TOPDIR}/package/Depends.mk
+ .menu ${TOPDIR}/package/*/info.mk ${TOPDIR}/package/Depends.mk .ADK_HAVE_DOT_CONFIG
endif # ! ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y)
# build all targets and combinations
bulk:
- while read target libc fs p; do \
- mkdir -p $(TOPDIR)/bulkdir/$$target-$$libc-$$fs; \
+ while read target libc fs; do \
+ mkdir -p $(TOPDIR)/bin/$$target_$$libc; \
+ ( \
+ echo === building $$target $$libc $$fs on $$(date); \
+ $(GMAKE) prereq && \
+ $(GMAKE) TARGET=$$target LIBC=$$libc FS=$$fs defconfig; \
+ $(GMAKE) VERBOSE=1 all; \
+ rm .config; \
+ ) 2>&1 | tee $(TOPDIR)/bin/$$target_$$libc/$$target-$$libc-$$fs.log; \
+ done <${TOPDIR}/target/bulk.lst
+
+bulkall:
+ while read target libc fs; do \
+ mkdir -p $(TOPDIR)/bin/$$target_$$libc; \
+ ( \
+ echo === building $$target $$libc $$fs on $$(date); \
+ $(GMAKE) prereq && \
+ $(GMAKE) TARGET=$$target LIBC=$$libc FS=$$fs allconfig; \
+ $(GMAKE) VERBOSE=1 all; \
+ rm .config; \
+ ) 2>&1 | tee $(TOPDIR)/bin/$$target_$$libc/$$target-$$libc-$$fs.log; \
+ done <${TOPDIR}/target/bulk.lst
+
+bulkallmod:
+ while read target libc fs; do \
+ mkdir -p $(TOPDIR)/bin/$$target_$$libc; \
( \
echo === building $$target $$libc $$fs on $$(date); \
$(GMAKE) prereq && \
- if [ "x$$p" = xy ];then \
- $(GMAKE) TARGET=$$target LIBC=$$libc FS=$$fs \
- allmodconfig; \
- else \
- $(GMAKE) TARGET=$$target LIBC=$$libc FS=$$fs \
- defconfig; \
- fi && \
- $(GMAKE) VERBOSE=1 -f mk/build.mk allcopy \
- targetdir=$$target-$$libc-$$fs; \
- $(GMAKE) cleantarget; \
+ $(GMAKE) TARGET=$$target LIBC=$$libc FS=$$fs allmodconfig; \
+ $(GMAKE) VERBOSE=1 all; \
rm .config; \
- ) 2>&1 | tee $(TOPDIR)/bulkdir/$$target-$$libc-$$fs/log; \
+ ) 2>&1 | tee $(TOPDIR)/bin/$$target_$$libc/$$target-$$libc-$$fs.log; \
done <${TOPDIR}/target/bulk.lst
menu .menu: $(wildcard ${TOPDIR}/package/*/Makefile)
diff --git a/mk/buildhlp.mk b/mk/buildhlp.mk
index 684801617..e45504697 100644
--- a/mk/buildhlp.mk
+++ b/mk/buildhlp.mk
@@ -58,7 +58,7 @@ 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}/) \
+ [ ! -d ./src ] || (cd src; $(PREVENT_PATCH) cp -Rp . ${WRKDIST}/) \
$(MAKE_TRACE)
@${MAKE} post-patch $(MAKE_TRACE)
touch $@
diff --git a/mk/image.mk b/mk/image.mk
index 04506f0cd..04fae43bf 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -54,12 +54,17 @@ image-prepare-post:
INITRAMFS= ${ADK_TARGET}-${ADK_LIBC}-${FS}
ROOTFSSQUASHFS= ${ADK_TARGET}-${ADK_LIBC}-${FS}.img
-ROOTFSTARBALL= ${ADK_TARGET}-${ADK_LIBC}-${FS}.tar.gz
+ROOTFSTARBALL= ${ADK_TARGET}-${ADK_LIBC}-${FS}+kernel.tar.gz
+ROOTFSUSERTARBALL= ${ADK_TARGET}-${ADK_LIBC}-${FS}.tar.gz
INITRAMFS_PIGGYBACK= ${ADK_TARGET}-${ADK_LIBC}-${FS}.cpio
${BIN_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR}
cd ${TARGET_DIR}; tar -cf - --owner=0 --group=0 . | gzip -n9 >$@
+${BIN_DIR}/${ROOTFSUSERTARBALL}: ${TARGET_DIR}
+ cd ${TARGET_DIR}; tar --exclude ./boot -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 -oC512 -Mdist -Hnewc | ${ADK_COMPRESSION_TOOL} >$@
diff --git a/mk/modules.mk b/mk/modules.mk
index c208b80a7..5ba6ab1e6 100644
--- a/mk/modules.mk
+++ b/mk/modules.mk
@@ -66,6 +66,14 @@ $(eval $(call KMOD_template,ATH5K,ath5k,\
$(MODULES_DIR)/kernel/drivers/net/wireless/ath/ath5k/ath5k \
,20, kmod-led-class))
+$(eval $(call KMOD_template,P54_COMMON,p54-common,\
+ $(MODULES_DIR)/kernel/drivers/net/wireless/p54/p54common \
+,68))
+
+$(eval $(call KMOD_template,P54_USB,p54-usb,\
+ $(MODULES_DIR)/kernel/drivers/net/wireless/p54/p54usb \
+,70))
+
$(eval $(call KMOD_template,RT2X00,rt2x00,\
$(MODULES_DIR)/kernel/drivers/net/wireless/rt2x00/rt2x00lib \
$(MODULES_DIR)/kernel/drivers/net/wireless/rt2x00/rt2x00pci \
@@ -858,9 +866,12 @@ $(eval $(call KMOD_template,RPCSEC_GSS_KRB5,rpcsec-gss-krb5,\
$(MODULES_DIR)/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5 \
,26))
+$(eval $(call KMOD_template,LOCKD,lockd,\
+ $(MODULES_DIR)/kernel/fs/lockd/lockd \
+,27))
+
ifneq ($(ADK_KERNEL_NFS_FS),y)
$(eval $(call KMOD_template,NFS_FS,nfs-fs,\
- $(MODULES_DIR)/kernel/fs/lockd/lockd \
$(MODULES_DIR)/kernel/fs/nfs/nfs \
,30))
endif
@@ -916,6 +927,11 @@ $(eval $(call KMOD_template,SND,snd,\
$(MODULES_DIR)/kernel/sound/core/snd-pcm \
,40))
+$(eval $(call KMOD_template,SND_RAWMIDI,snd-rawmidi,\
+ $(MODULES_DIR)/kernel/sound/core/snd-hwdep \
+ $(MODULES_DIR)/kernel/sound/core/snd-rawmidi \
+,41))
+
$(eval $(call KMOD_template,SND_OSSEMUL,snd-ossemul,\
$(MODULES_DIR)/kernel/sound/core/oss/snd-mixer-oss \
$(MODULES_DIR)/kernel/sound/core/oss/snd-pcm-oss \
@@ -1049,6 +1065,11 @@ $(eval $(call KMOD_template,USB_PEGASUS,usb-pegasus,\
$(MODULES_DIR)/kernel/drivers/net/usb/pegasus \
,75))
+$(eval $(call KMOD_template,SND_USB_AUDIO,snd-usb-audio,\
+ $(MODULES_DIR)/kernel/sound/usb/snd-usb-lib \
+ $(MODULES_DIR)/kernel/sound/usb/snd-usb-audio \
+,75))
+
#
# Bluetooth
#
diff --git a/mk/package.mk b/mk/package.mk
index 50f5ecb61..32dc5464d 100644
--- a/mk/package.mk
+++ b/mk/package.mk
@@ -45,6 +45,7 @@ endif
ifeq ($(ADK_NATIVE),y)
CONFIGURE_ENV+= CONFIG_SHELL='$(strip ${SHELL})' \
+ SHELL='$(strip ${SHELL})' \
CFLAGS='$(strip ${TCFLAGS})' \
CXXFLAGS='$(strip ${TCXXFLAGS})' \
CPPFLAGS='$(strip ${TCPPFLAGS})' \
@@ -54,7 +55,6 @@ CONFIGURE_ENV+= CONFIG_SHELL='$(strip ${SHELL})' \
else
CONFIGURE_ENV+= ${TARGET_CONFIGURE_OPTS} \
${HOST_CONFIGURE_OPTS} \
- CC='${TARGET_CC}' CXX='${TARGET_CXX}' \
CFLAGS='$(strip ${TCFLAGS})' \
CXXFLAGS='$(strip ${TCXXFLAGS})' \
CPPFLAGS='$(strip ${TCPPFLAGS})' \
@@ -65,6 +65,7 @@ CONFIGURE_ENV+= ${TARGET_CONFIGURE_OPTS} \
ac_cv_func_realloc_0_nonnull=yes \
ac_cv_func_malloc_0_nonnull=yes
endif
+CONFIGURE_PROG?= configure
MAKE_FILE?= Makefile
# this is environment for 'make all' and 'make install'
MAKE_ENV?=
@@ -91,15 +92,19 @@ MAKE_ENV+= PATH='${TARGET_PATH}' \
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' \
+ CC='${TARGET_CC}' \
+ CXX='${TARGET_CXX}' \
+ AR='${TARGET_CROSS}ar' \
+ RANLIB='${TARGET_CROSS}ranlib' \
NM='${TARGET_CROSS}nm' \
+ STRIP='${TARGET_CROSS}strip' \
+ CROSS="$(TARGET_CROSS)" \
CFLAGS='$(strip ${TCFLAGS})' \
CXXFLAGS='$(strip ${TCXXFLAGS})' \
CPPFLAGS='$(strip ${TCPPFLAGS})' \
LDFLAGS='$(strip ${TLDFLAGS})'
endif
-MAKE_FLAGS+= ${XAKE_FLAGS}
+MAKE_FLAGS+= ${XAKE_FLAGS} V=1
FAKE_FLAGS+= ${XAKE_FLAGS}
ifeq ($(strip ${WRKDIR_BSD}),)
@@ -216,7 +221,7 @@ ifeq (,$(filter noremove,$(7)))
fi
endif
@rm -f '$${STAGING_PARENT}/pkg/$(1)'
- @cd $${IDIR_$(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; \
@@ -229,7 +234,7 @@ endif
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 '$${STAGING_DIR}'
+ cpio -padlmu '$${STAGING_DIR}'
@cd '$${STAGING_DIR}'; grep 'usr/lib/.*\.la$$$$' \
'$${STAGING_PARENT}/pkg/$(1)' | while read fn; do \
chmod u+w $$$$fn; \
diff --git a/mk/pkg-bottom.mk b/mk/pkg-bottom.mk
index 0dc830b28..fa1baf5cb 100644
--- a/mk/pkg-bottom.mk
+++ b/mk/pkg-bottom.mk
@@ -5,11 +5,11 @@
# 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
+# * default is "auto"
+# * define "manual" if you need your own method
+# -> 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
pre-configure:
do-configure:
@@ -18,21 +18,42 @@ ${_CONFIGURE_COOKIE}: ${_PATCH_COOKIE}
mkdir -p ${WRKBUILD}
@${MAKE} pre-configure $(MAKE_TRACE)
-ifneq ($(filter autogen,${CONFIGURE_STYLE}),)
+ifneq ($(filter autogen,${AUTOTOOL_STYLE}),)
cd ${WRKBUILD}; \
./autogen.sh $(MAKE_TRACE)
endif
-ifneq ($(filter autotool,${CONFIGURE_STYLE}),)
+ifneq ($(filter autotool,${AUTOTOOL_STYLE}),)
cd ${WRKBUILD}; \
env AUTOCONF_VERSION=2.62 \
AUTOMAKE_VERSION=1.9 \
- autoreconf -vif $(MAKE_TRACE)
+ autoreconf -vf;libtoolize $(MAKE_TRACE)
endif
-ifneq ($(filter autoconf,${CONFIGURE_STYLE}),)
+ifneq ($(filter autoconf,${AUTOTOOL_STYLE}),)
cd ${WRKBUILD}; \
env AUTOCONF_VERSION=2.62 autoconf $(MAKE_TRACE)
endif
-ifneq ($(filter gnu,${CONFIGURE_STYLE}),)
+ifneq ($(filter manual,${CONFIG_STYLE}),)
+ env ${CONFIGURE_ENV} ${MAKE} do-configure $(MAKE_TRACE)
+else ifneq ($(filter minimal,${CONFIG_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_PROG} \
+ ${CONFIGURE_ARGS} $(MAKE_TRACE)
+else ifeq ($(strip ${CONFIG_STYLE}),)
@$(CMD_TRACE) "configuring... "
@cd ${WRKBUILD}; \
for i in $$(find . -name config.sub);do \
@@ -49,7 +70,7 @@ ifneq ($(filter gnu,${CONFIGURE_STYLE}),)
done;
cd ${WRKBUILD}; rm -f config.{cache,status}; \
env ${CONFIGURE_ENV} \
- ${BASH} ${WRKSRC}/configure \
+ ${BASH} ${WRKSRC}/${CONFIGURE_PROG} \
--build=${GNU_HOST_NAME} \
--host=${GNU_TARGET_NAME} \
--target=${GNU_TARGET_NAME} \
@@ -58,7 +79,7 @@ ifneq ($(filter gnu,${CONFIGURE_STYLE}),)
--prefix=/usr \
--datadir=/usr/share \
--mandir=/usr/share/man \
- --libexecdir=/usr/sbin \
+ --libexecdir=/usr/libexec \
--localstatedir=/var \
--sysconfdir=/etc \
--disable-nls \
@@ -67,10 +88,8 @@ ifneq ($(filter gnu,${CONFIGURE_STYLE}),)
--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
+ @echo "Invalid CONFIG_STYLE '${CONFIG_STYLE}'" >&2
@exit 1
endif
@${MAKE} post-configure $(MAKE_TRACE)
@@ -89,13 +108,12 @@ 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} \
- ${MAKE_FLAGS} ${ALL_TARGET} $(MAKE_TRACE)
-else ifneq ($(filter manual,${BUILD_STYLE}),)
+
+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)
+ cd ${WRKBUILD} && env ${MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
+ ${MAKE_FLAGS} ${ALL_TARGET} $(MAKE_TRACE)
else
@echo "Invalid BUILD_STYLE '${BUILD_STYLE}'" >&2
@exit 1
@@ -109,15 +127,18 @@ post-install:
${_FAKE_COOKIE}: ${_BUILD_COOKIE}
-rm -f ${_ALL_CONTROLS}
@mkdir -p '${STAGING_PARENT}/pkg' ${WRKINST} '${STAGING_DIR}/scripts'
+ @mkdir -p ${WRKINST}/{sbin,bin,etc,lib}
+ @mkdir -p ${WRKINST}/usr/{sbin,bin,etc,lib}
@${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}),)
+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)
+ cd ${WRKBUILD} && env ${MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
+ DESTDIR='${WRKINST}' ${FAKE_FLAGS} ${INSTALL_TARGET} $(MAKE_TRACE)
+ifeq (,$(filter libonly,${PKG_OPTS}))
+ env ${MAKE_ENV} ${MAKE} post-install $(MAKE_TRACE)
+endif
else
@echo "Invalid INSTALL_STYLE '${INSTALL_STYLE}'" >&2
@exit 1
@@ -126,9 +147,6 @@ endif
[[ -e $$a ]] || continue; \
$(SED) "s,^prefix=.*,prefix=${STAGING_DIR}/usr," $$a; \
done
-ifeq (,$(filter libonly,${PKG_OPTS}))
- @env ${MAKE_ENV} ${MAKE} post-install $(MAKE_TRACE)
-endif
ifeq (,$(filter noremove,${PKG_OPTS}))
@if test -s '${STAGING_PARENT}/pkg/${PKG_NAME}'; then \
cd '${STAGING_DIR}'; \
@@ -138,7 +156,7 @@ ifeq (,$(filter noremove,${PKG_OPTS}))
fi
endif
@rm -f '${STAGING_PARENT}/pkg/${PKG_NAME}'
- @cd ${WRKINST}; \
+ @-cd ${WRKINST}; \
if [ "${PKG_NAME}" != "uClibc" -a "${PKG_NAME}" != "eglibc" -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 -' \
@@ -146,7 +164,7 @@ endif
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 '${STAGING_DIR}'
+ cpio -padlmuv '${STAGING_DIR}'
@cd '${STAGING_DIR}'; grep 'usr/lib/.*\.la$$' \
'${STAGING_PARENT}/pkg/${PKG_NAME}' | while read fn; do \
chmod u+w $$fn; \
diff --git a/mk/rootfs.mk b/mk/rootfs.mk
index 4db8b730d..1099a7fac 100644
--- a/mk/rootfs.mk
+++ b/mk/rootfs.mk
@@ -18,7 +18,7 @@ $(eval $(call rootfs_template,archive,ARCHIVE))
$(eval $(call rootfs_template,initramfs,INITRAMFS))
$(eval $(call rootfs_template,initramfs-piggyback,INITRAMFS_PIGGYBACK))
$(eval $(call rootfs_template,squashfs,SQUASHFS))
-$(eval $(call rootfs_template,yaffs,YAFFS))
+$(eval $(call rootfs_template,yaffs,YAFFS,root=/dev/mtdblock1))
$(eval $(call rootfs_template,nfsroot,NFSROOT,root=/dev/nfs ip=dhcp init=/init))
$(eval $(call rootfs_template,encrypted,ENCRYPTED))
diff --git a/mk/split-cfg.mk b/mk/split-cfg.mk
index 9f4bff8e7..e9521c259 100644
--- a/mk/split-cfg.mk
+++ b/mk/split-cfg.mk
@@ -2,6 +2,8 @@
# 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
- mksh ${TOPDIR}/scripts/split-cfg.sh '${TOPDIR}'
+${TOPDIR}/.ADK_HAVE_DOT_CONFIG: \
+ ${TOPDIR}/.config ${TOPDIR}/mk/split-cfg.mk \
+ ${TOPDIR}/scripts/split-cfg.sh
+ mksh ${TOPDIR}/scripts/split-cfg.sh '${TOPDIR}' '${ADK_TARGET}' '${ADK_LIBC}'
+ touch ${TOPDIR}/.ADK_HAVE_DOT_CONFIG
diff --git a/mk/vars.mk b/mk/vars.mk
index cba312e2d..2151348b0 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -15,23 +15,26 @@ else
TARGET_DEBUGGING:= -fomit-frame-pointer
endif
TARGET_CFLAGS:= $(TARGET_OPTIMIZATION) $(TARGET_CFLAGS_ARCH) $(TARGET_DEBUGGING)
+ifneq ($(ADK_TARGET_ARCH_OPTIMIZATION),)
+TARGET_CFLAGS+= -march=$(ADK_TARGET_ARCH_OPTIMIZATION)
+endif
BASE_DIR:= $(TOPDIR)
DISTDIR?= ${BASE_DIR}/dl
-BUILD_DIR:= ${BASE_DIR}/build_${CPU_ARCH}
+BUILD_DIR:= ${BASE_DIR}/build_${ADK_TARGET}_${ADK_LIBC}
BUILD_DIR_PFX:= $(BASE_DIR)/build_*
-STAGING_PARENT:= ${BASE_DIR}/cross_${CPU_ARCH}
+STAGING_PARENT:= ${BASE_DIR}/cross_${ADK_TARGET}_${ADK_LIBC}
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= $(BASE_DIR)/toolchain_build_${ADK_TARGET}_${ADK_LIBC}
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_${ADK_TARGET}
-BIN_DIR_PFX:= $(BASE_DIR)/bin_*
+BIN_DIR:= $(BASE_DIR)/bin/${ADK_TARGET}_${ADK_LIBC}
+BIN_DIR_PFX:= $(BASE_DIR)/bin
PACKAGE_DIR:= $(BIN_DIR)/packages
-TARGET_DIR:= $(BASE_DIR)/root_${ADK_TARGET}
+TARGET_DIR:= $(BASE_DIR)/root_${ADK_TARGET}_${ADK_LIBC}
TARGET_DIR_PFX:= $(BASE_DIR)/root_*
TARGET_PATH= ${SCRIPT_DIR}:${STAGING_TOOLS}/bin:${STAGING_DIR}/scripts:${_PATH}
REAL_GNU_TARGET_NAME= $(CPU_ARCH)-linux-$(ADK_TARGET_SUFFIX)
@@ -46,6 +49,7 @@ TARGET_CROSS:= $(STAGING_TOOLS)/bin/$(CPU_ARCH)-linux-$(ADK_TARGET_SUFFIX)-
endif
TARGET_CC:= ${TARGET_COMPILER_PREFIX}gcc
TARGET_CXX:= ${TARGET_COMPILER_PREFIX}g++
+TARGET_LD:= ${TARGET_COMPILER_PREFIX}ld
TARGET_CPPFLAGS+= -I${STAGING_DIR}/usr/include
TARGET_LDFLAGS+= -Wl,-O2
PATCH= ${BASH} $(SCRIPT_DIR)/patch.sh
@@ -58,11 +62,13 @@ TARGET_CONFIGURE_OPTS= PATH='${TARGET_PATH}' \
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
+ RANLIB=$(TARGET_CROSS)ranlib \
+ CC='$(TARGET_CC)' \
+ GCC='$(TARGET_CC)' \
+ CXX='$(TARGET_CXX)' \
+ CROSS='$(TARGET_CROSS)'
HOST_CONFIGURE_OPTS= CC_FOR_BUILD='${HOSTCC}' \
+ BUILD_CC='${HOSTCC}' \
CFLAGS_FOR_BUILD='${HOSTCFLAGS}' \
CPPFLAGS_FOR_BUILD='${HOSTCPPFLAGS}' \
LDFLAGS_FOR_BUILD='${HOSTLDFLAGS}'
@@ -96,19 +102,21 @@ EXTRACT_CMD= mkdir -p ${WRKDIR}; \
cd ${WRKDIR} && \
for file in ${FULLDISTFILES}; do case $$file in \
*.cpio) \
- cat $$file | cpio -i -d --quiet ;; \
+ cat $$file | cpio -i -d ;; \
*.tar) \
tar -xf $$file ;; \
*.cpio.Z | *.cpio.gz | *.cgz | *.mcz) \
- gzip -dc $$file | cpio -i -d --quiet ;; \
+ gzip -dc $$file | cpio -i -d ;; \
*.tar.Z | *.tar.gz | *.taz | *.tgz) \
gzip -dc $$file | tar -xf - ;; \
*.cpio.bz2 | *.cbz) \
- bzip2 -dc $$file | cpio -i -d --quiet ;; \
+ bzip2 -dc $$file | cpio -i -d ;; \
*.tar.bz2 | *.tbz | *.tbz2) \
bzip2 -dc $$file | tar -xf - ;; \
*.zip) \
unzip -qd ${WRKDIR} $$file ;; \
+ *.arm) \
+ cp $$file ${WRKDIR} ;; \
*) \
echo "Cannot extract '$$file'" >&2; \
false ;; \