Просмотр исходного кода

Build $(PROJECT).d in a separate $(MAKE) call

This avoids the issue where clean will remove a file that was
otherwise generated and won't be regenerated. This might also
help with parallel building.
Loïc Hoguin 6 лет назад
Родитель
Сommit
7ed5a10b44
2 измененных файлов с 15 добавлено и 5 удалено
  1. 4 2
      core/erlc.mk
  2. 11 3
      test/core_app.mk

+ 4 - 2
core/erlc.mk

@@ -54,10 +54,12 @@ ifneq ($(wildcard src/),)
 # Targets.
 
 ifeq ($(wildcard ebin/test),)
-app:: deps $(PROJECT).d
+app:: deps
+	$(verbose) $(MAKE) --no-print-directory $(PROJECT).d
 	$(verbose) $(MAKE) --no-print-directory app-build
 else
-app:: clean deps $(PROJECT).d
+app:: clean deps
+	$(verbose) $(MAKE) --no-print-directory $(PROJECT).d
 	$(verbose) $(MAKE) --no-print-directory app-build
 endif
 

+ 11 - 3
test/core_app.mk

@@ -1758,7 +1758,7 @@ endif
 		[{module, M} = code:load_file(M) || M <- Mods], \
 		halt()"
 
-core-app-yrl-normal-to-debug: build clean
+core-app-yrl-test-build-then-normal-build: build clean
 
 	$i "Bootstrap a new OTP library named $(APP)"
 	$t mkdir $(APP)/
@@ -1766,11 +1766,19 @@ core-app-yrl-normal-to-debug: build clean
 	$t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v
 
 	$i "Create the parser .yrl file"
-	$t echo "Nonterminals top.\nTerminals plus num.\nRootsymbol top.\ntop -> num plus num : {'$1', '$3'}." >$(APP)/src/$(APP)_parser.yrl
+	$t printf "%s\n" \
+		"Nonterminals top." \
+		"Terminals plus num." \
+		"Rootsymbol top." \
+		"top -> num plus num : {'$1', '$3'}." > $(APP)/src/$(APP)_parser.yrl
 
 	$i "Create the test suite"
 	$t mkdir $(APP)/test
-	$t echo "-module(test_SUITE).\n-export([all/0, test/1]).\nall() -> [test].\ntest(_) -> 0=0." >$(APP)/test/test_SUITE.erl
+	$t printf "%s\n" \
+		"-module(test_SUITE)." \
+		"-export([all/0, test/1])." \
+		"all() -> [test]." \
+		"test(_) -> 0=0." > $(APP)/test/test_SUITE.erl
 
 	$i "Build the application in test mode"
 	$t $(MAKE) -C $(APP) ct $v