root / trunk / unity.sh

Revision 1353, 23.0 kB (checked in by glslang, 10 months ago)

+ build fix

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1#!/bin/sh
2# Copyright (c) 2007 Editopia.
3# From the script in HDRFlow - www.hdrflow.com
4# Released under the GPLv3 or later.
5# Unification of build and distribution:
6#       recurses into lib and app directories, building each in turn.
7#       updates Boost version in VC project files.
8#   updates version.
9#       builds OS/X frameworks
10
11check_status( )
12{
13        if [ $1 = 0 ]
14        then
15                echo " succeeded."
16        else
17                echo " failed. Aborting..."
18                exit 1
19        fi
20}
21
22if [ $# -eq "0" ]
23then
24        echo "usage: `basename $0` options (-evbfioxupasmd)"
25        echo "  -e ) update Boost version (Win32 only)"
26        echo "  -v ) boost old version"
27        echo "  -b ) boost new version"
28        echo "  -f ) build OS/X frameworks"
29        echo "  -x ) framework version"
30        echo "  -o ) output_directory"
31        echo "  -i ) install name prefix"
32        echo "  -u ) build OS/X umbrella framework"
33        echo "  -p ) build installer"
34        echo "  -s ) strip symbols"
35        echo "  -d ) update OpenLibraries version"
36        echo
37        echo "          Examples:"
38        echo "                  sh ./unity.sh -fu - build OS/X umbrella framework"
39        exit 1
40fi
41
42PLATFORM=`uname -s`
43
44update_boost_version=0
45boost_old_version=1_34
46boost_new_version=1_34_1
47
48update_olibs_version=0
49olibs_old_version=0_4_0
50olibs_new_version=0_5_0
51
52build_frameworks=0
53build_umbrella=0
54build_installer=0
55build_application=0
56build_maya_plugins=0
57framework_version="A"
58install_name_prefix="/Library/Frameworks"
59strip_symbols=0
60
61output_directory="."
62
63openlibraries_configure_options="--with-boostprefix=/usr/local --with-boostversion=1_34_1 --with-pythonversion=2.3 --with-boostthreadruntime=mt --enable-universalbinaries --disable-dependency-tracking --with-glewprefix=/usr/local --with-tiffprefix=/usr/local"
64
65while getopts "v:b:efi:o:x:upasmd" option
66do
67        case $option in
68                e ) update_boost_version=1;;
69                v ) boost_old_version="$OPTARG";;
70                b ) boost_new_version="$OPTARG";;
71                f ) build_frameworks=1;;
72                x ) framework_version="$OPTARG";;
73                o ) output_directory="$OPTARG";;
74                i ) install_name_prefix="$OPTARG";;
75                u ) build_umbrella=1;;
76                p ) build_installer=1;;
77                a ) build_application=1;;
78                s ) strip_symbols=1;;
79                m ) build_maya_plugins=1;;
80                d ) update_olibs_version=1;;
81        esac
82done
83
84shift $(($OPTIND - 1))
85
86if [ "$update_boost_version" -eq 1 ]
87then
88        find . -type f -name '*.vcproj' -print | while read i
89        do      cp $i $i.unity.bak &&
90                sed -e "s|boost-$boost_old_version|boost-$boost_new_version|g" -e "s|$boost_old_version.lib|$boost_new_version.lib|g" $i.unity.bak > $i &&
91                rm -f $i.unity.bak
92        done
93fi
94
95if [ "$update_olibs_version" -eq 1 ]
96then
97        find . -type f -name '*.vcproj' -print | while read i
98        do      cp $i $i.unity.bak &&
99                sed -e "s|-$olibs_old_version.dll|-$olibs_new_version.dll|g" -e "s|$olibs_old_version.lib|$olibs_new_version.lib|g" $i.unity.bak > $i &&
100                rm -f $i.unity.bak
101        done
102
103        find . -type f -name '*.opl' -print | while read i
104        do      cp $i $i.unity.bak &&
105                sed -e "s|-$olibs_old_version.dll|-$olibs_new_version.dll|g" $i.unity.bak > $i &&
106                rm -f $i.unity.bak
107        done
108       
109        find lib/openlibraries -type f -name 'config.hpp' -print | while read i
110        do      cp $i $i.unity.bak &&
111                sed -e "s|$olibs_old_version|$olibs_new_version|g" $i.unity.bak > $i &&
112                rm -f $i.unity.bak
113        done
114fi
115
116make_framework_dir( )
117{
118        framework_dir="$output_directory/$1.framework"
119        mkdir -p "$framework_dir" &&
120        mkdir -p "$framework_dir/Versions/$framework_version/Headers" &&
121        mkdir -p "$framework_dir/Versions/$framework_version/PlugIns" &&
122        mkdir -p "$framework_dir/Versions/$framework_version/Resources/English.lproj/Documentation" &&
123        mkdir -p "$framework_dir/Versions/$framework_version/Resources/Portuguese.lproj/Documentation" &&
124        mkdir -p "$framework_dir/Versions/$framework_version/Libraries" &&
125        ln -sf "$framework_version" "$framework_dir/Versions/Current" &&
126        ln -sf "Versions/Current/Headers" "$framework_dir/Headers" &&
127        ln -sf "Versions/Current/PlugIns" "$framework_dir/PlugIns" &&
128        ln -sf "Versions/Current/Resources" "$framework_dir/Resources" &&
129        ln -sf "Versions/Current/Libraries" "$framework_dir/Libraries"
130}
131
132make_framework_headers( )
133{
134        tl=`cat -n $1/Makefile.am | cut -f 1 | tail -n 1` &&
135        hl=`cat -n $1/Makefile.am | grep HEADERS | cut -f 1` &&
136        headers=`cat $1/Makefile.am | tail -n $((tl-hl)) | cut -f 2` &&
137        for i in $headers
138        do      basedir=`dirname $1/$i | sed -e "s|$1||g"` &&
139                mkdir -p $2.framework/Versions/Current/Headers/$basedir &&
140                echo $1 > header_temp.$$
141                header_path_first=`cut -d '/' -f 5 header_temp.$$`
142                header_path_second=`cut -d '/' -f 6 header_temp.$$`
143                header_path="$header_path_first/$header_path_second"
144       
145                if [ -r $1/$i ]
146                then
147                        cp $1/$i current_header.$$
148       
149                        deplist="openpluginlib/pl openimagelib/il openmedialib/ml openassetlib/al openobjectlib/sg"
150                        for j in $deplist
151                        do      case $j in
152                                openpluginlib* )
153                                        sed -e "s|$j|OpenPluginLib|g" -i '' current_header.$$ > $2.framework/Versions/Current/Headers/$i
154                                        ;;
155                                openimagelib* )
156                                        sed -e "s|$j|OpenImageLib|g" -i '' current_header.$$ > $2.framework/Versions/Current/Headers/$i
157                                        ;;
158                                openmedialib* )
159                                        sed -e "s|$j|OpenMediaLib|g" -i '' current_header.$$ > $2.framework/Versions/Current/Headers/$i
160                                        ;;
161                                openobjectlib* )
162                                        sed -e "s|$j|OpenObjectLib|g" -i '' current_header.$$ > $2.framework/Versions/Current/Headers/$i
163                                        ;;
164                                openassetlib* )
165                                        sed -e "s|$j|OpenAssetLib|g" -i '' current_header.$$ > $2.framework/Versions/Current/Headers/$i
166                                        ;;
167                                esac
168                        done
169
170                        sed -e "s|$header_path|$2|g" current_header.$$ > $2.framework/Versions/Current/Headers/$i
171               
172                        rm current_header.$$
173                fi
174               
175                rm header_temp.$$
176        done   
177}
178
179make_framework_libs( )
180{
181        libs=`ls $2/.libs/*.?.dylib`
182        for i in $libs
183        do      if [ ! -L $i ]
184                then    ln -sf Versions/Current/$1 $1.framework/$1 &&
185                                cp $i $1.framework/Versions/Current/$1 &&
186                                install_name_tool -id $install_name_prefix/$1.framework/Versions/$framework_version/$1 $1.framework/$1
187                fi
188        done   
189}
190
191make_framework_python_libs( )
192{
193        if [ -d $2 ]
194        then
195                libs=`ls $2/.libs/*.?.dylib`
196                for i in $libs
197                do      if [ ! -L $i ]
198                        then    cp $i $1.framework/Versions/$framework_version/PlugIns/$1.so &&
199                                        install_name_tool -id $install_name_prefix/$1.framework/Versions/$framework_version/$1 $1.framework/$1
200                        fi
201                done
202        fi
203}
204
205make_framework_deps( )
206{
207        deplist="GLEW boost"
208        for i in $deplist
209        do      depname=`otool -L $1.framework/$1 | grep $i | cut -d ' ' -f 1`
210                for j in $depname
211                do      depdir=`dirname $j`
212                        libname="$j"
213                        if [ $depdir == "." ]
214                        then    libname="/usr/local/lib/$depdir/$j"
215                        fi
216                        base=`basename $j`
217                        cp $libname $1.framework/Versions/$framework_version/Libraries &&
218                        install_name_tool -id $install_name_prefix/$1.framework/Versions/$framework_version/$base $1.framework/Versions/$framework_version/Libraries/$base &&
219                        install_name_tool -change $j $install_name_prefix/$1.framework/Versions/$framework_version/Libraries/$base $1.framework/$1
220                done
221        done
222}
223
224make_framework_resources( )
225{
226        cp ./Info.plist.template $1.framework/Resources/Info.plist &&
227        cp ./InfoPlist.strings.template $1.framework/Resources/English.lproj/InfoPlist.strings
228
229        if [ -d "$2/../plugins" ]
230        then    plugins=`ls $2/../plugins`
231                        for i in $plugins
232                        do      if [ -d $2/../plugins/$i/.libs ]
233                                then cp $2/../plugins/$i/*.opl $1.framework/PlugIns
234                                fi
235                        done
236        fi
237}
238
239make_framework_libs_deps( )
240{
241        deplist="/usr/local/lib"
242        for i in $deplist
243        do      libs=`ls $1.framework/Libraries`
244                for j in $libs
245                do      if [ ! -L $1.framework/Versions/$framework_version/Libraries/$j ]
246                        then    depname=`otool -L $1.framework/Libraries/$j | grep $i | cut -d ' ' -f 1`
247                                        for k in $depname
248                                        do      base=`basename $k`
249                                                if [ ! -e $1.framework/Versions/$framework_version/Libraries/$base ]
250                                                then    cp $k $1.framework/Versions/$framework_version/Libraries
251                                                                install_name_tool -id $install_name_prefix/$1.framework/Versions/$framework_version/$base \
252                                                                        $1.framework/Versions/$framework_version/Libraries/$base
253                                                fi
254                                                install_name_tool -change $k \
255                                                        $install_name_prefix/$1.framework/Versions/$framework_version/Libraries/$base \
256                                                        $1.framework/Versions/$framework_version/Libraries/$j
257                                        done
258                        fi
259                done
260        done
261}
262
263make_framework_plugins_deps( )
264{
265        deplist="GLEW boost /usr/local/lib"
266        for i in $deplist
267        do      plugins=`ls $1.framework/PlugIns`
268                for j in $plugins
269                do      if [ ! -L $1.framework/PlugIns/$j ]
270                        then    install_name_tool -id $install_name_prefix/$1.framework/Versions/$framework_version/$j \
271                                                $1.framework/Versions/$framework_version/PlugIns/$j
272                                        depname=`otool -L $1.framework/PlugIns/$j | grep $i | cut -d ' ' -f 1`
273                                        for k in $depname
274                                        do      depdir=`dirname $k`
275                                                libname="$k"
276                                                if [ $depdir == "." ]
277                                                then    libname="/usr/local/lib/$depdir/$k"
278                                                fi
279                                                base=`basename $k`
280                                                if [ ! -e $1.framework/Versions/$framework_version/Libraries/$base ]
281                                                then
282                                                        if [ -e $libname ]
283                                                        then    cp $libname $1.framework/Versions/$framework_version/Libraries
284                                                                        install_name_tool -id $install_name_prefix/$1.framework/Versions/$framework_version/$base \
285                                                                                $1.framework/Versions/$framework_version/Libraries/$base
286                                                                        install_name_tool -change $k \
287                                                                                $install_name_prefix/$1.framework/Versions/$framework_version/Libraries/$base $1.framework/$1
288                                                        fi
289                                                fi
290                                                install_name_tool -change $k \
291                                                        $install_name_prefix/$1.framework/Versions/$framework_version/Libraries/$base \
292                                                        $1.framework/Versions/$framework_version/PlugIns/$j
293                                        done
294                        fi
295                done
296        done
297}
298
299make_framework_plugins( )
300{
301        if [ -d "$1/../plugins" ]
302        then    plugins=`ls $1/../plugins`
303                        for i in $plugins
304                        do      if [ -d $1/../plugins/$i/.libs ]
305                                then    cp -R $1/../plugins/$i/.libs/*.dylib $2.framework/PlugIns
306                                fi
307                        done
308        fi
309}
310
311make_framework_interdeps( )
312{
313        deplist="openpluginlib_pl openimagelib_il openmedialib_ml openassetlib_al openobjectlib_sg"
314        for i in $deplist
315        do      plugins=`ls $1.framework/PlugIns/*.* 2> /dev/null`
316                for j in $plugins
317                do      depname=`otool -L $j | grep $i | cut -d ' ' -f 1`
318                        if [ ! -z $depname ]
319                        then    case $i in
320                                                openpluginlib_pl )
321                                                        install_name_tool -change $depname \
322                                                                $install_name_prefix/OpenPluginLib.framework/Versions/$framework_version/OpenPluginLib $j
323                                                ;;
324                                                openimagelib_il )
325                                                        install_name_tool -change $depname \
326                                                                $install_name_prefix/OpenImageLib.framework/Versions/$framework_version/OpenImageLib $j
327                                                ;;
328                                                openmedialib_ml )
329                                                        install_name_tool -change $depname \
330                                                                $install_name_prefix/OpenMediaLib.framework/Versions/$framework_version/OpenMediaLib $j
331                                                ;;
332                                                openobjectlib_sg )
333                                                        install_name_tool -change $depname \
334                                                                $install_name_prefix/OpenObjectLib.framework/Versions/$framework_version/OpenObjectLib $j
335                                                ;;
336                                                openassetlib_al )
337                                                        install_name_tool -change $depname \
338                                                                $install_name_prefix/OpenAssetLib.framework/Versions/$framework_version/OpenAssetLib $j
339                                                ;;
340                                        esac
341                        fi
342                done
343        done   
344}
345
346make_framework( )
347{
348    rm -rf $1.framework
349        make_framework_dir $1 &&
350        make_framework_headers $2 $1 &&
351        make_framework_libs $1 $2 &&
352        make_framework_python_libs $1 "$2/../py" &&
353        make_framework_deps $1 &&
354        make_framework_plugins $2 $1 &&
355        make_framework_interdeps $1 &&
356        make_framework_plugins_deps $1 &&
357        make_framework_libs_deps $1 &&
358        make_framework_resources $1 $2
359}
360
361make_umbrella_framework_deps( )
362{
363        deplist="openpluginlib_pl openimagelib_il openmedialib_ml openassetlib_al openobjectlib_sg"
364        for i in $deplist
365        do      depname=`otool -L $1 | grep $i | cut -d ' ' -f 1`
366                if [ ! -z $depname ]
367                then    case $i in
368                                        openpluginlib_pl )
369                                                install_name_tool -change $depname \
370                                                        "$install_name_prefix"/OpenLibraries.framework/Versions/$framework_version/Frameworks/OpenPluginLib.framework/Versions/$framework_version/OpenPluginLib \
371                                                        $1                                                     
372                                        ;;
373                                        openimagelib_il )
374                                                install_name_tool -change $depname \
375                                                        "$install_name_prefix"/OpenLibraries.framework/Versions/$framework_version/Frameworks/OpenImageLib.framework/Versions/$framework_version/OpenImageLib \
376                                                        $1                                                     
377                                        ;;
378                                        openmedialib_ml )
379                                                install_name_tool -change $depname \
380                                                        "$install_name_prefix"/OpenLibraries.framework/Versions/$framework_version/Frameworks/OpenMediaLib.framework/Versions/$framework_version/OpenMediaLib \
381                                                        $1                                     
382                                        ;;
383                                        openobjectlib_sg )
384                                                install_name_tool -change $depname \
385                                                        "$install_name_prefix"/OpenLibraries.framework/Versions/$framework_version/Frameworks/OpenObjectLib.framework/Versions/$framework_version/OpenObjectLib \
386                                                        $1                                     
387                                        ;;
388                                        openassetlib_al )
389                                                install_name_tool -change $depname \
390                                                        "$install_name_prefix"/OpenLibraries.framework/Versions/$framework_version/Frameworks/OpenAssetLib.framework/Versions/$framework_version/OpenAssetLib \
391                                                        $1                                     
392                                        ;;
393                                esac
394                fi
395        done
396}
397
398make_umbrella_framework_python_deps( )
399{
400        install_name_tool -id $install_name_prefix/OpenLibraries.framework/Frameworks/$1.framework/Versions/A/PlugIns/$1.so $2
401        fmwklist="OpenPluginLib OpenImageLib OpenMediaLib OpenAssetLib OpenObjectLib"
402        for i in $fmwklist
403        do      install_name_tool -change $install_name_prefix/$i.framework/Versions/A/$i \
404                        $install_name_prefix/OpenLibraries.framework/Frameworks/$i.framework/Versions/A/$i $2
405        done
406}
407
408update_umbrella_framework_install_names( )
409{
410        install_name_tool -id $install_name_prefix/OpenLibraries.framework/Versions/A/Frameworks/$1.framework/Versions/A/$1 \
411                        OpenLibraries.framework/Versions/A/Frameworks/$1.framework/$1
412                       
413        libs=`ls OpenLibraries.framework/Versions/A/Frameworks/$1.framework/Versions/A/Libraries/*.dylib`
414        for i in $libs
415        do      install_name_tool -id $install_name_prefix/OpenLibraries.framework/Versions/A/Frameworks/$1.framework/Versions/A/Libraries/`basename $i` $i
416        done
417       
418        if [ $1 != "OpenPluginLib" ]
419        then libs=`ls OpenLibraries.framework/Versions/A/Frameworks/$1.framework/Versions/A/PlugIns/*.dylib`
420                 for i in $libs
421                 do     install_name_tool -id $install_name_prefix/OpenLibraries.framework/Versions/A/Frameworks/$1.framework/Versions/A/PlugIns/`basename $i` $i
422                 done
423                 
424                 depnames="$install_name_prefix/OpenPluginLib.framework $install_name_prefix/OpenImageLib.framework $install_name_prefix/OpenMediaLib.framework $install_name_prefix/OpenAssetLib.framework $install_name_prefix/OpenObjectLib.framework"
425                 for i in $libs
426                 do     for j in $depnames
427                        do      deps=`otool -L $i | grep $j | cut -d ' ' -f 1`
428                                for k in $deps
429                                do      if [ `basename $k` != "OpenPluginLib" ] && [ `basename $k` != "OpenImageLib" ] && [ `basename $k` != "OpenMediaLib" ] && [ `basename $k` != "OpenAssetLib" ] && [ `basename $k` != "OpenObjectLib" ]
430                                        then install_name_tool -change $k \
431                                                        $install_name_prefix/OpenLibraries.framework/Versions/A/Frameworks/$1.framework/Versions/A/Libraries/`basename $k` $i
432                                        else install_name_tool -change $k \
433                                                        $install_name_prefix/OpenLibraries.framework/Versions/A/Frameworks/`basename $k`.framework/Versions/A/`basename $k` $i
434                                        fi
435                                done
436                        done
437                 done
438        fi
439       
440        libs=`ls OpenLibraries.framework/Versions/A/Frameworks/$1.framework/Versions/A/Libraries/*.dylib`
441        for i in $libs
442        do      deps=`otool -L $i | grep $install_name_prefix/$1.framework | cut -d ' ' -f 1`
443                for k in $deps
444                do      install_name_tool -change $k \
445                                        $install_name_prefix/OpenLibraries.framework/Versions/A/Frameworks/$1.framework/Versions/A/Libraries/`basename $k` $i
446                done
447        done
448}
449
450make_umbrella_framework( )
451{
452        rm -rf "./OpenLibraries.framework"
453        make_framework "OpenLibraries" "./src/umbrella_framework"
454       
455        framework_dir="$output_directory/OpenLibraries.framework"
456        mkdir -p "$framework_dir/Versions/$framework_version/Frameworks"
457        ln -sf "Versions/Current/Frameworks" "$framework_dir/Frameworks"
458       
459        cp -R "./OpenPluginLib.framework" "$framework_dir/Versions/$framework_version/Frameworks"
460        cp -R "./OpenImageLib.framework" "$framework_dir/Versions/$framework_version/Frameworks"
461        cp -R "./OpenMediaLib.framework" "$framework_dir/Versions/$framework_version/Frameworks"
462        cp -R "./OpenAssetLib.framework" "$framework_dir/Versions/$framework_version/Frameworks"
463        cp -R "./OpenObjectLib.framework" "$framework_dir/Versions/$framework_version/Frameworks"
464       
465        make_umbrella_framework_deps "OpenLibraries.framework/OpenLibraries" &&
466        make_umbrella_framework_deps "OpenLibraries.framework/Frameworks/OpenPluginLib.framework/PlugIns/OpenPluginLib.so" &&
467        make_umbrella_framework_deps "OpenLibraries.framework/Frameworks/OpenImageLib.framework/PlugIns/OpenImageLib.so" &&
468        make_umbrella_framework_deps "OpenLibraries.framework/Frameworks/OpenMediaLib.framework/PlugIns/OpenMediaLib.so" &&
469        make_umbrella_framework_deps "OpenLibraries.framework/Frameworks/OpenAssetLib.framework/PlugIns/OpenAssetLib.so" &&
470        make_umbrella_framework_deps "OpenLibraries.framework/Frameworks/OpenObjectLib.framework/PlugIns/OpenObjectLib.so"
471
472        deplist="GLEW boost"
473        for i in $deplist
474        do      fmwklist="OpenPluginLib OpenImageLib OpenMediaLib OpenAssetLib OpenObjectLib"
475            for j in $fmwklist
476                do      depname=`otool -L OpenLibraries.framework/Frameworks/$j.framework/$j | grep $i | cut -d ' ' -f 1`
477                        for k in $depname
478                        do  base=`basename $k`
479                                install_name_tool -change $k \
480                                        $install_name_prefix/OpenLibraries.framework/Versions/$framework_version/Libraries/$base \
481                                        OpenLibraries.framework/Versions/$framework_version/Frameworks/$j.framework/$j                         
482                        done                   
483                done
484                       
485                for j in $fmwklist
486                do      depname=`otool -L OpenLibraries.framework/Frameworks/$j.framework/PlugIns/$j.so | grep $i | cut -d ' ' -f 1`
487                        for k in $depname
488                        do      base=`basename $k`
489                                install_name_tool -change $k \
490                                        $install_name_prefix/OpenLibraries.framework/Versions/$framework_version/Libraries/$base \
491                                        OpenLibraries.framework/Frameworks/$j.framework/PlugIns/$j.so
492                        done
493                done
494               
495                for j in $fmwklist
496                do      if [ $j == "OpenPluginLib" ]
497                        then continue
498                        fi
499                        libraries=`ls OpenLibraries.framework/Frameworks/$j.framework/PlugIns/*.dylib`
500                        for lib in $libraries
501                        do      depname=`otool -L $lib | grep $i | cut -d ' ' -f 1`
502                                for k in $depname
503                                do      base=`basename $k`
504                                        install_name_tool -change $k \
505                                                $install_name_prefix/OpenLibraries.framework/Versions/$framework_version/Libraries/$base $lib
506                                done
507                        done
508                done
509        done
510       
511        update_umbrella_framework_install_names "OpenPluginLib"
512        update_umbrella_framework_install_names "OpenImageLib"
513        update_umbrella_framework_install_names "OpenMediaLib"
514        update_umbrella_framework_install_names "OpenAssetLib"
515        update_umbrella_framework_install_names "OpenObjectLib"
516               
517        make_umbrella_framework_python_deps "OpenPluginLib" "OpenLibraries.framework/Frameworks/OpenPluginLib.framework/PlugIns/OpenPluginLib.so"
518        make_umbrella_framework_python_deps "OpenImageLib" "OpenLibraries.framework/Frameworks/OpenImageLib.framework/PlugIns/OpenImageLib.so"
519        make_umbrella_framework_python_deps "OpenMediaLib" "OpenLibraries.framework/Frameworks/OpenMediaLib.framework/PlugIns/OpenMediaLib.so"
520        make_umbrella_framework_python_deps "OpenAssetLib" "OpenLibraries.framework/Frameworks/OpenAssetLib.framework/PlugIns/OpenAssetLib.so"
521       
522        # Umbrella Framework Header
523        deplist="openpluginlib/pl openimagelib/il openmedialib/ml openassetlib/al"
524        for i in $deplist
525        do      case $i in
526                        openpluginlib* )
527                                sed -e "s|$i|OpenPluginLib|g" -i '' OpenLibraries.framework/Versions/$framework_version/Headers/openlibraries.hpp
528                                ;;
529                        openimagelib* )
530                                sed -e "s|$i|OpenImageLib|g" -i '' OpenLibraries.framework/Versions/$framework_version/Headers/openlibraries.hpp
531                                ;;
532                        openmedialib* )
533                                sed -e "s|$i|OpenMediaLib|g" -i '' OpenLibraries.framework/Versions/$framework_version/Headers/openlibraries.hpp
534                                ;;
535                        openassetlib* )
536                                sed -e "s|$i|OpenAssetLib|g" -i '' OpenLibraries.framework/Versions/$framework_version/Headers/openlibraries.hpp
537                                ;;
538                esac
539        done
540       
541        check_status $?
542}
543
544make_installer( )
545{
546    /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker -build -proj $1.pmproj -p $1.pkg &&
547        hdiutil create -ov -srcfolder $1.pkg $1.dmg -fs HFS+ -volname "$1"
548}
549
550strip_framework_symbols( )
551{
552        if [ "$strip_symbols" -eq 1 ]
553        then
554                echo -n "        Stripping symbols..."
555                strip -x OpenLibraries.framework/OpenLibraries &&
556                strip -x OpenLibraries.framework/Libraries/* &&
557                strip -x OpenLibraries.framework/Frameworks/OpenPluginLib.framework/OpenPluginLib &&
558                strip -x OpenLibraries.framework/Frameworks/OpenPluginLib.framework/Libraries/*.dylib &&
559                strip -x OpenLibraries.framework/Frameworks/OpenPluginLib.framework/PlugIns/*.so &&
560                strip -x OpenLibraries.framework/Frameworks/OpenImageLib.framework/OpenImageLib &&
561                strip -x OpenLibraries.framework/Frameworks/OpenImageLib.framework/Libraries/*.dylib &&
562                strip -x OpenLibraries.framework/Frameworks/OpenImageLib.framework/PlugIns/*.so &&
563                strip -x OpenLibraries.framework/Frameworks/OpenImageLib.framework/PlugIns/*.dylib &&
564                strip -x OpenLibraries.framework/Frameworks/OpenMediaLib.framework/OpenMediaLib &&
565                strip -x OpenLibraries.framework/Frameworks/OpenMediaLib.framework/Libraries/*.dylib &&
566                strip -x OpenLibraries.framework/Frameworks/OpenMediaLib.framework/PlugIns/*.so &&
567                strip -x OpenLibraries.framework/Frameworks/OpenMediaLib.framework/PlugIns/*.dylib &&
568                strip -x OpenLibraries.framework/Frameworks/OpenAssetLib.framework/OpenAssetLib &&
569                strip -x OpenLibraries.framework/Frameworks/OpenAssetLib.framework/Libraries/*.dylib &&
570                strip -x OpenLibraries.framework/Frameworks/OpenAssetLib.framework/PlugIns/*.so &&
571                strip -x OpenLibraries.framework/Frameworks/OpenAssetLib.framework/PlugIns/*.dylib &&
572                strip -x OpenLibraries.framework/Frameworks/OpenObjectLib.framework/OpenObjectLib &&
573                strip -x OpenLibraries.framework/Frameworks/OpenObjectLib.framework/Libraries/*.dylib &&
574                strip -x OpenLibraries.framework/Frameworks/OpenObjectLib.framework/PlugIns/*.dylib
575
576                check_status $?
577        fi
578}
579
580make_framework_libraries_unique( )
581{
582        libraries=`ls OpenLibraries.framework/Versions/$framework_version/Libraries/*.dylib`
583        for i in $libraries
584        do      install_name_tool -id $install_name_prefix/OpenLibraries.framework/Versions/$framework_version/Libraries/`basename $i` $i
585                if [ -e OpenLibraries.framework/Versions/$framework_version/Frameworks/$1.framework/Versions/$framework_version/Libraries/`basename $i` ]
586                then rm -rf OpenLibraries.framework/Versions/$framework_version/Frameworks/$1.framework/Versions/$framework_version/Libraries/`basename $i`
587                fi
588        done
589}
590
591if [ "$build_frameworks" -eq 1 ] && [ "$PLATFORM" = "Darwin" ]
592then
593        echo "Building OS/X Frameworks..."
594       
595        echo "    OpenPluginLib..." &&
596        make_framework "OpenPluginLib" "./src/openpluginlib/pl" &&
597        echo "    OpenImageLib..." &&
598        make_framework "OpenImageLib" "./src/openimagelib/il" &&
599        echo "    OpenMediaLib..." &&
600        make_framework "OpenMediaLib" "./src/openmedialib/ml" &&
601        echo "    OpenAssetLib..." &&
602        make_framework "OpenAssetLib" "./src/openassetlib/al" &&
603        echo -n "    OpenObjectLib..." &&
604        make_framework "OpenObjectLib" "./src/openobjectlib/sg"
605        check_status $?
606       
607        if [ "$build_umbrella" -eq 1 ]
608        then  echo "    Building Umbrella Framework..."
609                  echo -n "        OpenLibraries..."
610                  make_umbrella_framework &&
611                  strip_framework_symbols &&
612                  make_framework_libraries_unique "OpenPluginLib" &&
613                  make_framework_libraries_unique "OpenImageLib" &&
614                  make_framework_libraries_unique "OpenMediaLib" &&
615                  make_framework_libraries_unique "OpenAssetLib" &&
616                  make_framework_libraries_unique "OpenObjectLib"
617                  check_status $?
618                 
619                  if [ x"$USER" = x"root" ]
620                  then chown -Rh root:admin OpenLibraries.framework
621                  fi
622        fi
623       
624        if [ "$build_installer" -eq 1 ]
625        then    echo "    Building packages..."                 
626                        make_installer OpenLibraries.framework
627                        check_status $?
628        fi
629fi
630
631exit 0
Note: See TracBrowser for help on using the browser.