|
@@ -301,6 +301,13 @@ define compile_erl
|
|
|
-pa ebin/ -I include/ $(filter-out $(ERLC_EXCLUDE_PATHS),$(COMPILE_FIRST_PATHS) $(1))
|
|
|
endef
|
|
|
|
|
|
+define validate_app_file
|
|
|
+ case file:consult("ebin/$(PROJECT).app") of
|
|
|
+ {ok, _} -> halt();
|
|
|
+ _ -> halt(1)
|
|
|
+ end
|
|
|
+endef
|
|
|
+
|
|
|
ebin/$(PROJECT).app:: $(ERL_FILES) $(CORE_FILES) $(wildcard src/$(PROJECT).app.src)
|
|
|
$(eval FILES_TO_COMPILE := $(filter-out src/$(PROJECT).app.src,$?))
|
|
|
$(if $(strip $(FILES_TO_COMPILE)),$(call compile_erl,$(FILES_TO_COMPILE)))
|
|
@@ -310,9 +317,13 @@ ebin/$(PROJECT).app:: $(ERL_FILES) $(CORE_FILES) $(wildcard src/$(PROJECT).app.s
|
|
|
ifeq ($(wildcard src/$(PROJECT).app.src),)
|
|
|
$(app_verbose) printf '$(subst %,%%,$(subst $(newline),\n,$(subst ','\'',$(call app_file,$(GITDESCRIBE),$(MODULES)))))' \
|
|
|
> ebin/$(PROJECT).app
|
|
|
+ $(verbose) if ! $(call erlang,$(call validate_app_file)); then \
|
|
|
+ echo "The .app file produced is invalid. Please verify the value of PROJECT_ENV." >&2; \
|
|
|
+ exit 1; \
|
|
|
+ fi
|
|
|
else
|
|
|
$(verbose) if [ -z "$$(grep -e '^[^%]*{\s*modules\s*,' src/$(PROJECT).app.src)" ]; then \
|
|
|
- echo "Empty modules entry not found in $(PROJECT).app.src. Please consult the erlang.mk README for instructions." >&2; \
|
|
|
+ echo "Empty modules entry not found in $(PROJECT).app.src. Please consult the erlang.mk documentation for instructions." >&2; \
|
|
|
exit 1; \
|
|
|
fi
|
|
|
$(appsrc_verbose) cat src/$(PROJECT).app.src \
|