Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | # Specify C compiler and binutils. |
2 | # Can be used for alternative tools (e.g., `CC=clang` or `CC=gcc-7`). | |
3 | CC := gcc | |
4 | ||
5 | # Specify GMP include and library paths, if not on default search paths. | |
6 | WITH_GMP_DIR := | |
7 | ifneq ($(WITH_GMP_DIR),) | |
8 | WITH_GMP_INC_DIR := $(WITH_GMP_DIR)/include | |
9 | WITH_GMP_LIB_DIR := $(WITH_GMP_DIR)/lib | |
10 | endif | |
11 | ||
12 | # Specify installation prefix and staged install destination. | |
13 | PREFIX := /usr/local | |
14 | ||
15 | SED := sed | |
16 | ||
17 | ###################################################################### | |
18 | ###################################################################### | |
19 | ||
20 | ROOT := $(shell pwd) | |
21 | ||
22 | CP := cp -fpR | |
23 | MKDIR := mkdir -p | |
24 | ||
25 | ###################################################################### | |
26 | ||
27 | SBIN := $(ROOT)/bin | |
28 | SLIB := $(ROOT)/lib/mlton | |
29 | SMAN := $(ROOT)/share/man/man1 | |
30 | SDOC := $(ROOT)/share/doc/mlton | |
31 | ||
32 | prefix := $(PREFIX) | |
33 | exec_prefix := $(prefix) | |
34 | bindir := $(exec_prefix)/bin | |
35 | datarootdir := $(prefix)/share | |
36 | docdir := $(datarootdir)/doc/mlton | |
37 | libdir := $(exec_prefix)/lib | |
38 | mandir := $(datarootdir)/man | |
39 | man1dir := $(mandir)/man1 | |
40 | ||
41 | TBIN := $(bindir) | |
42 | TLIB := $(libdir)/mlton | |
43 | TMAN := $(man1dir) | |
44 | TDOC := $(docdir) | |
45 | TEXM := $(TDOC)/examples | |
46 | ||
47 | .PHONY: install | |
48 | install: | |
49 | mkdir -p "$(TBIN)" "$(TLIB)" "$(TMAN)" "$(TDOC)" | |
50 | $(CP) "$(SBIN)/." "$(TBIN)/" | |
51 | $(CP) "$(SLIB)/." "$(TLIB)/" | |
52 | $(CP) "$(SMAN)/." "$(TMAN)/" | |
53 | if [ -d "$(SDOC)" ]; then $(CP) "$(SDOC)/." "$(TDOC)/"; fi | |
54 | ||
55 | .PHONY: update | |
56 | update: | |
57 | $(CP) "$(SBIN)/mlton" "$(SBIN)/mlton.bak" | |
58 | $(SED) \ | |
59 | -e "s;^CC=.*;CC=\"$(CC)\";" \ | |
60 | -e "s;^GMP_INC_DIR=.*;GMP_INC_DIR=\"$(WITH_GMP_INC_DIR)\";" \ | |
61 | -e "s;^GMP_LIB_DIR=.*;GMP_LIB_DIR=\"$(WITH_GMP_LIB_DIR)\";" \ | |
62 | < "$(SBIN)/mlton.bak" > "$(SBIN)/mlton" | |
63 | chmod a+x "$(SBIN)/mlton" | |
64 | $(RM) "$(SBIN)/mlton.bak" |