diff --git a/libut/Makefile b/libut/Makefile index 61435885..ba738cc1 100644 --- a/libut/Makefile +++ b/libut/Makefile @@ -1,33 +1,38 @@ -OBJS=libut.a -all: $(OBJS) +SOURCES = src/libut.c src/ringbuf.c src/utmm.c src/utvector.c +HEADERS = include/libut.h include/ringbuf.h include/utarray.h include/uthash.h include/utlist.h include/utmm.h include/utringbuffer.h include/utstring.h include/utvector.h +OBJS=$(SOURCES:.c=.o) +all: libut.a libut.so.2.0.1 INCDIR=./include +LIBDIR=/usr/lib CFLAGS+=-I$(INCDIR) -CFLAGS+=-Wall -Wextra +CFLAGS+=-Wall -Wextra -Werror -fPIC CFLAGS+=-g +CFLAGS+=$(OPTFLAGS) -libut.a: libut.o utvector.o utmm.o ringbuf.o +libut.a: $(OBJS) ar r $@ $^ -libut.o: src/libut.c $(INCDIR)/libut.h - $(CC) $(CFLAGS) $(CPPFLAGS) -c $< - -utvector.o: src/utvector.c $(INCDIR)/utvector.h - $(CC) $(CFLAGS) $(CPPFLAGS) -c $< - -utmm.o: src/utmm.c $(INCDIR)/utmm.h - $(CC) $(CFLAGS) $(CPPFLAGS) -c $< - -ringbuf.o: src/ringbuf.c $(INCDIR)/ringbuf.h - $(CC) $(CFLAGS) $(CPPFLAGS) -c $< +libut.so.2.0.1: $(OBJS) + $(CC) $(CFLAGS) -shared -Wl,-soname,libut.so.2 $^ -o $@ .PHONY: clean tests install clean: - rm -f $(OBJS) *.o + rm -f *.o *.a *.so* make -C tests clean tests: libut.a make -C tests -install: libut.a - cp $< /usr/local/lib +install: libut.a libut.so.2.0.1 + mkdir -p $(DESTDIR)$(LIBDIR) + mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig + mkdir -p $(DESTDIR)/usr/include + cp libut.a $(DESTDIR)$(LIBDIR) + cp libut.so.2.0.1 $(DESTDIR)$(LIBDIR) + ln -sf $(LIBDIR)/libut.so.2.0.1 $(DESTDIR)$(LIBDIR)/libut.so.2 + ln -sf $(LIBDIR)/libut.so.2.0.1 $(DESTDIR)$(LIBDIR)/libut.so + cp ./include/*.h $(DESTDIR)/usr/include + sed -i -e "s|VERSION|2.0.1|" uthash.pc.in + sed -i -e "s|LIBDIR|$(LIBDIR)|" uthash.pc.in + cp uthash.pc.in $(DESTDIR)$(LIBDIR)/pkgconfig/uthash.pc diff --git a/libut/tests/Makefile b/libut/tests/Makefile index 2feb6c30..f4caf9eb 100644 --- a/libut/tests/Makefile +++ b/libut/tests/Makefile @@ -4,7 +4,8 @@ OBJS=$(patsubst %,%.o,$(PROGS)) CFLAGS += -I../include CFLAGS += -g -CFLAGS += -Wall -Wextra +CFLAGS += -Wall -Wextra -Werror -fPIC +CFLAGS += $(OPTFLAGS) LDFLAGS += -L.. -lut TEST_TARGET=run_tests diff --git a/libut/uthash.pc.in b/libut/uthash.pc.in new file mode 100644 index 00000000..6e0e9c47 --- /dev/null +++ b/libut/uthash.pc.in @@ -0,0 +1,9 @@ +prefix=/usr +libdir=LIBDIR +includedir=/usr/include + +Name: uthash +Description: C macros for hash tables and more +Version: VERSION +Libs: -L${libdir} -lut +Cflags: -I${includedir} diff --git a/tests/Makefile b/tests/Makefile index 85c02810..4ee14bc7 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -18,6 +18,7 @@ CFLAGS += -I$(HASHDIR) #CFLAGS += -DHASH_BLOOM=16 #CFLAGS += -O2 CFLAGS += -g +CFLAGS += $(OPTFLAGS) #CFLAGS += -Wstrict-aliasing=2 CFLAGS += -Wall #CFLAGS += -Wextra