Skip to content

Commit c9b83cf

Browse files
committed
install PREFIX should be absolute path (make it so).
Remove some unused variables. Signed-off-by: Henry Cox <[email protected]>
1 parent f12fd40 commit c9b83cf

File tree

2 files changed

+49
-34
lines changed

2 files changed

+49
-34
lines changed

Makefile

Lines changed: 47 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,25 @@ export LCOV_PERL_PATH := /usr/bin/perl
3838
export LCOV_PYTHON_PATH := /usr/bin/python3
3939

4040
PREFIX := /usr/local
41+
FIRST_CHAR = $(shell echo $(PREFIX) | cut -c 1)
4142

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
4760
TMP_DIR := $(shell mktemp -d)
4861
FILES := $(wildcard bin/*) $(wildcard man/*) README Makefile \
4962
$(wildcard rpm/*) lcovrc
@@ -76,8 +89,8 @@ all: info
7689

7790
info:
7891
@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))"
8194
@echo " dist : create packages (RPM, tarball) ready for distribution"
8295
@echo " check : perform self-tests"
8396
@echo " checkstyle: check source files for coding style issues"
@@ -93,35 +106,35 @@ clean:
93106
find . -name '*.tdy' -o -name '*.orig' | xargs rm -f
94107

95108
install:
96-
$(INSTALL) -d -m 755 $(DESTDIR)$(BIN_DIR)
109+
$(INSTALL) -d -m 755 $(BIN_DIR)
97110
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 ; \
100113
$(FIX) --version $(VERSION) --release $(RELEASE) \
101114
--libdir $(LIB_DIR) --bindir $(BIN_DIR) \
102115
--fixinterp --fixver --fixlibdir --fixbindir \
103-
--exec $(DESTDIR)$(BIN_DIR)/$$b ; \
116+
--exec $(BIN_DIR)/$$b ; \
104117
done
105-
$(INSTALL) -d -m 755 $(DESTDIR)$(SCRIPT_DIR)
118+
$(INSTALL) -d -m 755 $(SCRIPT_DIR)
106119
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 ; \
109122
$(FIX) --version $(VERSION) --release $(RELEASE) \
110123
--libdir $(LIB_DIR) --bindir $(BIN_DIR) \
111124
--fixinterp --fixver --fixlibdir --fixbindir \
112-
--exec $(DESTDIR)$(SCRIPT_DIR)/$$s ; \
125+
--exec $(SCRIPT_DIR)/$$s ; \
113126
done
114-
$(INSTALL) -d -m 755 $(DESTDIR)$(LIB_DIR)
127+
$(INSTALL) -d -m 755 $(LIB_DIR)
115128
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 ; \
118131
$(FIX) --version $(VERSION) --release $(RELEASE) \
119132
--libdir $(LIB_DIR) --bindir $(BIN_DIR) \
120133
--fixinterp --fixver --fixlibdir --fixbindir \
121-
--exec $(DESTDIR)$(LIB_DIR)/$$l ; \
134+
--exec $(LIB_DIR)/$$l ; \
122135
done
123136
for section in 1 5 ; do \
124-
DEST=$(DESTDIR)$(MAN_DIR)/man$$section ; \
137+
DEST=$(MAN_DIR)/man$$section ; \
125138
$(INSTALL) -d -m 755 $$DEST ; \
126139
for m in man/*.$$section ; do \
127140
F=`basename $$m` ; \
@@ -132,37 +145,37 @@ install:
132145
--manpage $$DEST/$$F ; \
133146
done ; \
134147
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
138151

139152
uninstall:
140153
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 ; \
143156
done
144157
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 ; \
147160
done
148-
rmdir --ignore-fail-on-non-empty $(DESTDIR)/$(SCRIPT_DIR)
161+
rmdir --ignore-fail-on-non-empty $(SCRIPT_DIR)
149162
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 ; \
152165
done
153166
for section in 1 5 ; do \
154-
DEST=$(DESTDIR)$(MAN_DIR)/man$$section ; \
167+
DEST=$(MAN_DIR)/man$$section ; \
155168
for m in man/*.$$section ; do \
156169
F=`basename $$m` ; \
157170
$(call echocmd," UNINST $$DEST/$$F") \
158171
$(RM) -f $$DEST/$$F ; \
159172
done ; \
160173
rmdir --ignore-fail-on-non-empty $$DEST ; \
161174
done ; \
162-
rmdir --ignore-fail-on-non-empty $(DESTDIR)/$(MAN_DIR)
175+
rmdir --ignore-fail-on-non-empty $(MAN_DIR)
163176

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
166179

167180
dist: lcov-$(VERSION).tar.gz lcov-$(VERSION)-$(RELEASE).noarch.rpm \
168181
lcov-$(VERSION)-$(RELEASE).src.rpm

README

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ To install in a different location - for example, your home directory, run:
8787

8888
make PREFIX=$HOME/my_lcov install
8989

90+
your PREFIX should be an absolute path.
91+
9092

9193
3. Dependencies:
9294
----------------

0 commit comments

Comments
 (0)