Makefile: set versions for SONAME correctly

Raised in issue #356, reduce version number in SONAME to MAJOR.MINOR.
While at it, create a symlink the from SONAME to the library, instead of
the other way around, and add a (standard) unversioned symlink to the
library to aid the ordinary linking process.

PR-URL: https://github.com/nodejs/http-parser/pull/359
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
make-http-max-header-size-gyp-configurable
Fabian Groffen 8 years ago committed by Fedor Indutny
parent 291a32cc51
commit 8ea9532378

@ -21,16 +21,22 @@
PLATFORM ?= $(shell sh -c 'uname -s | tr "[A-Z]" "[a-z]"') PLATFORM ?= $(shell sh -c 'uname -s | tr "[A-Z]" "[a-z]"')
HELPER ?= HELPER ?=
BINEXT ?= BINEXT ?=
SOLIBNAME = libhttp_parser
SOMAJOR = 2
SOMINOR = 7
SOREV = 1
ifeq (darwin,$(PLATFORM)) ifeq (darwin,$(PLATFORM))
SONAME ?= libhttp_parser.2.7.1.dylib
SOEXT ?= dylib SOEXT ?= dylib
SONAME ?= $(SOLIBNAME).$(SOMAJOR).$(SOMINOR).$(SOEXT)
LIBNAME ?= $(SOLIBNAME).$(SOMAJOR).$(SOMINOR).$(SOREV).$(SOEXT)
else ifeq (wine,$(PLATFORM)) else ifeq (wine,$(PLATFORM))
CC = winegcc CC = winegcc
BINEXT = .exe.so BINEXT = .exe.so
HELPER = wine HELPER = wine
else else
SONAME ?= libhttp_parser.so.2.7.1
SOEXT ?= so SOEXT ?= so
SONAME ?= $(SOLIBNAME).$(SOEXT).$(SOMAJOR).$(SOMINOR)
LIBNAME ?= $(SOLIBNAME).$(SOEXT).$(SOMAJOR).$(SOMINOR).$(SOREV)
endif endif
CC?=gcc CC?=gcc
@ -102,7 +108,7 @@ libhttp_parser.o: http_parser.c http_parser.h Makefile
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_LIB) -c http_parser.c -o libhttp_parser.o $(CC) $(CPPFLAGS_FAST) $(CFLAGS_LIB) -c http_parser.c -o libhttp_parser.o
library: libhttp_parser.o library: libhttp_parser.o
$(CC) $(LDFLAGS_LIB) -o $(SONAME) $< $(CC) $(LDFLAGS_LIB) -o $(LIBNAME) $<
package: http_parser.o package: http_parser.o
$(AR) rcs libhttp_parser.a http_parser.o $(AR) rcs libhttp_parser.a http_parser.o
@ -124,13 +130,15 @@ tags: http_parser.c http_parser.h test.c
install: library install: library
$(INSTALL) -D http_parser.h $(INCLUDEDIR)/http_parser.h $(INSTALL) -D http_parser.h $(INCLUDEDIR)/http_parser.h
$(INSTALL) -D $(SONAME) $(LIBDIR)/$(SONAME) $(INSTALL) -D $(LIBNAME) $(LIBDIR)/$(LIBNAME)
ln -s $(LIBDIR)/$(SONAME) $(LIBDIR)/libhttp_parser.$(SOEXT) ln -s $(LIBDIR)/$(LIBNAME) $(LIBDIR)/$(SONAME)
ln -s $(LIBDIR)/$(LIBNAME) $(LIBDIR)/$(SOLIBNAME).$(SOEXT)
install-strip: library install-strip: library
$(INSTALL) -D http_parser.h $(INCLUDEDIR)/http_parser.h $(INSTALL) -D http_parser.h $(INCLUDEDIR)/http_parser.h
$(INSTALL) -D -s $(SONAME) $(LIBDIR)/$(SONAME) $(INSTALL) -D -s $(LIBNAME) $(LIBDIR)/$(LIBNAME)
ln -s $(LIBDIR)/$(SONAME) $(LIBDIR)/libhttp_parser.$(SOEXT) ln -s $(LIBDIR)/$(LIBNAME) $(LIBDIR)/$(SONAME)
ln -s $(LIBDIR)/$(LIBNAME) $(LIBDIR)/$(SOLIBNAME).$(SOEXT)
uninstall: uninstall:
rm $(INCLUDEDIR)/http_parser.h rm $(INCLUDEDIR)/http_parser.h

Loading…
Cancel
Save