You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
227 lines
6.3 KiB
227 lines
6.3 KiB
14 years ago
|
#-- 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
|