Makefile - susmb - fork from usmb 20130204: mount SMB/CIFS shares via FUSE
HTML git clone git://git.codemadness.org/susmb
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
Makefile (2621B)
---
1 .POSIX:
2
3 NAME = susmb
4 VERSION = 0.9
5
6 # paths
7 PREFIX = /usr/local
8 MANPREFIX = ${PREFIX}/man
9 DOCPREFIX = ${PREFIX}/share/doc/${NAME}
10
11 # use system flags.
12 SUSMB_CFLAGS = ${CFLAGS}
13 SUSMB_LDFLAGS = ${LDFLAGS}
14 SUSMB_CPPFLAGS = -D_DEFAULT_SOURCE
15
16 # OpenBSD
17 # pkg-config --cflags smbclient
18 SMBCLIENT_CFLAGS = -I/usr/local/include/samba-4.0
19 # pkg-config --libs smbclient
20 SMBCLIENT_LDFLAGS = -L/usr/local/lib -lsmbclient
21 # pkg-config --cflags fuse
22 FUSE_CFLAGS = -I/usr/local/include
23 # pkg-config --libs fuse
24 FUSE_LDFLAGS = -lfuse
25
26 # Linux
27 #SUSMB_CFLAGS += -D_GNU_SOURCE
28 # Linux: use libbsd (for arc4random, etc).
29 #SUSMB_LDFLAGS += -lbsd
30 #SMBCLIENT_CFLAGS = -I/usr/include/samba-4.0
31 #SMBCLIENT_LDFLAGS = -lsmbclient
32 #FUSE_CFLAGS = -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse
33 #FUSE_LDFLAGS = -lfuse -pthread
34
35 # test: debug
36 #SUSMB_CFLAGS = -O0 -g -ggdb -Wall -Wextra -pedantic -Wformat-security -Winit-self -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations
37
38 BIN = ${NAME}
39 SCRIPTS =
40 SRC = ${BIN:=.c}
41 HDR =
42 MAN1 = ${BIN:=.1}\
43 ${SCRIPTS:=.1}
44 DOC = \
45 LICENSE\
46 README
47
48 all: ${BIN}
49
50 ${BIN}: ${@:=.o}
51
52 OBJ = ${SRC:.c=.o}
53
54 ${OBJ}: ${HDR}
55
56 .o:
57 ${CC} -o $@ $< ${SUSMB_LDFLAGS} ${SMBCLIENT_LDFLAGS} ${FUSE_LDFLAGS} ${SUSMB_LDFLAGS}
58
59 .c.o:
60 ${CC} -o $@ -c $< ${SUSMB_CPPFLAGS} ${SMBCLIENT_CFLAGS} ${FUSE_CFLAGS} ${SUSMB_CFLAGS} ${SUSMB_CPPFLAGS}
61
62 dist:
63 rm -rf "${NAME}-${VERSION}"
64 mkdir -p "${NAME}-${VERSION}"
65 cp -f ${MAN1} ${DOC} ${HDR} ${SCRIPTS} \
66 ${SRC} Makefile "${NAME}-${VERSION}"
67 # make tarball
68 tar cf - "${NAME}-${VERSION}" | gzip -c > "${NAME}-${VERSION}.tar.gz"
69 rm -rf "${NAME}-${VERSION}"
70
71 clean:
72 rm -f ${BIN} ${OBJ}
73
74 install: all
75 # installing executable files and scripts.
76 mkdir -p "${DESTDIR}${PREFIX}/bin"
77 cp -f ${BIN} ${SCRIPTS} "${DESTDIR}${PREFIX}/bin"
78 for f in ${BIN} ${SCRIPTS}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done
79 # installing example files.
80 mkdir -p "${DESTDIR}${DOCPREFIX}"
81 cp -f ${DOC} "${DESTDIR}${DOCPREFIX}"
82 for d in ${DOC}; do chmod 644 "${DESTDIR}${DOCPREFIX}/$$d"; done
83 # installing manual pages for general commands: section 1.
84 mkdir -p "${DESTDIR}${MANPREFIX}/man1"
85 cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1"
86 for m in ${MAN1}; do chmod 644 "${DESTDIR}${MANPREFIX}/man1/$$m"; done
87
88 uninstall:
89 # removing executable files and scripts.
90 for f in ${BIN} ${SCRIPTS}; do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; done
91 # removing example files.
92 for d in ${DOC}; do rm -f "${DESTDIR}${DOCPREFIX}/$$d"; done
93 -rmdir "${DESTDIR}${DOCPREFIX}"
94 # removing manual pages.
95 for m in ${MAN1}; do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done
96
97 .PHONY: all clean dist install uninstall