--- ./lib/Makefile.orig 2014-07-11 23:06:08.000000000 +0100 +++ ./lib/Makefile 2014-09-27 04:27:47.371160997 +0100 @@ -1,6 +1,8 @@ -include config.mk STATICLIB=libimagequant.a +SHAREDLIB=libimagequant.so +SOVER=0 DLL=libimagequant.dll DLLIMP=libimagequant_dll.a @@ -14,10 +16,12 @@ DISTFILES = $(OBJS:.o=.c) *.h MANUAL.md TARNAME = libimagequant-$(VERSION) TARFILE = $(TARNAME)-src.tar.bz2 -all: static +all: shared static: $(STATICLIB) +shared: $(SHAREDLIB) + dll: $(MAKE) CFLAGSADD="-DLIQ_EXPORT='__declspec(dllexport)'" $(DLL) @@ -28,6 +32,10 @@ $(DLL) $(DLLIMP): $(OBJS) $(STATICLIB): $(OBJS) $(AR) $(ARFLAGS) $@ $^ +$(SHAREDLIB): $(OBJS) + $(CC) -shared -Wl,-soname,$(SHAREDLIB).$(SOVER) $(LDFLAGS) $(OBJS) -o $(SHAREDLIB).$(SOVER) + ln -fs $(SHAREDLIB).$(SOVER) $(SHAREDLIB) + $(OBJS): $(wildcard *.h) config.mk dist: $(TARFILE) --- ./configure.orig 2014-09-27 05:12:31.526575414 +0100 +++ ./configure 2014-09-27 06:01:41.336738912 +0100 @@ -230,7 +230,6 @@ status "Compiler" "$CC" # init flags CFLAGS=${CFLAGS:--O3 -fno-math-errno -funroll-loops -fomit-frame-pointer -Wall} cflags "-std=c99 -I." -lflags "-lm lib/libimagequant.a" # DEBUG if [ -z "$DEBUG" ]; then --- ./Makefile.orig 2015-01-06 16:13:51.000000000 +0000 +++ ./Makefile 2015-01-06 23:10:30.660389846 +0000 @@ -11,6 +11,8 @@ OBJS += $(COCOA_OBJS) endif STATICLIB = lib/libimagequant.a +SHAREDLIB = lib/libimagequant.so +SOVER = 0 DISTFILES = *.[chm] pngquant.1 Makefile configure README.md INSTALL CHANGELOG COPYRIGHT TARNAME = pngquant-$(VERSION) @@ -27,13 +29,16 @@ all: $(BIN) $(STATICLIB):: config.mk $(MAKE) -C lib static +$(SHAREDLIB):: config.mk + $(MAKE) -C lib shared + $(OBJS): $(wildcard *.h) config.mk rwpng_cocoa.o: rwpng_cocoa.m $(CC) -Wno-enum-conversion -c $(CFLAGS) -o $@ $< || clang -Wno-enum-conversion -c -O3 $(CFLAGS) -o $@ $< -$(BIN): $(STATICLIB) $(OBJS) - $(CC) $(OBJS) $(LDFLAGS) -o $@ +$(BIN): $(SHAREDLIB) $(OBJS) + $(CC) $(OBJS) $(LDFLAGS) $(SHAREDLIB) -o $@ dist: $(TARFILE) @@ -54,7 +59,7 @@ uninstall: clean: $(MAKE) -C lib clean - rm -f $(BIN) $(OBJS) $(COCOA_OBJS) $(STATICLIB) $(TARFILE) + rm -f $(BIN) $(OBJS) $(COCOA_OBJS) $(SHAREDLIB) $(TARFILE) distclean: clean $(MAKE) -C lib distclean