blob: 25924e7bf6b723c748acbb5e1c9fa11266640886 [file] [log] [blame]
The Android Open Source Project893912b2009-03-03 19:30:05 -08001# makefile for libpng
xNombre232e9ca2020-07-03 22:10:22 +02002# Copyright (C) 2020 Cosmin Truta
Sireesh Tripurarib478e662014-05-09 15:15:10 +05303# Copyright (C) 2002, 2006, 2014 Glenn Randers-Pehrson
The Android Open Source Project893912b2009-03-03 19:30:05 -08004# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
Patrick Scott5f6bd842010-06-28 16:55:16 -04005#
Patrick Scotta0bb96c2009-07-22 11:50:02 -04006# This code is released under the libpng license.
7# For conditions of distribution and use, see the disclaimer
8# and license in png.h
The Android Open Source Project893912b2009-03-03 19:30:05 -08009
10# where make install puts libpng.a and png.h
11prefix=/usr/local
12INCPATH=$(prefix)/include
13LIBPATH=$(prefix)/lib
14
15# override DESTDIR= on the make install command line to easily support
16# installing into a temporary location. Example:
17#
18# make install DESTDIR=/tmp/build/libpng
19#
20# If you're going to install into a temporary location
21# via DESTDIR, $(DESTDIR)$(prefix) must already exist before
22# you execute make install.
23DESTDIR=
24
25# Where the zlib library and include files are located
26#ZLIBLIB=/usr/local/lib
27#ZLIBINC=/usr/local/include
28ZLIBLIB=../zlib
29ZLIBINC=../zlib
30
Sireesh Tripurarib478e662014-05-09 15:15:10 +053031CC = cc
xNombre232e9ca2020-07-03 22:10:22 +020032CPP = $(CC) -E
33LD = $(CC)
Sireesh Tripurarib478e662014-05-09 15:15:10 +053034AR_RC = ar rc
35MKDIR_P = mkdir
36LN_SF = ln -sf
37RANLIB = ranlib
Matt Sarett9b1fe632015-11-25 10:21:17 -050038CP = cp
Sireesh Tripurarib478e662014-05-09 15:15:10 +053039RM_F = rm -f
Chris Craikb50c2172013-07-29 15:28:30 -070040AWK = awk
41SED = sed
Chris Craikb50c2172013-07-29 15:28:30 -070042ECHO = echo
The Android Open Source Project893912b2009-03-03 19:30:05 -080043
Chris Craikb50c2172013-07-29 15:28:30 -070044DFNFLAGS = # DFNFLAGS contains -D options to use in the libpng build
45DFA_EXTRA = # extra files that can be used to control configuration
Sireesh Tripurarib478e662014-05-09 15:15:10 +053046CPPFLAGS = -I$(ZLIBINC) # -DPNG_DEBUG=5
47CFLAGS = -O # -g
xNombre232e9ca2020-07-03 22:10:22 +020048LDFLAGS = -L$(ZLIBLIB)
49LIBS = -lz -lm
The Android Open Source Project893912b2009-03-03 19:30:05 -080050
Matt Sarett9b1fe632015-11-25 10:21:17 -050051# Pre-built configuration
52# See scripts/pnglibconf.mak for more options
53PNGLIBCONF_H_PREBUILT = scripts/pnglibconf.h.prebuilt
54
xNombre232e9ca2020-07-03 22:10:22 +020055OBJS = png.o pngerror.o pngget.o pngmem.o pngpread.o \
56 pngread.o pngrio.o pngrtran.o pngrutil.o pngset.o \
57 pngtrans.o pngwio.o pngwrite.o pngwtran.o pngwutil.o
The Android Open Source Project893912b2009-03-03 19:30:05 -080058
Sireesh Tripurarib478e662014-05-09 15:15:10 +053059.c.o:
60 $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
61
The Android Open Source Project893912b2009-03-03 19:30:05 -080062all: libpng.a pngtest
63
Chris Craikb50c2172013-07-29 15:28:30 -070064# The standard pnglibconf.h exists as scripts/pnglibconf.h.prebuilt,
65# copy this if the following doesn't work.
66pnglibconf.h: pnglibconf.dfn
67 $(RM_F) $@ pnglibconf.c pnglibconf.out pnglibconf.tmp
68 $(ECHO) '#include "pnglibconf.dfn"' >pnglibconf.c
69 $(ECHO) "If '$(CC) -E' crashes try /lib/cpp (e.g. CPP='/lib/cpp')" >&2
70 $(CPP) $(DFNFLAGS) pnglibconf.c >pnglibconf.out
71 $(AWK) -f "scripts/dfn.awk" out="pnglibconf.tmp" pnglibconf.out 1>&2
72 mv pnglibconf.tmp $@
73
74pnglibconf.dfn: scripts/pnglibconf.dfa scripts/options.awk pngconf.h pngusr.dfa $(DFA_XTRA)
75 $(RM_F) $@ pnglibconf.pre pnglibconf.tmp
76 $(ECHO) "Calling $(AWK) from scripts/pnglibconf.mak" >&2
77 $(ECHO) "If 'awk' crashes try a better awk (e.g. AWK='nawk')" >&2
78 $(AWK) -f scripts/options.awk out="pnglibconf.pre"\
79 version=search pngconf.h scripts/pnglibconf.dfa\
80 pngusr.dfa $(DFA_XTRA) 1>&2
81 $(AWK) -f scripts/options.awk out="pnglibconf.tmp" pnglibconf.pre 1>&2
82 mv pnglibconf.tmp $@
83
The Android Open Source Project893912b2009-03-03 19:30:05 -080084libpng.a: $(OBJS)
xNombre232e9ca2020-07-03 22:10:22 +020085 $(AR_RC) $@ $(OBJS)
The Android Open Source Project893912b2009-03-03 19:30:05 -080086 $(RANLIB) $@
87
88pngtest: pngtest.o libpng.a
xNombre232e9ca2020-07-03 22:10:22 +020089 $(LD) $(LDFLAGS) -o $@ pngtest.o libpng.a $(LIBS)
The Android Open Source Project893912b2009-03-03 19:30:05 -080090
91test: pngtest
92 ./pngtest
93
Chris Craikb50c2172013-07-29 15:28:30 -070094install: libpng.a pnglibconf.h
The Android Open Source Project893912b2009-03-03 19:30:05 -080095 -@$(MKDIR_P) $(DESTDIR)$(INCPATH)
96 -@$(MKDIR_P) $(DESTDIR)$(INCPATH)/libpng
97 -@$(MKDIR_P) $(DESTDIR)$(LIBPATH)
98 -@$(RM_F) $(DESTDIR)$(INCPATH)/png.h
99 -@$(RM_F) $(DESTDIR)$(INCPATH)/pngconf.h
Chris Craikb50c2172013-07-29 15:28:30 -0700100 -@$(RM_F) $(DESTDIR)$(INCPATH)/pnglibconf.h
The Android Open Source Project893912b2009-03-03 19:30:05 -0800101 cp png.h $(DESTDIR)$(INCPATH)/libpng
102 cp pngconf.h $(DESTDIR)$(INCPATH)/libpng
Chris Craikb50c2172013-07-29 15:28:30 -0700103 cp pnglibconf.h $(DESTDIR)$(INCPATH)/libpng
The Android Open Source Project893912b2009-03-03 19:30:05 -0800104 chmod 644 $(DESTDIR)$(INCPATH)/libpng/png.h
105 chmod 644 $(DESTDIR)$(INCPATH)/libpng/pngconf.h
Chris Craikb50c2172013-07-29 15:28:30 -0700106 chmod 644 $(DESTDIR)$(INCPATH)/libpng/pnglibconf.h
The Android Open Source Project893912b2009-03-03 19:30:05 -0800107 (cd $(DESTDIR)$(INCPATH); ln -f -s libpng/* .)
108 cp libpng.a $(DESTDIR)$(LIBPATH)
109 chmod 644 $(DESTDIR)$(LIBPATH)/libpng.a
110
111clean:
xNombre232e9ca2020-07-03 22:10:22 +0200112 $(RM_F) *.o libpng.a pngtest pngout.png pnglibconf.h
113 $(RM_F) pnglibconf.c pnglibconf.dfn pnglibconf.out pnglibconf.pre
The Android Open Source Project893912b2009-03-03 19:30:05 -0800114
115# DO NOT DELETE THIS LINE -- make depend depends on it.
116
xNombre232e9ca2020-07-03 22:10:22 +0200117png.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
Sireesh Tripurarib478e662014-05-09 15:15:10 +0530118pngerror.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
xNombre232e9ca2020-07-03 22:10:22 +0200119pngget.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
120pngmem.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
xNombred07bb0d2020-03-10 20:17:12 +0100121pngpread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
xNombre232e9ca2020-07-03 22:10:22 +0200122pngread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
123pngrio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
Sireesh Tripurarib478e662014-05-09 15:15:10 +0530124pngrtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
125pngrutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
xNombre232e9ca2020-07-03 22:10:22 +0200126pngset.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
Sireesh Tripurarib478e662014-05-09 15:15:10 +0530127pngtrans.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
xNombre232e9ca2020-07-03 22:10:22 +0200128pngwio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
Sireesh Tripurarib478e662014-05-09 15:15:10 +0530129pngwrite.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
130pngwtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
131pngwutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
The Android Open Source Project893912b2009-03-03 19:30:05 -0800132
xNombre232e9ca2020-07-03 22:10:22 +0200133pngtest.o: png.h pngconf.h pnglibconf.h