@@ -38,12 +38,25 @@ export LCOV_PERL_PATH := /usr/bin/perl
38
38
export LCOV_PYTHON_PATH := /usr/bin/python3
39
39
40
40
PREFIX := /usr/local
41
+ FIRST_CHAR = $(shell echo $(PREFIX ) | cut -c 1)
41
42
42
- CFG_DIR := $(PREFIX ) /etc
43
- BIN_DIR := $(PREFIX ) /bin
44
- LIB_DIR := $(PREFIX ) /lib/lcov
45
- MAN_DIR := $(PREFIX ) /share/man
46
- SCRIPT_DIR := $(PREFIX ) /share/lcov/support-scripts
43
+ # if user specified an absolute path, use it - otherwise, make it absolute
44
+ DESTDIR := $(shell \
45
+ if [ '/' == "$(FIRST ) " ] ; then \
46
+ echo $(PREFIX ) ; \
47
+ else \
48
+ realpath $(PREFIX ) ; \
49
+ fi )
50
+
51
+ ifneq ($(PREFIX ) ,$(DESTDIR ) )
52
+ $(warning "installing at absolute path '$(DESTDIR)' rather your suggested '$(PREFIX)'")
53
+ endif
54
+
55
+ CFG_DIR := $(DESTDIR ) /etc
56
+ BIN_DIR := $(DESTDIR ) /bin
57
+ LIB_DIR := $(DESTDIR ) /lib/lcov
58
+ MAN_DIR := $(DESTDIR ) /share/man
59
+ SCRIPT_DIR := $(DESTDIR ) /share/lcov/support-scripts
47
60
TMP_DIR := $(shell mktemp -d)
48
61
FILES := $(wildcard bin/* ) $(wildcard man/* ) README Makefile \
49
62
$(wildcard rpm/* ) lcovrc
@@ -76,8 +89,8 @@ all: info
76
89
77
90
info :
78
91
@echo " Available make targets:"
79
- @echo " install : install binaries and man pages in DESTDIR (default / )"
80
- @echo " uninstall : delete binaries and man pages from DESTDIR (default / )"
92
+ @echo " install : install binaries and man pages in PREFIX (default $( PREFIX ) )"
93
+ @echo " uninstall : delete binaries and man pages from PREFIX (default $( PREFIX ) )"
81
94
@echo " dist : create packages (RPM, tarball) ready for distribution"
82
95
@echo " check : perform self-tests"
83
96
@echo " checkstyle: check source files for coding style issues"
@@ -93,35 +106,35 @@ clean:
93
106
find . -name ' *.tdy' -o -name ' *.orig' | xargs rm -f
94
107
95
108
install :
96
- $(INSTALL ) -d -m 755 $(DESTDIR )$( BIN_DIR )
109
+ $(INSTALL ) -d -m 755 $(BIN_DIR )
97
110
for b in $( EXES) ; do \
98
- $(call echocmd," INSTALL $(DESTDIR )$( BIN_DIR ) /$$b") \
99
- $(INSTALL ) -m 755 bin/$$ b $(DESTDIR )$( BIN_DIR ) /$$ b ; \
111
+ $(call echocmd," INSTALL $(BIN_DIR ) /$$b") \
112
+ $(INSTALL ) -m 755 bin/$$ b $(BIN_DIR ) /$$ b ; \
100
113
$(FIX ) --version $(VERSION ) --release $(RELEASE ) \
101
114
--libdir $(LIB_DIR ) --bindir $(BIN_DIR ) \
102
115
--fixinterp --fixver --fixlibdir --fixbindir \
103
- --exec $(DESTDIR )$( BIN_DIR ) /$$ b ; \
116
+ --exec $(BIN_DIR ) /$$ b ; \
104
117
done
105
- $(INSTALL ) -d -m 755 $(DESTDIR )$( SCRIPT_DIR )
118
+ $(INSTALL ) -d -m 755 $(SCRIPT_DIR )
106
119
for s in $( SCRIPTS) ; do \
107
- $(call echocmd," INSTALL $(DESTDIR )$( SCRIPT_DIR ) /$$s") \
108
- $(INSTALL ) -m 755 bin/$$ s $(DESTDIR )$( SCRIPT_DIR ) /$$ s ; \
120
+ $(call echocmd," INSTALL $(SCRIPT_DIR ) /$$s") \
121
+ $(INSTALL ) -m 755 bin/$$ s $(SCRIPT_DIR ) /$$ s ; \
109
122
$(FIX ) --version $(VERSION ) --release $(RELEASE ) \
110
123
--libdir $(LIB_DIR ) --bindir $(BIN_DIR ) \
111
124
--fixinterp --fixver --fixlibdir --fixbindir \
112
- --exec $(DESTDIR )$( SCRIPT_DIR ) /$$ s ; \
125
+ --exec $(SCRIPT_DIR ) /$$ s ; \
113
126
done
114
- $(INSTALL ) -d -m 755 $(DESTDIR )$( LIB_DIR )
127
+ $(INSTALL ) -d -m 755 $(LIB_DIR )
115
128
for l in $( LIBS) ; do \
116
- $(call echocmd," INSTALL $(DESTDIR )$( LIB_DIR ) /$$l") \
117
- $(INSTALL ) -m 644 lib/$$ l $(DESTDIR )$( LIB_DIR ) /$$ l ; \
129
+ $(call echocmd," INSTALL $(LIB_DIR ) /$$l") \
130
+ $(INSTALL ) -m 644 lib/$$ l $(LIB_DIR ) /$$ l ; \
118
131
$(FIX ) --version $(VERSION ) --release $(RELEASE ) \
119
132
--libdir $(LIB_DIR ) --bindir $(BIN_DIR ) \
120
133
--fixinterp --fixver --fixlibdir --fixbindir \
121
- --exec $(DESTDIR )$( LIB_DIR ) /$$ l ; \
134
+ --exec $(LIB_DIR ) /$$ l ; \
122
135
done
123
136
for section in 1 5 ; do \
124
- DEST=$(DESTDIR )$( MAN_DIR ) /man$$ section ; \
137
+ DEST=$(MAN_DIR ) /man$$ section ; \
125
138
$(INSTALL ) -d -m 755 $$ DEST ; \
126
139
for m in man/* .$$ section ; do \
127
140
F=` basename $$ m` ; \
@@ -132,37 +145,37 @@ install:
132
145
--manpage $$ DEST/$$ F ; \
133
146
done ; \
134
147
done
135
- $(INSTALL ) -d -m 755 $(DESTDIR )$( CFG_DIR )
136
- $(call echocmd," INSTALL $(DESTDIR )$( CFG_DIR ) /lcovrc")
137
- $(INSTALL ) -m 644 lcovrc $(DESTDIR )$( CFG_DIR ) /lcovrc
148
+ $(INSTALL ) -d -m 755 $(CFG_DIR )
149
+ $(call echocmd," INSTALL $(CFG_DIR ) /lcovrc")
150
+ $(INSTALL ) -m 644 lcovrc $(CFG_DIR ) /lcovrc
138
151
139
152
uninstall :
140
153
for b in $( EXES) ; do \
141
- $(call echocmd," UNINST $(DESTDIR )$( BIN_DIR ) /$$b") \
142
- $(RM ) -f $(DESTDIR )$( BIN_DIR ) /$$ b ; \
154
+ $(call echocmd," UNINST $(BIN_DIR ) /$$b") \
155
+ $(RM ) -f $(BIN_DIR ) /$$ b ; \
143
156
done
144
157
for s in $( SCRIPTS) ; do \
145
- $(call echocmd," UNINST $(DESTDIR )$( SCRIPT_DIR ) /$$s") \
146
- $(RM ) -f $(DESTDIR )$( SCRIPT_DIR ) /$$ s ; \
158
+ $(call echocmd," UNINST $(SCRIPT_DIR ) /$$s") \
159
+ $(RM ) -f $(SCRIPT_DIR ) /$$ s ; \
147
160
done
148
- rmdir --ignore-fail-on-non-empty $(DESTDIR ) / $( SCRIPT_DIR )
161
+ rmdir --ignore-fail-on-non-empty $(SCRIPT_DIR )
149
162
for l in $( LIBS) ; do \
150
- $(call echocmd," UNINST $(DESTDIR )$( LIB_DIR ) /$$l") \
151
- $(RM ) -f $(DESTDIR )$( LIB_DIR ) /$$ l ; \
163
+ $(call echocmd," UNINST $(LIB_DIR ) /$$l") \
164
+ $(RM ) -f $(LIB_DIR ) /$$ l ; \
152
165
done
153
166
for section in 1 5 ; do \
154
- DEST=$(DESTDIR )$( MAN_DIR ) /man$$ section ; \
167
+ DEST=$(MAN_DIR ) /man$$ section ; \
155
168
for m in man/* .$$ section ; do \
156
169
F=` basename $$ m` ; \
157
170
$(call echocmd," UNINST $$DEST/$$F") \
158
171
$(RM ) -f $$ DEST/$$ F ; \
159
172
done ; \
160
173
rmdir --ignore-fail-on-non-empty $$ DEST ; \
161
174
done ; \
162
- rmdir --ignore-fail-on-non-empty $(DESTDIR ) / $( MAN_DIR )
175
+ rmdir --ignore-fail-on-non-empty $(MAN_DIR )
163
176
164
- $(call echocmd," UNINST $(DESTDIR)$( CFG_DIR)/lcovrc")
165
- $(RM) -f $(DESTDIR)$( CFG_DIR)/lcovrc
177
+ $(call echocmd," UNINST $(CFG_DIR)/lcovrc")
178
+ $(RM) -f $(CFG_DIR)/lcovrc
166
179
167
180
dist : lcov-$(VERSION ) .tar.gz lcov-$(VERSION ) -$(RELEASE ) .noarch.rpm \
168
181
lcov-$(VERSION)-$(RELEASE).src.rpm
0 commit comments