Fix installation rules in jpwl for CMake
[openjpeg.git] / Makefile.nix
1 #top Makefile.nix
2 include  config.nix
3
4 TARGET  = openjpeg
5 COMPILERFLAGS = -Wall -O3 -ffast-math -std=c99 -fPIC
6
7 INCLUDE = -I. -Ilibopenjpeg
8 LIBRARIES = -lstdc++
9
10 SRCS = ./libopenjpeg/bio.c ./libopenjpeg/cio.c ./libopenjpeg/dwt.c \
11  ./libopenjpeg/event.c ./libopenjpeg/image.c ./libopenjpeg/j2k.c \
12  ./libopenjpeg/j2k_lib.c ./libopenjpeg/jp2.c ./libopenjpeg/jpt.c \
13  ./libopenjpeg/mct.c ./libopenjpeg/mqc.c ./libopenjpeg/openjpeg.c \
14  ./libopenjpeg/pi.c ./libopenjpeg/raw.c ./libopenjpeg/t1.c \
15  ./libopenjpeg/t2.c ./libopenjpeg/tcd.c ./libopenjpeg/tgt.c \
16  ./libopenjpeg/opj_convert.c
17
18 INCLS = ./libopenjpeg/bio.h ./libopenjpeg/cio.h ./libopenjpeg/dwt.h \
19  ./libopenjpeg/event.h ./libopenjpeg/fix.h ./libopenjpeg/image.h \
20  ./libopenjpeg/int.h ./libopenjpeg/j2k.h ./libopenjpeg/j2k_lib.h \
21  ./libopenjpeg/jp2.h ./libopenjpeg/jpt.h ./libopenjpeg/mct.h \
22  ./libopenjpeg/mqc.h ./libopenjpeg/openjpeg.h ./libopenjpeg/pi.h \
23  ./libopenjpeg/raw.h ./libopenjpeg/t1.h ./libopenjpeg/t2.h \
24  ./libopenjpeg/tcd.h ./libopenjpeg/tgt.h ./libopenjpeg/opj_malloc.h \
25  ./libopenjpeg/opj_convert.h ./libopenjpeg/opj_includes.h
26
27 AR = ar
28
29 INSTALL_LIBDIR = $(prefix)/lib
30 headerdir = openjpeg-$(MAJOR).$(MINOR)
31 INSTALL_INCLUDE = $(prefix)/include/$(headerdir)
32
33 # Converts cr/lf to just lf
34 DOS2UNIX = dos2unix
35
36 ifeq ($(WITH_LCMS1),yes)
37 INCLUDE += $(LCMS1_INCLUDE)
38 LIBRARIES += $(LCMS1_LIB)
39 endif
40
41 ifeq ($(WITH_LCMS2),yes)
42 INCLUDE += $(LCMS2_INCLUDE)
43 LIBRARIES += $(LCMS2_LIB)
44 endif
45
46 MODULES = $(SRCS:.c=.o)
47
48 CFLAGS = $(COMPILERFLAGS) $(INCLUDE)
49
50 LIBNAME = lib$(TARGET)
51 STATICLIB = $(LIBNAME).a
52
53 ifeq ($(ENABLE_SHARED),yes)
54 SHAREDLIB = $(LIBNAME).so.$(MAJOR).$(MINOR).$(BUILD)
55 endif
56
57 default: all
58
59 all: OpenJPEG
60         make -C codec -f Makefile.nix all
61         make -C mj2 -f Makefile.nix all
62 ifeq ($(WITH_JPWL),yes)
63         make -C jpwl -f Makefile.nix all
64 endif
65 ifeq ($(WITH_JP3D),yes)
66         make -C jp3d -f Makefile.nix all
67 endif
68
69 dos2unix:
70         @$(DOS2UNIX) $(SRCS) $(INCLS)
71
72 OpenJPEG: $(STATICLIB) $(SHAREDLIB)
73         install -d bin
74         install -m 644 $(STATICLIB) bin
75 ifeq ($(ENABLE_SHARED),yes)
76         install -m 755 $(SHAREDLIB) bin
77         (cd bin && ln -sf $(SHAREDLIB) $(LIBNAME).so.$(MAJOR).$(MINOR))
78         (cd bin && ln -sf $(LIBNAME).so.$(MAJOR).$(MINOR) $(LIBNAME).so)
79 endif
80
81 .c.o:
82         $(CC) $(CFLAGS) -c $< -o $@
83
84 $(STATICLIB): $(MODULES)
85         rm -f $(STATICLIB)
86         $(AR) r $@ $(MODULES)
87
88 ifeq ($(ENABLE_SHARED),yes)
89 $(SHAREDLIB): $(MODULES)
90         $(CC) -s -shared -Wl,-soname,$(LIBNAME) -o $@ $(MODULES) $(LIBRARIES)
91 endif
92
93 install: OpenJPEG
94         install -d $(DESTDIR)$(INSTALL_LIBDIR) 
95         install -m 644 -o root -g root $(STATICLIB) $(DESTDIR)$(INSTALL_LIBDIR)
96         (cd $(DESTDIR)$(INSTALL_LIBDIR) && ranlib $(STATICLIB) )
97 ifeq ($(ENABLE_SHARED),yes)
98         install -m 755 -o root -g root $(SHAREDLIB) $(DESTDIR)$(INSTALL_LIBDIR)
99         (cd $(DESTDIR)$(INSTALL_LIBDIR) && \
100         ln -sf $(SHAREDLIB) $(LIBNAME).so.$(MAJOR).$(MINOR) )
101         (cd $(DESTDIR)$(INSTALL_LIBDIR) && \
102         ln -sf $(LIBNAME).so.$(MAJOR).$(MINOR) $(LIBNAME).so )
103 endif
104         install -d $(DESTDIR)$(INSTALL_INCLUDE)
105         install -m 644 -o root -g root libopenjpeg/openjpeg.h \
106         $(DESTDIR)$(INSTALL_INCLUDE)
107         (cd $(DESTDIR)$(prefix)/include && \
108         ln -sf $(headerdir)/openjpeg.h openjpeg.h)
109         make -C codec -f Makefile.nix install
110         make -C mj2 -f Makefile.nix install
111 ifeq ($(WITH_JPWL),yes)
112         make -C jpwl -f Makefile.nix install
113 endif
114 ifeq ($(WITH_JP3D),yes)
115         make -C jp3d -f Makefile.nix install
116 endif
117         $(LDCONFIG)
118         make -C doc -f Makefile.nix install
119
120 ifeq ($(WITH_JPWL),yes)
121 jpwl-all:
122         make -C jpwl -f Makefile.nix all
123
124 jpwl-install: jpwl-all
125         make -C jpwl -f Makefile.nix install
126         $(LDCONFIG)
127
128 jpwl-clean:
129         make -C jpwl -f Makefile.nix clean
130
131 jpwl-uninstall:
132         make -C jpwl -f Makefile.nix uninstall
133 endif
134
135 ifeq ($(WITH_JP3D),yes)
136 jp3d-all:
137         make -C jp3d -f Makefile.nix all
138
139 jp3d-install: jp3d-all
140         make -C jp3d -f Makefile.nix install
141         $(LDCONFIG)
142
143 jp3d-clean:
144         make -C jp3d -f Makefile.nix clean
145
146 jp3d-uninstall:
147         make -C jp3d -f Makefile.nix uninstall
148 endif
149
150 doc-all:
151         make -C doc -f Makefile.nix all
152
153 doc-install: doc-all
154         make -C doc -f Makefile.nix install
155
156 clean:
157         rm -rf bin
158         rm -f core u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB)
159         make -C codec -f Makefile.nix clean
160         make -C mj2 -f Makefile.nix clean
161         make -C doc -f Makefile.nix clean
162 ifeq ($(WITH_JPWL),yes)
163         make -C jpwl -f Makefile.nix clean
164 endif
165 ifeq ($(WITH_JP3D),yes)
166         make -C jp3d -f Makefile.nix clean
167 endif
168
169 doc-clean:
170         make -C doc -f Makefile.nix clean
171
172 uninstall:
173         rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(STATICLIB)
174 ifeq ($(ENABLE_SHARED),yes)
175         (cd $(DESTDIR)$(INSTALL_LIBDIR) && \
176         rm -f $(LIBNAME).so $(LIBNAME).so.$(MAJOR).$(MINOR) $(SHAREDLIB) )
177 endif
178         $(LDCONFIG)
179         rm -f $(DESTDIR)$(prefix)/include/openjpeg.h
180         rm -rf $(DESTDIR)$(INSTALL_INCLUDE)
181         make -C codec -f Makefile.nix uninstall
182         make -C mj2 -f Makefile.nix uninstall
183         make -C doc -f Makefile.nix uninstall
184 ifeq ($(WITH_JPWL),yes)
185         make -C jpwl -f Makefile.nix uninstall
186 endif
187 ifeq ($(WITH_JP3D),yes)
188         make -C jp3d -f Makefile.nix uninstall
189 endif