fix user c predicates
fix Makefiles to handle case where so is o. git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@183 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
b2934a5aeb
commit
5682ce7622
@ -5686,7 +5686,7 @@ absmi(int inp)
|
|||||||
saveregs();
|
saveregs();
|
||||||
save_machine_regs();
|
save_machine_regs();
|
||||||
|
|
||||||
SREG = (CELL *) YapExecute((CPredicate)(((PredEntry *)p)->CodeOfPred));
|
SREG = (CELL *) YapExecute((CPredicate)(((PredEntry *)p)->TrueCodeOfPred));
|
||||||
}
|
}
|
||||||
|
|
||||||
restore_machine_regs();
|
restore_machine_regs();
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
<h2>Yap-4.3.20:</h2>
|
<h2>Yap-4.3.20:</h2>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>FIXED: create DLs even when you don't need .so.</li>
|
||||||
<li>FIXED: abolish/1.</li>
|
<li>FIXED: abolish/1.</li>
|
||||||
<li>NEW: try to make module system really compatible.</li>
|
<li>NEW: try to make module system really compatible.</li>
|
||||||
<li>CLEANUP: don't use state of Pred.</li>
|
<li>CLEANUP: don't use state of Pred.</li>
|
||||||
|
10
configure.in
10
configure.in
@ -89,7 +89,7 @@ then
|
|||||||
;;
|
;;
|
||||||
sparc*)
|
sparc*)
|
||||||
case "$target_os" in
|
case "$target_os" in
|
||||||
*solaris2*|*solaris3*|*sunos5*|*sunos6*)
|
*solaris[2-9]*)
|
||||||
CFLAGS="-mno-app-regs -DOPTIMISE_ALL_REGS_FOR_SPARC=1 $CFLAGS"
|
CFLAGS="-mno-app-regs -DOPTIMISE_ALL_REGS_FOR_SPARC=1 $CFLAGS"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -218,6 +218,7 @@ AC_SUBST(SHLIB_CFLAGS)
|
|||||||
dnl suffix for loadable binary (.so,.dll,.o)
|
dnl suffix for loadable binary (.so,.dll,.o)
|
||||||
AC_SUBST(SHLIB_SUFFIX)
|
AC_SUBST(SHLIB_SUFFIX)
|
||||||
dnl how to call the loader
|
dnl how to call the loader
|
||||||
|
AC_SUBST(DO_SECOND_LD)
|
||||||
AC_SUBST(SHLIB_LD)
|
AC_SUBST(SHLIB_LD)
|
||||||
dnl makefile target for building YAP library or dll
|
dnl makefile target for building YAP library or dll
|
||||||
AC_SUBST(NEWSHOBJ)
|
AC_SUBST(NEWSHOBJ)
|
||||||
@ -231,6 +232,7 @@ AC_SUBST(YAP_EXTRAS)
|
|||||||
dnl defaults
|
dnl defaults
|
||||||
INSTALL_DLLS="#"
|
INSTALL_DLLS="#"
|
||||||
SHLIB_LD="@#"
|
SHLIB_LD="@#"
|
||||||
|
DO_SECOND_LD="#"
|
||||||
NEWSHOBJ="sobjs"
|
NEWSHOBJ="sobjs"
|
||||||
YAPLIB="libYap.a"
|
YAPLIB="libYap.a"
|
||||||
M4="m4"
|
M4="m4"
|
||||||
@ -241,6 +243,7 @@ case $target_os in
|
|||||||
then
|
then
|
||||||
SHLIB_SUFFIX=".so"
|
SHLIB_SUFFIX=".so"
|
||||||
SHLIB_LD="ld -shared"
|
SHLIB_LD="ld -shared"
|
||||||
|
DO_SECOND_LD=""
|
||||||
LIBS="$LIBS -ldl"
|
LIBS="$LIBS -ldl"
|
||||||
case $host_cpu in
|
case $host_cpu in
|
||||||
alpha*)
|
alpha*)
|
||||||
@ -283,6 +286,7 @@ case $target_os in
|
|||||||
if test $CC = cc -o $CC = c89
|
if test $CC = cc -o $CC = c89
|
||||||
then
|
then
|
||||||
SHLIB_LD="ld -b -E ${LDFLAGS}"
|
SHLIB_LD="ld -b -E ${LDFLAGS}"
|
||||||
|
DO_SECOND_LD=""
|
||||||
SHLIB_SUFFIX=".sl"
|
SHLIB_SUFFIX=".sl"
|
||||||
SHLIB_CFLAGS="+z"
|
SHLIB_CFLAGS="+z"
|
||||||
INSTALL_DLLS=""
|
INSTALL_DLLS=""
|
||||||
@ -301,10 +305,12 @@ case $target_os in
|
|||||||
*osf*)
|
*osf*)
|
||||||
SHLIB_SUFFIX=".so"
|
SHLIB_SUFFIX=".so"
|
||||||
SHLIB_LD="ld -shared -expect_unresolved '*'"
|
SHLIB_LD="ld -shared -expect_unresolved '*'"
|
||||||
|
DO_SECOND_LD=""
|
||||||
;;
|
;;
|
||||||
*irix6*)
|
*irix6*)
|
||||||
SHLIB_CFLAGS=""
|
SHLIB_CFLAGS=""
|
||||||
SHLIB_SUFFIX=".so"
|
SHLIB_SUFFIX=".so"
|
||||||
|
DO_SECOND_LD=""
|
||||||
SHLIB_LD="ld -n32 -shared -rdata_shared"
|
SHLIB_LD="ld -n32 -shared -rdata_shared"
|
||||||
INSTALL_DLLS=""
|
INSTALL_DLLS=""
|
||||||
;;
|
;;
|
||||||
@ -319,6 +325,7 @@ case $target_os in
|
|||||||
LDFLAGS="-Wl,--export-dynamic $LDFLAGS"
|
LDFLAGS="-Wl,--export-dynamic $LDFLAGS"
|
||||||
SHLIB_CFLAGS="-fPIC"
|
SHLIB_CFLAGS="-fPIC"
|
||||||
SHLIB_LD="ld -Bshareable -x"
|
SHLIB_LD="ld -Bshareable -x"
|
||||||
|
DO_SECOND_LD=""
|
||||||
SHLIB_SUFFIX=".so"
|
SHLIB_SUFFIX=".so"
|
||||||
INSTALL_DLLS=""
|
INSTALL_DLLS=""
|
||||||
fi
|
fi
|
||||||
@ -338,6 +345,7 @@ case $target_os in
|
|||||||
then
|
then
|
||||||
SHLIB_SUFFIX=".o"
|
SHLIB_SUFFIX=".o"
|
||||||
LIBS="$LIBS -ldl"
|
LIBS="$LIBS -ldl"
|
||||||
|
INSTALL_DLLS=""
|
||||||
if test $CC = gcc
|
if test $CC = gcc
|
||||||
then
|
then
|
||||||
SHLIB_CFLAGS="-fPIC"
|
SHLIB_CFLAGS="-fPIC"
|
||||||
|
@ -45,11 +45,11 @@ dll: random@SHLIB_SUFFIX@
|
|||||||
random.o: $(srcdir)/random.c
|
random.o: $(srcdir)/random.c
|
||||||
$(CC) -c $(CFLAGS) $(SHLIB_CFLAGS) $(srcdir)/random.c -o random.o
|
$(CC) -c $(CFLAGS) $(SHLIB_CFLAGS) $(srcdir)/random.c -o random.o
|
||||||
|
|
||||||
%@SHLIB_SUFFIX@: %.o
|
@DO_SECOND_LD@%@SHLIB_SUFFIX@: %.o
|
||||||
@SHLIB_LD@ -o $@ $<
|
@DO_SECOND_LD@ @SHLIB_LD@ -o $@ $<
|
||||||
|
|
||||||
random@SHLIB_SUFFIX@: random.o
|
@DO_SECOND_LD@random@SHLIB_SUFFIX@: random.o
|
||||||
@SHLIB_LD@ -o random@SHLIB_SUFFIX@ random.o
|
@DO_SECOND_LD@ @SHLIB_LD@ -o random@SHLIB_SUFFIX@ random.o
|
||||||
|
|
||||||
#
|
#
|
||||||
# create a new DLL library on cygwin environments
|
# create a new DLL library on cygwin environments
|
||||||
|
@ -57,23 +57,23 @@ regfree.o: $(srcdir)/regfree.c
|
|||||||
regexec.o: $(srcdir)/regexec.c
|
regexec.o: $(srcdir)/regexec.c
|
||||||
$(CC) -c $(CFLAGS) $(SHLIB_CFLAGS) $(srcdir)/regexec.c -o regexec.o
|
$(CC) -c $(CFLAGS) $(SHLIB_CFLAGS) $(srcdir)/regexec.c -o regexec.o
|
||||||
|
|
||||||
%@SHLIB_SUFFIX@: %.o
|
@DO_SECOND_LD@%@SHLIB_SUFFIX@: %.o
|
||||||
@SHLIB_LD@ -o $@ $<
|
@DO_SECOND_LD@ @SHLIB_LD@ -o $@ $<
|
||||||
|
|
||||||
regexp@SHLIB_SUFFIX@: regexp.o
|
@DO_SECOND_LD@regexp@SHLIB_SUFFIX@: regexp.o
|
||||||
@SHLIB_LD@ -o regexp@SHLIB_SUFFIX@ regexp.o
|
@DO_SECOND_LD@ @SHLIB_LD@ -o regexp@SHLIB_SUFFIX@ regexp.o
|
||||||
|
|
||||||
regcomp@SHLIB_SUFFIX@: regcomp.o
|
@DO_SECOND_LD@regcomp@SHLIB_SUFFIX@: regcomp.o
|
||||||
@SHLIB_LD@ -o regcomp@SHLIB_SUFFIX@ regcomp.o
|
@DO_SECOND_LD@ @SHLIB_LD@ -o regcomp@SHLIB_SUFFIX@ regcomp.o
|
||||||
|
|
||||||
regerror@SHLIB_SUFFIX@: regerror.o
|
@DO_SECOND_LD@regerror@SHLIB_SUFFIX@: regerror.o
|
||||||
@SHLIB_LD@ -o regerror@SHLIB_SUFFIX@ regerror.o
|
@DO_SECOND_LD@ @SHLIB_LD@ -o regerror@SHLIB_SUFFIX@ regerror.o
|
||||||
|
|
||||||
regfree@SHLIB_SUFFIX@: regfree.o
|
@DO_SECOND_LD@regfree@SHLIB_SUFFIX@: regfree.o
|
||||||
@SHLIB_LD@ -o regfree@SHLIB_SUFFIX@ regfree.o
|
@DO_SECOND_LD@ @SHLIB_LD@ -o regfree@SHLIB_SUFFIX@ regfree.o
|
||||||
|
|
||||||
regexec@SHLIB_SUFFIX@: regexec.o
|
@DO_SECOND_LD@regexec@SHLIB_SUFFIX@: regexec.o
|
||||||
@SHLIB_LD@ -o regexec@SHLIB_SUFFIX@ regexec.o
|
@DO_SECOND_LD@ @SHLIB_LD@ -o regexec@SHLIB_SUFFIX@ regexec.o
|
||||||
|
|
||||||
#
|
#
|
||||||
# create a new DLL library on cygwin environments
|
# create a new DLL library on cygwin environments
|
||||||
|
@ -147,10 +147,22 @@ file_property(File, Type, Size, Date) :-
|
|||||||
file_property(File, Type, Size, Date, _Permissions, Error),
|
file_property(File, Type, Size, Date, _Permissions, Error),
|
||||||
handle_system_error(Error, off, file_property(File)).
|
handle_system_error(Error, off, file_property(File)).
|
||||||
|
|
||||||
|
file_exists(File) :-
|
||||||
|
var(File), !,
|
||||||
|
throw(error(instantiation_error,file_exists(File))).
|
||||||
|
file_exists(File) :-
|
||||||
|
\+ atom(File), !,
|
||||||
|
throw(error(type_error(atom,File),file_exists(File))).
|
||||||
file_exists(File) :-
|
file_exists(File) :-
|
||||||
file_property(File, _Type, _Size, _Date, _Permissions, Error),
|
file_property(File, _Type, _Size, _Date, _Permissions, Error),
|
||||||
var(Error).
|
var(Error).
|
||||||
|
|
||||||
|
file_exists(File, Permissions) :-
|
||||||
|
var(File), !,
|
||||||
|
throw(error(instantiation_error,file_exists(File, Permissions))).
|
||||||
|
file_exists(File, Permissions) :-
|
||||||
|
\+ atom(File), !,
|
||||||
|
throw(error(type_error(atom,File),file_exists(File, Permissions))).
|
||||||
file_exists(File, Permissions) :-
|
file_exists(File, Permissions) :-
|
||||||
file_property(File, _Type, _Size, _Date, FPermissions, Error),
|
file_property(File, _Type, _Size, _Date, FPermissions, Error),
|
||||||
var(Error),
|
var(Error),
|
||||||
|
@ -45,11 +45,11 @@ dll: sys@SHLIB_SUFFIX@
|
|||||||
sys.o: $(srcdir)/sys.c
|
sys.o: $(srcdir)/sys.c
|
||||||
$(CC) -c $(CFLAGS) $(SHLIB_CFLAGS) $(srcdir)/sys.c -o sys.o
|
$(CC) -c $(CFLAGS) $(SHLIB_CFLAGS) $(srcdir)/sys.c -o sys.o
|
||||||
|
|
||||||
%@SHLIB_SUFFIX@: %.o
|
@DO_SECOND_LD@@DO_SECOND_LD@%@SHLIB_SUFFIX@: %.o
|
||||||
@SHLIB_LD@ -o $@ $<
|
@DO_SECOND_LD@ @SHLIB_LD@ -o $@ $<
|
||||||
|
|
||||||
sys@SHLIB_SUFFIX@: sys.o
|
@DO_SECOND_LD@sys@SHLIB_SUFFIX@: sys.o
|
||||||
@SHLIB_LD@ -o sys@SHLIB_SUFFIX@ sys.o
|
@DO_SECOND_LD@ @SHLIB_LD@ -o sys@SHLIB_SUFFIX@ sys.o
|
||||||
|
|
||||||
#
|
#
|
||||||
# create a new DLL library on cygwin environments
|
# create a new DLL library on cygwin environments
|
||||||
|
Reference in New Issue
Block a user