From 82179575d9191305805c8e6e8107be7c3f80a6be Mon Sep 17 00:00:00 2001 From: Lars Kroll Date: Wed, 14 Aug 2019 12:12:17 +0200 Subject: Build symlinked source files --- core/core.mk | 2 +- test/core_app.mk | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/core/core.mk b/core/core.mk index 1f68cfc..855d798 100644 --- a/core/core.mk +++ b/core/core.mk @@ -185,7 +185,7 @@ core_http_get = curl -Lf$(if $(filter-out 0,$(V)),,s)o $(call core_native_path,$ core_eq = $(and $(findstring $(1),$(2)),$(findstring $(2),$(1))) # We skip files that contain spaces because they end up causing issues. -core_find = $(if $(wildcard $1),$(shell find $(1:%/=%) -type f -name $(subst *,\*,$2) | grep -v " ")) +core_find = $(if $(wildcard $1),$(shell find $(1:%/=%) \( -type l -o -type f \) -name $(subst *,\*,$2) | grep -v " ")) core_lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$(1))))))))))))))))))))))))))) diff --git a/test/core_app.mk b/test/core_app.mk index 9c30efe..3ab6c72 100644 --- a/test/core_app.mk +++ b/test/core_app.mk @@ -378,6 +378,31 @@ core-app-erlc-opts-filter: init false = proplists:is_defined(debug_info, proplists:get_value(options, girl:module_info(compile))), \ halt()" +core-app-erlc-symlink: init + + $i "Bootstrap a new OTP library named $(APP)" + $t mkdir $(APP)/ + $t cp ../erlang.mk $(APP)/ + $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v + + $i "Generate .erl files" + $t echo "-module(boy)." > $(APP)/src/boy.erl + $t echo "-module(girl)." > $(APP)/girl.erl + + $i "Symlink .erl file" + $t ln -s ../girl.erl $(APP)/src/girl.erl + + $i "Build the application" + $t $(MAKE) -C $(APP) $v + + $i "Check that the application was compiled correctly" + $t $(ERL) -pa $(APP)/ebin/ -eval " \ + ok = application:start($(APP)), \ + {ok, Mods = [boy, girl]} \ + = application:get_key($(APP), modules), \ + [{module, M} = code:load_file(M) || M <- Mods], \ + halt()" + core-app-error: init $i "Bootstrap a new OTP library named $(APP)" -- cgit v1.2.3