Skip to content

Commit b0183b1

Browse files
authored
Make install.sh usable for distributions (#66)
* build: Allow to set libddir Needed for multiarch installations * install: Use symlink without path This is how other libraries do it and allows to move files around without having to adjust the symlinks. Signed-off-by: Guido Günther <[email protected]> --------- Signed-off-by: Guido Günther <[email protected]>
1 parent 1d1fb67 commit b0183b1

File tree

3 files changed

+28
-23
lines changed

3 files changed

+28
-23
lines changed

Makefile

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ default: build ;
55

66
CLI_BIN := varnamcli
77
INSTALL_PREFIX := $(or ${PREFIX},${PREFIX},/usr/local)
8+
LIBDIR := /lib
89

910
# Try to get the commit hash from git
1011
LAST_COMMIT := $(or $(shell git rev-parse --short HEAD 2> /dev/null),"UNKNOWN")
@@ -14,39 +15,43 @@ BUILDSTR := ${VERSION} (\#${LAST_COMMIT} $(shell date -u +"%Y-%m-%dT%H:%M:%S%z")
1415
RELEASE_NAME := govarnam-${VERSION}-${shell uname -m}
1516
UNAME := $(shell uname)
1617

17-
SED := sed -i
18+
SED := sed
1819
LIB_NAME := libgovarnam.so
1920
SO_NAME := $(shell (echo $(VERSION) | cut -d. -f1))
2021
CURDIR := $(shell pwd)
2122

2223
ifeq ($(UNAME), Darwin)
23-
SED := sed -i ""
2424
LIB_NAME = libgovarnam.dylib
2525
else
2626
EXT_LDFLAGS = -extldflags "-Wl,-soname,$(LIB_NAME).$(SO_NAME),--version-script,$(CURDIR)/govarnam.syms"
2727
endif
2828

2929
VERSION_STAMP_LDFLAGS := -X 'github.com/varnamproject/govarnam/govarnam.BuildString=${BUILDSTR}' -X 'github.com/varnamproject/govarnam/govarnam.VersionString=${VERSION}' $(EXT_LDFLAGS)
3030
pc:
31-
cp govarnam.pc.in govarnam.pc
32-
${SED} "s#@INSTALL_PREFIX@#${INSTALL_PREFIX}#g" govarnam.pc
33-
${SED} "s#@VERSION@#${VERSION}#g" govarnam.pc
31+
${SED} -e "s#@INSTALL_PREFIX@#${INSTALL_PREFIX}#g" \
32+
-e "s#@VERSION@#${VERSION}#g" \
33+
-e "s#@LIBDIR@#${LIBDIR}#g" \
34+
govarnam.pc.in > govarnam.pc.tmp
35+
mv govarnam.pc.tmp govarnam.pc
3436

3537
# Used only for building the CLI
3638
temp-pc:
37-
cp govarnam.pc.in govarnam.pc
38-
${SED} "s#@INSTALL_PREFIX@#$(realpath .)#g" govarnam.pc
39-
${SED} "s#@VERSION@#${VERSION}#g" govarnam.pc
40-
41-
${SED} "s#/include/libgovarnam##g" govarnam.pc
42-
${SED} "s#/lib\$$##g" govarnam.pc
39+
${SED} -e "s#@INSTALL_PREFIX@#$(realpath .)#g" \
40+
-e "s#@VERSION@#${VERSION}#g" \
41+
-e "s#@LIBDIR@#${LIBDIR}#g" \
42+
-e "s#/include/libgovarnam##g" \
43+
-e "s#/lib\$$##g" \
44+
govarnam.pc.in > govarnam.pc.tmp
45+
mv govarnam.pc.tmp govarnam.pc
4346

4447
install.sh: install.sh.in
45-
cp install.sh.in install.sh
46-
${SED} "s#@INSTALL_PREFIX@#${INSTALL_PREFIX}#g" install.sh
47-
${SED} "s#@VERSION@#${VERSION}#g" install.sh
48-
${SED} "s#@LIB_NAME@#${LIB_NAME}#g" install.sh
49-
${SED} "s#@SO_NAME@#${SO_NAME}#g" install.sh
48+
${SED} -e "s#@INSTALL_PREFIX@#${INSTALL_PREFIX}#g" \
49+
-e "s#@VERSION@#${VERSION}#g" \
50+
-e "s#@LIBDIR@#${LIBDIR}#g" \
51+
-e "s#@LIB_NAME@#${LIB_NAME}#g" \
52+
-e "s#@SO_NAME@#${SO_NAME}#g" \
53+
install.sh.in > install.sh.tmp
54+
mv install.sh.tmp install.sh
5055
chmod +x install.sh
5156

5257
.PHONY: install

govarnam.pc.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
prefix=@INSTALL_PREFIX@
22
exec_prefix=${prefix}
3-
libdir=${exec_prefix}/lib
3+
libdir=${prefix}@LIBDIR@
44
includedir=${prefix}/include/libgovarnam
55

66
Name: GoVarnam

install.sh.in

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ if [ "$ARG1" == "install" ]; then
1111
"${SUDO}" mkdir -p "/usr/local/bin/"
1212
"${SUDO}" cp "$SCRIPT_DIR/varnamcli" "${DESTDIR}@INSTALL_PREFIX@/bin/varnamcli"
1313

14-
"${SUDO}" mkdir -p "${DESTDIR}@INSTALL_PREFIX@/lib/pkgconfig"
15-
"${SUDO}" cp "$SCRIPT_DIR/@LIB_NAME@" "${DESTDIR}@INSTALL_PREFIX@/lib/@LIB_NAME@.@VERSION@"
16-
"${SUDO}" ln -sf "${DESTDIR}@INSTALL_PREFIX@/lib/@LIB_NAME@.@VERSION@" "${DESTDIR}@INSTALL_PREFIX@/lib/@LIB_NAME@"
17-
"${SUDO}" ln -sf "${DESTDIR}@INSTALL_PREFIX@/lib/@LIB_NAME@.@VERSION@" "${DESTDIR}@INSTALL_PREFIX@/lib/@LIB_NAME@.@SO_NAME@"
18-
"${SUDO}" cp "$SCRIPT_DIR/govarnam.pc" "${DESTDIR}@INSTALL_PREFIX@/lib/pkgconfig/"
14+
"${SUDO}" mkdir -p "${DESTDIR}@INSTALL_PREFIX@@LIBDIR@/pkgconfig"
15+
"${SUDO}" cp "$SCRIPT_DIR/@LIB_NAME@" "${DESTDIR}@INSTALL_PREFIX@@LIBDIR@/@LIB_NAME@.@VERSION@"
16+
"${SUDO}" ln -s "@LIB_NAME@.@VERSION@" "${DESTDIR}@INSTALL_PREFIX@@LIBDIR@/@LIB_NAME@"
17+
"${SUDO}" ln -s "@LIB_NAME@.@VERSION@" "${DESTDIR}@INSTALL_PREFIX@@LIBDIR@/@LIB_NAME@.@SO_NAME@"
18+
"${SUDO}" cp "$SCRIPT_DIR/govarnam.pc" "${DESTDIR}@INSTALL_PREFIX@@LIBDIR@/pkgconfig/"
1919

2020
"${SUDO}" mkdir -p "${DESTDIR}@INSTALL_PREFIX@/include/libgovarnam"
2121
"${SUDO}" cp "$SCRIPT_DIR/"*.h "${DESTDIR}@INSTALL_PREFIX@/include/libgovarnam/"
@@ -28,7 +28,7 @@ if [ "$ARG1" == "install" ]; then
2828

2929
notify-send "$msg" &> /dev/null || true
3030
elif [ "$ARG1" == "uninstall" ]; then
31-
"${SUDO}" rm -f "${DESTDIR}@INSTALL_PREFIX@/bin/varnamcli" "${DESTDIR}@INSTALL_PREFIX@/lib/@LIB_NAME@.@VERSION@" "${DESTDIR}@INSTALL_PREFIX@/lib/@LIB_NAME@" "${DESTDIR}@INSTALL_PREFIX@/lib/pkgconfig/govarnam.pc"
31+
"${SUDO}" rm -f "${DESTDIR}@INSTALL_PREFIX@/bin/varnamcli" "${DESTDIR}@INSTALL_PREFIX@@LIBDIR@/@LIB_NAME@.@VERSION@" "${DESTDIR}@INSTALL_PREFIX@@LIBDIR@/@LIB_NAME@" "${DESTDIR}@INSTALL_PREFIX@@LIBDIR@/pkgconfig/govarnam.pc"
3232
"${SUDO}" rm -f "${DESTDIR}@INSTALL_PREFIX@/include/libgovarnam/"*
3333
"${SUDO}" rmdir "${DESTDIR}@INSTALL_PREFIX@/include/libgovarnam" || true
3434
"${SUDO}" rm -f "${DESTDIR}@INSTALL_PREFIX@/share/varnam/schemes/"*

0 commit comments

Comments
 (0)