aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2012-07-02 15:05:20 +0200
committerJakob Odersky <jodersky@gmail.com>2012-07-02 15:05:20 +0200
commita18324681121bb6450059cd6b5f63d46b3ac3fe5 (patch)
tree56706566c9b49db4cf49d652a28057fd77a6a263
parent424bbf13d6e53be6d4463dab6613c571e96ddf75 (diff)
downloadk8055-a18324681121bb6450059cd6b5f63d46b3ac3fe5.tar.gz
k8055-a18324681121bb6450059cd6b5f63d46b3ac3fe5.tar.bz2
k8055-a18324681121bb6450059cd6b5f63d46b3ac3fe5.zip
improved makefile
-rw-r--r--Makefile37
-rw-r--r--src/Makefile20
2 files changed, 26 insertions, 31 deletions
diff --git a/Makefile b/Makefile
index 1d3f74f..4c72e23 100644
--- a/Makefile
+++ b/Makefile
@@ -1,35 +1,30 @@
-DESTDIR=
-PREFIX=$(DESTDIR)/usr
+PREFIX=/usr/local
+UDEV=/etc/udev/rules.d
-compile:
- make -C src
-
-copy: compile mkdirs
- cp src/*.so target/lib
- cp src/*.h target/include
+build:
+ make -C src libk8055.so
clean:
make clean -C src
rm -rf target
-dist-clean: clean
-
-mkdirs:
- mkdir -p target/lib
- mkdir -p target/include
-
-doc: mkdirs
+doc:
+ mkdir -p target
doxygen Doxyfile
#run this if you want to build everything but not install user-wide or system-wide
-local: compile copy
+local: build
+ mkdir -p target/lib
+ mkdir -p target/include
+ cp -P src/*.so* target/lib
+ cp src/*.h target/include
#these commands must be run as root
install-rules:
- cp k8055.rules $(DESTDIR)/etc/udev/rules.d/k8055.rules
+ cp k8055.rules $(UDEV)/k8055.rules
uninstall-rules:
- rm $(DESTDIR)/etc/udev/rules.d/k8055.rules
+ rm -f $(UDEV)/k8055.rules
install-permissions: install-rules
groupadd -f k8055
@@ -38,12 +33,12 @@ install-permissions: install-rules
uninstall-permissions: uninstall-rules
groupdel k8055
-install: compile
+install: build
mkdir -p $(PREFIX)/lib
mkdir -p $(PREFIX)/include
- cp src/*.so $(PREFIX)/lib
+ cp -P src/*.so* $(PREFIX)/lib
cp src/*.h $(PREFIX)/include
uninstall:
- rm $(PREFIX)/lib/libk8055.so
+ rm $(PREFIX)/lib/libk8055.so*
rm $(PREFIX)/include/k8055.h
diff --git a/src/Makefile b/src/Makefile
index cb3818d..693187d 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,24 +1,24 @@
C = gcc
-# libusb.h location
-CFLAGS = -std=c99 -O2 -Wall
+CFLAGS = -std=c99 -O2 -Wall -pedantic
+VERSION_MAJOR=1
+VERSION_MINOR=0
+VERSION=$(VERSION_MAJOR).$(VERSION_MINOR)
-all: libk8055.so
-
-libk8055.so: k8055.o
- $(C) -shared -o libk8055.so k8055.o -lusb-1.0 -lm
+libk8055.so: libk8055.so.$(VERSION)
+ ln -s libk8055.so.$(VERSION) libk8055.so
-
-libk8055.a: k8055.o
- $(C) -o libk8055.a k8055.o -lusb-1.0 -lm
+libk8055.so.$(VERSION): k8055.o
+ $(C) $(CFLAGS) -shared -Wl,-soname,libk8055.so.$(VERSION_MAJOR) -o libk8055.so.$(VERSION) k8055.o -lusb-1.0 -lm
k8055.o: k8055.c
$(C) $(CFLAGS) -fPIC -c k8055.c -o k8055.o
clean:
rm -rf *.o
- rm -rf *.so
+ rm -rf *.so*
rm -rf k8055-*
+# test and benchmark programs
test: k8055.c test.c
$(C) test.c k8055.c -o k8055-test $(CFLAGS) -D_POSIX_C_SOURCE=199309L -lusb-1.0 -lm