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