makefile.hp64 6.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# makefile for libpng, HPUX (10.20 and 11.00) using the ANSI/C product.
# Copyright (C) 1999-2002 Glenn Randers-Pehrson
# Copyright (C) 1995 Guy Eric Schalnat, Group 42
# contributed by Jim Rice and updated by Chris Schleicher, Hewlett Packard
# For conditions of distribution and use, see copyright notice in png.h

# Where the zlib library and include files are located
ZLIBLIB=/opt/zlib/lib
ZLIBINC=/opt/zlib/include

# Note that if you plan to build a libpng shared library, zlib must also
# be a shared library, which zlib's configure does not do.  After running
# zlib's configure, edit the appropriate lines of makefile to read:
#   CFLAGS=-O1 -DHAVE_UNISTD -DUSE_MAP -fPIC \
#   LDSHARED=ld -b
#   SHAREDLIB=libz.sl

18
AR_RC=ar rc
19
CC=cc
20
MKDIR_P=mkdir -p
21 22 23 24
LN_SF=ln -sf
RANLIB=ranlib
RM_F=/bin/rm -f

25 26 27 28 29 30 31 32 33 34
CFLAGS=-I$(ZLIBINC) -O -Ae -Wl,+vnocompatwarnings +DD64 \
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +Z -DHAVE_UNISTD_H -DUSE_MMAP
# Caution: be sure you have built zlib with the same CFLAGS.
CCFLAGS=-I$(ZLIBINC) -O -Ae -Wl,+vnocompatwarnings +DD64 \
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +Z -DHAVE_UNISTD_H -DUSE_MMAP

LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm


PNGMAJ = 0
35
PNGMIN = 1.2.9beta10
36 37 38 39 40
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12

# where make install puts libpng.a, libpng12.sl, and png.h
prefix=/opt/libpng
41
exec_prefix=$prefix
42
INCPATH=$(prefix)/include
43
LIBPATH=$(exec_prefix)/lib
44
MANPATH=$(prefix)/man
45
BINPATH=$(exec_prefix)/bin
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75

# override DESTDIR= on the make install command line to easily support
# installing into a temporary location.  Example:
#
#    make install DESTDIR=/tmp/build/libpng
#
# If you're going to install into a temporary location
# via DESTDIR, $(DESTDIR)$(prefix) must already exist before
# you execute make install.
DESTDIR=

DB=$(DESTDIR)$(BINPATH)
DI=$(DESTDIR)$(INCPATH)
DL=$(DESTDIR)$(LIBPATH)
DM=$(DESTDIR)$(MANPATH)

OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
	pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
	pngwtran.o pngmem.o pngerror.o pngpread.o

OBJSDLL = $(OBJS:.o=.pic.o)

.SUFFIXES:	.c .o .pic.o

.c.pic.o:
	$(CC) -c $(CFLAGS) +z -o $@ $*.c

all: libpng.a $(LIBNAME).sl pngtest libpng.pc libpng-config

libpng.a: $(OBJS)
76
	$(AR_RC) $@ $(OBJS)
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
	$(RANLIB) $@

libpng.pc:
	cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc

