• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# makefile for libpng
2# Copyright (C) 2002, 2006, 2009, 2014 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# This makefile requires the file ansi2knr.c, which you can get
10# from the Ghostscript ftp site at ftp://ftp.cs.wisc.edu/ghost/
11# If you have libjpeg, you probably already have ansi2knr.c in the jpeg
12# source distribution.
13
14# where make install puts libpng.a and png.h
15prefix=/usr/local
16INCPATH=$(prefix)/include
17LIBPATH=$(prefix)/lib
18
19# override DESTDIR= on the make install command line to easily support
20# installing into a temporary location.  Example:
21#
22#    make install DESTDIR=/tmp/build/libpng
23#
24# If you're going to install into a temporary location
25# via DESTDIR, $(DESTDIR)$(prefix) must already exist before
26# you execute make install.
27DESTDIR=
28
29CC = cc
30CPPFLAGS = -I../zlib
31CFLAGS = -O
32LDFLAGS = -L. -L../zlib/ -lpng -lz -lm
33# flags for ansi2knr
34ANSI2KNRFLAGS=
35
36RANLIB = ranlib
37#RANLIB = echo
38
39CP = cp
40RM_F = rm -f
41
42# Pre-built configuration
43# See scripts/pnglibconf.mak for more options
44PNGLIBCONF_H_PREBUILT = scripts/pnglibconf.h.prebuilt
45
46OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
47	pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
48	pngwtran.o pngmem.o pngerror.o pngpread.o
49
50all: ansi2knr libpng.a pngtest
51
52pnglibconf.h: $(PNGLIBCONF_H_PREBUILT)
53	$(CP) $(PNGLIBCONF_H_PREBUILT) $@
54
55# general rule to allow ansi2knr to work
56.c.o:
57	./ansi2knr $*.c T$*.c
58	$(CC) $(CPPFLAGS) $(CFLAGS) -c T$*.c
59	rm -f T$*.c $*.o
60	mv T$*.o $*.o
61
62ansi2knr: ansi2knr.c
63	$(CC) $(CPPFLAGS) $(CFLAGS) $(ANSI2KNRFLAGS) -o ansi2knr ansi2knr.c
64
65libpng.a: ansi2knr $(OBJS)
66	ar rc $@  $(OBJS)
67	$(RANLIB) $@
68
69pngtest: pngtest.o libpng.a
70	$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
71
72test: pngtest
73	./pngtest
74
75install: libpng.a png.h pngconf.h pnglibconf.h
76	-@mkdir $(DESTDIR)$(INCPATH)
77	-@mkdir $(DESTDIR)$(INCPATH)/libpng
78	-@mkdir $(DESTDIR)$(LIBPATH)
79	-@rm -f $(DESTDIR)$(INCPATH)/png.h
80	-@rm -f $(DESTDIR)$(INCPATH)/pngconf.h
81	cp png.h $(DESTDIR)$(INCPATH)/libpng
82	cp pngconf.h $(DESTDIR)$(INCPATH)/libpng
83	cp pnglibconf.h $(DESTDIR)$(INCPATH)/libpng
84	chmod 644 $(DESTDIR)$(INCPATH)/libpng/png.h
85	chmod 644 $(DESTDIR)$(INCPATH)/libpng/pngconf.h
86	chmod 644 $(DESTDIR)$(INCPATH)/libpng/pnglibconf.h
87	(cd $(DESTDIR)$(INCPATH); ln -f -s libpng/* .)
88	cp libpng.a $(DESTDIR)$(LIBPATH)
89	chmod 644 $(DESTDIR)$(LIBPATH)/libpng.a
90
91clean:
92	$(RM_F) *.o libpng.a pngtest pngout.png ansi2knr pnglibconf.h
93
94DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
95writelock:
96	chmod a-w *.[ch35] $(DOCS) scripts/*
97
98# DO NOT DELETE THIS LINE -- make depend depends on it.
99
100png.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
101pngerror.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
102pngrio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
103pngwio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
104pngmem.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
105pngset.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
106pngget.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
107pngread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
108pngpread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
109pngrtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
110pngrutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
111pngtrans.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
112pngwrite.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
113pngwtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
114pngwutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
115
116pngtest.o: png.h pngconf.h pnglibconf.h
117