aboutsummaryrefslogtreecommitdiffstats
path: root/test/core_app.mk
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2015-10-19 17:29:04 +0200
committerLoïc Hoguin <[email protected]>2015-10-19 17:29:04 +0200
commit7f1ace7622a5a9e046b8ae10accc8169ab59b047 (patch)
tree78d91b77cd9a07f77faca2742e4cdf1ed4612c9e /test/core_app.mk
parent77afa66836f92a1f1f2052e1a7d9ace9fd4cee57 (diff)
downloaderlang.mk-7f1ace7622a5a9e046b8ae10accc8169ab59b047.tar.gz
erlang.mk-7f1ace7622a5a9e046b8ae10accc8169ab59b047.tar.bz2
erlang.mk-7f1ace7622a5a9e046b8ae10accc8169ab59b047.zip
Force rebuilds on Makefile/.app.src changes
Everything will be rebuilt when the Makefile or any included Makefile (like Erlang.mk or plugins) change. Only the .app will be rebuilt when the .app.src file changes.
Diffstat (limited to 'test/core_app.mk')
-rw-r--r--test/core_app.mk48
1 files changed, 47 insertions, 1 deletions
diff --git a/test/core_app.mk b/test/core_app.mk
index f95d593..14720df 100644
--- a/test/core_app.mk
+++ b/test/core_app.mk
@@ -1,6 +1,6 @@
# Core: Building applications.
-CORE_APP_CASES = asn1 auto-git-id erlc-exclude erlc-opts erlc-opts-filter error generate-erl generate-erl-include generate-erl-prepend hrl hrl-recursive mib no-app no-makedep pt pt-erlc-opts xrl xrl-include yrl yrl-include
+CORE_APP_CASES = appsrc-change asn1 auto-git-id erlc-exclude erlc-opts erlc-opts-filter error generate-erl generate-erl-include generate-erl-prepend hrl hrl-recursive makefile-change mib no-app no-makedep pt pt-erlc-opts xrl xrl-include yrl yrl-include
CORE_APP_TARGETS = $(addprefix core-app-,$(CORE_APP_CASES))
CORE_APP_CLEAN_TARGETS = $(addprefix clean-,$(CORE_APP_TARGETS))
@@ -13,6 +13,27 @@ $(CORE_APP_CLEAN_TARGETS):
core-app: $(CORE_APP_TARGETS)
+ifdef LEGACY
+core-app-appsrc-change: build clean-core-app-appsrc-change
+
+ $i "Bootstrap a new OTP application named $(APP)"
+ $t mkdir $(APP)/
+ $t cp ../erlang.mk $(APP)/
+ $t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v
+
+ $i "Build the application"
+ $t $(MAKE) -C $(APP) $v
+
+ $i "Touch the .app.src file; check that only the .app file gets rebuilt"
+ $t printf "%s\n" $(APP)/ebin/$(APP).app > $(APP)/EXPECT
+ $t $(SLEEP)
+ $t touch $(APP)/src/$(APP).app.src
+ $t $(SLEEP)
+ $t $(MAKE) -C $(APP) $v
+ $t find $(APP) -type f -newer $(APP)/src/$(APP).app.src | sort | diff $(APP)/EXPECT -
+ $t rm $(APP)/EXPECT
+endif
+
core-app-asn1: build clean-core-app-asn1
$i "Bootstrap a new OTP library named $(APP)"
@@ -738,6 +759,31 @@ endif
[{module, M} = code:load_file(M) || M <- Mods], \
halt()"
+core-app-makefile-change: build clean-core-app-makefile-change
+
+ $i "Bootstrap a new OTP application named $(APP)"
+ $t mkdir $(APP)/
+ $t cp ../erlang.mk $(APP)/
+ $t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v
+
+ $i "Build the application"
+ $t $(MAKE) -C $(APP) $v
+
+ $i "Touch the Makefile; check that all files get rebuilt"
+ $t printf "%s\n" \
+ $(APP)/$(APP).d \
+ $(APP)/ebin/$(APP).app \
+ $(APP)/ebin/$(APP)_app.beam \
+ $(APP)/ebin/$(APP)_sup.beam \
+ $(APP)/src/$(APP)_app.erl \
+ $(APP)/src/$(APP)_sup.erl | sort > $(APP)/EXPECT
+ $t $(SLEEP)
+ $t touch $(APP)/Makefile
+ $t $(SLEEP)
+ $t $(MAKE) -C $(APP) $v
+ $t find $(APP) -type f -newer $(APP)/Makefile | sort | diff $(APP)/EXPECT -
+ $t rm $(APP)/EXPECT
+
core-app-mib: build clean-core-app-mib
$i "Bootstrap a new OTP library named $(APP)"