Home | History | Annotate | Download | only in zlib
      1 # Makefile for zlib

      2 # Copyright (C) 1995-2005 Jean-loup Gailly.

      3 # For conditions of distribution and use, see copyright notice in zlib.h

      4 
      5 # To compile and test, type:

      6 #    ./configure; make test

      7 # The call of configure is optional if you don't have special requirements

      8 # If you wish to build zlib as a shared library, use: ./configure -s

      9 
     10 # To use the asm code, type:

     11 #    cp contrib/asm?86/match.S ./match.S

     12 #    make LOC=-DASMV OBJA=match.o

     13 
     14 # To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type:

     15 #    make install

     16 # To install in $HOME instead of /usr/local, use:

     17 #    make install prefix=$HOME

     18 
     19 CC=cc
     20 
     21 CFLAGS=-O
     22 #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7

     23 #CFLAGS=-g -DDEBUG

     24 #CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \

     25 #           -Wstrict-prototypes -Wmissing-prototypes

     26 
     27 LDFLAGS=libz.a
     28 LDSHARED=$(CC)
     29 CPP=$(CC) -E
     30 
     31 LIBS=libz.a
     32 SHAREDLIB=libz.so
     33 SHAREDLIBV=libz.so.1.2.3
     34 SHAREDLIBM=libz.so.1
     35 
     36 AR=ar rc
     37 RANLIB=ranlib
     38 TAR=tar
     39 SHELL=/bin/sh
     40 EXE=
     41 
     42 prefix = /usr/local
     43 exec_prefix = ${prefix}
     44 libdir = ${exec_prefix}/lib
     45 includedir = ${prefix}/include
     46 mandir = ${prefix}/share/man
     47 man3dir = ${mandir}/man3
     48 
     49 OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
     50        zutil.o inflate.o infback.o inftrees.o inffast.o
     51 
     52 OBJA =
     53 # to use the asm code: make OBJA=match.o

     54 
     55 TEST_OBJS = example.o minigzip.o
     56 
     57 all: example$(EXE) minigzip$(EXE)
     58 
     59 check: test
     60 test: all
     61 	@LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \
     62 	echo hello world | ./minigzip | ./minigzip -d || \
     63 	  echo '		*** minigzip test FAILED ***' ; \
     64 	if ./example; then \
     65 	  echo '		*** zlib test OK ***'; \
     66 	else \
     67 	  echo '		*** zlib test FAILED ***'; \
     68 	fi
     69 
     70 libz.a: $(OBJS) $(OBJA)
     71 	$(AR) $@ $(OBJS) $(OBJA)
     72 	-@ ($(RANLIB) $@ || true) >/dev/null 2>&1
     73 
     74 match.o: match.S
     75 	$(CPP) match.S > _match.s
     76 	$(CC) -c _match.s
     77 	mv _match.o match.o
     78 	rm -f _match.s
     79 
     80 $(SHAREDLIBV): $(OBJS)
     81 	$(LDSHARED) -o $@ $(OBJS)
     82 	rm -f $(SHAREDLIB) $(SHAREDLIBM)
     83 	ln -s $@ $(SHAREDLIB)
     84 	ln -s $@ $(SHAREDLIBM)
     85 
     86 example$(EXE): example.o $(LIBS)
     87 	$(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS)
     88 
     89 minigzip$(EXE): minigzip.o $(LIBS)
     90 	$(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS)
     91 
     92 install: $(LIBS)
     93 	-@if [ ! -d $(exec_prefix) ]; then mkdir -p $(exec_prefix); fi
     94 	-@if [ ! -d $(includedir)  ]; then mkdir -p $(includedir); fi
     95 	-@if [ ! -d $(libdir)      ]; then mkdir -p $(libdir); fi
     96 	-@if [ ! -d $(man3dir)     ]; then mkdir -p $(man3dir); fi
     97 	cp zlib.h zconf.h $(includedir)
     98 	chmod 644 $(includedir)/zlib.h $(includedir)/zconf.h
     99 	cp $(LIBS) $(libdir)
    100 	cd $(libdir); chmod 755 $(LIBS)
    101 	-@(cd $(libdir); $(RANLIB) libz.a || true) >/dev/null 2>&1
    102 	cd $(libdir); if test -f $(SHAREDLIBV); then \
    103 	  rm -f $(SHAREDLIB) $(SHAREDLIBM); \
    104 	  ln -s $(SHAREDLIBV) $(SHAREDLIB); \
    105 	  ln -s $(SHAREDLIBV) $(SHAREDLIBM); \
    106 	  (ldconfig || true)  >/dev/null 2>&1; \
    107 	fi
    108 	cp zlib.3 $(man3dir)
    109 	chmod 644 $(man3dir)/zlib.3
    110 # The ranlib in install is needed on NeXTSTEP which checks file times

    111 # ldconfig is for Linux

    112 
    113 uninstall:
    114 	cd $(includedir); \
    115 	cd $(libdir); rm -f libz.a; \
    116 	if test -f $(SHAREDLIBV); then \
    117 	  rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \
    118 	fi
    119 	cd $(man3dir); rm -f zlib.3
    120 
    121 mostlyclean: clean
    122 clean:
    123 	rm -f *.o *~ example$(EXE) minigzip$(EXE) \
    124 	   libz.* foo.gz so_locations \
    125 	   _match.s maketree contrib/infback9/*.o
    126 
    127 maintainer-clean: distclean
    128 distclean: clean
    129 	cp -p Makefile.in Makefile
    130 	cp -p zconf.in.h zconf.h
    131 	rm -f .DS_Store
    132 
    133 tags:
    134 	etags *.[ch]
    135 
    136 depend:
    137 	makedepend -- $(CFLAGS) -- *.[ch]
    138 
    139 # DO NOT DELETE THIS LINE -- make depend depends on it.

    140 
    141 adler32.o: zlib.h zconf.h
    142 compress.o: zlib.h zconf.h
    143 crc32.o: crc32.h zlib.h zconf.h
    144 deflate.o: deflate.h zutil.h zlib.h zconf.h
    145 example.o: zlib.h zconf.h
    146 gzio.o: zutil.h zlib.h zconf.h
    147 inffast.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
    148 inflate.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
    149 infback.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
    150 inftrees.o: zutil.h zlib.h zconf.h inftrees.h
    151 minigzip.o: zlib.h zconf.h
    152 trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
    153 uncompr.o: zlib.h zconf.h
    154 zutil.o: zutil.h zlib.h zconf.h
    155