diff --git a/Makefile b/Makefile index 045fa88..2d4f362 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,29 @@ -all: sds-test +LIBVERSION = 2.0.0 + +SDS_SRC = sds.c sds.h sdsalloc.h + +PREFIX ?= /usr/local +INCLUDE_PATH ?= include/sds +LIBRARY_PATH ?= lib + +INSTALL_INCLUDE_PATH = $(DESTDIR)$(PREFIX)/$(INCLUDE_PATH) +INSTALL_LIBRARY_PATH = $(DESTDIR)$(PREFIX)/$(LIBRARY_PATH) + +INSTALL ?= cp -a + +.PHONY: all + +all: sds-test sds-install + +sds-install: sds-lib + mkdir -p $(INSTALL_INCLUDE_PATH) $(INSTALL_LIBRARY_PATH) + $(INSTALL) libsds.so.$(LIBVERSION) $(INSTALL_LIBRARY_PATH) + ln -s $(INSTALL_LIBRARY_PATH)/libsds.so.$(LIBVERSION) $(INSTALL_LIBRARY_PATH)/libsds.so + $(INSTALL) sds.h $(INSTALL_INCLUDE_PATH) + +sds-lib: sds.c sds.h sdsalloc.h + $(CC) -fPIC -fstack-protector -std=c99 -pedantic -Wall -Werror -shared \ + -o libsds.so.$(LIBVERSION) -Wl,-soname=libsds.so.$(LIBVERSION) $(SDS_SRC) sds-test: sds.c sds.h testhelp.h $(CC) -o sds-test sds.c -Wall -std=c99 -pedantic -O2 -DSDS_TEST_MAIN diff --git a/sds.c b/sds.c index 39ad595..2ef0ae7 100644 --- a/sds.c +++ b/sds.c @@ -1266,6 +1266,7 @@ int sdsTest(void) { if (type != SDS_TYPE_5) { test_cond("sdsMakeRoomFor() free", sdsavail(x) >= step); oldfree = sdsavail(x); + (void) oldfree; } p = x+oldlen; for (j = 0; j < step; j++) { diff --git a/sdsalloc.h b/sdsalloc.h index f43023c..0367e21 100644 --- a/sdsalloc.h +++ b/sdsalloc.h @@ -40,3 +40,8 @@ #define s_malloc malloc #define s_realloc realloc #define s_free free + +/* GCC: Incorrect warning about empty translation units + * when using pre-compiled headers, + * (See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64502). */ +typedef int sdsvoid;