diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2010-02-15 22:30:13 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2010-02-15 22:30:13 +0100 |
commit | c57d0300bd42fabd8eeda2a95b6c3960d6e7ce07 (patch) | |
tree | b53bc538246b5a900300b5c6b5ea740f978196f4 /mk | |
parent | cf4b3959527339206254b8c8fc44deb391beeb10 (diff) | |
parent | 023560ac69a2ecf5659c668c26c0af6b5612a46b (diff) |
Merge branch 'master' of git+ssh://openadk.org/git/openadk
Conflicts:
package/nspr/Makefile
Diffstat (limited to 'mk')
-rw-r--r-- | mk/build.mk | 170 | ||||
-rw-r--r-- | mk/buildhlp.mk | 2 | ||||
-rw-r--r-- | mk/image.mk | 7 | ||||
-rw-r--r-- | mk/modules.mk | 23 | ||||
-rw-r--r-- | mk/package.mk | 17 | ||||
-rw-r--r-- | mk/pkg-bottom.mk | 74 | ||||
-rw-r--r-- | mk/rootfs.mk | 2 | ||||
-rw-r--r-- | mk/split-cfg.mk | 8 | ||||
-rw-r--r-- | mk/vars.mk | 34 |
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 ;; \ |