posaune
[projects.git] / tools / make / c_configure.sh
index 9f21ef1..57b395e 100755 (executable)
@@ -13,18 +13,38 @@ function check_arch {
 
 function install_cpp_make {
 # $1: dir to install
+# $2 (opt): if set to "lib" the fPIC flag is added
+
+       # find makefile
+       if [ -f /usr/share/mbuild/cpp.make ]
+       then
+               makefile=/usr/share/mbuild/cpp.make
+       elif [ -f $cwd/projects/tools/make/cpp.make ]
+       then
+               makefile=$cwd/projects/tools/make/cpp.make
+       else
+               echo "cannot find cpp makefile." >&2
+               exit 1
+       fi
        src=$(pwd);
        pushd $1
        if [ -f makefile ]; then rm makefile; fi
        if [ -L makefile ]; then rm makefile; fi
        if [ -f make.post ]; then rm make.post; fi
-       ln -s $cwd/projects/tools/make/cpp.make makefile
+       ln -s $makefile makefile
        echo "SOURCE = \\" > make.pre
        for file in $(ls *.cpp)
        do
                echo "  $file \\" >> make.pre
        done
        echo >> make.pre
+       if [ "$DEB_HOST_ARCH" != "$DEB_BUILD_ARCH" ]
+       then
+               #cross compiling
+               echo "PREFIX = $DEB_HOST_GNU_TYPE-" >> make.pre
+               echo "SYSROOT = --sysroot=$HOME/cross" >> make.pre
+       fi
+
        if [ "$ARCH" = "armel" ]
        then
                echo "CXX = arm-linux-gnueabi-g++" >> make.pre
@@ -34,11 +54,18 @@ function install_cpp_make {
        else
                echo "CXXFLAGS += -std=c++0x" >> make.pre
        fi
+       
+       # compilation of libraries need fPIC flag
+       if [ "$2" == "lib" ]
+       then
+               echo "CXXFLAGS += -fPIC" >> make.pre
+       fi
+
        popd
 }
 
-function append_dependency {
-# adds another drectory, where a c++ compile is performed
+function append_dependency_common {
+# common part of append_dependency and append_library
 # parameter:
 # $1: main directory
 # $2: dependency directory
@@ -48,6 +75,11 @@ function append_dependency {
        echo "DEPS += $3" >> $1/make.pre
        echo "$3:" >> $1/make.post
        echo "  cd $src/$2 && make TARGET=$3" >> $1/make.post
+}
+
+function append_dependency {
+# adds another drectory, where a c++ compile is performed
+       append_dependency_common $*
        echo "" >> $1/make.post
 }
 
@@ -88,13 +120,12 @@ function append_library {
 # $2: dependency directory
 # $3: dependency artefact
 
-       src=$(pwd)
-       echo "DEPS += $3" >> $1/make.pre
-       echo "LDLIBS += $3" >> $1/make.pre
-       echo "CXXFLAGS += -I$src/$2" >> $1/make.pre
-       echo "$3:" >> $1/make.post
-       echo "  cd $src/$2 && make TARGET=$3" >> $1/make.post
+       append_dependency_common $*
        echo "  ln -sf $src/$2/$3 ." >> $1/make.post
        echo "" >> $1/make.post
+
+       echo "LDLIBS += $3" >> $1/make.pre
+       echo "CXXFLAGS += -I$src/$2" >> $1/make.pre
+
 }