* simplify the boostrap of the scripts used by the dynamic link
[scilab.git] / scilab / modules / dynamic_link / src / scripts / scicompile.sh
1 #!/bin/sh
2
3 ORIGINALLIBNAME=libsciexternal
4
5 if test ! -s Makefile.orig; then 
6         echo "The compiler detection has been performed. Please launch compilerDetection.sh before."
7         exit -1
8 fi
9
10 # Check number of parameters
11 if test $# -lt 2; then
12         echo "Syntax : $0 libname sources"
13         exit -2
14 fi
15
16 # retrieve parameters
17 LIB=$1
18 shift
19 SOURCES_TEMP=$*
20
21 # Check if files really exist and removes include files
22 for file in $SOURCES_TEMP; do
23         CFILE=`echo $file|sed -e 's|\.o$|\.c|g'`
24         FFILE=`echo $file|sed -e 's|\.o$|\.f|g'`
25         if [ ! -s $file -a -s $CFILE -a -s $FFILE ]; then 
26                 echo "Error: Cannot find $file"
27                 exit -3
28         fi
29         # It is an include file, do not build it!
30         if [ ! `echo $file|grep -i -E "(\.h$|\.hh$|\.hxx$|\.H$)"` ]; then
31                 SOURCES="$SOURCES $file"
32         fi
33 done
34
35 # Replace fake filenames to the one we want 
36 sed -e "s|libsciexternal_la_SOURCES = foo.c foo2.f foo3.cxx foo4.cpp|lib"$LIB"_la_SOURCES = $SOURCES|g" Makefile.orig > Makefile
37
38 ##┬áReplace sources by .lo file (manage also when it is at the end of the line
39 SOURCES=`echo $SOURCES|sed -e 's|\.c |\.lo |g' -e 's|\.c$|\.lo|g'`
40 SOURCES=`echo $SOURCES|sed -e 's|\.f |\.lo |g' -e 's|\.f$|\.lo|g'`
41 SOURCES=`echo $SOURCES|sed -e 's|\.cxx |\.lo |g' -e 's|\.cxx$|\.lo|g'`
42 SOURCES=`echo $SOURCES|sed -e 's|\.f90 |\.lo |g' -e 's|\.f90$|\.lo|g'`
43 SOURCES=`echo $SOURCES|sed -e 's|\.cpp |\.lo |g' -e 's|\.cpp$|\.lo|g'`
44
45 # Makefile.swap is used because there is no inline option with sed under Solaris 
46
47 ### Changes objects in the source code
48 sed -e "s|am_libsciexternal_la_OBJECTS = foo.lo foo2.lo foo3.lo foo4.lo|am_lib"$LIB"_la_OBJECTS = $SOURCES|g" Makefile > Makefile.swap
49 mv  Makefile.swap Makefile
50
51 ### Changes objects in the source code
52 sed -e "s|libsciexternal|lib"$LIB"|g" Makefile > Makefile.swap
53 mv  Makefile.swap Makefile
54
55 ###┬áRemove the dependencies computed by the system
56 # No longer used because of  --disable-dependency-tracking when calling 
57 # ./configure (comment left here : we never know)
58 #sed -e "s|^include\(.*\)Plo||" Makefile > Makefile.swap
59 #mv  Makefile.swap Makefile
60
61