diff options
| author | Waldemar Brodkorb <wbx@openadk.org> | 2010-09-17 15:29:05 +0200 |
|---|---|---|
| committer | Waldemar Brodkorb <wbx@openadk.org> | 2010-09-17 15:29:05 +0200 |
| commit | b2e4bbd4e62982852b8a7da8f618d01d2013641e (patch) | |
| tree | 968e7998c78e750162e60c747ab039f78d2f8289 /mk/build.mk | |
| parent | 1a2a22729ff0256725a3561e46f465efc18801f7 (diff) | |
| parent | d6aaf0be5bfa8e5944d9ae44cf175f9388564ac6 (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.mk | 93 |
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 |
