(no commit message)
[openjpeg.git] / Makefile.nix
1 #top Makefile
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
63 jpwl-all:
64         make -C jpwl -f Makefile.nix all
65
66 jp3d-all:
67         make -C jp3d -f Makefile.nix all
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         ldconfig
105         install -d $(DESTDIR)$(INSTALL_INCLUDE)
106         install -m 644 -o root -g root libopenjpeg/openjpeg.h \
107         $(DESTDIR)$(INSTALL_INCLUDE)
108         (cd $(DESTDIR)$(prefix)/include && \
109         ln -sf $(headerdir)/openjpeg.h openjpeg.h)
110         make -C codec -f Makefile.nix install
111         make -C mj2 -f Makefile.nix install
112
113 jpwl-install: jpwl
114         make -C jpwl -f Makefile.nix install
115         ldconfig
116
117 jp3d-install: jp3d
118         make -C jp3d -f Makefile.nix install
119         ldconfig
120
121 doc-all:
122         make -C doc -f Makefile.nix all
123
124 doc-install: docs
125         make -C doc -f Makefile.nix install
126
127 clean:
128         rm -rf bin
129         rm -f core u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB)
130         make -C codec -f Makefile.nix clean
131         make -C mj2 -f Makefile.nix clean
132
133 jpwl-clean:
134         make -C jpwl -f Makefile.nix clean
135
136 jp3d-clean:
137         make -C jp3d -f Makefile.nix clean
138
139 doc-clean:
140         make -C doc -f Makefile.nix clean
141
142 uninstall:
143         rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(STATICLIB)
144 ifeq ($(ENABLE_SHARED),yes)
145         (cd $(DESTDIR)$(INSTALL_LIBDIR) && \
146         rm -f $(LIBNAME).so $(LIBNAME).so.$(MAJOR).$(MINOR) $(SHAREDLIB) )
147 endif
148         ldconfig
149         rm -f $(DESTDIR)$(prefix)/include/openjpeg.h
150         rm -rf $(DESTDIR)$(INSTALL_INCLUDE)
151         make -C codec -f Makefile.nix uninstall
152         make -C mj2 -f Makefile.nix uninstall
153
154 jpwl-uninstall:
155         make -C jpwl -f Makefile.nix uninstall
156
157 jp3d-uninstall:
158         make -C jp3d -f Makefile.nix uninstall