From a18324681121bb6450059cd6b5f63d46b3ac3fe5 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Mon, 2 Jul 2012 15:05:20 +0200 Subject: improved makefile --- Makefile | 37 ++++++++++++++++--------------------- src/Makefile | 20 ++++++++++---------- 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 -- cgit v1.2.3