blob: 717e755d535dcf5aec2b41a508e0251067a13d22 [file] [log] [blame]
Glenn Randers-Pehrson4fb046a2002-04-15 09:25:51 -05001# makefile for libpng under FreeBSD
2# Copyright (C) 2002 Glenn Randers-Pehrson and Andrey A. Chernov
3# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
4# For conditions of distribution and use, see copyright notice in png.h
5
Glenn Randers-Pehrson03008a02002-04-27 10:11:25 -05006.include <bsd.own.mk>
7
Glenn Randers-Pehrson4fb046a2002-04-15 09:25:51 -05008# where make install puts libpng.a and png.h
9prefix=/usr/local
Glenn Randers-Pehrson03008a02002-04-27 10:11:25 -050010INCPATH=$(prefix)/include
11LIBPATH=$(prefix)/lib
12MANPATH=$(prefix)/man
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, that location must already exist before
21# you execute make install.
22DESTDIR=
Glenn Randers-Pehrson4fb046a2002-04-15 09:25:51 -050023
24PNGMAJ= 5
25.if (${OBJFORMAT} == "elf")
26PNGVER= $(PNGMAJ)
27.else
28PNGMIN= 0
29PNGVER= $(PNGMAJ).$(PNGMIN)
30.endif
31
32CFLAGS+= -I. -DPNG_USE_PNGGCCRD
33.if (${MACHINE_ARCH} != "i386")
34CFLAGS+= -DPNG_NO_ASSEMBLER_CODE
35.endif
36LDFLAGS+=-L. -lpng -lz -lm -static
37
38OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
39 pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
40 pngwtran.o pngmem.o pngerror.o pngpread.o pnggccrd.o
41
42.SUFFIXES: .c .so .o
43
44.c.so:
45 ${CC} ${CFLAGS} -fPIC -DPIC -o $@ -c $<
46
47all: libpng.a libpng.so.${PNGVER} pngtest
48
49libpng.a: $(OBJS)
50 ar rc $@ $(OBJS)
51 $(RANLIB) $@
52
53libpng.so.${PNGVER}: $(OBJS:S/o$/so/g)
54.if (${OBJFORMAT} == "elf")
55 ${CC} -shared -Wl,-x,-soname,$@ -o $@ $(OBJS:S/o$/so/g) -lz -lm
56.else
57 ${CC} -shared -Wl,-x -o $@ $(OBJS:S/o$/so/g) -lz -lm
58.endif
59
60pngtest: pngtest.o libpng.a
61 $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
62
63test: pngtest
64 ./pngtest
65
66install: libpng.a libpng.so.${PNGVER}
Glenn Randers-Pehrson03008a02002-04-27 10:11:25 -050067 -@mkdir $(DESTDIR)$(INCPATH)/libpng
Glenn Randers-Pehrson4fb046a2002-04-15 09:25:51 -050068 ${INSTALL} -o ${INCOWN} -g ${INCGRP} -m ${INCMODE} \
Glenn Randers-Pehrson03008a02002-04-27 10:11:25 -050069 png.h pngconf.h $(DESTDIR)$(INCPATH)/libpng
70 (cd $(DESTDIR)$(INCPATH); rm -f png.h pngconf.h; ln -sf libpng/*.h .)
Glenn Randers-Pehrson4fb046a2002-04-15 09:25:51 -050071 ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
Glenn Randers-Pehrson03008a02002-04-27 10:11:25 -050072 libpng.a libpng.so.${PNGVER} $(DESTDIR)$(LIBPATH)
73 $(RANLIB) $(DESTDIR)$(LIBPATH)/libpng.a
74 ln -sf libpng.so.${PNGVER} $(DESTDIR)$(LIBPATH)/libpng.so
Glenn Randers-Pehrson4fb046a2002-04-15 09:25:51 -050075 /sbin/ldconfig -R
76 ${INSTALL} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} \
Glenn Randers-Pehrson03008a02002-04-27 10:11:25 -050077 libpng.3 libpngpf.3 $(DESTDIR)$(MANPATH)/man3
Glenn Randers-Pehrson4fb046a2002-04-15 09:25:51 -050078 ${INSTALL} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} \
Glenn Randers-Pehrson03008a02002-04-27 10:11:25 -050079 png.5 $(DESTDIR)$(MANPATH)/man5
Glenn Randers-Pehrson4fb046a2002-04-15 09:25:51 -050080
81clean:
Glenn Randers-Pehrson03008a02002-04-27 10:11:25 -050082 rm -f *.o *.so libpng.a libpng.so.${PNGVER} pngtest pngout.png
Glenn Randers-Pehrson4fb046a2002-04-15 09:25:51 -050083
84DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
85writelock:
86 chmod a-w *.[ch35] $(DOCS) scripts/*
87
88# DO NOT DELETE THIS LINE -- make depend depends on it.
89
90png.o: png.h pngconf.h
91pngerror.o: png.h pngconf.h
92pngrio.o: png.h pngconf.h
93pngwio.o: png.h pngconf.h
94pngmem.o: png.h pngconf.h
95pngset.o: png.h pngconf.h
96pngget.o: png.h pngconf.h
97pngread.o: png.h pngconf.h
98pngrtran.o: png.h pngconf.h
99pngrutil.o: png.h pngconf.h
100pngtest.o: png.h pngconf.h
101pngtrans.o: png.h pngconf.h
102pngwrite.o: png.h pngconf.h
103pngwtran.o: png.h pngconf.h
104pngwutil.o: png.h pngconf.h
105pngpread.o: png.h pngconf.h
106pnggccrd.o: png.h pngconf.h
107