2163
|
1 #! /bin/sh |
|
2 # |
|
3 # mkoctfile -- create a .oct file suitable for dynamic linking by |
|
4 # Octave. |
|
5 |
|
6 set -e |
|
7 |
|
8 if [ $# -eq 1 ]; then |
|
9 srcfile="$1" |
|
10 basnm=`echo $srcfile | sed 's,\.cc$,,'` |
|
11 objfile=$basnm.o |
|
12 octfile=$basnm.oct |
|
13 else |
|
14 echo "usage: mkoctfile file.cc" 1>&2 |
|
15 exit 1 |
|
16 fi |
|
17 |
|
18 # Configuration: these variables are filled in at configuration time. |
|
19 |
|
20 CPPFLAGS=%CPPFLAGS% |
|
21 INCFLAGS=%INCFLAGS% |
|
22 CXX=%CXX% |
|
23 CXX_VERSION=%CXX_VERSION% |
|
24 CXXFLAGS=%CXXFLAGS% |
|
25 CXXPICFLAG=%CXXPICFLAG% |
|
26 HOST_CXXFLAGS=%HOST_CXXFLAGS% |
|
27 NO_IMPLICIT_TEMPLATES=%NO_IMPLICIT_TEMPLATES% |
|
28 GCC_IEEE_FP_FLAG=%GCC_IEEE_FP_FLAG% |
|
29 |
|
30 LDFLAGS=%LDFLAGS% |
|
31 LIBFLAGS=%LIBFLAGS% |
|
32 RLD_FLAG=%RLD_FLAG% |
|
33 FLIBS=%FLIBS% |
|
34 LIBS=%LIBS% |
|
35 LEXLIB=%LEXLIB% |
|
36 CXXLIBS=%CXXLIBS% |
|
37 TERMLIBS=%TERMLIBS% |
|
38 LIBPLPLOT=%LIBPLPLOT% |
|
39 LIBDLFCN=%LIBDLFCN% |
|
40 |
|
41 # For now, leave -lglob out (glob/Makefile.in needs to be fixed to |
|
42 # install it. |
|
43 |
|
44 OCTAVE_LIBS="-loctinterp -loctave -ltinst -lcruft \ |
|
45 $LIBPLPLOT -lreadline -lkpathsea $LIBDLFCN" |
|
46 |
|
47 ALL_CXXFLAGS="$INCFLAGS $HOST_CXXFLAGS $NO_IMPLICIT_TEMPLATES \ |
|
48 $GCC_IEEE_FP_FLAG $CXXFLAGS" |
|
49 |
|
50 echo "making $objfile from $srcfile" |
|
51 |
|
52 $CXX -c $CPPFLAGS $CXXPICFLAG $ALL_CXXFLAGS $srcfile -o $objfile |
|
53 |
|
54 echo "making $octfile from $objfile" |
|
55 |
|
56 $CXX -shared -o $octfile $objfile $LIBFLAGS $RLD_FLAG $OCTAVE_LIBS $FLIBS $LEXLIB $TERMLIBS $LIBS -lg++ |