libpng-config:
	( cat scripts/libpng-config-head.in; \
	echo prefix=\"$(prefix)\"; \
	echo I_opts=\"-I$(INCPATH)/$(LIBNAME)\"; \
	echo ccopts=\"-Ae +DA1.1 +DS2.0\"; \
	echo L_opts=\"-L$(LIBPATH)\"; \
	echo libs=\"-lpng12 -lz -lm\"; \
	cat scripts/libpng-config-body.in ) > libpng-config
	chmod +x libpng-config

$(LIBNAME).sl: $(LIBNAME).sl.$(PNGMAJ)
93
	$(LN_SF) $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl
94 95

$(LIBNAME).sl.$(PNGMAJ): $(LIBNAME).sl.$(PNGVER)
96
	$(LN_SF) $(LIBNAME).sl.$(PNGVER) $(LIBNAME).sl.$(PNGMAJ)
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

$(LIBNAME).sl.$(PNGVER): $(OBJSDLL)
	$(LD) -b +s \
	+h $(LIBNAME).sl.$(PNGMAJ) -o $(LIBNAME).sl.$(PNGVER) $(OBJSDLL)

libpng.sl.3.$(PNGMIN): $(OBJSDLL)
	$(LD) -b +s \
	+h libpng.sl.3 -o libpng.sl.3.$(PNGMIN) $(OBJSDLL)

pngtest: pngtest.o libpng.a
	$(CC) -o pngtest $(CCFLAGS) pngtest.o $(LDFLAGS)

test: pngtest
	./pngtest

install-headers: png.h pngconf.h
113 114
	-@if [ ! -d $(DI) ]; then $(MKDIR_P) $(DI); fi
	-@if [ ! -d $(DI)/$(LIBNAME) ]; then $(MKDIR_P) $(DI)/$(LIBNAME); fi
115 116
	cp png.h pngconf.h $(DI)/$(LIBNAME)
	chmod 644 $(DI)/$(LIBNAME)/png.h $(DI)/$(LIBNAME)/pngconf.h
117 118 119
	-@$(RM_F) $(DI)/png.h $(DI)/pngconf.h
	-@$(RM_F) $(DI)/libpng
	(cd $(DI); $(LN_SF) $(LIBNAME) libpng; $(LN_SF) $(LIBNAME)/* .)
120 121

install-static: install-headers libpng.a
122
	-@if [ ! -d $(DL) ]; then $(MKDIR_P) $(DL); fi
123 124
	cp libpng.a $(DL)/$(LIBNAME).a
	chmod 644 $(DL)/$(LIBNAME).a
125 126
	-@$(RM_F) $(DL)/libpng.a
	(cd $(DL); $(LN_SF) $(LIBNAME).a libpng.a)
127 128 129

install-shared: install-headers $(LIBNAME).sl.$(PNGVER) libpng.pc \
	libpng.sl.3.$(PNGMIN)
130 131 132 133 134 135
	-@if [ ! -d $(DL) ]; then $(MKDIR_P) $(DL); fi
	-@$(RM_F) $(DL)/$(LIBNAME).sl.$(PNGVER)* $(DL)/$(LIBNAME).sl
	-@$(RM_F) $(DL)/$(LIBNAME).sl.$(PNGMAJ)
	-@$(RM_F) $(DL)/libpng.sl
	-@$(RM_F) $(DL)/libpng.sl.3
	-@$(RM_F) $(DL)/libpng.sl.3.$(PNGMIN)*
136 137 138 139 140
	cp $(LIBNAME).sl.$(PNGVER) $(DL)
	cp libpng.sl.3.$(PNGMIN) $(DL)
	chmod 755 $(DL)/$(LIBNAME).sl.$(PNGVER)
	chmod 755 $(DL)/libpng.sl.3.$(PNGMIN)
	(cd $(DL); \
141 142 143 144 145 146 147
	$(LN_SF) libpng.sl.3.$(PNGMIN) libpng.sl.3; \
	$(LN_SF) libpng.sl.3 libpng.sl; \
	$(LN_SF) $(LIBNAME).sl.$(PNGVER) $(LIBNAME).sl.$(PNGMAJ); \
	$(LN_SF) $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl)
	-@if [ ! -d $(DL)/pkgconfig ]; then $(MKDIR_P) $(DL)/pkgconfig; fi
	-@$(RM_F) $(DL)/pkgconfig/$(LIBNAME).pc
	-@$(RM_F) $(DL)/pkgconfig/libpng.pc
148 149
	cp libpng.pc $(DL)/pkgconfig/$(LIBNAME).pc
	chmod 644 $(DL)/pkgconfig/$(LIBNAME).pc
150
	(cd $(DL)/pkgconfig; $(LN_SF) $(LIBNAME).pc libpng.pc)
151 152

install-man: libpng.3 libpngpf.3 png.5
153 154 155 156
	-@if [ ! -d $(DM) ]; then $(MKDIR_P) $(DM); fi
	-@if [ ! -d $(DM)/man3 ]; then $(MKDIR_P) $(DM)/man3; fi
	-@$(RM_F) $(DM)/man3/libpng.3
	-@$(RM_F) $(DM)/man3/libpngpf.3
157 158
	cp libpng.3 $(DM)/man3
	cp libpngpf.3 $(DM)/man3
159 160
	-@if [ ! -d $(DM)/man5 ]; then $(MKDIR_P) $(DM)/man5; fi
	-@$(RM_F) $(DM)/man5/png.5
161 162 163
	cp png.5 $(DM)/man5

install-config: libpng-config
164 165 166
	-@if [ ! -d $(DB) ]; then $(MKDIR_P) $(DB); fi
	-@$(RM_F) $(DB)/libpng-config
	-@$(RM_F) $(DB)/$(LIBNAME)-config
167 168
	cp libpng-config $(DB)/$(LIBNAME)-config
	chmod 755 $(DB)/$(LIBNAME)-config
169
	(cd $(DB); $(LN_SF) $(LIBNAME)-config libpng-config)
170 171 172 173 174 175 176 177 178 179 180

install: install-static install-shared install-man install-config

# If you installed in $(DESTDIR), test-installed won't work until you
# move the library to its final location.  Use test-dd to test it
# before then.

test-dd:
	echo
	echo Testing installed dynamic shared library in $(DL).
	$(CC) -I$(DI) -I$(ZLIBINC) $(CCFLAGS) \
181
	   `$(BINPATH)/$(LIBNAME)-config --cflags` pngtest.c \
182
	   -L$(DL) -L$(ZLIBLIB) \
183
	   -o pngtestd `$(BINPATH)/$(LIBNAME)-config --ldflags`
184 185 186 187 188 189
	./pngtestd pngtest.png

test-installed:
	echo
	echo Testing installed dynamic shared library.
	$(CC) $(CCFLAGS) \
190
	   `$(BINPATH)/$(LIBNAME)-config --cflags` pngtest.c \
191
	   -L$(ZLIBLIB) \
192
	   -o pngtesti `$(BINPATH)/$(LIBNAME)-config --ldflags`
193 194 195
	./pngtesti pngtest.png

clean:
196
	$(RM_F) *.o libpng.a pngtest pngtesti pngout.png \
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222
	libpng-config $(LIBNAME).sl $(LIBNAME).sl.$(PNGMAJ)* \
	libpng.sl.3.$(PNGMIN) \
	libpng.pc

DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
writelock:
	chmod a-w *.[ch35] $(DOCS) scripts/*

# DO NOT DELETE THIS LINE -- make depend depends on it.

png.o: png.h pngconf.h
pngerror.o: png.h pngconf.h
pngrio.o: png.h pngconf.h
pngwio.o: png.h pngconf.h
pngmem.o: png.h pngconf.h
pngset.o: png.h pngconf.h
pngget.o: png.h pngconf.h
pngread.o: png.h pngconf.h
pngrtran.o: png.h pngconf.h
pngrutil.o: png.h pngconf.h
pngtest.o: png.h pngconf.h
pngtrans.o: png.h pngconf.h
pngwrite.o: png.h pngconf.h
pngwtran.o: png.h pngconf.h
pngwutil.o: png.h pngconf.h
pngpread.o: png.h pngconf.h