#! /bin/sh # Usage: spmkrs <output file> \ # [+c <list of C files>] \ # [+o <list of object files>] \ # [+l <list of libraries>] \ # [+r <resources>] outfile=$1 cfiles= libraries= rnames= rfiles= rlibs= shift # Collect file names while [ "$1" ] ; do if [ "$1" = "+c" ] ; then pref=c elif [ "$1" = "+o" ] ; then pref=o elif [ "$1" = "+l" ] ; then pref=l elif [ "$1" = "+r" ] ; then pref=r elif [ $pref = c ] ; then cfiles="$cfiles $1" elif [ $pref = o ] ; then ofiles="$ofiles $1" elif [ $pref = l ] ; then libraries="$libraries $1" elif [ $pref = r ] ; then case $1 in # Suffixed resource *.s.o | *.so) rfile=$1 ;; # Unsuffixed resource, prefer *.s.o (i.e. static) if both exist *) if [ -r $1.s.o ] ; then rfile=$1.s.o else rfile=$1.so fi ;; esac case $rfile in *.s.o) rname=`basename $rfile .s.o` rlibs="$rlibs `/usr/local/lib/sicstus3/bin/bin/spxtrlib $rfile`" ;; *.so) rname=`basename $rfile .so` ;; esac if [ $rnames ] ; then rnames="$rnames,$rname" else rnames=$rname fi rfiles="$rfiles $rfile" fi shift done rtable=`/usr/local/lib/sicstus3/bin/bin/sptmp`.c prtable=\'$rtable\' echo "prolog:prepare_resource_table([$rnames],$prtable). " | /usr/local/lib/sicstus3/sicstus -f # Here C-files, object files and libraries are compiled and liked with # the runtime kernel to an executable cc -shared -O3 -fomit-frame-pointer -m486 \ -malign-loops=2 -malign-jumps=2 -malign-functions=2 \ /usr/local/lib/sicstus3/bin/bin/runtime.o $rtable $cfiles \ -I/usr/local/lib/sicstus3/include \ -I/usr/local/jdk1.1.3/include \ -I/usr/local/jdk1.1.3/include/genunix \ $ofiles $rfiles $rlibs $libraries -rdynamic -ldl -lm -o ${outfile} /bin/rm -f $rtable |
Java Native Method Interface に関する設定は、太字になってるところです。