#-- set this to the man directory you would like to use MANPATH:=/usr/share/man #-- uncomment this to enable debugging #DEBUG:=-g -DDEBUG ###### YOU SHOULD NOT CHANGE BELOW THIS LINE ###### VERSION:=1.4.1 SHELL:=/bin/bash SRCS:=api.c MANS:=man3/libxbee.3 \ man3/xbee_con.3 \ man3/xbee_end.3 \ man3/xbee_endcon.3 \ man3/xbee_flushcon.3 \ man3/xbee_purgecon.3 \ man3/xbee_getanalog.3 \ man3/xbee_getdigital.3 \ man3/xbee_getpacket.3 \ man3/xbee_hasanalog.3 \ man3/xbee_hasdigital.3 \ man3/xbee_logit.3 \ man3/xbee_newcon.3 \ man3/xbee_nsenddata.3 \ man3/xbee_pkt.3 \ man3/xbee_senddata.3 \ man3/xbee_setup.3 \ man3/xbee_setupAPI.3 \ man3/xbee_setuplog.3 \ man3/xbee_setuplogAPI.3 \ man3/xbee_vsenddata.3 MANPATHS:=$(foreach dir,$(shell ls man -ln | grep ^d | tr -s ' ' | cut -d ' ' -f 9),${MANPATH}/$(dir)) PDFS:=${SRCS} ${SRCS:.c=.h} makefile main.c xbee.h CC:=gcc CFLAGS:=-Wall -Wstrict-prototypes -Wno-variadic-macros -pedantic -c -fPIC ${DEBUG} CLINKS:=-lpthread -lrt ${DEBUG} DEFINES:= ifeq ($(strip $(wildcard ${MANPATH}/man3/libxbee.3.bz2)),) FIRSTTIME:=TRUE else FIRSTTIME:=FALSE endif ENSCRIPT:=-MA4 --color -f Courier8 -C --margins=15:15:0:20 ifneq ($(strip $(wildcard /usr/share/enscript/mine-web.hdr)),) ENSCRIPT+= --fancy-header=mine-web else ENSCRIPT+= --fancy-header=a2ps endif SRCS:=${sort ${SRCS}} PDFS:=${sort ${PDFS}} .PHONY: FORCE .PHONY: all run new clean cleanpdfs main pdfs html .PHONY: install install_su install_man .PHONY: uninstall uninstall_su uninstall_man/ # all - do everything (default) # all: ./lib/libxbee.so.$(VERSION) @echo "*** Done! ***" # run - remake main and then run # run: all main ./bin/main # new - clean and do everything again # new: clean all # clean - remove any compiled files and PDFs # clean: rm -f ./*~ rm -f ./sample/*~ rm -f ./obj/*.o rm -f ./lib/libxbee.so* rm -f ./bin/main cleanpdfs: rm -f ./pdf/*.pdf # install - installs library # install: ./lib/libxbee.so.$(VERSION) @echo @echo ifneq ($(shell echo $$USER),root) @echo "#######################################################################################" @echo "### To Install this library I need the root password please!" @echo "#######################################################################################" endif su -c "make install_su --no-print-directory" @echo ifeq (${FIRSTTIME},TRUE) @echo "#######################################################################################" @echo @pr -h "" -o 3 -w 86 -tT ./README @echo @echo "#######################################################################################" endif install_su: /usr/lib/libxbee.so.$(VERSION) /usr/include/xbee.h install_man /usr/lib/libxbee.so.$(VERSION): ./lib/libxbee.so.$(VERSION) cp ./lib/libxbee.so.$(VERSION) /usr/lib/libxbee.so.$(VERSION) -f @chmod 755 /usr/lib/libxbee.so.$(VERSION) @chown root:root /usr/lib/libxbee.so.$(VERSION) ln ./libxbee.so.$(VERSION) /usr/lib/libxbee.so.1 -sf @chown root:root /usr/lib/libxbee.so.1 ln ./libxbee.so.$(VERSION) /usr/lib/libxbee.so -sf @chown root:root /usr/lib/libxbee.so /usr/include/xbee.h: ./xbee.h cp ./xbee.h /usr/include/xbee.h -f @chmod 644 /usr/include/xbee.h @chown root:root /usr/include/xbee.h install_man: ${MANPATH} ${MANPATHS} ${addsuffix .bz2,${addprefix ${MANPATH}/,${MANS}}} ${MANPATH} ${MANPATHS}: @echo "#######################################################################################" @echo "### $@ does not exist... cannot install man files here!" @echo "### Please check the directory and the MANPATH variable in the makefile" @echo "#######################################################################################" @false ${MANPATH}/%.bz2: ./man/% @echo "cat $< | bzip2 -z > $@" @cat $< | bzip2 -z > $@ || ( \ echo "#######################################################################################"; \ echo "### Installing man page '$*' to '$@' failed..."; \ echo "#######################################################################################"; ) @chmod 644 $@ @chown root:root $@ ./doc/: mkdir ./doc/ html: ./doc/ ./man/ cd ./doc/; mkdir -p `find ../man/ -type d -not -path *.svn* | cut -b 2-`; find ./man/ -type f -not -path *.svn* | cut -d / -f 3- | sort > .html_todo for item in `cat .html_todo`; do \ man2html -r ./man/$$item | tail -n +3 > ./doc/man/$$item.html; \ done 2> /dev/null rm .html_todo uninstall: @echo @echo ifneq ($(shell echo $$USER),root) @echo "#######################################################################################" @echo "### To Uninstall this library I need the root password please!" @echo "#######################################################################################" endif su -c "make uninstall_su --no-print-directory" @echo @echo uninstall_su: ${addprefix uninstall_man/,${MANS}} rm /usr/lib/libxbee.so.$(VERSION) -f rm /usr/lib/libxbee.so.1 -f rm /usr/lib/libxbee.so -f rm /usr/include/xbee.h -f uninstall_man/%: rm ${MANPATH}/$*.bz2 -f # main - compile & link objects # main: ./bin/main ./bin/main: ./obj/api.o ./bin/ ./main.c ${CC} ${CLINKS} ./main.c ./obj/api.o -o ./bin/main ${DEBUG} ./bin/: mkdir ./bin/ ./lib/libxbee.so.$(VERSION): ./lib/ ${addprefix ./obj/,${SRCS:.c=.o}} ./xbee.h gcc -shared -Wl,-soname,libxbee.so.1 $(CLINKS) -o ./lib/libxbee.so.$(VERSION) ./obj/*.o ln ./libxbee.so.$(VERSION) ./lib/libxbee.so.1 -sf ln ./libxbee.so.$(VERSION) ./lib/libxbee.so -sf ./lib/: mkdir ./lib/ ./obj/: mkdir ./obj/ ./obj/%.o: ./obj/ %.c %.h xbee.h ${CC} ${CFLAGS} ${DEFINES} ${DEBUG} $*.c -o $@ ./obj/%.o: ./obj/ %.c xbee.h ${CC} ${CFLAGS} ${DEFINES} ${DEBUG} $*.c -o $@ # pdfs - generate PDFs for each source file # ifneq ($(strip $(wildcard /usr/bin/ps2pdf)),) ifneq ($(strip $(wildcard /usr/bin/enscript)),) pdfs: ./pdf/ ${addprefix ./pdf/,${addsuffix .pdf,${PDFS}}} ./pdf/: mkdir ./pdf/ ./pdf/makefile.pdf: ./makefile enscript ${ENSCRIPT} -Emakefile $< -p - | ps2pdf - $@ ./pdf/%.pdf: % enscript ${ENSCRIPT} -Ec $< -p - | ps2pdf - $@ ./pdf/%.pdf: @echo "*** Cannot make $@ - '$*' does not exist ***" else pdfs: @echo "WARNING: enscript is not installed - cannot generate PDF files" endif else pdfs: @echo "WARNING: ps2pdf is not installed - cannot generate PDF files" endif