posaune
[projects.git] / tools / make / c_configure.sh
index 011d048..246f1ed 100755 (executable)
@@ -13,12 +13,25 @@ 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
@@ -34,11 +47,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 +68,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
 }
 
@@ -66,9 +91,19 @@ function add_library {
 # parameter:
 # $1: main directory
 # $2: library name (without l or lib )
+# $3: library path (optional)
 
        src=$(pwd)
        echo "EXTLIB += -l$2" >> $1/make.pre
+       if [ -n "$3" ]
+       then
+               lib_path=$3
+               if [ ${lib_path:0:1} != "/" ]
+               then
+                       lib_path="$src/$lib_path"
+               fi
+               echo "LDFLAGS += -L$lib_path" >> $1/make.pre
+       fi
 }
 
 function append_library {
@@ -78,13 +113,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
+
 }