--- a/Makefile +++ b/Makefile @@ -1,38 +1,39 @@ -CFLAGS = -Iinclude -LDFLAGS = -L. -lcanlock -CC = gcc -STATIC_LIB = libcanlock.a +CPPFLAGS += -Iinclude +LDLIBS = -L./src -lcanlock -all: hmactest canlocktest $(STATIC_LIB) +all: shared -sha1test: t/sha1test.c $(STATIC_LIB) - $(CC) $(CFLAGS) t/$@.c -o $@ $(LDFLAGS) +sha1test: t/sha1test.c shared + $(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) t/$@.c -o $@ $(LDLIBS) -hmactest: t/hmactest.c $(STATIC_LIB) - $(CC) $(CFLAGS) t/$@.c -o $@ $(LDFLAGS) +hmactest: t/hmactest.c shared + $(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) t/$@.c -o $@ $(LDLIBS) -canlocktest: t/canlocktest.c $(STATIC_LIB) - $(CC) $(CFLAGS) t/$@.c -o $@ $(LDFLAGS) +canlocktest: t/canlocktest.c shared + $(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) t/$@.c -o $@ $(LDLIBS) -$(STATIC_LIB): - cd src && make - ln -s src/libcanlock.a libcanlock.a +static: + cd src && $(MAKE) libcanlock.a + ln -sf src/libcanlock.a libcanlock.a + +shared: + cd src && $(MAKE) libcanlock.so.2.0.0 clean: rm -f src/*.o t/*.o t/*.out *.gmon gmon.* - cd src && make clean + cd src && $(MAKE) clean rm -f *.a canlocktest hmactest sha1test *.exe *.h lib-stamp install: all - cd src && make install DESTDIR=$(DESTDIR) + cd src && $(MAKE) install DESTDIR=$(DESTDIR) install --mode=644 include/canlock.h $(DESTDIR)/usr/include - -test: all + +check: hmactest canlocktest @echo "hmactest: " - @./hmactest > t/hmactest.out || echo hmm + @LD_LIBRARY_PATH=src/ ./hmactest > t/hmactest.out || echo hmm @diff t/hmactest.shouldbe t/hmactest.out && echo " Pass." || (echo " **FAIL**" ; exit 1) @echo "=-=-=-=" @echo "canlocktest: " - @./canlocktest > t/canlocktest.out + @LD_LIBRARY_PATH=src/ ./canlocktest > t/canlocktest.out @diff t/canlocktest.shouldbe t/canlocktest.out && echo " Pass." || (echo " **FAIL**" ; exit 1) @echo "=-=-=-=" --- a/src/Makefile +++ b/src/Makefile @@ -1,32 +1,35 @@ -LIBOBJS = base64.lo canlock.lo hmac_sha1.lo sha1.lo -CC = gcc LIBTOOL = libtool -CFLAGS = -I../include +CPPFLAGS += -I../include SOURCES = base64.c canlock.c hmac_sha1.c sha1.c -OBJS = base64.o canlock.o hmac_sha1.o sha1.o +OBJS := $(SOURCES:.c=.o) +LIBOBJS := $(SOURCES:.c=.lo) SHARELINKFLAGS = -Wl,-soname -Wl,libcanlock.so.2 SHAREDFLAGS = -fPIC -DPIC LIBS = libcanlock.a libcanlock.so.2.0.0 INSTALL = install +.SUFFIXES: .c .o .h .lo + all: $(LIBS) -libcanlock.a: - $(CC) $(CFLAGS) -c $(SOURCES) - ar cru libcanlock.a $(OBJS) - ranlib libcanlock.a - rm $(OBJS) - -libcanlock.so.2.0.0: - $(CC) $(CFLAGS) $(SHAREDFLAGS) -c $(SOURCES) - $(CC) -shared $(OBJS) $(SHARELINKFLAGS) -o libcanlock.so.2.0.0 +.c.lo: + $(CC) $(CFLAGS) $(CPPFLAGS) $(SHAREDFLAGS) -c -o $@ $< + +libcanlock.a: $(OBJS) + $(AR) cru libcanlock.a $(OBJS) + $(RANLIB) libcanlock.a + +libcanlock.so.2.0.0: $(LIBOBJS) + $(CC) -shared $(LIBOBJS) $(LDFLAGS) $(SHARELINKFLAGS) -o libcanlock.so.2.0.0 + ln -s libcanlock.so.2.0.0 libcanlock.so + ln -s libcanlock.so.2.0.0 libcanlock.so.2 install: all $(INSTALL) libcanlock.so.2.0.0 $(DESTDIR)/usr/lib cd $(DESTDIR)/usr/lib && ln -s libcanlock.so.2.0.0 libcanlock.so.2 cd $(DESTDIR)/usr/lib && ln -s libcanlock.so.2.0.0 libcanlock.so $(INSTALL) libcanlock.a $(DESTDIR)/usr/lib/libcanlock.a - ranlib $(DESTDIR)/usr/lib/libcanlock.a - + $(RANLIB) $(DESTDIR)/usr/lib/libcanlock.a + clean: - rm -f $(OBJS) $(LIBS) + rm -f $(OBJS) $(LIBOBJS) $(LIBS)