3 ################ Source files ##########################################
5 SRCS
= $(wildcard *.
cc)
7 INCS
= $(filter-out bsconf.
%,$(wildcard *.h
))
10 ################ Library link names ####################################
12 TOCLEAN
+= ${LIBSO} ${LIBA} ${LIBSOBLD}
14 ALLINST
= install-incs
16 ALLLIBS
+= ${LIBSOBLD}
17 ALLINST
+= install-shared
21 ALLINST
+= install-static
24 ################ Compilation ###########################################
31 @echo
"Linking $@ ..."
36 @echo
"Linking $@ ..."
37 @
${LD} ${LDFLAGS} ${SHBLDFL} -o
$@
$^
${LIBS}
40 @echo
" Compiling $< ..."
41 @
${CXX} ${CXXFLAGS} -o
$@
-c
$<
44 @echo
" Compiling $< to assembly ..."
45 @
${CXX} ${CXXFLAGS} -S
-o
$@
-c
$<
50 ################ Installation ##########################################
52 .PHONY
: install uninstall install-incs uninstall-incs
53 .PHONY
: install-static install-shared uninstall-static uninstall-shared
56 uninstall: $(subst install,uninstall,${ALLINST})
58 INSTALLDIR
= ${INSTALL} -d
59 INSTALLLIB
= ${INSTALL} -p
-m
644
60 INSTALLEXE
= ${INSTALL} -p
-m
755
61 INSTALLDATA
= ${INSTALL} -p
-m
644
63 install-shared
: ${LIBSOBLD} install-incs
64 @echo
"Installing ${LIBSOBLD} to ${LIBDIR} ..."
65 @
${INSTALLDIR} ${LIBDIR}
66 @
${INSTALLLIB} ${LIBSOBLD} ${LIBDIR}
67 @
(cd
${LIBDIR}; ${LN} -sf
${LIBSOBLD} ${LIBSO}; ${LN} -sf
${LIBSOBLD} ${LIBSOLNK})
69 uninstall-shared
: uninstall-incs
70 @echo
"Removing ${LIBSOBLD} from ${LIBDIR} ..."
71 @
${RM} -f
${LIBDIR}/${LIBSO} ${LIBDIR}/${LIBSOLNK} ${LIBDIR}/${LIBSOBLD}
73 install-static
: ${LIBA} install-incs
74 @echo
"Installing ${LIBA} to ${LIBDIR} ..."
75 @
${INSTALLDIR} ${LIBDIR}
76 @
${INSTALLLIB} ${LIBA} ${LIBDIR}
78 uninstall-static
: uninstall-incs
79 @echo
"Removing ${LIBA} from ${LIBDIR} ..."
80 @
${RM} -f
${LIBDIR}/${LIBA}
83 @echo
"Installing headers to ${INCDIR} ..."
84 @
${INSTALLDIR} ${INCDIR}/${LIBNAME}
85 @for i in
$(filter-out ${LIBNAME}.h
,${INCS}); do \
86 ${INSTALLDATA} $$i ${INCDIR}/${LIBNAME}/$$i; \
88 @
${INSTALLDATA} ${LIBNAME}.h
${INCDIR}
91 @echo
"Removing headers from ${INCDIR} ..."
92 @
${RM} -rf
${INCDIR}/${LIBNAME} ${INCDIR}/${LIBNAME}.h
94 ################ Maintenance ###########################################
96 .PHONY
: clean depend
dist distclean maintainer-clean
99 @echo
"Removing generated files ..."
100 @
${RM} -f
${OBJS} ${TOCLEAN}
101 @
+${MAKE} -C demo
clean
104 @
${CXX} ${CXXFLAGS} -M
${SRCS} > .depend
;
107 DISTDIR
= ${HOME}/stored
108 DISTNAM
= ${LIBNAME}-${MAJOR}.
${MINOR}
109 DISTTAR
= ${DISTNAM}.
${BUILD}.
tar.bz2
112 mkdir
${TMPDIR}/${DISTNAM}
113 cp
-r .
${TMPDIR}/${DISTNAM}
114 +${MAKE} -C
${TMPDIR}/${DISTNAM} distclean
115 (cd
${TMPDIR}/${DISTNAM}; rm -rf
`find . -name .svn`)
116 (cd
${TMPDIR}; tar jcf
${DISTDIR}/${DISTTAR} ${DISTNAM}; rm -rf
${DISTNAM})
119 @
rm -f Config.mk config.h
${LIBNAME}.spec bsconf.o bsconf .depend demo
/.depend
121 maintainer-clean
: distclean