makefile.lnx 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. # makefile for libpng on Linux ELF with gcc
  2. # Copyright (C) 1996, 1997 Andreas Dilger
  3. # Copyright (C) 1998 Greg Roelofs
  4. # For conditions of distribution and use, see copyright notice in png.h
  5. CC=gcc
  6. # Where the zlib library and include files are located
  7. #ZLIBLIB=/usr/local/lib
  8. #ZLIBINC=/usr/local/include
  9. ZLIBLIB=../zlib
  10. ZLIBINC=../zlib
  11. WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
  12. -Wmissing-declarations -Wtraditional -Wcast-align \
  13. -Wstrict-prototypes -Wmissing-prototypes #-Wconversion
  14. CFLAGS=-I$(ZLIBINC) -Wall -O3 -funroll-loops -malign-loops=2 \
  15. -malign-functions=2 #$(WARNMORE) -g -DPNG_DEBUG=5
  16. LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng -lz -lm
  17. RANLIB=ranlib
  18. #RANLIB=echo
  19. PNGMAJ = 2
  20. PNGMIN = 0.99
  21. PNGVER = $(PNGMAJ).$(PNGMIN)
  22. # where make install puts libpng.a, libpng.so*, and png.h
  23. prefix=/usr/local
  24. INCPATH=$(prefix)/include
  25. LIBPATH=$(prefix)/lib
  26. OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
  27. pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
  28. pngwtran.o pngmem.o pngerror.o pngpread.o
  29. OBJSDLL = $(OBJS:.o=.pic.o)
  30. .SUFFIXES: .c .o .pic.o
  31. .c.pic.o:
  32. $(CC) -c $(CFLAGS) -fPIC -o $@ $*.c
  33. all: libpng.a libpng.so pngtest
  34. libpng.a: $(OBJS)
  35. ar rc $@ $(OBJS)
  36. $(RANLIB) $@
  37. libpng.so: libpng.so.$(PNGMAJ)
  38. ln -sf libpng.so.$(PNGMAJ) libpng.so
  39. libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
  40. ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)
  41. libpng.so.$(PNGVER): $(OBJSDLL)
  42. gcc -shared -Wl,-soname,libpng.so.$(PNGMAJ) -o libpng.so.$(PNGVER) \
  43. $(OBJSDLL)
  44. pngtest: pngtest.o libpng.so
  45. $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
  46. test: pngtest
  47. ./pngtest
  48. install: libpng.a libpng.so.$(PNGVER)
  49. -@mkdir $(INCPATH) $(LIBPATH)
  50. cp png.h pngconf.h $(INCPATH)
  51. chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
  52. cp libpng.a libpng.so.$(PNGVER) $(LIBPATH)
  53. chmod 755 $(LIBPATH)/libpng.so.$(PNGVER)
  54. -@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
  55. (cd $(LIBPATH); ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
  56. ln -sf libpng.so.$(PNGMAJ) libpng.so)
  57. clean:
  58. /bin/rm -f *.o libpng.a libpng.so* pngtest pngout.png
  59. # DO NOT DELETE THIS LINE -- make depend depends on it.
  60. png.o png.pic.o: png.h pngconf.h
  61. pngerror.o pngerror.pic.o: png.h pngconf.h
  62. pngrio.o pngrio.pic.o: png.h pngconf.h
  63. pngwio.o pngwio.pic.o: png.h pngconf.h
  64. pngmem.o pngmem.pic.o: png.h pngconf.h
  65. pngset.o pngset.pic.o: png.h pngconf.h
  66. pngget.o pngget.pic.o: png.h pngconf.h
  67. pngread.o pngread.pic.o: png.h pngconf.h
  68. pngrtran.o pngrtran.pic.o: png.h pngconf.h
  69. pngrutil.o pngrutil.pic.o: png.h pngconf.h
  70. pngtrans.o pngtrans.pic.o: png.h pngconf.h
  71. pngwrite.o pngwrite.pic.o: png.h pngconf.h
  72. pngwtran.o pngwtran.pic.o: png.h pngconf.h
  73. pngwutil.o pngwutil.pic.o: png.h pngconf.h
  74. pngpread.o pngpread.pic.o: png.h pngconf.h
  75. pngtest.o: png.h pngconf.h