# | |
# For conditions of distribution and use, see copyright notice in libmng.h | |
# | |
# makefile for libmng - THE MNG library | |
# this makefile is suitable for Linux ELF with gcc | |
# | |
# (this file is heavily copied from makefile.linux in the libpng package) | |
# compiler | |
CC=gcc | |
# default build options (this forces shared library compatibility!!) | |
#OPTIONS = -DMNG_BUILD_SO | |
OPTIONS = -DMNG_BUILD_SO -DMNG_FULL_CMS | |
# where "make install" puts libmng.a,libmng.so*,libmng.h,libmng_conf.h,libmng_types.h | |
prefix=/usr/local | |
# Where the zlib library and include files are located | |
#ZLIBLIB=../zlib | |
#ZLIBINC=../zlib | |
ZLIBLIB=/usr/local/lib | |
ZLIBINC=/usr/local/include | |
# Where the jpeg library and include files are located | |
#JPEGLIB=../jpgsrc | |
#JPEGINC=../jpgsrc | |
JPEGLIB=/usr/local/lib | |
JPEGINC=/usr/local/include | |
# Where the lcms library and include files are located | |
#LCMSLIB=../lcms/lib | |
#LCMSINC=../lcms/source | |
LCMSLIB=/usr/local/lib | |
LCMSINC=/usr/local/include | |
ALIGN= | |
# for i386: | |
#ALIGN=-malign-loops=2 -malign-functions=2 | |
WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \ | |
-Wmissing-declarations -Wtraditional -Wcast-align \ | |
-Wstrict-prototypes -Wmissing-prototypes #-Wconversion | |
# for pgcc version 2.95.1, -O3 is buggy; don't use it. | |
CFLAGS=-I$(ZLIBINC) -I$(JPEGINC) -I$(LCMSINC) -Wall -O3 -funroll-loops \ | |
$(OPTIONS) $(ALIGN) # $(WARNMORE) -g | |
LDFLAGS=-L. -Wl,-rpath,. \ | |
-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) \ | |
-L$(JPEGLIB) -Wl,-rpath,$(JPEGLIB) \ | |
-L$(LCMSLIB) -Wl,-rpath,$(LCMSLIB) \ | |
-lmng -lz -ljpeg -llcms -lm | |
RANLIB=ranlib | |
#RANLIB=echo | |
# current version numbers | |
MNGMAJ = 1 | |
MNGMIN = 1.0.9 | |
MNGVER = $(MNGMAJ).$(MNGMIN) | |
INCPATH=$(prefix)/include | |
LIBPATH=$(prefix)/lib | |
OBJS = \ | |
libmng_callback_xs.o \ | |
libmng_chunk_io.o \ | |
libmng_chunk_descr.o \ | |
libmng_chunk_prc.o \ | |
libmng_chunk_xs.o \ | |
libmng_cms.o \ | |
libmng_display.o \ | |
libmng_dither.o \ | |
libmng_error.o \ | |
libmng_filter.o \ | |
libmng_hlapi.o \ | |
libmng_jpeg.o \ | |
libmng_object_prc.o \ | |
libmng_pixels.o \ | |
libmng_prop_xs.o \ | |
libmng_read.o \ | |
libmng_trace.o \ | |
libmng_write.o \ | |
libmng_zlib.o | |
OBJSDLL = $(OBJS:.0=.pic.o) | |
.SUFFIXES: .c .o .pic.o | |
.c.pic.o: | |
$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c | |
all: libmng.a libmng.so | |
libmng.a: $(OBJS) | |
ar rc $@ $(OBJS) | |
$(RANLIB) $@ | |
libmng.so: libmng.so.$(MNGMAJ) | |
ln -sf libmng.so.$(MNGMAJ) libmng.so | |
libmng.so.$(MNGMAJ): libmng.so.$(MNGVER) | |
ln -sf libmng.so.$(MNGVER) libmng.so.$(MNGMAJ) | |
libmng.so.$(MNGVER): $(OBJSDLL) | |
# $(CC) -shared -Wl,-soname,libmng.so.$(MNGMAJ) -o libmng.so.$(MNGVER) \ | |
# $(OBJSDLL) -L$(ZLIBLIB) -L$(JPEGLIB) -L$(LCMSLIB) -lz -lm -lc | |
$(CC) -shared -Wl,-soname,libmng.so.$(MNGMAJ) -o libmng.so.$(MNGVER) \ | |
$(OBJSDLL) -L$(ZLIBLIB) -L$(JPEGLIB) -ljpeg -L$(LCMSLIB) -llcms \ | |
-lz -lm -lc | |
install: libmng.a libmng.so.$(MNGVER) | |
-@mkdir $(INCPATH) $(LIBPATH) | |
cp libmng.h libmng_conf.h libmng_types.h $(INCPATH) | |
chmod 644 $(INCPATH)/libmng.h $(INCPATH)/libmng_conf.h $(INCPATH)/libmng_types.h | |
cp libmng.a libmng.so.$(MNGVER) $(LIBPATH) | |
chmod 755 $(LIBPATH)/libmng.so.$(MNGVER) | |
-@/bin/rm -f $(LIBPATH)/libmng.so.$(MNGMAJ) $(LIBPATH)/libmng.so | |
(cd $(LIBPATH); ln -sf libmng.so.$(MNGVER) libmng.so.$(MNGMAJ); \ | |
ln -sf libmng.so.$(MNGMAJ) libmng.so) | |
clean: | |
/bin/rm -f *.o libmng.a libmng.so* | |
# DO NOT DELETE THIS LINE -- make depend depends on it. | |
libmng_hlapi.o libmng_hlapi.pic.o: libmng_hlapi.c libmng.h libmng_conf.h libmng_types.h \ | |
libmng_data.h libmng_objects.h libmng_object_prc.h \ | |
libmng_chunks.h libmng_memory.h libmng_error.h libmng_trace.h libmng_read.h \ | |
libmng_write.h libmng_display.h libmng_zlib.h libmng_cms.h libmng_zlib.h | |
libmng_callback_xs.o libmng_callback_xs.pic.o: libmng_callback_xs.c libmng.h \ | |
libmng_conf.h libmng_types.h libmng_data.h libmng_error.h libmng_trace.h | |
libmng_prop_xs.o libmng_prop_xs.pic.o: libmng_prop_xs.c libmng.h libmng_conf.h \ | |
libmng_types.h libmng_data.h libmng_error.h libmng_trace.h libmng_cms.h | |
libmng_chunk_xs.o libmng_chunk_xs.pic.o: libmng_chunk_xs.c libmng.h libmng_conf.h \ | |
libmng_types.h libmng_data.h libmng_chunks.h libmng_chunk_prc.h \ | |
libmng_error.h libmng_trace.h | |
libmng_read.o libmng_read.pic.o: libmng_read.c libmng.h libmng_conf.h libmng_types.h \ | |
libmng_data.h libmng_objects.h libmng_object_prc.h \ | |
libmng_chunks.h libmng_chunk_prc.h libmng_chunk_io.h libmng_memory.h \ | |
libmng_error.h libmng_trace.h libmng_read.h libmng_display.h | |
libmng_write.o libmng_write.pic.o: libmng_write.c libmng.h libmng_conf.h libmng_types.h \ | |
libmng_data.h libmng_error.h libmng_trace.h libmng_write.h | |
libmng_display.o libmng_display.pic.o: libmng_display.c libmng.h libmng_conf.h \ | |
libmng_types.h libmng_data.h libmng_objects.h libmng_object_prc.h libmng_memory.h \ | |
libmng_error.h libmng_trace.h libmng_zlib.h libmng_cms.h libmng_pixels.h \ | |
libmng_display.h | |
libmng_object_prc.o libmng_object_prc.pic.o: libmng_object_prc.c libmng.h libmng_conf.h \ | |
libmng_types.h libmng_data.h libmng_objects.h libmng_object_prc.h libmng_memory.h \ | |
libmng_error.h libmng_trace.h libmng_display.h libmng_pixels.h | |
libmng_chunk_descr.o libmng_chunk_descr.pic.o: libmng_chunk_descr.c libmng.h libmng_conf.h \ | |
libmng_types.h libmng_data.h libmng_chunks.h libmng_chunk_descr.h libmng_memory.h \ | |
libmng_chunk_prc.h libmng_error.h libmng_trace.h | |
libmng_chunk_prc.o libmng_chunk_prc.pic.o: libmng_chunk_prc.c libmng.h libmng_conf.h \ | |
libmng_types.h libmng_data.h libmng_chunks.h libmng_chunk_prc.h libmng_memory.h \ | |
libmng_error.h libmng_trace.h | |
libmng_chunk_io.o libmng_chunk_io.pic.o: libmng_chunk_io.c libmng.h libmng_conf.h \ | |
libmng_types.h libmng_data.h libmng_objects.h libmng_object_prc.h \ | |
libmng_chunks.h libmng_chunk_io.h libmng_chunk_prc.h libmng_memory.h libmng_error.h \ | |
libmng_trace.h libmng_display.h libmng_zlib.h libmng_pixels.h | |
libmng_error.o libmng_error.pic.o: libmng_error.c libmng.h libmng_conf.h libmng_types.h \ | |
libmng_data.h libmng_error.h libmng_trace.h | |
libmng_trace.o libmng_trace.pic.o: libmng_trace.c libmng.h libmng_conf.h libmng_types.h \ | |
libmng_data.h libmng_error.h libmng_trace.h | |
libmng_pixels.o libmng_pixels.pic.o: libmng_pixels.c libmng.h libmng_conf.h libmng_types.h \ | |
libmng_data.h libmng_objects.h libmng_memory.h libmng_error.h libmng_trace.h \ | |
libmng_cms.h libmng_filter.h libmng_pixels.h | |
libmng_filter.o libmng_filter.pic.o: libmng_filter.c libmng.h libmng_conf.h libmng_types.h \ | |
libmng_data.h libmng_error.h libmng_trace.h libmng_filter.h | |
libmng_dither.o libmng_dither.pic.o: libmng_dither.c libmng.h libmng_conf.h libmng_types.h \ | |
libmng_data.h libmng_error.h libmng_trace.h libmng_dither.h | |
libmng_zlib.o libmng_zlib.pic.o: libmng_zlib.c libmng.h libmng_conf.h libmng_types.h \ | |
libmng_data.h libmng_memory.h libmng_error.h libmng_trace.h libmng_pixels.h \ | |
libmng_filter.h libmng_zlib.h | |
libmng_jpeg.o libmng_jpeg.pic.o: libmng_jpeg.c libmng.h libmng_conf.h libmng_types.h \ | |
libmng_data.h libmng_memory.h libmng_error.h libmng_trace.h libmng_pixels.h libmng_jpeg.h | |
libmng_cms.o libmng_cms.pic.o: libmng_cms.c libmng.h libmng_conf.h libmng_types.h \ | |
libmng_data.h libmng_objects.h libmng_error.h libmng_trace.h libmng_cms.h | |