summaryrefslogtreecommitdiff
path: root/mk/build.mk
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2010-09-17 15:29:05 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2010-09-17 15:29:05 +0200
commitb2e4bbd4e62982852b8a7da8f618d01d2013641e (patch)
tree968e7998c78e750162e60c747ab039f78d2f8289 /mk/build.mk
parent1a2a22729ff0256725a3561e46f465efc18801f7 (diff)
parentd6aaf0be5bfa8e5944d9ae44cf175f9388564ac6 (diff)
Merge branch 'master' of git+ssh://openadk.org/git/openadk
Conflicts: package/binutils/Makefile
Diffstat (limited to 'mk/build.mk')
-rw-r--r--mk/build.mk93
1 files changed, 55 insertions, 38 deletions
diff --git a/mk/build.mk b/mk/build.mk
index f71808b3f..71fad8cae 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -64,8 +64,11 @@ noconfig_targets:= menuconfig \
defconfig \
tags
-POSTCONFIG= -@ \
+POSTCONFIG= -@\
+ if [ -f .adkinit ];then rm .adkinit;\
+ else \
if [ -f .config.old ];then \
+ $(TOPDIR)/bin/tools/pkgrebuild;\
rebuild=0; \
if [ "$$(grep ^BUSYBOX .config|md5sum)" != "$$(grep ^BUSYBOX .config.old|md5sum)" ];then \
touch .rebuild.busybox;\
@@ -76,8 +79,9 @@ POSTCONFIG= -@ \
rebuild=1;\
fi; \
if [ $$rebuild -eq 1 ];then \
- cp .config .config.old; \
+ cp .config .config.old;\
fi; \
+ fi; \
fi
# Pull in the user's configuration file
@@ -87,17 +91,17 @@ endif
ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y)
include $(TOPDIR)/rules.mk
-include ${TOPDIR}/mk/split-cfg.mk
all: world
${TOPDIR}/package/Depends.mk: ${TOPDIR}/.config $(wildcard ${TOPDIR}/package/*/Makefile)
- mksh ${TOPDIR}/package/depmaker
+ $(TOPDIR)/bin/tools/depmaker > ${TOPDIR}/package/Depends.mk
+
.NOTPARALLEL:
.PHONY: all world clean cleantarget cleandir distclean image_clean
-world: $(DISTDIR) $(BUILD_DIR) $(TARGET_DIR) $(PACKAGE_DIR) ${TOPDIR}/.ADK_HAVE_DOT_CONFIG
+world: $(DISTDIR) $(BUILD_DIR) $(TARGET_DIR) $(PACKAGE_DIR)
${BASH} ${TOPDIR}/scripts/scan-pkgs.sh
ifeq ($(ADK_NATIVE),y)
$(MAKE) -f mk/build.mk toolchain/kernel-headers-prepare tools/install target/config-prepare target/compile package/compile root_clean package/install package_index target/install
@@ -137,10 +141,10 @@ ifeq ($(ADK_TARGET_PACKAGE_IPKG),y)
echo "option offline_root ${TARGET_DIR}" >>$(STAGING_DIR)/etc/ipkg.conf
endif
-package/%: ${TOPDIR}/.ADK_HAVE_DOT_CONFIG ${STAGING_DIR}/etc/ipkg.conf ${TOPDIR}/package/Depends.mk
+package/%: ${STAGING_DIR}/etc/ipkg.conf ${TOPDIR}/package/Depends.mk
$(MAKE) -C package $(patsubst package/%,%,$@)
-target/%: ${TOPDIR}/.ADK_HAVE_DOT_CONFIG
+target/%:
$(MAKE) -C target $(patsubst target/%,%,$@)
toolchain/%: ${STAGING_DIR}
@@ -164,9 +168,15 @@ switch:
else echo "No old target config found";mv .config .config.bak; make TARGET=${TARGET};fi
kernelconfig:
+ifeq ($(ADKtype),)
cp $(TOPDIR)/target/$(ADK_TARGET)/kernel.config $(BUILD_DIR)/linux/.config
$(MAKE) -C $(BUILD_DIR)/linux/ ARCH=$(ARCH) menuconfig
cp $(BUILD_DIR)/linux/.config $(TOPDIR)/target/$(ADK_TARGET)/kernel.config
+else
+ cp $(TOPDIR)/target/$(ADKtype)/kernel.config $(BUILD_DIR)/linux/.config
+ $(MAKE) -C $(BUILD_DIR)/linux/ ARCH=$(ARCH) menuconfig
+ cp $(BUILD_DIR)/linux/.config $(TOPDIR)/target/$(ADKtype)/kernel.config
+endif
# create a new package from package/.template
newpackage:
@@ -177,13 +187,7 @@ newpackage:
$(SED) 's#@PKG@#$(PKG)#' $(TOPDIR)/package/$(PKG)/Makefile
$(SED) 's#@VER@#$(VER)#' $(TOPDIR)/package/$(PKG)/Makefile
@echo "Edit package/$(PKG)/Makefile to complete"
- @echo "choose PKG_SECTION to add it to an existent submenu"
-#############################################################
-#
-# Cleanup and misc junk
-#
-#############################################################
root_clean:
@$(TRACE) root_clean
rm -rf $(TARGET_DIR)
@@ -206,9 +210,8 @@ clean:
done \
done
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
+ rm -f ${TOPDIR}/package/Depends.mk
cleankernel:
@$(TRACE) cleankernel
@@ -216,34 +219,28 @@ cleankernel:
cleandir:
@$(TRACE) cleandir
- @$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE)
+ @$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE)
rm -rf $(BUILD_DIR_PFX) $(BIN_DIR_PFX) $(TARGET_DIR_PFX) \
- ${TOPDIR}/.cfg* ${TOPDIR}/package/pkglist.d
- rm -rf $(TOOLCHAIN_BUILD_DIR_PFX) $(STAGING_PARENT_PFX) \
- $(TOOLS_BUILD_DIR)
- rm -f .menu .tmpconfig.h ${TOPDIR}/package/*/info.mk \
+ ${TOPDIR}/package/pkglist.d ${TOPDIR}/package/pkgconfigs.d
+ rm -rf $(TOOLCHAIN_BUILD_DIR_PFX) $(STAGING_PARENT_PFX) $(TOOLS_BUILD_DIR)
+ rm -f .menu .tmpconfig.h .rebuild* \
${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_${ADK_TARGET}_${ADK_LIBC}
+ rm -rf $(BUILD_DIR) $(BIN_DIR) $(TARGET_DIR)
rm -rf $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT)
- rm -f .tmpconfig.h ${TOPDIR}/package/*/info.mk \
- .busyboxcfg all.config .defconfig
+ rm -f .tmpconfig.h 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
- @rm -rf $(TOOLCHAIN_BUILD_DIR_PFX) $(STAGING_PARENT_PFX) \
- $(TOOLS_BUILD_DIR)
+ ${TOPDIR}/package/pkglist.d ${TOPDIR}/package/pkgconfigs.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 \
- .busyboxcfg .ADK_HAVE_DOT_CONFIG
+ .menu ${TOPDIR}/package/Depends.mk .ADK_HAVE_DOT_CONFIG .rebuild.*
else # ! ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y)
@@ -294,6 +291,12 @@ endif
ifneq (,$(filter CYGWIN%,${OStype}))
@echo ADK_HOST_CYGWIN=y > $(TOPDIR)/.defconfig
endif
+ifeq ($(ADKtype),ibmx40)
+ @echo ADK_HARDWARE_IBMX40=y >> $(TOPDIR)/.defconfig
+endif
+ifeq ($(ADKtype),lemote)
+ @echo ADK_HARDWARE_YEELONG=y >> $(TOPDIR)/.defconfig
+endif
@if [ ! -z "$(TARGET)" ];then \
grep "^config" target/Config.in \
|grep -i "$(TARGET)"\$$ \
@@ -365,6 +368,12 @@ endif
ifneq (,$(filter CYGWIN%,${OStype}))
@echo ADK_HOST_CYGWIN=y > $(TOPDIR)/all.config
endif
+ifeq ($(ADKtype),ibmx40)
+ @echo ADK_HARDWARE_IBMX40=y >> $(TOPDIR)/all.config
+endif
+ifeq ($(ADKtype),lemote)
+ @echo ADK_HARDWARE_YEELONG=y >> $(TOPDIR)/all.config
+endif
@if [ ! -z "$(TARGET)" ];then \
grep "^config" target/Config.in \
|grep -i "$(TARGET)"\$$ \
@@ -411,21 +420,21 @@ ifneq (,$(filter wrap%,${TARGET}))
@echo ADK_LINUX_ALIX=y >> $(TOPDIR)/all.config
endif
-menuconfig: $(CONFIG)/mconf defconfig .menu
+menuconfig: $(CONFIG)/mconf defconfig .menu package/Config.in.auto
@if [ ! -f .config ];then \
$(CONFIG)/conf -D .defconfig $(CONFIG_CONFIG_IN); \
fi
@$(CONFIG)/mconf $(CONFIG_CONFIG_IN)
${POSTCONFIG}
-guiconfig: $(CONFIG)/gconf defconfig .menu
+guiconfig: $(CONFIG)/gconf defconfig .menu package/Config.in.auto
@if [ ! -f .config ];then \
$(CONFIG)/conf -D .defconfig $(CONFIG_CONFIG_IN); \
fi
@$(CONFIG)/gconf $(CONFIG_CONFIG_IN)
${POSTCONFIG}
-_config: $(CONFIG)/conf .menu
+_config: $(CONFIG)/conf .menu package/Config.in.auto
-@touch .config
@$(CONFIG)/conf ${W} $(CONFIG_CONFIG_IN)
${POSTCONFIG}
@@ -438,10 +447,10 @@ _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}/package/pkglist.d ${TOPDIR}/package/pkgconfigs.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 .ADK_HAVE_DOT_CONFIG
+ .menu .rebuild.* ${TOPDIR}/package/Depends.mk .ADK_HAVE_DOT_CONFIG
endif # ! ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y)
@@ -495,14 +504,22 @@ bulkallmod:
) 2>&1 | tee $(TOPDIR)/bin/$${target}_$$libc/$$target-$$libc-$$fs.log; \
done <${TOPDIR}/target/bulk.lst
-menu .menu: $(wildcard ${TOPDIR}/package/*/Makefile)
+${TOPDIR}/bin/tools/pkgmaker:
+ @mkdir -p $(TOPDIR)/bin/tools
+ @$(HOSTCC) -g -o $@ tools/adk/pkgmaker.c tools/adk/sortfile.c tools/adk/strmap.c
+
+${TOPDIR}/bin/tools/pkgrebuild:
+ @mkdir -p $(TOPDIR)/bin/tools
+ @$(HOSTCC) -g -o $@ tools/adk/pkgrebuild.c tools/adk/strmap.c
+
+package/Config.in.auto menu .menu: $(wildcard ${TOPDIR}/package/*/Makefile) ${TOPDIR}/bin/tools/pkgmaker ${TOPDIR}/bin/tools/pkgrebuild
@echo "Generating menu structure ..."
- mksh $(TOPDIR)/package/pkgmaker
+ @$(TOPDIR)/bin/tools/pkgmaker
@:>.menu
dep:
@echo "Generating dependencies ..."
- mksh $(TOPDIR)/package/depmaker
+ $(TOPDIR)/bin/tools/depmaker > ${TOPDIR}/package/Depends.mk
.PHONY: menu dep