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
|
-include Rules.mk
libname = liblockdev
pkgname = lockdev
objs = src/lockdev.o
shobjs = src/lockdev.z
VER = $(shell expr `pwd` : '.*-\([0-9.]*\)')
MVER = ${shell expr `pwd` : '.*-\([0-9]*\).[0-9]*'}
static = ${libname}.a
shared = ${libname}.${VER}.so
soname = ${libname}.so.${MVER}
# overwritten by caller (e.g.: debian/rules)
basedir = /usr/local
srcdir=.
libdir = ${basedir}/lib
incdir = ${basedir}/include
mandir = ${basedir}/share/man
CC = gcc
LCFLAGS = -g -O2 -fPIC -Wall -pipe -D_REENTRANT
CFLAGS = -g
LDLIBS = -llockdev
.PHONY: shared static perl-lib
ALL: shared static perl-lib
static ${static}: ${objs}
$(AR) $(ARFLAGS) ${static} $^
shared ${shared}: ${shobjs}
${CC} ${LCFLAGS} -shared -Wl,-soname,${soname} $^ -lc -o ${shared}
src/lockdev.z: src/lockdev.c
${CC} ${CFLAGS} -c -fPIC -o $@ $?
perl-lib: static
cd LockDev && perl Makefile.PL INSTALLDIRS=vendor
cd LockDev && make OPTIMIZE="-O2 -g -Wall"
cd LockDev && make test
.PHONY: install install_dev install_dbg install_doc install_run
install: install_dev install_dbg install_doc install_run
install_dev: ${static} src/lockdev.h
install -m755 -d ${libdir}
install -m644 ${static} ${libdir}
install -m755 -d ${incdir}
install -m644 src/lockdev.h ${incdir}
install -m644 src/ttylock.h ${incdir}
install_debug: ${static} ${shared}
install -m755 -d ${libdir}/debug
install -m644 ${static} ${libdir}/debug
install -m644 ${shared} ${libdir}/debug/${soname}
install_profile: ${static} ${shared}
install -m755 -d ${libdir}/profile
install -m644 ${static} ${libdir}/profile
install -m644 ${shared} ${libdir}/profile/${soname}
install_doc: docs/lockdev.3
install -m755 -d ${mandir}/man3
install -m644 docs/lockdev.3 ${mandir}/man3
install_run: ${shared}
install -m755 -d ${libdir}
install -m644 ${shared} ${libdir}
.PHONY: clean distclean perl-clean mostyclean
perl-clean: clean
cd LockDev && rm -rf *~ *.o LockDev.bs LockDev.c \
Makefile Makefile.old blib pm_to_blib
clean:
-find . -name '*~' | xargs --no-run-if-empty rm -f
-find . -name '*.o' | xargs --no-run-if-empty rm -f
-find . -name '*.z' | xargs --no-run-if-empty rm -f
mostyclean: clean
-rm -f *.a *.so *.so.*
-rm -f shared static debug profile _SRCDIR_
distclean: mostyclean perl-clean
.PHONY: distribute dist tarball
dist distribute: tarball
tarball: distclean
cd .. && tar -cvf - ${pkgname}-${VER} | gzip -9c > ${pkgname}_${VER}.tgz
|