| # |
| # 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 |
| |