]>
Commit | Line | Data |
---|---|---|
1 | # makefile for libpng | |
2 | # Copyright (C) 2002, 2006 Glenn Randers-Pehrson | |
3 | # Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc. | |
4 | # | |
5 | # This code is released under the libpng license. | |
6 | # For conditions of distribution and use, see the disclaimer | |
7 | # and license in png.h | |
8 | ||
9 | # where make install puts libpng.a and png.h | |
10 | prefix=/usr/local | |
11 | INCPATH=$(prefix)/include | |
12 | LIBPATH=$(prefix)/lib | |
13 | ||
14 | # override DESTDIR= on the make install command line to easily support | |
15 | # installing into a temporary location. Example: | |
16 | # | |
17 | # make install DESTDIR=/tmp/build/libpng | |
18 | # | |
19 | # If you're going to install into a temporary location | |
20 | # via DESTDIR, $(DESTDIR)$(prefix) must already exist before | |
21 | # you execute make install. | |
22 | DESTDIR= | |
23 | ||
24 | # Where the zlib library and include files are located | |
25 | #ZLIBLIB=/usr/local/lib | |
26 | #ZLIBINC=/usr/local/include | |
27 | ZLIBLIB=../zlib | |
28 | ZLIBINC=../zlib | |
29 | ||
30 | CC=cc | |
31 | AR_RC=ar rc | |
32 | MKDIR_P=mkdir | |
33 | LN_SF=ln -sf | |
34 | RANLIB=ranlib | |
35 | RM_F=rm -f | |
36 | AWK = awk | |
37 | SED = sed | |
38 | CPP = $(CC) -E | |
39 | ECHO = echo | |
40 | ||
41 | DFNFLAGS = # DFNFLAGS contains -D options to use in the libpng build | |
42 | CFLAGS=-I$(ZLIBINC) -O # -g -DPNG_DEBUG=5 | |
43 | LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm | |
44 | ||
45 | OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \ | |
46 | pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \ | |
47 | pngwtran.o pngmem.o pngerror.o pngpread.o | |
48 | ||
49 | all: libpng.a pngtest | |
50 | ||
51 | # The standard pnglibconf.h exists as scripts/pnglibconf.h.prebuilt, | |
52 | # copy this if the following doesn't work. | |
53 | pnglibconf.dfn: scripts/pnglibconf.dfa scripts/options.awk | |
54 | $(RM_F) $@ dfn?.out | |
55 | $(AWK) -f scripts/options.awk out=dfn1.out\ | |
56 | scripts/pnglibconf.dfa $(DFA_XTRA) 1>&2 | |
57 | $(AWK) -f scripts/options.awk out=dfn2.out dfn1.out 1>&2 | |
58 | cp dfn2.out $@ | |
59 | $(RM_F) dfn?.out | |
60 | ||
61 | pnglibconf.h: pnglibconf.dfn | |
62 | $(RM_F) $@ dfn.c dfn?.out | |
63 | $(ECHO) '#include "pnglibconf.dfn"' >dfn.c | |
64 | $(CPP) $(DFNFLAGS) dfn.c >dfn1.out | |
65 | $(SED) -n -e 's|^.*PNG_DEFN_MAGIC-\(.*\)-PNG_DEFN_END.*$$|\1|p'\ | |
66 | dfn1.out >dfn2.out | |
67 | $(SED) -e 's| *@@@ *||g' -e 's| *$$||' dfn2.out >dfn3.out | |
68 | cp dfn3.out $@ | |
69 | $(RM_F) dfn.c dfn?.out | |
70 | ||
71 | libpng.a: $(OBJS) | |
72 | $(AR_RC) $@ $(OBJS) | |
73 | $(RANLIB) $@ | |
74 | ||
75 | pngtest: pngtest.o libpng.a | |
76 | $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS) | |
77 | ||
78 | test: pngtest | |
79 | ./pngtest | |
80 | ||
81 | install: libpng.a pnglibconf.h | |
82 | -@$(MKDIR_P) $(DESTDIR)$(INCPATH) | |
83 | -@$(MKDIR_P) $(DESTDIR)$(INCPATH)/libpng | |
84 | -@$(MKDIR_P) $(DESTDIR)$(LIBPATH) | |
85 | -@$(RM_F) $(DESTDIR)$(INCPATH)/png.h | |
86 | -@$(RM_F) $(DESTDIR)$(INCPATH)/pngconf.h | |
87 | -@$(RM_F) $(DESTDIR)$(INCPATH)/pnglibconf.h | |
88 | cp png.h $(DESTDIR)$(INCPATH)/libpng | |
89 | cp pngconf.h $(DESTDIR)$(INCPATH)/libpng | |
90 | cp pnglibconf.h $(DESTDIR)$(INCPATH)/libpng | |
91 | chmod 644 $(DESTDIR)$(INCPATH)/libpng/png.h | |
92 | chmod 644 $(DESTDIR)$(INCPATH)/libpng/pngconf.h | |
93 | chmod 644 $(DESTDIR)$(INCPATH)/libpng/pnglibconf.h | |
94 | (cd $(DESTDIR)$(INCPATH); ln -f -s libpng/* .) | |
95 | cp libpng.a $(DESTDIR)$(LIBPATH) | |
96 | chmod 644 $(DESTDIR)$(LIBPATH)/libpng.a | |
97 | ||
98 | clean: | |
99 | $(RM_F) *.o libpng.a pngtest pngout.png pnglibconf.* dfn.c dfn?.out | |
100 | ||
101 | DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO | |
102 | writelock: | |
103 | chmod a-w *.[ch35] $(DOCS) scripts/* | |
104 | ||
105 | # DO NOT DELETE THIS LINE -- make depend depends on it. | |
106 | ||
107 | png.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
108 | pngerror.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
109 | pngrio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
110 | pngwio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
111 | pngmem.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
112 | pngset.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
113 | pngget.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
114 | pngread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
115 | pngrtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
116 | pngrutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
117 | pngtrans.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
118 | pngwrite.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
119 | pngwtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
120 | pngwutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
121 | pngpread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | |
122 | ||
123 | pngtest.o: png.h pngconf.h pnglibconf.h |