source: Makefile.macx

Last change on this file was 454:91b55156233a, checked in by Dmitry Fedorov <fedorov@…>, 6 years ago

updated build system

File size: 8.7 KB
Line 
1prefix=/usr
2BINDIR=$(prefix)/bin
3LIBDIR=$(prefix)/lib
4MAKEFLAGS += -j 4
5LIBBIM=libsrc/libbioimg
6LIBRAW=libsrc/libraw
7LIBVPX=libsrc/libvpx
8LIBX264=libsrc/libx264
9LIBX265=libsrc/libx265
10LIBOGG=libsrc/libogg
11LIBVORBIS=libsrc/libvorbis
12LIBTHEORA=libsrc/libtheora
13LIBXVID=libsrc/libxvidcore
14LIBFFTW=libsrc/libfftw/src
15FFMPEG=libsrc/ffmpeg
16LIBJPEGTURBO=libsrc/libjpeg-turbo
17LIBGDCM=libsrc/gdcm
18LIBGDCMBIN=libsrc/gdcmbin
19LIBS=libs/macosx
20PKG_CONFIG_PATH=$LIBVPX/vpx.pc:$LIBX264/x264.pc:$LIBX265/build/linux/x265.pc
21#QMAKEOPTS=-spec macx-g++
22QMAKEOPTS=-spec macx-g++49
23MACOSX_DEPLOYMENT_TARGET=10.7
24VERSION=2.0.0
25
26all : imgcnv
27
28
29install:
30        install -d $(DESTDIR)$(BINDIR)
31        install imgcnv $(DESTDIR)$(BINDIR)
32        install -d $(DESTDIR)$(LIBDIR)
33        install libimgcnv.so.2 $(DESTDIR)$(LIBDIR)
34
35
36imgcnv:
37        -mkdir -p .generated/obj
38       
39        @echo
40        @echo   
41        @echo "Building libbioimage in $(LIBBIM)"
42        (cd $(LIBBIM); qmake $(QMAKEOPTS) bioimage.pro)
43        (cd $(LIBBIM); $(MAKE))
44
45        @echo
46        @echo
47        @echo "Building imgcnv"       
48        (cd src; qmake $(QMAKEOPTS) imgcnv.pro)
49        (cd src; $(MAKE))
50
51        @echo
52        @echo
53        @echo "Building libimgcnv"   
54        (cd src_dylib; qmake $(QMAKEOPTS) libimgcnv.pro)
55        (cd src_dylib; $(MAKE))
56
57full:
58        -mkdir -p .generated/obj
59        -mkdir -p $(LIBS)
60
61        @echo
62        @echo
63        @echo "Building libbioimage in $(LIBBIM)"
64        (cd $(LIBBIM); qmake $(QMAKEOPTS) bioimage.pro)
65        (cd $(LIBBIM); $(MAKE))
66       
67
68        @echo
69        @echo
70        @echo "Building libogg 1.3.2 in $(LIBOGG)"
71        (cd $(LIBOGG); chmod -f u+x configure)
72        #(cd $(LIBOGG); chmod -f u+x version.sh)
73        (cd $(LIBOGG); chmod -f u+x config.guess)
74        (cd $(LIBOGG); chmod -f u+x config.sub)
75        (cd $(LIBOGG); ./configure --enable-pic )
76        (cd $(LIBOGG); $(MAKE))
77        (cp $(LIBOGG)/src/.libs/libogg.a $(LIBS)/)
78
79    # relative paths to libogg seem not to be working
80        @echo
81        @echo
82        @echo "Building libvorbis 1.3.4 in $(LIBVORBIS)"
83        (cd $(LIBVORBIS); chmod -f u+x configure)
84        #(cd $(LIBVORBIS); chmod -f u+x version.sh)
85        (cd $(LIBVORBIS); chmod -f u+x config.guess)
86        (cd $(LIBVORBIS); chmod -f u+x config.sub)
87        (cd $(LIBVORBIS); ./configure --disable-oggtest --build=x86_64 --enable-pic --with-ogg=../libogg --with-ogg-includes=../libogg/include --with-ogg-libraries=../libogg/src/.libs )
88        (cd $(LIBVORBIS); $(MAKE))
89        (cp $(LIBVORBIS)/lib/.libs/libvorbis.a $(LIBS)/)
90        (cp $(LIBVORBIS)/lib/.libs/libvorbisenc.a $(LIBS)/)
91        (cp $(LIBVORBIS)/lib/.libs/libvorbisfile.a $(LIBS)/)
92
93    # relative paths to libogg and libvorbis seem not to be working
94    # after configure required creating a libtool shell script in the libtheora root pointing to gnu libtool:
95    # /usr/local/Cellar/libtool/2.4.4/bin/glibtool "$@"
96        @echo
97        @echo
98        @echo "Building libtheora 1.1.1 in $(LIBTHEORA)"
99        (cd $(LIBTHEORA); chmod -f u+x configure)
100        (cd $(LIBTHEORA); chmod -f u+x version.sh)
101        (cd $(LIBTHEORA); chmod -f u+x config.guess)
102        (cd $(LIBTHEORA); chmod -f u+x config.sub)
103        (cd $(LIBTHEORA); ./configure --build=x86_64 --disable-oggtest --disable-vorbistest --disable-examples --disable-asm \
104                --enable-shared=no --enable-static=yes --enable-pic \
105                --with-ogg=../libogg --with-ogg-includes=../libogg/include --with-ogg-libraries=../libogg/src/.libs \
106                --with-vorbis=../libvorbis --with-vorbis-includes=../libvorbis/include --with-vorbis-libraries=../libvorbis/lib/.libs )
107        (cd $(LIBTHEORA); $(MAKE))
108        (cp $(LIBTHEORA)/lib/.libs/libtheora.a $(LIBS)/)
109        (cp $(LIBTHEORA)/lib/.libs/libtheoradec.a $(LIBS)/)
110        (cp $(LIBTHEORA)/lib/.libs/libtheoraenc.a $(LIBS)/)     
111
112    # required removing -no-cpp-precomp from configure
113        @echo
114        @echo
115        @echo "Building xvidcore 1.3.3 in $(LIBXVID)"
116        (cd $(LIBXVID)/build/generic; chmod -f u+x configure)
117        (cd $(LIBXVID)/build/generic; chmod -f u+x bootstrap.sh)
118        (cd $(LIBXVID)/build/generic; chmod -f u+x config.guess)
119        (cd $(LIBXVID)/build/generic; chmod -f u+x config.sub)
120        (cd $(LIBXVID)/build/generic; ./configure --disable-assembly --enable-pic )
121        (cd $(LIBXVID)/build/generic; $(MAKE))
122        (cp $(LIBXVID)/build/generic/=build/libxvidcore.a $(LIBS)/)
123
124        @echo
125        @echo
126        @echo "Building libvpx 1.4.0 in $(LIBVPX)"
127        (cd $(LIBVPX); chmod -f u+x configure)
128        (cd $(LIBVPX); chmod -f u+x build/make/version.sh)
129        (cd $(LIBVPX); chmod -f u+x build/make/rtcd.sh)
130        (cd $(LIBVPX); chmod -f u+x build/make/gen_asm_deps.sh)
131        (cd $(LIBVPX); chmod -f u+x build/make/gen_asm_deps.sh)     
132        (cd $(LIBVPX); ./configure --enable-vp8 --enable-vp9 --enable-pic --disable-examples --disable-unit-tests )
133        (cd $(LIBVPX); $(MAKE))
134        (cp $(LIBVPX)/libvpx.a $(LIBS)/)
135       
136        @echo
137        @echo
138        @echo "Building libx264 20150223 in $(LIBX264)"
139        (cd $(LIBX264); chmod -f u+x configure)
140        (cd $(LIBX264); chmod -f u+x version.sh)
141        (cd $(LIBX264); chmod -f u+x config.guess)
142        (cd $(LIBX264); chmod -f u+x config.sub)
143        (cd $(LIBX264); ./configure --enable-pic --enable-static --disable-opencl )
144        (cd $(LIBX264); $(MAKE))
145        (cp $(LIBX264)/libx264.a $(LIBS)/)
146
147        @echo
148        @echo
149        @echo "Building libx265 20150509 in $(LIBX265)"
150        #(cd $(LIBX265)/build/linux; chmod -f u+x make-Makefiles.bash)
151        #(cd $(LIBX265)/build/linux; bash make-Makefiles.bash )
152        (cd $(LIBX265)/build/linux; cmake -G "Unix Makefiles" ../../source -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC )
153        (cd $(LIBX265)/build/linux; $(MAKE))
154        (cp $(LIBX265)/build/linux/libx265.a $(LIBS)/)
155
156        @echo
157        @echo
158        @echo "Building libjpeg-turbo 1.4.0 in $(LIBJPEGTURBO)"
159        (cd $(LIBJPEGTURBO); chmod -f u+x configure)
160        (cd $(LIBJPEGTURBO); chmod -f u+x config.guess)
161        (cd $(LIBJPEGTURBO); chmod -f u+x config.sub)
162        (cd $(LIBJPEGTURBO); ./configure --enable-pic --enable-static --enable-shared=no )
163        (cd $(LIBJPEGTURBO); $(MAKE))
164        (cp $(LIBJPEGTURBO)/.libs/libturbojpeg.a $(LIBS)/)
165       
166        @echo
167        @echo
168        @echo "Building libGDCM 2.4.4 in $(LIBGDCM)"
169        -mkdir -p $(LIBGDCMBIN)
170        (cd $(LIBGDCMBIN); cmake ../gdcm -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DGDCM_USE_OPENJPEG_V2=ON )
171        (cd $(LIBGDCMBIN); $(MAKE))
172        (cp $(LIBGDCMBIN)/bin/*.a $(LIBS)/gdcm/)       
173
174        #@echo
175        #@echo
176        #@echo "Building libfftw in $(LIBFFTW)"
177        #(cd $(LIBFFTW); chmod -f u+x configure)
178        #(cd $(LIBFFTW); chmod -f u+x version.sh)
179        #(cd $(LIBFFTW); chmod -f u+x config.guess)
180        #(cd $(LIBFFTW); chmod -f u+x config.sub)
181        #(cd $(LIBFFTW); ./configure --enable-static --enable-openmp)
182        #(cd $(LIBFFTW); $(MAKE))
183        #(cp $(LIBFFTW)/.libs/libfftw3.a $(LIBS)/)
184       
185        @echo
186        @echo     
187        @echo "Building ffmpeg 2.6.3 in $(FFMPEG)"
188        (cd $(FFMPEG)/ffmpeg; chmod -f u+x configure)
189        (cd $(FFMPEG)/ffmpeg; chmod -f u+x version.sh)
190        -mkdir -p $(FFMPEG)/ffmpeg-obj
191        (cd $(FFMPEG)/ffmpeg-obj; ../ffmpeg/configure \
192                --enable-static --disable-shared --enable-pic --enable-gray --as=yasm \
193                --prefix=./../ffmpeg-out \
194                --extra-cflags="-fPIC -I../../libvpx -I../../libx264 -I../../libx265/source" \
195                --extra-cxxflags="-fPIC -I../../libvpx -I../../libx264 -I../../libx265/source" \
196                --extra-ldflags="-fPIC -L../../libvpx -L../../libx264 -L../../libx265/build/linux" \
197                --enable-gpl --enable-version3 --enable-runtime-cpudetect --enable-pthreads --enable-swscale \
198                --disable-ffserver --disable-ffplay --disable-network --disable-ffmpeg --disable-devices \
199                --disable-frei0r --disable-libass --disable-libcelt --disable-libopencore-amrnb --disable-libopencore-amrwb \
200                --disable-libfreetype --disable-libgsm --disable-libmp3lame --disable-libnut --disable-librtmp \
201                --disable-libspeex --disable-libvorbis \
202                --enable-bzlib --enable-zlib \
203                --disable-libopenjpeg --disable-libschroedinger \
204                --enable-libtheora --enable-libvpx --enable-libx264 --enable-encoder=libx264 --enable-libx265 --enable-libxvid \
205                --disable-libvo-aacenc --disable-libvo-amrwbenc )
206       
207        (cd $(FFMPEG)/ffmpeg-obj; $(MAKE) all install)
208       
209        (cp -f $(FFMPEG)/ffmpeg-out/lib/libavcodec.a $(LIBS)/)
210        (cp -f $(FFMPEG)/ffmpeg-out/lib/libavformat.a $(LIBS)/)
211        (cp -f $(FFMPEG)/ffmpeg-out/lib/libavutil.a $(LIBS)/)
212        (cp -f $(FFMPEG)/ffmpeg-out/lib/libswscale.a $(LIBS)/) 
213        -mkdir -p $(FFMPEG)/include
214        (cp -Rf $(FFMPEG)/ffmpeg-out/include/libavcodec $(FFMPEG)/include/)
215        (cp -Rf $(FFMPEG)/ffmpeg-out/include/libavformat $(FFMPEG)/include/)
216        (cp -Rf $(FFMPEG)/ffmpeg-out/include/libavutil $(FFMPEG)/include/)
217        (cp -Rf $(FFMPEG)/ffmpeg-out/include/libswscale $(FFMPEG)/include/)
218       
219       
220        @echo
221        @echo
222        @echo "Building imgcnv"   
223        (cd src; qmake $(QMAKEOPTS) imgcnv.pro)
224        (cd src; $(MAKE))
225       
226        @echo
227        @echo
228        @echo "Building libimgcnv"   
229        (cd src_dylib; qmake $(QMAKEOPTS) libimgcnv.pro)
230        (cd src_dylib; $(MAKE))
231
232clean:
233        (cd src; $(MAKE) clean)
234        rm -rf .generated *.o *~ .qmake.stash
235        rm -rf $(LIBBIM)/.generated $(LIBBIM)/*.o $(LIBBIM)/*~ $(LIBBIM)/.qmake.stash
236        (cd $(LIBBIM); $(MAKE) clean)
237
238cleanfull:
239        (cd src; $(MAKE) clean)
240        rm -rf .generated *.o *~ .qmake.stash
241        rm -rf $(LIBBIM)/.generated $(LIBBIM)/*.o $(LIBBIM)/*~ $(LIBBIM)/.qmake.stash
242        (cd $(LIBBIM); $(MAKE) clean)   
243        (cd $(LIBVPX); $(MAKE) clean)
244        (cd $(LIBX264); $(MAKE) clean)
245        rm -rf $(FFMPEG)/ffmpeg-obj
246        rm -rf $(FFMPEG)/ffmpeg-out
247        #(cd $(FFMPEG)/ffmpeg; $(MAKE) clean)           
248
249realclean: clean
250        rm -f imgcnv
251        rm -fR imgcnv.app
252        rm -f imgcnv.dylib*
253       
254
255.FORCE: imgcnv
Note: See TracBrowser for help on using the repository browser.