Skip to content

Commit f9afc52

Browse files
author
hasufell
committed
MAKE: standardize install variables
- convert to autotools-like variables commonly used in build scripts - respect DESTDIR (used for temporary install locations) - fix symlink logic to work with DESTDIR ${foo##bar} is posix, see: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html under "2.6.2 Parameter Expansion" - quote all variables that can contain whitespace (make does not take care of that!)
1 parent a6589c6 commit f9afc52

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

Makefile

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,13 @@ ELIXIRC := bin/elixirc --ignore-module-conflict $(ELIXIRC_OPTS)
33
ERLC := erlc -I lib/elixir/include
44
ERL := erl -I lib/elixir/include -noshell -pa lib/elixir/ebin
55
VERSION := $(strip $(shell cat VERSION))
6-
INSTALL_PATH := /usr/local
76
Q := @
7+
PREFIX := /usr/local
8+
INSTALL = install
9+
INSTALL_DIR = $(INSTALL) -m755 -d
10+
INSTALL_DATA = $(INSTALL) -m644
11+
INSTALL_PROGRAM = $(INSTALL) -m755
12+
813

914
.PHONY: install compile erlang elixir dialyze test clean docs release_docs release_zip release_erl
1015
.NOTPARALLEL: compile
@@ -73,13 +78,15 @@ $(eval $(call APP_TEMPLATE,iex,IEx))
7378
install: compile
7479
@ echo "==> elixir (install)"
7580
for dir in lib/*; do \
76-
install -m755 -d $(INSTALL_PATH)/lib/elixir/$$dir/ebin; \
77-
install -m644 $$dir/ebin/* $(INSTALL_PATH)/lib/elixir/$$dir/ebin; \
81+
$(INSTALL_DIR) "$(DESTDIR)$(PREFIX)/lib/elixir/$$dir/ebin"; \
82+
$(INSTALL_DATA) $$dir/ebin/* "$(DESTDIR)$(PREFIX)/lib/elixir/$$dir/ebin"; \
83+
done
84+
$(INSTALL_DIR) "$(DESTDIR)$(PREFIX)/lib/elixir/bin"
85+
$(INSTALL_PROGRAM) $(filter-out %.bat, $(wildcard bin/*)) "$(DESTDIR)$(PREFIX)/lib/elixir/bin"
86+
$(INSTALL_DIR) "$(DESTDIR)$(PREFIX)/bin"
87+
for file in "$(DESTDIR)$(PREFIX)"/lib/elixir/bin/* ; do \
88+
ln -sf "../lib/elixir/bin/$${file##*/}" "$(DESTDIR)$(PREFIX)/bin/" ; \
7889
done
79-
install -m755 -d $(INSTALL_PATH)/lib/elixir/bin
80-
install -m755 $(filter-out %.bat, $(wildcard bin/*)) $(INSTALL_PATH)/lib/elixir/bin
81-
install -m755 -d $(INSTALL_PATH)/bin
82-
ln -sf $(INSTALL_PATH)/lib/elixir/bin/* $(INSTALL_PATH)/bin
8390

8491
clean:
8592
$(Q) cd lib/elixir && $(REBAR) clean

0 commit comments

Comments
 (0)