1 # makefile for libpng.a and libpng12.so on Linux ELF with gcc |
1 # makefile for libpng.a and libpng14.so on Linux ELF with gcc |
2 # Copyright (C) 1998, 1999, 2002, 2006, 2008 Greg Roelofs |
2 # Copyright (C) 1998, 1999, 2002, 2006, 2008 Greg Roelofs |
3 # and Glenn Randers-Pehrson |
3 # and Glenn Randers-Pehrson |
4 # Copyright (C) 1996, 1997 Andreas Dilger |
4 # Copyright (C) 1996, 1997 Andreas Dilger |
5 |
5 # |
6 # This code is released under the libpng license. |
6 # This code is released under the libpng license. |
7 # For conditions of distribution and use, see the disclaimer |
7 # For conditions of distribution and use, see the disclaimer |
8 # and license in png.h |
8 # and license in png.h |
9 |
9 |
10 # Modified for Debian by Junichi Uekawa and Josselin Mouette |
10 # Modified for Debian by Junichi Uekawa and Josselin Mouette |
11 # Major modifications are: |
11 # Major modifications are: |
12 # * link libpng explicitly with libz and libm |
12 # * link libpng explicitly with libz and libm |
13 # * $(OLDSO).3 is a symlink rather than a different library |
13 # * $(OLDSO).14 is a symlink rather than a different library |
14 # * versioned symbols |
14 # * versioned symbols |
15 |
15 |
16 # Library name: |
16 # Library name: |
17 LIBNAME = libpng12 |
17 LIBNAME = libpng14 |
18 PNGMAJ = 0 |
18 PNGMAJ = 14 |
19 PNGMIN = 1.2.40 |
19 PNGMIN = 1.4.0 |
20 PNGVER = $(PNGMAJ).$(PNGMIN) |
20 PNGVER = $(PNGMAJ).$(PNGMIN) |
21 |
21 |
22 # Shared library names: |
22 # Shared library names: |
23 LIBSO=$(LIBNAME).so |
23 LIBSO=$(LIBNAME).so |
24 LIBSOMAJ=$(LIBNAME).so.$(PNGMAJ) |
24 LIBSOMAJ=$(LIBNAME).so.$(PNGMAJ) |
25 LIBSOVER=$(LIBNAME).so.$(PNGVER) |
25 LIBSOVER=$(LIBNAME).so.$(PNGVER) |
26 OLDSO=libpng.so |
26 OLDSO=libpng.so |
27 OLDSOMAJ=libpng.so.3 |
27 OLDSOMAJ=libpng.so.14 |
28 OLDSOVER=libpng.so.3.$(PNGMIN) |
28 OLDSOVER=libpng.so.14.$(PNGMIN) |
29 |
29 |
30 # Utilities: |
30 # Utilities: |
31 AR_RC=ar rc |
31 AR_RC=ar rc |
32 CC=gcc |
32 CC=gcc |
33 MKDIR_P=mkdir -p |
33 MKDIR_P=mkdir -p |
34 LN_SF=ln -sf |
34 LN_SF=ln -sf |
35 RANLIB=ranlib |
35 RANLIB=ranlib |
36 RM_F=/bin/rm -f |
36 RM_F=/bin/rm -f |
37 |
37 |
38 # where "make install" puts libpng12.a, libpng12.so*, |
38 # where "make install" puts libpng14.a, libpng14.so*, |
39 # libpng12/png.h and libpng12/pngconf.h |
39 # libpng14/png.h and libpng14/pngconf.h |
40 # Prefix must be a full pathname. |
40 # Prefix must be a full pathname. |
41 prefix=/usr/local |
41 prefix=/usr/local |
42 exec_prefix=$(prefix) |
42 exec_prefix=$(prefix) |
43 |
43 |
44 # Where the zlib library and include files are located. |
44 # Where the zlib library and include files are located. |
58 # for pgcc version 2.95.1, -O3 is buggy; don't use it. |
58 # for pgcc version 2.95.1, -O3 is buggy; don't use it. |
59 |
59 |
60 CFLAGS=-W -Wall -D_REENTRANT -O2 \ |
60 CFLAGS=-W -Wall -D_REENTRANT -O2 \ |
61 $(ALIGN) # $(WARNMORE) -g -DPNG_DEBUG=5 |
61 $(ALIGN) # $(WARNMORE) -g -DPNG_DEBUG=5 |
62 |
62 |
63 LDFLAGS=-L. -lpng12 |
63 LDFLAGS=-L. -lpng14 |
64 LDFLAGS_A=libpng.a -lz -lm |
64 LDFLAGS_A=libpng.a -lz -lm |
65 LIBADDFLAGS=-lz -lm |
65 LIBADDFLAGS=-lz -lm |
66 |
66 |
67 |
67 |
68 INCPATH=$(prefix)/include |
68 INCPATH=$(prefix)/include |
105 libpng.pc: |
105 libpng.pc: |
106 cat scripts/libpng.pc.in | sed -e s!@prefix@!$(prefix)! \ |
106 cat scripts/libpng.pc.in | sed -e s!@prefix@!$(prefix)! \ |
107 -e s!@exec_prefix@!$(exec_prefix)! \ |
107 -e s!@exec_prefix@!$(exec_prefix)! \ |
108 -e s!@libdir@!$(LIBPATH)! \ |
108 -e s!@libdir@!$(LIBPATH)! \ |
109 -e s!@includedir@!$(INCPATH)! \ |
109 -e s!@includedir@!$(INCPATH)! \ |
110 -e s!-lpng12!-lpng12\ -lz\ -lm! > libpng.pc |
110 -e s!-lpng14!-lpng14\ -lz\ -lm! > libpng.pc |
111 |
111 |
112 libpng.syms: png.h pngconf.h |
112 libpng.syms: png.h pngconf.h |
113 $(CC) $(CFLAGS) -E -DPNG_BUILDSYMS -DPNG_INTERNAL png.h |\ |
113 $(CC) $(CFLAGS) -E -DPNG_BUILDSYMS -DPNG_INTERNAL png.h |\ |
114 awk -F '[\t [\\]();]' -v PNGMAJ=$(PNGMAJ) 'BEGIN{printf("PNG12_%s {global:\n",PNGMAJ)}\ |
114 awk -F '[\t [\\]();]' -v PNGMAJ=$(PNGMAJ) 'BEGIN{printf("PNG14_%s {global:\n",PNGMAJ)}\ |
115 { for (i=1;i+2<=NF;++i)\ |
115 { for (i=1;i+2<=NF;++i)\ |
116 if ($$(i)=="PNG_FUNCTION_EXPORT" && $$(i+2)=="END")\ |
116 if ($$(i)=="PNG_FUNCTION_EXPORT" && $$(i+2)=="END")\ |
117 print $$(i+1) ";";\ |
117 print $$(i+1) ";";\ |
118 for (i=1;i+1<=NF;++i)\ |
118 for (i=1;i+1<=NF;++i)\ |
119 if ($$(i)=="PNG_DATA_EXPORT")\ |
119 if ($$(i)=="PNG_DATA_EXPORT")\ |
126 ( cat scripts/libpng-config-head.in; \ |
126 ( cat scripts/libpng-config-head.in; \ |
127 echo prefix=\"$(prefix)\"; \ |
127 echo prefix=\"$(prefix)\"; \ |
128 echo I_opts=\"-I$(INCPATH)/$(LIBNAME)\"; \ |
128 echo I_opts=\"-I$(INCPATH)/$(LIBNAME)\"; \ |
129 echo L_opts=\"\"; \ |
129 echo L_opts=\"\"; \ |
130 echo R_opts=\"\"; \ |
130 echo R_opts=\"\"; \ |
131 echo libs=\"-lpng12\"; \ |
131 echo libs=\"-lpng14\"; \ |
132 echo all_libs=\"-lpng12 $(LIBADDFLAGS)\"; \ |
132 echo all_libs=\"-lpng14 $(LIBADDFLAGS)\"; \ |
133 cat scripts/libpng-config-body.in ) > libpng-config |
133 cat scripts/libpng-config-body.in ) > libpng-config |
134 chmod +x libpng-config |
134 chmod +x libpng-config |
135 |
135 |
136 $(LIBSO): $(LIBSOMAJ) |
136 $(LIBSO): $(LIBSOMAJ) |
137 $(LN_SF) $(LIBSOMAJ) $(LIBSO) |
137 $(LN_SF) $(LIBSOMAJ) $(LIBSO) |
258 writelock: |
258 writelock: |
259 chmod a-w *.[ch35] $(DOCS) scripts/* |
259 chmod a-w *.[ch35] $(DOCS) scripts/* |
260 |
260 |
261 # DO NOT DELETE THIS LINE -- make depend depends on it. |
261 # DO NOT DELETE THIS LINE -- make depend depends on it. |
262 |
262 |
263 png.o png.pic.o: png.h pngconf.h |
263 png.o png.pic.o: png.h pngconf.h pngpriv.h |
264 pngerror.o pngerror.pic.o: png.h pngconf.h |
264 pngerror.o pngerror.pic.o: png.h pngconf.h pngpriv.h |
265 pngrio.o pngrio.pic.o: png.h pngconf.h |
265 pngrio.o pngrio.pic.o: png.h pngconf.h pngpriv.h |
266 pngwio.o pngwio.pic.o: png.h pngconf.h |
266 pngwio.o pngwio.pic.o: png.h pngconf.h pngpriv.h |
267 pngmem.o pngmem.pic.o: png.h pngconf.h |
267 pngmem.o pngmem.pic.o: png.h pngconf.h pngpriv.h |
268 pngset.o pngset.pic.o: png.h pngconf.h |
268 pngset.o pngset.pic.o: png.h pngconf.h pngpriv.h |
269 pngget.o pngget.pic.o: png.h pngconf.h |
269 pngget.o pngget.pic.o: png.h pngconf.h pngpriv.h |
270 pngread.o pngread.pic.o: png.h pngconf.h |
270 pngread.o pngread.pic.o: png.h pngconf.h pngpriv.h |
271 pngrtran.o pngrtran.pic.o: png.h pngconf.h |
271 pngrtran.o pngrtran.pic.o: png.h pngconf.h pngpriv.h |
272 pngrutil.o pngrutil.pic.o: png.h pngconf.h |
272 pngrutil.o pngrutil.pic.o: png.h pngconf.h pngpriv.h |
273 pngtrans.o pngtrans.pic.o: png.h pngconf.h |
273 pngtrans.o pngtrans.pic.o: png.h pngconf.h pngpriv.h |
274 pngwrite.o pngwrite.pic.o: png.h pngconf.h |
274 pngwrite.o pngwrite.pic.o: png.h pngconf.h pngpriv.h |
275 pngwtran.o pngwtran.pic.o: png.h pngconf.h |
275 pngwtran.o pngwtran.pic.o: png.h pngconf.h pngpriv.h |
276 pngwutil.o pngwutil.pic.o: png.h pngconf.h |
276 pngwutil.o pngwutil.pic.o: png.h pngconf.h pngpriv.h |
277 pngpread.o pngpread.pic.o: png.h pngconf.h |
277 pngpread.o pngpread.pic.o: png.h pngconf.h pngpriv.h |
278 |
278 |
279 pngtest.o: png.h pngconf.h |
279 pngtest.o: png.h pngconf.h |