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