| # Makefile for zlib |
| # Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler |
| # For conditions of distribution and use, see copyright notice in zlib.h |
| |
| # To compile and test, type: |
| # ./configure; make test |
| # Normally configure builds both a static and a shared library. |
| # If you want to build just a static library, use: ./configure --static |
| |
| # To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type: |
| # make install |
| # To install in $HOME instead of /usr/local, use: |
| # make install prefix=$HOME |
| |
| CC=cc |
| |
| CFLAGS=-O |
| #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 |
| #CFLAGS=-g -DZLIB_DEBUG |
| #CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \ |
| # -Wstrict-prototypes -Wmissing-prototypes |
| |
| SFLAGS=-O |
| LDFLAGS=-L. |
| LIBNAME1=libz-ng |
| LIBNAME2=zlib-ng |
| SUFFIX=-ng |
| TEST_LIBS=$(LIBNAME1).a |
| LDSHARED=$(CC) |
| LDSHAREDFLAGS=-shared |
| |
| VER=2.1.0.devel |
| VER1=2 |
| |
| STATICLIB=$(LIBNAME1).a |
| SHAREDLIB=$(LIBNAME1).so |
| SHAREDLIBV=$(LIBNAME1).so.$(VER) |
| SHAREDLIBM=$(LIBNAME1).so.$(VER1) |
| IMPORTLIB= |
| SHAREDTARGET=$(LIBNAME1).so.$(VER) |
| PKGFILE=$(LIBNAME2).pc |
| |
| LIBS=$(STATICLIB) $(SHAREDTARGET) |
| |
| AR=ar |
| ARFLAGS=rc |
| DEFFILE= |
| RC= |
| RCFLAGS= |
| RCOBJS= |
| STRIP= |
| RANLIB=ranlib |
| LDCONFIG=ldconfig |
| LDSHAREDLIBC= |
| EXE= |
| |
| SRCDIR=. |
| INCLUDES=-I$(SRCDIR) |
| |
| BUILDDIR=. |
| |
| ARCHDIR=arch/generic |
| ARCH_STATIC_OBJS= |
| ARCH_SHARED_OBJS= |
| |
| prefix = /usr/local |
| exec_prefix = ${prefix} |
| bindir = ${exec_prefix}/bin |
| libdir = ${exec_prefix}/lib |
| sharedlibdir = ${libdir} |
| includedir = ${prefix}/include |
| mandir = ${prefix}/share/man |
| man3dir = ${mandir}/man3 |
| pkgconfigdir = ${libdir}/pkgconfig |
| |
| OBJZ = \ |
| adler32.o \ |
| adler32_fold.o \ |
| chunkset.o \ |
| compare256.o \ |
| compress.o \ |
| cpu_features.o \ |
| crc32_braid.o \ |
| crc32_braid_comb.o \ |
| crc32_fold.o \ |
| deflate.o \ |
| deflate_fast.o \ |
| deflate_huff.o \ |
| deflate_medium.o \ |
| deflate_quick.o \ |
| deflate_rle.o \ |
| deflate_slow.o \ |
| deflate_stored.o \ |
| functable.o \ |
| infback.o \ |
| inffast.o \ |
| inflate.o \ |
| inftrees.o \ |
| insert_string.o \ |
| insert_string_roll.o \ |
| slide_hash.o \ |
| trees.o \ |
| uncompr.o \ |
| zutil.o \ |
| $(ARCH_STATIC_OBJS) |
| |
| OBJG = \ |
| gzlib.o \ |
| gzread.o \ |
| gzwrite.o |
| |
| OBJC = $(OBJZ) $(OBJG) |
| |
| PIC_OBJZ = \ |
| adler32.lo \ |
| adler32_fold.lo \ |
| chunkset.lo \ |
| compare256.lo \ |
| compress.lo \ |
| cpu_features.lo \ |
| crc32_braid.lo \ |
| crc32_braid_comb.lo \ |
| crc32_fold.lo \ |
| deflate.lo \ |
| deflate_fast.lo \ |
| deflate_huff.lo \ |
| deflate_medium.lo \ |
| deflate_quick.lo \ |
| deflate_rle.lo \ |
| deflate_slow.lo \ |
| deflate_stored.lo \ |
| functable.lo \ |
| infback.lo \ |
| inffast.lo \ |
| inflate.lo \ |
| inftrees.lo \ |
| insert_string.lo \ |
| insert_string_roll.lo \ |
| slide_hash.lo \ |
| trees.lo \ |
| uncompr.lo \ |
| zutil.lo \ |
| $(ARCH_SHARED_OBJS) |
| |
| PIC_OBJG = \ |
| gzlib.lo \ |
| gzread.lo \ |
| gzwrite.lo |
| |
| PIC_TESTOBJG = |
| PIC_OBJC = $(PIC_OBJZ) $(PIC_OBJG) |
| |
| OBJS = $(OBJC) |
| |
| PIC_OBJS = $(PIC_OBJC) |
| |
| all: static shared |
| |
| static: example$(EXE) minigzip$(EXE) makefixed$(EXE) maketrees$(EXE) makecrct$(EXE) |
| |
| shared: examplesh$(EXE) minigzipsh$(EXE) |
| |
| check: test |
| |
| .SECONDARY: |
| |
| $(ARCHDIR)/%.o: $(SRCDIR)/$(ARCHDIR)/%.c |
| $(MAKE) -C $(ARCHDIR) $(notdir $@) |
| |
| $(ARCHDIR)/%.lo: $(SRCDIR)/$(ARCHDIR)/%.c |
| $(MAKE) -C $(ARCHDIR) $(notdir $@) |
| |
| %.o: $(ARCHDIR)/%.o |
| -cp $< $@ |
| |
| %.lo: $(ARCHDIR)/%.lo |
| -cp $< $@ |
| |
| test: all |
| $(MAKE) -C test |
| |
| infcover.o: $(SRCDIR)/test/infcover.c zlib$(SUFFIX).h zconf$(SUFFIX).h zlib_name_mangling$(SUFFIX).h |
| $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/test/infcover.c |
| |
| infcover$(EXE): infcover.o $(STATICLIB) |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ infcover.o $(STATICLIB) |
| ifneq ($(STRIP),) |
| $(STRIP) $@ |
| endif |
| |
| cover: infcover$(EXE) |
| rm -f *.gcda |
| ./infcover |
| gcov inf*.c |
| |
| $(STATICLIB): $(OBJS) |
| $(AR) $(ARFLAGS) $@ $(OBJS) |
| -@ ($(RANLIB) $@ || true) >/dev/null 2>&1 |
| |
| example.o: |
| $(CC) $(CFLAGS) -DWITH_GZFILEOP $(INCLUDES) -c -o $@ $(SRCDIR)/test/example.c |
| |
| minigzip.o: |
| $(CC) $(CFLAGS) -DWITH_GZFILEOP $(INCLUDES) -c -o $@ $(SRCDIR)/test/minigzip.c |
| |
| makefixed.o: |
| $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/tools/makefixed.c |
| |
| maketrees.o: |
| $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/tools/maketrees.c |
| |
| makecrct.o: |
| $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/tools/makecrct.c |
| |
| zlibrc.o: win32/zlib$(SUFFIX)1.rc |
| $(RC) $(RCFLAGS) -o $@ win32/zlib$(SUFFIX)1.rc |
| |
| .SUFFIXES: .lo |
| |
| %.o: $(SRCDIR)/%.c |
| $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $< |
| |
| %.lo: $(SRCDIR)/%.c |
| $(CC) $(SFLAGS) -DPIC $(INCLUDES) -c -o $@ $< |
| |
| gzlib.o: $(SRCDIR)/gzlib.c |
| $(CC) $(CFLAGS) -DWITH_GZFILEOP $(INCLUDES) -c -o $@ $< |
| |
| gzlib.lo: $(SRCDIR)/gzlib.c |
| $(CC) $(SFLAGS) -DPIC -DWITH_GZFILEOP $(INCLUDES) -c -o $@ $< |
| |
| gzread.o: gzread.c |
| $(CC) $(CFLAGS) -DWITH_GZFILEOP $(INCLUDES) -c -o $@ $< |
| |
| gzread.lo: gzread.c |
| $(CC) $(SFLAGS) -DPIC -DWITH_GZFILEOP $(INCLUDES) -c -o $@ $< |
| |
| gzwrite.o: $(SRCDIR)/gzwrite.c |
| $(CC) $(CFLAGS) -DWITH_GZFILEOP $(INCLUDES) -c -o $@ $< |
| |
| gzwrite.lo: $(SRCDIR)/gzwrite.c |
| $(CC) $(SFLAGS) -DPIC -DWITH_GZFILEOP $(INCLUDES) -c -o $@ $< |
| |
| $(SHAREDTARGET): $(PIC_OBJS) $(DEFFILE) $(RCOBJS) |
| ifneq ($(SHAREDTARGET),) |
| $(LDSHARED) $(CFLAGS) $(LDSHAREDFLAGS) $(LDFLAGS) -o $@ $(DEFFILE) $(PIC_OBJS) $(RCOBJS) $(LDSHAREDLIBC) |
| ifneq ($(STRIP),) |
| $(STRIP) $@ |
| endif |
| ifneq ($(SHAREDLIB),$(SHAREDTARGET)) |
| rm -f $(SHAREDLIB) $(SHAREDLIBM) |
| ln -s $@ $(SHAREDLIB) |
| ln -s $@ $(SHAREDLIBM) |
| endif |
| endif |
| |
| example$(EXE): example.o $(OBJG) $(STATICLIB) |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ example.o $(OBJG) $(TEST_LIBS) $(LDSHAREDLIBC) |
| ifneq ($(STRIP),) |
| $(STRIP) $@ |
| endif |
| |
| minigzip$(EXE): minigzip.o $(OBJG) $(STATICLIB) |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ minigzip.o $(OBJG) $(TEST_LIBS) $(LDSHAREDLIBC) |
| ifneq ($(STRIP),) |
| $(STRIP) $@ |
| endif |
| |
| minigzipsh$(EXE): minigzip.o $(OBJG) $(SHAREDTARGET) |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ minigzip.o $(OBJG) $(SHAREDTARGET) $(LDSHAREDLIBC) |
| ifneq ($(STRIP),) |
| $(STRIP) $@ |
| endif |
| |
| |
| examplesh$(EXE): example.o $(PIC_TESTOBJG) $(SHAREDTARGET) |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ example.o $(PIC_TESTOBJG) $(SHAREDTARGET) $(LDSHAREDLIBC) |
| ifneq ($(STRIP),) |
| $(STRIP) $@ |
| endif |
| |
| makefixed$(EXE): makefixed.o $(OBJG) $(STATICLIB) |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ makefixed.o $(OBJG) $(TEST_LIBS) $(LDSHAREDLIBC) |
| ifneq ($(STRIP),) |
| $(STRIP) $@ |
| endif |
| |
| maketrees$(EXE): maketrees.o $(OBJG) $(STATICLIB) |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ maketrees.o $(OBJG) $(TEST_LIBS) $(LDSHAREDLIBC) |
| ifneq ($(STRIP),) |
| $(STRIP) $@ |
| endif |
| |
| makecrct$(EXE): makecrct.o $(OBJG) $(STATICLIB) |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ makecrct.o $(OBJG) $(TEST_LIBS) $(LDSHAREDLIBC) |
| ifneq ($(STRIP),) |
| $(STRIP) $@ |
| endif |
| |
| install-shared: $(SHAREDTARGET) |
| ifneq ($(SHAREDTARGET),) |
| -@if [ ! -d $(DESTDIR)$(sharedlibdir) ]; then mkdir -p $(DESTDIR)$(sharedlibdir); fi |
| rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDTARGET) |
| cp $(SHAREDTARGET) $(DESTDIR)$(sharedlibdir) |
| chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDTARGET) |
| ifneq ($(SHAREDLIB),$(SHAREDTARGET)) |
| rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM) |
| ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB) |
| ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM) |
| ($(LDCONFIG) || true) >/dev/null 2>&1 |
| # ldconfig is for Linux |
| endif |
| ifneq ($(IMPORTLIB),) |
| cp $(IMPORTLIB) $(DESTDIR)$(sharedlibdir) |
| chmod 644 $(DESTDIR)$(sharedlibdir)/$(IMPORTLIB) |
| endif |
| endif |
| |
| install-static: $(STATICLIB) |
| -@if [ ! -d $(DESTDIR)$(libdir) ]; then mkdir -p $(DESTDIR)$(libdir); fi |
| rm -f $(DESTDIR)$(libdir)/$(STATICLIB) |
| cp $(STATICLIB) $(DESTDIR)$(libdir) |
| chmod 644 $(DESTDIR)$(libdir)/$(STATICLIB) |
| -@($(RANLIB) $(DESTDIR)$(libdir)/$(STATICLIB) || true) >/dev/null 2>&1 |
| # The ranlib in install-static is needed on NeXTSTEP which checks file times |
| |
| install-libs: install-shared install-static |
| -@if [ ! -d $(DESTDIR)$(man3dir) ]; then mkdir -p $(DESTDIR)$(man3dir); fi |
| -@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi |
| rm -f $(DESTDIR)$(pkgconfigdir)/$(PKGFILE) |
| cp $(PKGFILE) $(DESTDIR)$(pkgconfigdir) |
| chmod 644 $(DESTDIR)$(pkgconfigdir)/$(PKGFILE) |
| |
| install: install-libs |
| -@if [ ! -d $(DESTDIR)$(includedir) ]; then mkdir -p $(DESTDIR)$(includedir); fi |
| rm -f $(DESTDIR)$(includedir)/zlib$(SUFFIX).h $(DESTDIR)$(includedir)/zconf$(SUFFIX).h $(DESTDIR)$(includedir)/zlib_name_mangling$(SUFFIX).h |
| cp zlib$(SUFFIX).h $(DESTDIR)$(includedir)/zlib$(SUFFIX).h |
| cp zconf$(SUFFIX).h $(DESTDIR)$(includedir)/zconf$(SUFFIX).h |
| cp zlib_name_mangling$(SUFFIX).h $(DESTDIR)$(includedir)/zlib_name_mangling$(SUFFIX).h |
| chmod 644 $(DESTDIR)$(includedir)/zlib$(SUFFIX).h $(DESTDIR)$(includedir)/zconf$(SUFFIX).h $(DESTDIR)$(includedir)/zlib_name_mangling$(SUFFIX).h |
| |
| uninstall-static: |
| cd $(DESTDIR)$(libdir) && rm -f $(STATICLIB) |
| |
| uninstall-shared: |
| ifneq ($(SHAREDLIB),) |
| cd $(DESTDIR)$(sharedlibdir) && rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM) |
| endif |
| ifneq ($(IMPORTLIB),) |
| cd $(DESTDIR)$(sharedlibdir) && rm -f $(IMPORTLIB) |
| endif |
| |
| uninstall: uninstall-static uninstall-shared |
| cd $(DESTDIR)$(includedir) && rm -f zlib$(SUFFIX).h zconf$(SUFFIX).h zlib_name_mangling$(SUFFIX).h |
| cd $(DESTDIR)$(pkgconfigdir) && rm -f $(PKGFILE) |
| |
| mostlyclean: clean |
| clean: |
| @if [ -f $(ARCHDIR)/Makefile ]; then $(MAKE) -C $(ARCHDIR) clean; fi |
| @if [ -f test/Makefile ]; then $(MAKE) -C test clean; fi |
| rm -f *.o *.lo *~ \ |
| example$(EXE) minigzip$(EXE) minigzipsh$(EXE) \ |
| infcover makefixed$(EXE) maketrees$(EXE) makecrct$(EXE) \ |
| $(STATICLIB) $(IMPORTLIB) $(SHAREDLIB) $(SHAREDLIBV) $(SHAREDLIBM) \ |
| foo.gz so_locations \ |
| _match.s maketree |
| rm -rf objs |
| rm -f *.gcda *.gcno *.gcov |
| rm -f a.out a.exe |
| rm -f *.pc |
| rm -f *._h |
| rm -rf btmp1 btmp2 pkgtmp1 pkgtmp2 |
| |
| maintainer-clean: distclean |
| distclean: clean |
| @if [ -f $(ARCHDIR)/Makefile ]; then $(MAKE) -C $(ARCHDIR) distclean; fi |
| @if [ -f test/Makefile ]; then $(MAKE) -C test distclean; fi |
| rm -f $(PKGFILE) configure.log zconf.h zconf.h.cmakein zlib$(SUFFIX).h zlib_name_mangling$(SUFFIX)}.h |
| -@rm -f .DS_Store |
| # Reset Makefile if building inside source tree |
| @if [ -f Makefile.in ]; then \ |
| printf 'all:\n\t-@echo "Please use ./configure first. Thank you."\n' > Makefile ; \ |
| printf '\ndistclean:\n\t$(MAKE) -f Makefile.in distclean\n' >> Makefile ; \ |
| touch -r $(SRCDIR)/Makefile.in Makefile ; fi |
| # Reset zconf.h and zconf.h.cmakein if building inside source tree |
| @if [ -f zconf.h.in ]; then \ |
| cp -p $(SRCDIR)/zconf.h.in zconf.h ; \ |
| grep -v '^#cmakedefine' $(SRCDIR)/zconf.h.in > zconf.h.cmakein &&\ |
| touch -r $(SRCDIR)/zconf.h.in zconf.h.cmakein ; fi |
| # Cleanup these files if building outside source tree |
| @if [ ! -f README.md ]; then rm -f Makefile; fi |
| # Remove arch and test directory if building outside source tree |
| @if [ ! -f $(ARCHDIR)/Makefile.in ]; then rm -rf arch; fi |
| @if [ ! -f test/Makefile.in ]; then rm -rf test; fi |
| |
| tags: |
| etags $(SRCDIR)/*.[ch] |