3 changed files with 365 additions and 0 deletions
@ -0,0 +1,226 @@ |
|||||||
|
#-- 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 |
@ -0,0 +1,91 @@ |
|||||||
|
#-- uncomment this to enable debugging |
||||||
|
#DEBUG:=-g -DDEBUG |
||||||
|
|
||||||
|
#-- what compiler are you using? |
||||||
|
CC:=gcc |
||||||
|
|
||||||
|
|
||||||
|
###### YOU SHOULD NOT CHANGE BELOW THIS LINE ###### |
||||||
|
|
||||||
|
VERSION:=1.4.0 |
||||||
|
SRCS:=api.c |
||||||
|
|
||||||
|
CFLAGS:=-Wall -Wstrict-prototypes -Wno-variadic-macros -pedantic -c -fPIC ${DEBUG} |
||||||
|
CLINKS:=-lpthread -lrt ${DEBUG} |
||||||
|
DEFINES:=-D__UMAKEFILE |
||||||
|
|
||||||
|
SRCS:=${sort ${SRCS}} |
||||||
|
|
||||||
|
.PHONY: all run new clean main |
||||||
|
|
||||||
|
|
||||||
|
# all - do everything (default) # |
||||||
|
all: ./lib/libxbee.so.$(VERSION) main |
||||||
|
@echo "*** Done! ***" |
||||||
|
|
||||||
|
|
||||||
|
# run - remake main and then run # |
||||||
|
run: 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 |
||||||
|
|
||||||
|
# install - installs library # |
||||||
|
install: /usr/lib/libxbee.so.$(VERSION) /usr/include/xbee.h |
||||||
|
|
||||||
|
/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 |
||||||
|
|
||||||
|
uninstall: |
||||||
|
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 |
||||||
|
|
||||||
|
# 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 -o ./lib/libxbee.so.$(VERSION) ./obj/*.o -lrt |
||||||
|
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 $@ |
@ -0,0 +1,48 @@ |
|||||||
|
#-- uncomment this to enable debugging |
||||||
|
#DEBUG:=/Zi /DDEBUG /MTd |
||||||
|
#LDBUG:=/DEBUG |
||||||
|
|
||||||
|
#-- you may need to edit these lines if your installation is different |
||||||
|
VCPath:=C:\Program Files\Microsoft Visual Studio 10.0\VC |
||||||
|
SDKPath:=C:\Program Files\Microsoft SDKs\Windows\v7.1 |
||||||
|
|
||||||
|
#!! if using visual studio 2010, you may need to run the following in a shell, |
||||||
|
# and then within the same shell run `make -f win32.makefile` |
||||||
|
# C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat |
||||||
|
|
||||||
|
###### YOU SHOULD NOT CHANGE BELOW THIS LINE ###### |
||||||
|
SHELL:=cmd |
||||||
|
DEBUG?=/MT |
||||||
|
|
||||||
|
SRCS:=api.c |
||||||
|
|
||||||
|
CC:="${VCPath}\bin\cl.exe" |
||||||
|
LINK:="${VCPath}\bin\link.exe" |
||||||
|
RC:="${SDKPath}\bin\rc.exe" |
||||||
|
|
||||||
|
.PHONY: all new clean |
||||||
|
|
||||||
|
all: .\lib\libxbee.dll |
||||||
|
|
||||||
|
new: clean all |
||||||
|
|
||||||
|
clean: |
||||||
|
-rmdir /Q /S lib |
||||||
|
-rmdir /Q /S obj |
||||||
|
|
||||||
|
.\obj: |
||||||
|
mkdir obj |
||||||
|
|
||||||
|
.\lib: |
||||||
|
mkdir lib |
||||||
|
|
||||||
|
.\lib\libxbee.dll: .\lib .\obj\api.obj .\obj\win32.res |
||||||
|
${LINK} ${LDBUG} /nologo /DLL /MAP:lib\libxbee.map /DEF:xsys\win32.def \ |
||||||
|
"/LIBPATH:${SDKPath}\Lib" "/LIBPATH:${VCPath}\lib" \ |
||||||
|
/OUT:.\lib\libxbee.dll .\obj\api.obj .\obj\win32.res |
||||||
|
|
||||||
|
.\obj\api.obj: .\obj api.c api.h xbee.h |
||||||
|
${CC} ${DEBUG} /nologo "/I${SDKPath}\Include" "/I${VCPath}\include" /RTCs /Gz /c /Fd.\lib\libxbee.pdb /Fo.\obj\api.obj ${SRCS} |
||||||
|
|
||||||
|
.\obj\win32.res: .\xsys\win32.rc |
||||||
|
${RC} "/I${SDKPath}\Include" "/I${VCPath}\include" /n /fo.\obj\win32.res .\xsys\win32.rc |
Loading…
Reference in new issue