# write.dfa
#  Build time configuration of libpng
#
# Author: John Bowler
# Copyright: (c) John Bowler, 2013
# Usage rights:
#  To the extent possible under law, the author has waived all copyright and
#  related or neighboring rights to this work.  This work is published from:
#  United States.
#
# Build libpng with no read support and minimal write support.
#

everything = off

# Switch on the write code - this makes a minimalist encoder

option WRITE on

# Choose fixed or floating point APIs and arithmetic.  The choices are
# independent but normally they will match.  It is typically better to use the
# floating point if you have floating point hardware.  If you don't know, or
# (perhaps) to make libpng smaller used fixed point throughout.

#Fixed point:
#option FIXED_POINT on
#option FLOATING_ARITHMETIC off

#Floating point:
option FLOATING_POINT on
option FLOATING_ARITHMETIC on

# Basic error handling, IO and user memory support.  The latter allows the
# application program to provide its own implementations of 'malloc' and 'free'.
option SETJMP on
option STDIO on
option USER_MEM on

# Everything else is optional.  Unlike the read code in libpng the write code
# does not need to deal with arbitrary formats, so only add support for things
# you really do write!  For example you might only write sRGB images, sometimes
# with transparency and never write 16 bit images, so:
option WRITE_sRGB on
option WRITE_tRNS on
#option WRITE_16BIT off (this is the default with 'everything = off')
