# This makefile is a simpler alternative to the autoconf-based build # system, for simple local building of the libraries and tools. # It will not install the libraries system-wide, but just create the 'cwebp' # and 'dwebp' tools in the examples/ directory, along with the static # library 'src/libwebp.a'. # # To build the library and examples, use: # make -f makefile.unix # from this top directory. #### Customizable part #### # These flag assume you have libpng and libjpeg installed. If not, either # follow below install instructions or just comment out the next lines. EXTRA_FLAGS= -DWEBP_HAVE_PNG -DWEBP_HAVE_JPEG EXTRA_LIBS= -lpng -ljpeg ifeq ("$(HOSTTYPE)", "intel-mac") EXTRA_FLAGS += -I/opt/local/include EXTRA_LIBS += -L/opt/local/lib endif # To install libraries on Mac OS X: # 1. Install MacPorts (http://www.macports.org/install.php) # 2. Run "sudo port install jpeg" # 3. Run "sudo port install libpng" # To install libraries on Linux: # 1. Run "sudo apt-get install libjpeg62-dev" # 2. Run "sudo apt-get install libpng12-dev" # Uncomment for build for 32bit platform # Alternatively, you can just use the command # 'make -f makefile.unix EXTRA_FLAGS=-m32' to that effect. # EXTRA_FLAGS += -m32 # Extra flags to emulate C89 strictness with the full ANSI EXTRA_FLAGS += -Wextra -Wold-style-definition EXTRA_FLAGS += -Wmissing-prototypes EXTRA_FLAGS += -Wmissing-declarations EXTRA_FLAGS += -Wdeclaration-after-statement #### Nothing should normally be changed below this line #### CC = gcc -Isrc/ -Iexamples/ -Wall CFLAGS = -O3 -DNDEBUG $(EXTRA_FLAGS) LDFLAGS = src/libwebp.a $(EXTRA_LIBS) -lm OBJS = src/enc/webpenc.o src/enc/bit_writer.o src/enc/syntax.o \ src/enc/dsp.o src/enc/tree.o src/enc/config.o src/enc/frame.o \ src/enc/quant.o src/enc/iterator.o src/enc/analysis.o \ src/enc/cost.o src/enc/picture.o src/enc/filter.o \ src/dec/bits.o src/dec/dsp.o src/dec/frame.o src/dec/webp.o \ src/dec/quant.o src/dec/tree.o src/dec/vp8.o src/dec/yuv.o \ src/dec/idec.o HDRS = src/webp/encode.h src/enc/vp8enci.h src/enc/bit_writer.h \ src/enc/cost.h src/dec/bits.h src/dec/vp8i.h src/dec/yuv.h OUTPUT = examples/cwebp examples/dwebp src/libwebp.a all:ex .c.o: $(HDRS) $(CC) $(CFLAGS) -c $< -o $@ libwebp.a: $(OBJS) $(HDRS) ar r src/libwebp.a $(OBJS) ex: examples/cwebp.o examples/dwebp.o libwebp.a $(CC) -o examples/cwebp examples/cwebp.o $(LDFLAGS) $(CC) -o examples/dwebp examples/dwebp.o $(LDFLAGS) clean: rm -f ${OUTPUT} *~ \ src/enc/*.o src/enc/*~ \ src/dec/*.o src/dec/*~ \ examples/*.o examples/*~