aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/erlc.mk4
-rw-r--r--test/core_makedep.mk31
2 files changed, 33 insertions, 2 deletions
diff --git a/core/erlc.mk b/core/erlc.mk
index 253aead..d102cd0 100644
--- a/core/erlc.mk
+++ b/core/erlc.mk
@@ -256,11 +256,11 @@ define makedep.erl
string:join(DirSubname ++ [atom_to_list(Target)], "/")
end
end,
- ok = file:write_file("$(1)", [
+ ok = file:write_file("$(1)", unicode:characters_to_binary([
"# Generated by Erlang.mk. Edit at your own risk!\n\n",
[[F, "::", [[" ", D] || D <- Deps], "; @touch \$$@\n"] || {F, Deps} <- Depend],
"\nCOMPILE_FIRST +=", [[" ", TargetPath(CF)] || CF <- CompileFirst], "\n"
- ]),
+ ])),
halt()
endef
diff --git a/test/core_makedep.mk b/test/core_makedep.mk
index 6df5e8f..5a0b02c 100644
--- a/test/core_makedep.mk
+++ b/test/core_makedep.mk
@@ -46,3 +46,34 @@ core-makedep-import: init
$i "Confirm the file was added by makedep"
$t grep COMPILE_FIRST $(APP)/$(APP).d | grep -q core/human
+
+core-makedep-non-usascii-paths: NON_USASCII_DIR = $(APP)/héhé
+core-makedep-non-usascii-paths: init
+
+ $i "Create working directory with non-US-ASCII characters"
+ $t mkdir -p $(NON_USASCII_DIR)
+
+ $i "Bootstrap a new OTP library named my_dep"
+ $t mkdir $(NON_USASCII_DIR)/my_dep/
+ $t cp ../erlang.mk $(NON_USASCII_DIR)/my_dep/
+ $t $(MAKE) -C $(NON_USASCII_DIR)/my_dep -f erlang.mk bootstrap-lib $v
+ $t mkdir $(NON_USASCII_DIR)/my_dep/include
+
+ $i "Bootstrap a new OTP application named my_app"
+ $t mkdir $(NON_USASCII_DIR)/my_app/
+ $t cp ../erlang.mk $(NON_USASCII_DIR)/my_app/
+ $t $(MAKE) -C $(NON_USASCII_DIR)/my_app -f erlang.mk bootstrap $v
+
+ $i "Add my_dep to the list of dependencies"
+ $t perl -ni.bak -e 'print;if ($$.==1) {print "DEPS = my_dep\ndep_my_dep = cp $(CURDIR)/$(NON_USASCII_DIR)/my_dep/\n"}' $(NON_USASCII_DIR)/my_app/Makefile
+
+ $i "Generate related .hrl/.erl files"
+ $t printf "%s\n" "-define(HELLO, hello)." > $(NON_USASCII_DIR)/my_dep/include/hello.hrl
+ $t printf "%s\n" "-module(hello)." "-include_lib(\"my_dep/include/hello.hrl\")." "-export([hello/0])." "hello() -> ?HELLO." > $(NON_USASCII_DIR)/my_app/src/hello.erl
+ $t $(MAKE) -C $(NON_USASCII_DIR)/my_app $v
+
+ $i "Check that all compiled files exist"
+ $t test -f $(NON_USASCII_DIR)/my_app/my_app.d
+ $t grep -qw $(NON_USASCII_DIR) $(NON_USASCII_DIR)/my_app/my_app.d
+ $t test -f $(NON_USASCII_DIR)/my_app/ebin/my_app.app
+ $t test -f $(NON_USASCII_DIR)/my_app/ebin/hello.beam