src/3rdparty/libmng/makefiles/makefile.linux
changeset 0 1918ee327afb
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 #
       
     2 # For conditions of distribution and use, see copyright notice in libmng.h
       
     3 #
       
     4 # makefile for libmng - THE MNG library
       
     5 # this makefile is suitable for Linux ELF with gcc
       
     6 #
       
     7 # (this file is heavily copied from makefile.linux in the libpng package)
       
     8 
       
     9 # compiler
       
    10 CC=gcc
       
    11 
       
    12 # default build options (this forces shared library compatibility!!)
       
    13 #OPTIONS = -DMNG_BUILD_SO
       
    14 OPTIONS = -DMNG_BUILD_SO -DMNG_FULL_CMS
       
    15 
       
    16 # where "make install" puts libmng.a,libmng.so*,libmng.h,libmng_conf.h,libmng_types.h
       
    17 prefix=/usr/local
       
    18 
       
    19 # Where the zlib library and include files are located
       
    20 #ZLIBLIB=../zlib
       
    21 #ZLIBINC=../zlib
       
    22 ZLIBLIB=/usr/local/lib
       
    23 ZLIBINC=/usr/local/include
       
    24 
       
    25 # Where the jpeg library and include files are located
       
    26 #JPEGLIB=../jpgsrc
       
    27 #JPEGINC=../jpgsrc
       
    28 JPEGLIB=/usr/local/lib
       
    29 JPEGINC=/usr/local/include
       
    30 
       
    31 # Where the lcms library and include files are located
       
    32 #LCMSLIB=../lcms/lib
       
    33 #LCMSINC=../lcms/source
       
    34 LCMSLIB=/usr/local/lib
       
    35 LCMSINC=/usr/local/include
       
    36 
       
    37 ALIGN=
       
    38 # for i386:
       
    39 #ALIGN=-malign-loops=2 -malign-functions=2
       
    40 
       
    41 WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
       
    42 	-Wmissing-declarations -Wtraditional -Wcast-align \
       
    43 	-Wstrict-prototypes -Wmissing-prototypes #-Wconversion
       
    44 
       
    45 # for pgcc version 2.95.1, -O3 is buggy; don't use it.
       
    46 
       
    47 CFLAGS=-I$(ZLIBINC) -I$(JPEGINC) -I$(LCMSINC) -Wall -O3 -funroll-loops \
       
    48 	$(OPTIONS) $(ALIGN) # $(WARNMORE) -g
       
    49 LDFLAGS=-L. -Wl,-rpath,. \
       
    50 	-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) \
       
    51 	-L$(JPEGLIB) -Wl,-rpath,$(JPEGLIB) \
       
    52 	-L$(LCMSLIB) -Wl,-rpath,$(LCMSLIB) \
       
    53 	-lmng -lz -ljpeg -llcms -lm
       
    54 
       
    55 RANLIB=ranlib
       
    56 #RANLIB=echo
       
    57 
       
    58 # current version numbers
       
    59 MNGMAJ = 1
       
    60 MNGMIN = 1.0.9
       
    61 MNGVER = $(MNGMAJ).$(MNGMIN)
       
    62 
       
    63 INCPATH=$(prefix)/include
       
    64 LIBPATH=$(prefix)/lib
       
    65 
       
    66 OBJS = \
       
    67 	libmng_callback_xs.o \
       
    68 	libmng_chunk_io.o \
       
    69 	libmng_chunk_descr.o \
       
    70 	libmng_chunk_prc.o \
       
    71 	libmng_chunk_xs.o \
       
    72 	libmng_cms.o \
       
    73 	libmng_display.o \
       
    74 	libmng_dither.o \
       
    75 	libmng_error.o \
       
    76 	libmng_filter.o \
       
    77 	libmng_hlapi.o \
       
    78 	libmng_jpeg.o \
       
    79 	libmng_object_prc.o \
       
    80 	libmng_pixels.o \
       
    81 	libmng_prop_xs.o \
       
    82 	libmng_read.o \
       
    83 	libmng_trace.o \
       
    84 	libmng_write.o \
       
    85 	libmng_zlib.o
       
    86 
       
    87 OBJSDLL = $(OBJS:.0=.pic.o)
       
    88 
       
    89 .SUFFIXES:      .c .o .pic.o
       
    90 
       
    91 .c.pic.o:
       
    92 	$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c
       
    93 
       
    94 all: libmng.a libmng.so
       
    95 
       
    96 libmng.a: $(OBJS)
       
    97 	ar rc $@ $(OBJS)
       
    98 	$(RANLIB) $@
       
    99 
       
   100 libmng.so: libmng.so.$(MNGMAJ)
       
   101 	ln -sf libmng.so.$(MNGMAJ) libmng.so
       
   102 
       
   103 libmng.so.$(MNGMAJ): libmng.so.$(MNGVER)
       
   104 	ln -sf libmng.so.$(MNGVER) libmng.so.$(MNGMAJ)
       
   105 
       
   106 libmng.so.$(MNGVER): $(OBJSDLL)
       
   107 #	$(CC) -shared -Wl,-soname,libmng.so.$(MNGMAJ) -o libmng.so.$(MNGVER) \
       
   108 #	$(OBJSDLL) -L$(ZLIBLIB) -L$(JPEGLIB) -L$(LCMSLIB) -lz -lm -lc
       
   109 	$(CC) -shared -Wl,-soname,libmng.so.$(MNGMAJ) -o libmng.so.$(MNGVER) \
       
   110 	$(OBJSDLL) -L$(ZLIBLIB) -L$(JPEGLIB) -ljpeg -L$(LCMSLIB) -llcms \
       
   111     -lz -lm -lc
       
   112 
       
   113 install: libmng.a libmng.so.$(MNGVER)
       
   114 	-@mkdir $(INCPATH) $(LIBPATH)
       
   115 	cp libmng.h libmng_conf.h libmng_types.h $(INCPATH)
       
   116 	chmod 644 $(INCPATH)/libmng.h $(INCPATH)/libmng_conf.h $(INCPATH)/libmng_types.h
       
   117 	cp libmng.a libmng.so.$(MNGVER) $(LIBPATH)
       
   118 	chmod 755 $(LIBPATH)/libmng.so.$(MNGVER)
       
   119 	-@/bin/rm -f $(LIBPATH)/libmng.so.$(MNGMAJ) $(LIBPATH)/libmng.so
       
   120 	(cd $(LIBPATH); ln -sf libmng.so.$(MNGVER) libmng.so.$(MNGMAJ); \
       
   121 	 ln -sf libmng.so.$(MNGMAJ) libmng.so)
       
   122 
       
   123 clean:
       
   124 	/bin/rm -f *.o libmng.a libmng.so*
       
   125 
       
   126 # DO NOT DELETE THIS LINE -- make depend depends on it.
       
   127 
       
   128 libmng_hlapi.o libmng_hlapi.pic.o: libmng_hlapi.c libmng.h libmng_conf.h libmng_types.h \
       
   129 	libmng_data.h libmng_objects.h libmng_object_prc.h \
       
   130 	libmng_chunks.h libmng_memory.h libmng_error.h libmng_trace.h libmng_read.h \
       
   131         libmng_write.h libmng_display.h libmng_zlib.h libmng_cms.h libmng_zlib.h
       
   132 libmng_callback_xs.o libmng_callback_xs.pic.o: libmng_callback_xs.c libmng.h \
       
   133         libmng_conf.h libmng_types.h libmng_data.h libmng_error.h libmng_trace.h
       
   134 libmng_prop_xs.o libmng_prop_xs.pic.o: libmng_prop_xs.c libmng.h libmng_conf.h \
       
   135         libmng_types.h libmng_data.h libmng_error.h libmng_trace.h libmng_cms.h
       
   136 libmng_chunk_xs.o libmng_chunk_xs.pic.o: libmng_chunk_xs.c libmng.h libmng_conf.h \
       
   137         libmng_types.h libmng_data.h libmng_chunks.h libmng_chunk_prc.h \
       
   138         libmng_error.h libmng_trace.h
       
   139 libmng_read.o libmng_read.pic.o: libmng_read.c libmng.h libmng_conf.h libmng_types.h \
       
   140 	libmng_data.h libmng_objects.h libmng_object_prc.h \
       
   141 	libmng_chunks.h libmng_chunk_prc.h libmng_chunk_io.h libmng_memory.h \
       
   142         libmng_error.h libmng_trace.h libmng_read.h libmng_display.h
       
   143 libmng_write.o libmng_write.pic.o: libmng_write.c libmng.h libmng_conf.h libmng_types.h \
       
   144 	libmng_data.h libmng_error.h libmng_trace.h libmng_write.h
       
   145 libmng_display.o libmng_display.pic.o: libmng_display.c libmng.h libmng_conf.h \
       
   146         libmng_types.h libmng_data.h libmng_objects.h libmng_object_prc.h libmng_memory.h \
       
   147 	libmng_error.h libmng_trace.h libmng_zlib.h libmng_cms.h libmng_pixels.h \
       
   148         libmng_display.h
       
   149 libmng_object_prc.o libmng_object_prc.pic.o: libmng_object_prc.c libmng.h libmng_conf.h \
       
   150         libmng_types.h libmng_data.h libmng_objects.h libmng_object_prc.h libmng_memory.h \
       
   151         libmng_error.h libmng_trace.h libmng_display.h libmng_pixels.h
       
   152 libmng_chunk_descr.o libmng_chunk_descr.pic.o: libmng_chunk_descr.c libmng.h libmng_conf.h \
       
   153         libmng_types.h libmng_data.h libmng_chunks.h libmng_chunk_descr.h libmng_memory.h \
       
   154         libmng_chunk_prc.h libmng_error.h libmng_trace.h
       
   155 libmng_chunk_prc.o libmng_chunk_prc.pic.o: libmng_chunk_prc.c libmng.h libmng_conf.h \
       
   156         libmng_types.h libmng_data.h libmng_chunks.h libmng_chunk_prc.h libmng_memory.h \
       
   157         libmng_error.h libmng_trace.h
       
   158 libmng_chunk_io.o libmng_chunk_io.pic.o: libmng_chunk_io.c libmng.h libmng_conf.h \
       
   159         libmng_types.h libmng_data.h libmng_objects.h libmng_object_prc.h \
       
   160         libmng_chunks.h libmng_chunk_io.h libmng_chunk_prc.h libmng_memory.h libmng_error.h \
       
   161         libmng_trace.h libmng_display.h libmng_zlib.h libmng_pixels.h
       
   162 libmng_error.o libmng_error.pic.o: libmng_error.c libmng.h libmng_conf.h libmng_types.h \
       
   163 	libmng_data.h libmng_error.h libmng_trace.h
       
   164 libmng_trace.o libmng_trace.pic.o: libmng_trace.c libmng.h libmng_conf.h libmng_types.h \
       
   165 	libmng_data.h libmng_error.h libmng_trace.h
       
   166 libmng_pixels.o libmng_pixels.pic.o: libmng_pixels.c libmng.h libmng_conf.h libmng_types.h \
       
   167 	libmng_data.h libmng_objects.h libmng_memory.h libmng_error.h libmng_trace.h \
       
   168         libmng_cms.h libmng_filter.h libmng_pixels.h
       
   169 libmng_filter.o libmng_filter.pic.o: libmng_filter.c libmng.h libmng_conf.h libmng_types.h \
       
   170 	libmng_data.h libmng_error.h libmng_trace.h libmng_filter.h
       
   171 libmng_dither.o libmng_dither.pic.o: libmng_dither.c libmng.h libmng_conf.h libmng_types.h \
       
   172 	libmng_data.h libmng_error.h libmng_trace.h libmng_dither.h
       
   173 libmng_zlib.o libmng_zlib.pic.o: libmng_zlib.c libmng.h libmng_conf.h libmng_types.h \
       
   174 	libmng_data.h libmng_memory.h libmng_error.h libmng_trace.h libmng_pixels.h \
       
   175         libmng_filter.h libmng_zlib.h
       
   176 libmng_jpeg.o libmng_jpeg.pic.o: libmng_jpeg.c libmng.h libmng_conf.h libmng_types.h \
       
   177 	libmng_data.h libmng_memory.h libmng_error.h libmng_trace.h libmng_pixels.h libmng_jpeg.h
       
   178 libmng_cms.o libmng_cms.pic.o: libmng_cms.c libmng.h libmng_conf.h libmng_types.h \
       
   179 	libmng_data.h libmng_objects.h libmng_error.h libmng_trace.h libmng_cms.h
       
   180