-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
103 lines (87 loc) · 3.27 KB
/
Makefile
File metadata and controls
103 lines (87 loc) · 3.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# Makefile for libsysdev
# Written by and copyright Isaac Dunham, in the year of our Lord 2015
# No rights reserved - see LICENSE for details.
# set DESTDIR if you're packaging, PREFIX to install somewhere
DESTDIR ?=
PREFIX ?= /usr
LIBDIR ?= ${PREFIX}/lib
BINDIR ?= ${PREFIX}/bin
INCDIR ?= ${PREFIX}/include
DATAROOTDIR ?= ${PREFIX}/share
DOCDIR ?= ${DATAROOTDIR}/doc/libsysdev
MANDIR ?= ${DATAROOTDIR}/man
# set AR and CC if you're cross-compiling
AR ?= ar
# We assume SUSv4, but set _ATFILE_SOURCE for old glibc versions
XFLAGS += -D_XOPEN_SOURCE=700 -D_ATFILE_SOURCE -I.
CFLAGS ?= -Os -g
# so the user/packager can select -fpic if they want
PIC = -fPIC
# so the user/packager can select whether to build shared/static/both
LIBS ?= libsysdev.a libsysdev.so.${SOVER}
# This should not be modified unless you are adding code or
# releasing a new version.
# SOVER is the soversion; only modify it when libsysdev no longer provides
# the same ABI.
# SOMIN is the minor version; update for a release with a new symbol export
# AROBJS/SOOBJS should be updated to add new source files.
PKGVER = 0.1.0
SOVER = 0
SOMIN = 0
AROBJS = getprodids.o \
getsyspath.o \
convenience.o
SOOBJS = getprodids.lo \
getsyspath.lo \
convenience.lo
all: ${LIBS} devinfo
install: ${LIBS} devinfo libsysdev.pc
echo "Making directories..."
install -d -m 0755 ${DESTDIR}${LIBDIR}/pkgconfig
install -d -m 0755 ${DESTDIR}${BINDIR}
install -d -m 0755 ${DESTDIR}${INCDIR}/libsysdev
install -d -m 0755 ${DESTDIR}${DOCDIR}
install -d -m 0755 ${DESTDIR}${MANDIR}/man1
install -d -m 0755 ${DESTDIR}${MANDIR}/man3
echo "Installing libs..."
# installing the shared lib?
echo ${LIBS} | grep libsysdev.so && \
install -m 0644 libsysdev.so.${SOVER}.${SOMIN} ${DESTDIR}${LIBDIR}/
ln -sf libsysdev.so.${SOVER}.${SOMIN} ${DESTDIR}${LIBDIR}/libsysdev.so.${SOVER}
ln -sf libsysdev.so.${SOVER}.${SOMIN} ${DESTDIR}${LIBDIR}/libsysdev.so
echo ${LIBS} | grep libsysdev.a && \
install -m 0644 libsysdev.a ${DESTDIR}${LIBDIR}
install -m 0644 libsysdev.pc ${DESTDIR}${LIBDIR}/pkgconfig/
install -m 0644 libsysdev/sysdev.h \
${DESTDIR}${INCDIR}/libsysdev/sysdev.h
echo "Installing utilities..."
install -m 0755 devinfo ${DESTDIR}${BINDIR}
echo "Installing documentation..."
install -m 0644 libsysdev.3 ${DESTDIR}${MANDIR}/man3/
install -m 0644 util/devinfo.1 ${DESTDIR}${MANDIR}/man1/
install -m 0644 README LICENSE ${DESTDIR}${DOCDIR}/
clean:
rm -f ${SOOBJS} ${AROBJS} libsysdev.so* libsysdev.a devinfo \
libsysdev.pc
%.lo: %.c
${CC} ${CFLAGS} ${CPPFLAGS} ${XFLAGS} ${PIC} -c -o $@ $<
%.o: %.c
${CC} ${CFLAGS} ${CPPFLAGS} ${XFLAGS} -c -o $@ $<
%.pc: %.pc.in
sed -e "s:@LIBDIR@:${LIBDIR}:" \
-e "s:@INCDIR@:${INCDIR}:" \
-e "s:@VERSION@:${PKGVER}:" \
$< | { test "${LIBDIR}" = "/usr/lib" && \
sed -e 's/-L.*}//' -e '/^libdir.*/d' || cat; } | \
{ test "${INCDIR}" = "/usr/include" && \
sed -e '/^Cflags.*/d' -e '/^incdir.*/d' || cat; } > $@
libsysdev.so.${SOVER}: ${SOOBJS}
${CC} ${LDFLAGS} -shared -o $@.${SOMIN} -Wl,-soname,$@ ${SOOBJS}
ln -sf $@.${SOMIN} $@
ln -sf $@.${SOMIN} libsysdev.so
libsysdev.a: ${AROBJS}
${AR} -rcs $@ ${AROBJS}
%: util/%.c ${LIBS}
${CC} -I. ${CFLAGS} ${CPPFLAGS} ${XFLAGS} \
util/$@.c -o $@ ${LDFLAGS} -L. -lsysdev
.PHONY: all clean install