From 5f780614ff362c3e1f5bf8a62c6585f2c8b1e355 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Tue, 28 May 2019 18:16:16 -0400 Subject: config, build: Fix broken dependencies Commit 39f565a introduced a bug in which targets like configure-native would be updated on every run, because they didn't generate stamps. This bug was hidden until commit 5fb31a3. This commit partially reverts and amends the aforementioned commits. --- diff --git a/build b/build index fe26630..0ca7213 100755 --- a/build +++ b/build @@ -108,7 +108,7 @@ nop: ../local.mk: >../local.mk -configure-native configure-cross: +$(configure_native_stamps) $(configure_cross_stamps): set -e; \ if [ 'x$(OPK_HOST_PLAT)' = 'xbootstrap1' ]; then \ oh-autoconfigure -B "$(builddir)" -t "$(target)" -- \ @@ -117,6 +117,7 @@ configure-native configure-cross: oh-autoconfigure -B "$(builddir)" -t "$(target)" -- \ $(full_opts); \ fi + touch $@ # This rule sets (host- and) target-dependent paths in files in gcc/config. # They must be edited here rather than in a patch because any given GCC target @@ -139,18 +140,20 @@ build-gcc-config: sed "$(tmake_script)" "$(tm)/$(tmake_file).orig" >"$(tm)/$(tmake_file)" printf '\nMULTIARCH_DIRNAME = %s\n' "$(target)" >>"$(tm)/$(tmake_file)" -build-native: build-gcc-config +$(build_native_stamps): build-gcc-config oh-autobuild -B "$(builddir)" -T $(native_target) -- \ -j $${JOBS:-$(jobs)} $(dir_macros) #if [ '$(OPK_BUILD_ARCH)' = '$(OPK_HOST_ARCH)' ]; then \ # cd "$(builddir)" && make -k check; \ #fi + touch $@ -build-cross: build-gcc-config +$(build_cross_stamps): build-gcc-config oh-autobuild -B "$(builddir)" -T $(cross_target) -- \ -j $${JOBS:-$(jobs)} $(dir_macros) + touch $@ -install-native: +$(install_native_stamps): # The -T option is necessary because otherwise: # * oh-autoinstall checks for an "install" target by running make with # the -n option, @@ -271,7 +274,7 @@ install-native: " oh-installfiles -d "$(destdir)" oh-shlibdeps -install-cross: +$(install_cross_stamps): oh-autoinstall -B "$(builddir)" -d "$(destdir)" -T install-gcc -- \ $(dir_macros) # Change the target architecture prefix of files in /usr/bin. @@ -311,30 +314,16 @@ install-cross: " oh-installfiles -d "$(destdir)" oh-shlibdeps -configure_$(target) build_$(target): - touch $@ - -configure_$(target): configure-$(type) -build_$(target): build-$(type) -install_$(target): install-$(type) - -configure_ build_ install_: +configure build install: set -e; \ for tgt in $(targets); do \ if [ x"$${tgt}" = x'$(OPK_HOST_ARCH)' ]; then \ - type='native'; \ + $(MAKE) -f ../build target=$${tgt} $@-native_$${tgt}; \ else \ - type='cross'; \ + $(MAKE) -f ../build target=$${tgt} $@-cross_$${tgt}; \ fi; \ - $(MAKE) -f ../build target=$${tgt} type=$${type} $@$${tgt}; \ done -build_: configure -install_: build - -configure build: - touch $@ - -configure: configure_ -build: build_ -install: install_ +configure: +build: configure +install: build diff --git a/config b/config index 42d441a..91c84ae 100755 --- a/config +++ b/config @@ -19,11 +19,21 @@ main() for arch in ${PKG_TARGETS}; do PKG_TARGET_ARCH="${arch}" configure_build done - >targets.mk - printf 'targets =' >>targets.mk + printf 'targets =' >targets.mk for arch in ${PKG_TARGETS}; do printf ' \\\n\t%s' "${arch}" >>targets.mk done + for step in configure build install; do + for type in native cross; do + printf '\n%s_%s_stamps =' \ + "${step}" "${type}" >>targets.mk + for arch in ${PKG_TARGETS}; do + printf ' \\\n\t%s-%s_%s' \ + "${step}" "${type}" \ + "${arch}" >>targets.mk + done + done + done printf '\n' >>targets.mk ;; esac -- cgit v0.9.1