RN rnmake  3.0.0
Env.mk
Go to the documentation of this file.
1 ################################################################################
2 #
3 # Env.mk
4 #
5 ifdef RNMAKE_DOXY
6 /*!
7 \file
8 
9 \brief RN Make System rnmake command-line and environment variables helper
10 makefile.
11 
12 \pkgsynopsis
13 RN Make System
14 
15 \pkgfile{Env.mk}
16 
17 \pkgauthor{Robin Knight,robin.knight@roadnarrows.com}
18 
19 \pkgcopyright{2018,RoadNarrows LLC,http://www.roadnarrows.com}
20 
21 \license{MIT}
22 
23 \EulaBegin
24 \EulaEnd
25 
26 \cond RNMAKE_DOXY
27  */
28 endif
29 #
30 ################################################################################
31 
32 _ENV_MK = 1
33 
34 # ------------------------------------------------------------------------------
35 # RNMAKE_ROOT
36 # What: Specifies root path to rnmake package.
37 # Environment variable: RNMAKE_ROOT
38 # Make override: make rnmake=<path> ...
39 # Default: no
40 # Required: yes
41 # ------------------------------------------------------------------------------
42 
43 # 'make rnmake=<path> ...' or RNMAKE_ROOT
44 rnmake ?= $(RNMAKE_ROOT)
45 
46 # must be defined and non-empty
47 ifeq ($(rnmake),)
48  $(error 'RNMAKE_ROOT' environment variable not specified)
49 endif
50 
51 # make absolute filename (empty string returned if directory does not exist)
52 RNMAKE_ROOT := $(realpath $(rnmake))
53 
54 # required
55 ifeq ($(RNMAKE_ROOT),)
56  $(error 'RNMAKE_ROOT=$(rnmake)': No such directory)
57 endif
58 
59 rnmake := $(RNMAKE_ROOT)
60 
61 
62 # ------------------------------------------------------------------------------
63 # RNMAKE_ARCH_TAG
64 # What: Determines which architecture makefile to include.
65 # Arch.$(RNMAKE_ARCH_TAG).mk
66 # Environment variable: RNMAKE_ARCH_DFT
67 # Make override: make arch=<arch> ...
68 # Default: x86_64
69 # Required: no
70 # ------------------------------------------------------------------------------
71 
72 # 'make arch=<arch> ...' or RNMAKE_ARCH_DFT
73 arch ?= $(RNMAKE_ARCH_DFT)
74 
75 # default
76 ifeq ($(arch),)
77  arch = x86_64
78  $(info 'arch=$(arch)' default default used.)
79 endif
80 
81 RNMAKE_ARCH_TAG := $(arch)
82 
83 
84 # ------------------------------------------------------------------------------
85 # RNMAKE_INSTALL_XPREFIX
86 # What: Cross-install prefix.
87 # Actual packages are installed to
88 # $(RNMAKE_INSTALL_XPREFIX)/$(RNMAKE_ARCH)/
89 # Environment variable: RNMAKE_INSTALL_XPREFIX
90 # Make override: make xprefix=<path> ...
91 # Default: $(HOME)/xinstall
92 # Required: no
93 # ------------------------------------------------------------------------------
94 
95 # 'make xprefix=<path> ...' or RNMAKE_INSTALL_XPREFIX
96 xprefix ?= $(RNMAKE_INSTALL_XPREFIX)
97 
98 # default
99 ifeq ($(xprefix),)
100  xprefix = $(HOME)/xinstall
101  $(info 'RNMAKE_INSTALL_XPREFIX=$(xprefix)' default used.)
102 endif
103 
104 # make absolute path (does not have to exist)
105 xprefix := $(abspath $(xprefix))
106 
107 RNMAKE_INSTALL_XPREFIX := $(xprefix)
108 
109 
110 # ------------------------------------------------------------------------------
111 # RNMAKE_INSTALL_PREFIX
112 # What: Install prefix. Overrides RNMAKE_INSTALL_XPREFIX.
113 # Packages are installed to:
114 # $(RNMAKE_INSTALL_PREFIX)/
115 # Environment variable: RNMAKE_INSTALL_PREFIX
116 # Make override: make prefix=_path_ ...
117 # Default:
118 # Required: no
119 # ------------------------------------------------------------------------------
120 
121 # 'make prefix=<path> ...' or RNMAKE_INSTALL_PREFIX
122 prefix ?= $(RNMAKE_INSTALL_PREFIX)
123 
124 # make absolute path (does not have to exist)
125 prefix := $(abspath $(prefix))
126 
127 RNMAKE_INSTALL_PREFIX := $(prefix)
128 
129 
130 # ------------------------------------------------------------------------------
131 # Export to sub-makes
132 #
133 export RNMAKE_ROOT
134 export RNMAKE_ARCH_TAG
135 export RNMAKE_INSTALL_XPREFIX
136 export RNMAKE_INSTALL_PREFIX
137 
138 ifdef RNMAKE_DOXY
139 /*! \endcond RNMAKE_DOXY */
140 endif