1# makefile for libpng using clang (generic, static library) 2# Copyright (C) 2000, 2014, 2019-2024 Cosmin Truta 3# Copyright (C) 2008, 2014 Glenn Randers-Pehrson 4# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc. 5# 6# This code is released under the libpng license. 7# For conditions of distribution and use, see the disclaimer 8# and license in png.h 9 10# Location of the zlib library and include files 11ZLIBINC = ../zlib 12ZLIBLIB = ../zlib 13 14# Compiler, linker, lib and other tools 15CC = clang 16LD = $(CC) 17AR = ar 18RANLIB = ranlib 19CP = cp 20RM_F = rm -f 21 22# Compiler and linker flags 23NOHWOPT = -DPNG_ARM_NEON_OPT=0 -DPNG_MIPS_MSA_OPT=0 \ 24 -DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0 25WARNMORE = -Wwrite-strings -Wpointer-arith -Wshadow \ 26 -Wmissing-declarations -Wtraditional -Wcast-align \ 27 -Wstrict-prototypes -Wmissing-prototypes # -Wconversion 28DEFS = $(NOHWOPT) 29CPPFLAGS = -I$(ZLIBINC) $(DEFS) # -DPNG_DEBUG=5 30CFLAGS = -O2 -Wall -Wextra -Wundef # $(WARNMORE) -g 31ARFLAGS = rc 32LDFLAGS = -L$(ZLIBLIB) # -g 33LIBS = -lz -lm 34 35# File extensions 36EXEEXT = 37 38# Pre-built configuration 39# See scripts/pnglibconf.mak for more options 40PNGLIBCONF_H_PREBUILT = scripts/pnglibconf.h.prebuilt 41 42# File lists 43OBJS = png.o pngerror.o pngget.o pngmem.o pngpread.o \ 44 pngread.o pngrio.o pngrtran.o pngrutil.o pngset.o \ 45 pngtrans.o pngwio.o pngwrite.o pngwtran.o pngwutil.o 46 47# Targets 48all: static 49 50pnglibconf.h: $(PNGLIBCONF_H_PREBUILT) 51 $(CP) $(PNGLIBCONF_H_PREBUILT) $@ 52 53.c.o: 54 $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< 55 56static: libpng.a pngtest$(EXEEXT) 57 58shared: 59 @echo This is a generic makefile that cannot create shared libraries. 60 @echo Please use a configuration that is specific to your platform. 61 @false 62 63libpng.a: $(OBJS) 64 $(AR) $(ARFLAGS) $@ $(OBJS) 65 $(RANLIB) $@ 66 67test: pngtest$(EXEEXT) 68 ./pngtest$(EXEEXT) 69 70pngtest$(EXEEXT): pngtest.o libpng.a 71 $(LD) $(LDFLAGS) -o $@ pngtest.o libpng.a $(LIBS) 72 73clean: 74 $(RM_F) *.o libpng.a pngtest$(EXEEXT) pngout.png pnglibconf.h 75 76png.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 77pngerror.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 78pngget.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 79pngmem.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 80pngpread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 81pngread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 82pngrio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 83pngrtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 84pngrutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 85pngset.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 86pngtrans.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 87pngwio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 88pngwrite.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 89pngwtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 90pngwutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 91 92pngtest.o: png.h pngconf.h pnglibconf.h 93