Merge branch 'master' of github.com:vscosta/yap-6.3
This commit is contained in:
commit
ef0d7b77fb
@ -18,6 +18,11 @@
|
||||
#if HAVE_MATH_H
|
||||
#include <math.h>
|
||||
#endif
|
||||
#if __WINDOWS__
|
||||
#include <process.h>
|
||||
|
||||
#define getpid _getpid
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LIMITS_H
|
||||
#include <limits.h>
|
||||
|
@ -4,16 +4,14 @@
|
||||
#define PL_INCL_H 1
|
||||
|
||||
#ifndef __WINDOWS__
|
||||
#if defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MSYS__)
|
||||
#define __WINDOWS__ 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __WINDOWS__
|
||||
#if HAVE_WINSOCK2_H
|
||||
#include <winsock2.h>
|
||||
#endif
|
||||
|
||||
#include <winsock2.h>
|
||||
#include <windows.h>
|
||||
|
||||
#if HAVE_XOS_H
|
||||
|
21
configure.in
21
configure.in
@ -517,6 +517,7 @@ AC_PROG_INSTALL
|
||||
AC_PROG_RANLIB
|
||||
AC_CHECK_TOOL(AR,[ar],:)
|
||||
AC_PATH_PROG(INSTALL_INFO,install-info,true,$PATH:/sbin:/usr/sbin:/usr/etc:/usr/local/sbin)
|
||||
AC_CHECK_HEADERS(winsock.h winsock2.h)
|
||||
AC_PATH_PROG(SHELL,sh)
|
||||
AC_CHECK_TOOL([INDENT], [indent], [:])
|
||||
|
||||
@ -1248,7 +1249,7 @@ AC_CHECK_HEADERS(sys/shm.h sys/socket.h sys/stat.h)
|
||||
AC_CHECK_HEADERS(sys/time.h sys/times.h sys/types.h)
|
||||
AC_CHECK_HEADERS(sys/ucontext.h sys/un.h sys/wait.h)
|
||||
AC_CHECK_HEADERS(time.h ucontext.h unistd.h utime.h)
|
||||
AC_CHECK_HEADERS(wctype.h winsock.h winsock2.h)
|
||||
AC_CHECK_HEADERS(wctype.h)
|
||||
AC_CHECK_HEADERS(zlib.h zutil.h)
|
||||
AC_CHECK_HEADERS(mach-o/dyld.h LibLoaderAPI.h)
|
||||
|
||||
@ -1319,6 +1320,24 @@ AC_CHECK_SIZEOF(void *,4)
|
||||
|
||||
AC_DEFINE_UNQUOTED(CELLSIZE, $ac_cv_sizeof_void_p, [size of a cell in bytes.])
|
||||
|
||||
dnl check whether int64_t exists
|
||||
AC_MSG_CHECKING(whether int64_t is defined)
|
||||
AC_CACHE_VAL(yap_cv_int64_t_defined,[
|
||||
AC_TRY_RUN(
|
||||
#include <stdint.h>
|
||||
int main() {
|
||||
int64_t i;
|
||||
return 0;
|
||||
}
|
||||
,
|
||||
yap_cv_int64_t_defined=yes,yap_cv_int64_t_defined=no,yap_cv_int64_t_defined=no)])
|
||||
AC_MSG_RESULT($yap_cv_int64_t_defined)
|
||||
if test $yap_cv_int64_t_defined = yes
|
||||
then
|
||||
AC_DEFINE_UNQUOTED(INT64_T_DEFINED,1,[type of int64_t])
|
||||
fi
|
||||
AC_MSG_CHECKING(for int64_t)
|
||||
AC_SUBST(INT64_T_DEFINED)
|
||||
|
||||
dnl check type of malloc (i.e. char * or void *)
|
||||
AC_MSG_CHECKING(for type of malloc)
|
||||
|
@ -73,15 +73,19 @@ static IOFUNCTIONS *saved_functions;
|
||||
|
||||
static void
|
||||
Message(const char *fm, ...)
|
||||
{ char buf[1024];
|
||||
{ LPWSTR wbuf;
|
||||
char buf[1024];
|
||||
|
||||
va_list(args);
|
||||
|
||||
return;
|
||||
|
||||
va_start(args, fm);
|
||||
vsprintf(buf, fm, args);
|
||||
MessageBox(NULL, buf, "YAP-Prolog", MB_OK|MB_TASKMODAL);
|
||||
vsprintf(buf, fm, args);
|
||||
va_end(args);
|
||||
wbuf = (LPWSTR)malloc(1024*sizeof(LPWSTR *));
|
||||
if (!wbuf)
|
||||
return;
|
||||
MultiByteToWideChar( 0,0, (LPCCH)buf, -1, wbuf, 0);
|
||||
MessageBox(NULL, wbuf, L"YAP-Prolog", MB_OK|MB_TASKMODAL);
|
||||
free((void *)wbuf);
|
||||
}
|
||||
|
||||
|
||||
|
@ -888,8 +888,6 @@ PL_EXPORT(void) PL_YAP_InitSWIIO(struct SWI_IO *swio);
|
||||
|
||||
#endif /* _FLI_H_INCLUDED */
|
||||
|
||||
#ifdef _WIN32
|
||||
#if O_PLMT
|
||||
#ifdef __WINDOWS__
|
||||
X_API int PL_w32thread_raise(DWORD id, int sig);
|
||||
#endif
|
||||
#endif
|
||||
|
@ -1599,6 +1599,20 @@ __BEGIN_DECLS
|
||||
#define X_API
|
||||
#endif
|
||||
|
||||
#ifndef Int_FORMAT
|
||||
|
||||
#if _WIN64
|
||||
#define Int_FORMAT "%I64d"
|
||||
#define Int_ANYFORMAT "%I64i"
|
||||
#define UInt_FORMAT "%I64u"
|
||||
#else
|
||||
#define Int_FORMAT "%ld"
|
||||
#define Int_ANYFORMAT "%li"
|
||||
#define UInt_FORMAT "%lu"
|
||||
#endif
|
||||
|
||||
#endif /* portable form of formatted output for Prolog terms */
|
||||
|
||||
/* Primitive Functions */
|
||||
|
||||
#define YAP_Deref(t) (t)
|
||||
|
@ -27,9 +27,9 @@ Last rev: $Id: yap_rl.c,v 1.1 2008-03-26 23:05:22 nunofonseca Exp $
|
||||
#include "range_list.h"
|
||||
#include <YapInterface.h>
|
||||
|
||||
#define IDTYPE long
|
||||
#define PTR2ID(ptr) (IDTYPE)ptr
|
||||
#define ID2PTR(id) (RL_Tree*)id
|
||||
#define IDTYPE YAP_Int
|
||||
#define PTR2ID(ptr) ((IDTYPE)(ptr))
|
||||
#define ID2PTR(id) ((RL_Tree*)(id))
|
||||
|
||||
|
||||
/* ############################################################ */
|
||||
|
@ -45,7 +45,7 @@ void itrie_data_save(TrNode node, FILE *file) {
|
||||
TrData data;
|
||||
|
||||
data = (TrData) GET_DATA_FROM_LEAF_TRIE_NODE(node);
|
||||
fprintf(file, "%ld %ld %ld ", TrData_pos(data), TrData_neg(data), TrData_timestamp(data));
|
||||
fprintf(file, Int_FORMAT " " Int_FORMAT " " Int_FORMAT " ", TrData_pos(data), TrData_neg(data), TrData_timestamp(data));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -55,7 +55,7 @@ void itrie_data_load(TrNode node, YAP_Int depth, FILE *file) {
|
||||
TrData data;
|
||||
YAP_Int pos, neg, timestamp;
|
||||
|
||||
fscanf(file, "%ld %ld %ld", &pos, &neg, ×tamp);
|
||||
fscanf(file, Int_FORMAT " " Int_FORMAT " " Int_FORMAT, &pos, &neg, ×tamp);
|
||||
new_itrie_data(data, CURRENT_ITRIE, node, pos, neg, timestamp, depth);
|
||||
PUT_DATA_IN_LEAF_TRIE_NODE(node, data);
|
||||
return;
|
||||
@ -67,7 +67,7 @@ void itrie_data_print(TrNode node) {
|
||||
TrData data;
|
||||
|
||||
data = (TrData) GET_DATA_FROM_LEAF_TRIE_NODE(node);
|
||||
printf(" pos: %ld neg: %ld timestamp: %ld\n", TrData_pos(data), TrData_neg(data), TrData_timestamp(data));
|
||||
printf(" pos: " Int_FORMAT " neg: " Int_FORMAT " timestamp: " Int_FORMAT "\\n", TrData_pos(data), TrData_neg(data), TrData_timestamp(data));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -73,8 +73,8 @@ typedef struct itrie_data {
|
||||
#define SIZEOF_TR_DATA sizeof(TYPE_TR_DATA)
|
||||
#define SIZEOF_TR_DATA_BUCKET sizeof(TYPE_TR_DATA *)
|
||||
|
||||
#define AS_TR_ENTRY_NEXT(ADDR) (TrEntry)((unsigned long int)(ADDR) - sizeof(struct trie_node *) - sizeof(struct itrie_data **) - sizeof(struct itrie_data *))
|
||||
#define AS_TR_DATA_NEXT(ADDR) (TrData)((unsigned long int)(ADDR) - sizeof(struct itrie_entry *) - sizeof(struct trie_node *))
|
||||
#define AS_TR_ENTRY_NEXT(ADDR) (TrEntry)((YAP_UInt)(ADDR) - sizeof(struct trie_node *) - sizeof(struct itrie_data **) - sizeof(struct itrie_data *))
|
||||
#define AS_TR_DATA_NEXT(ADDR) (TrData)((YAP_UInt)(ADDR) - sizeof(struct itrie_entry *) - sizeof(struct trie_node *))
|
||||
|
||||
|
||||
|
||||
|
@ -52,8 +52,8 @@ typedef struct trie_data {
|
||||
#define SIZEOF_TR_ENTRY sizeof(TYPE_TR_ENTRY)
|
||||
#define SIZEOF_TR_DATA sizeof(TYPE_TR_DATA)
|
||||
|
||||
#define AS_TR_ENTRY_NEXT(ADDR) (TrEntry)((unsigned long int)(ADDR) - sizeof(struct trie_node *) - 3 * sizeof(struct trie_data *))
|
||||
#define AS_TR_DATA_NEXT(ADDR) (TrData)((unsigned long int)(ADDR) - sizeof(struct trie_entry *) - sizeof(struct trie_node *))
|
||||
#define AS_TR_ENTRY_NEXT(ADDR) (TrEntry)((YAP_UInt)(ADDR) - sizeof(struct trie_node *) - 3 * sizeof(struct trie_data *))
|
||||
#define AS_TR_DATA_NEXT(ADDR) (TrData)((YAP_UInt)(ADDR) - sizeof(struct trie_entry *) - sizeof(struct trie_node *))
|
||||
|
||||
|
||||
|
||||
|
@ -264,7 +264,7 @@ void displaynode(TrNode node) {
|
||||
{printf("1\n");} else {printf("2\n");}
|
||||
printf("bye\n");*/
|
||||
if (IS_HASH_NODE(node))
|
||||
printf("HASH n%i, b%i, p%li\n", TrHash_num_nodes((TrHash) node), TrHash_num_buckets((TrHash) node), (long) node);
|
||||
printf("HASH n%i, b%i, p%p\n", TrHash_num_nodes((TrHash) node), TrHash_num_buckets((TrHash) node), node);
|
||||
else if (TrNode_entry(node) == PairInitTag)
|
||||
printf("PairInitTag\n");
|
||||
else if (TrNode_entry(node) == PairEndTag)
|
||||
@ -272,7 +272,7 @@ void displaynode(TrNode node) {
|
||||
else if (IS_FUNCTOR_NODE(node))
|
||||
printf("functor(%s)\n", YAP_AtomName(YAP_NameOfFunctor((YAP_Functor)( ~ApplTag & TrNode_entry(node)))));
|
||||
else if (YAP_IsIntTerm(TrNode_entry(node)))
|
||||
printf("int(%ld)\n", YAP_IntOfTerm(TrNode_entry(node)));
|
||||
printf("int(" Int_FORMAT ")\n", YAP_IntOfTerm(TrNode_entry(node)));
|
||||
else if (YAP_IsAtomTerm(TrNode_entry(node)))
|
||||
printf("atom(%s)\n", YAP_AtomName(YAP_AtomOfTerm(TrNode_entry(node))));
|
||||
else
|
||||
@ -816,7 +816,7 @@ int traverse_get_counter(TrNode node) {
|
||||
|
||||
YAP_Term generate_label(YAP_Int Index) {
|
||||
char label[20];
|
||||
sprintf(label,"L%ld", Index);
|
||||
sprintf(label,"L" Int_FORMAT, Index);
|
||||
return YAP_MkAtomTerm(YAP_LookupAtom(label));
|
||||
}
|
||||
|
||||
|
@ -1323,7 +1323,7 @@ void traverse_and_save(TrNode node, FILE *file, int float_block) {
|
||||
TrNode *first_bucket, *bucket;
|
||||
TrHash hash;
|
||||
hash = (TrHash) node;
|
||||
fprintf(file, "%lu %d ", HASH_SAVE_MARK, TrHash_num_buckets(hash));
|
||||
fprintf(file, UInt_FORMAT " %d ", HASH_SAVE_MARK, TrHash_num_buckets(hash));
|
||||
first_bucket = TrHash_buckets(hash);
|
||||
bucket = first_bucket + TrHash_num_buckets(hash);
|
||||
do {
|
||||
@ -1341,7 +1341,7 @@ void traverse_and_save(TrNode node, FILE *file, int float_block) {
|
||||
t = TrNode_entry(node);
|
||||
if (float_block) {
|
||||
float_block--;
|
||||
fprintf(file, "%lu %lu ", FLOAT_SAVE_MARK, t);
|
||||
fprintf(file, UInt_FORMAT " " UInt_FORMAT " ", FLOAT_SAVE_MARK, t);
|
||||
} else if (YAP_IsPairTerm(t)) {
|
||||
if (t == FloatInitTag) {
|
||||
#ifdef TAG_LOW_BITS_32
|
||||
@ -1349,9 +1349,9 @@ void traverse_and_save(TrNode node, FILE *file, int float_block) {
|
||||
#endif /* TAG_LOW_BITS_32 */
|
||||
float_block ++;
|
||||
}
|
||||
fprintf(file, "%lu ", t);
|
||||
fprintf(file, UInt_FORMAT " ", t);
|
||||
} else if (YAP_IsVarTerm(t) || YAP_IsIntTerm(t))
|
||||
fprintf(file, "%lu ", t);
|
||||
fprintf(file, UInt_FORMAT" ", t);
|
||||
else {
|
||||
int index;
|
||||
for (index = 0; index <= CURRENT_INDEX; index++)
|
||||
@ -1363,16 +1363,16 @@ void traverse_and_save(TrNode node, FILE *file, int float_block) {
|
||||
expand_auxiliary_term_stack();
|
||||
AUXILIARY_TERM_STACK[CURRENT_INDEX] = t;
|
||||
if (YAP_IsAtomTerm(t))
|
||||
fprintf(file, "%lu %d %s%c ", ATOM_SAVE_MARK, index, YAP_AtomName(YAP_AtomOfTerm(t)), '\0');
|
||||
fprintf(file, UInt_FORMAT " %d %s%c ", ATOM_SAVE_MARK, index, YAP_AtomName(YAP_AtomOfTerm(t)), '\0');
|
||||
else /* (ApplTag & t) */
|
||||
fprintf(file, "%lu %d %s %lu ", FUNCTOR_SAVE_MARK, index,
|
||||
fprintf(file, UInt_FORMAT " %d %s " UInt_FORMAT " ", FUNCTOR_SAVE_MARK, index,
|
||||
YAP_AtomName(YAP_NameOfFunctor((YAP_Functor)(~ApplTag & t))),
|
||||
YAP_ArityOfFunctor((YAP_Functor)(~ApplTag & t)));
|
||||
} else
|
||||
if (YAP_IsAtomTerm(t))
|
||||
fprintf(file, "%lu %d ", ATOM_SAVE_MARK, index);
|
||||
fprintf(file, UInt_FORMAT " %d ", ATOM_SAVE_MARK, index);
|
||||
else
|
||||
fprintf(file, "%lu %d ", FUNCTOR_SAVE_MARK, index);
|
||||
fprintf(file, UInt_FORMAT " %d ", FUNCTOR_SAVE_MARK, index);
|
||||
}
|
||||
if (IS_LEAF_TRIE_NODE(node)) {
|
||||
fprintf(file, "- ");
|
||||
@ -1393,7 +1393,7 @@ void traverse_and_load(TrNode parent, FILE *file) {
|
||||
YAP_Term t;
|
||||
int n;
|
||||
|
||||
if (!fscanf(file, "%lu", &t)) {
|
||||
if (!fscanf(file, UInt_FORMAT , &t)) {
|
||||
MARK_AS_LEAF_TRIE_NODE(parent);
|
||||
INCREMENT_ENTRIES(CURRENT_TRIE_ENGINE);
|
||||
if (DATA_LOAD_FUNCTION)
|
||||
@ -1407,7 +1407,7 @@ void traverse_and_load(TrNode parent, FILE *file) {
|
||||
n = fscanf(file, "%d", &num_buckets);
|
||||
new_trie_hash(hash, 0, num_buckets);
|
||||
TrNode_child(parent) = (TrNode) hash;
|
||||
n = fscanf(file, "%lu", &t);
|
||||
n = fscanf(file, UInt_FORMAT , &t);
|
||||
}
|
||||
do {
|
||||
TrNode child;
|
||||
@ -1446,10 +1446,10 @@ void traverse_and_load(TrNode parent, FILE *file) {
|
||||
}
|
||||
t = AUXILIARY_TERM_STACK[index];
|
||||
} else if (t == FLOAT_SAVE_MARK)
|
||||
n = fscanf(file, "%lu", &t);
|
||||
n = fscanf(file, UInt_FORMAT , &t);
|
||||
child = trie_node_insert(parent, t, hash);
|
||||
traverse_and_load(child, file);
|
||||
} while (fscanf(file, "%lu", &t));
|
||||
} while (fscanf(file, UInt_FORMAT , &t));
|
||||
CURRENT_DEPTH--;
|
||||
if (n) n = 0; // just added to remove the warning of not used!
|
||||
return;
|
||||
@ -1545,7 +1545,7 @@ void traverse_and_print(TrNode node, int *arity, char *str, int str_index, int m
|
||||
}
|
||||
mode = TRIE_PRINT_NORMAL;
|
||||
} else if (YAP_IsVarTerm(t)) {
|
||||
str_index += sprintf(& str[str_index], "VAR%ld", TrieVarIndex(t));
|
||||
str_index += sprintf(& str[str_index], "VAR" UInt_FORMAT, TrieVarIndex(t));
|
||||
while (arity[0]) {
|
||||
if (arity[arity[0]] == 1) {
|
||||
str_index += sprintf(& str[str_index], ")");
|
||||
@ -1571,7 +1571,7 @@ void traverse_and_print(TrNode node, int *arity, char *str, int str_index, int m
|
||||
}
|
||||
}
|
||||
} else if (YAP_IsIntTerm(t)) {
|
||||
str_index += sprintf(& str[str_index], "%ld", YAP_IntOfTerm(t));
|
||||
str_index += sprintf(& str[str_index], UInt_FORMAT , YAP_IntOfTerm(t));
|
||||
while (arity[0]) {
|
||||
if (arity[arity[0]] == 1) {
|
||||
str_index += sprintf(& str[str_index], ")");
|
||||
|
@ -119,7 +119,7 @@ typedef struct trie_hash {
|
||||
#define SIZEOF_TR_HASH sizeof(TYPE_TR_HASH)
|
||||
#define SIZEOF_TR_BUCKET sizeof(TYPE_TR_NODE *)
|
||||
|
||||
#define AS_TR_NODE_NEXT(ADDR) (TrNode)((unsigned long int)(ADDR) - 2 * sizeof(struct trie_node *))
|
||||
#define AS_TR_NODE_NEXT(ADDR) (TrNode)((YAP_UInt)(ADDR) - 2 * sizeof(struct trie_node *))
|
||||
|
||||
|
||||
|
||||
@ -127,12 +127,12 @@ typedef struct trie_hash {
|
||||
/* Macros */
|
||||
/* --------------------------- */
|
||||
|
||||
#define TAG_ADDR(ADDR) ((unsigned long int)(ADDR) | 0x1)
|
||||
#define UNTAG_ADDR(ADDR) ((unsigned long int)(ADDR) & ~(0x1))
|
||||
#define TAG_ADDR(ADDR) ((YAP_UInt)(ADDR) | 0x1)
|
||||
#define UNTAG_ADDR(ADDR) ((YAP_UInt)(ADDR) & ~(0x1))
|
||||
#define PUT_DATA_IN_LEAF_TRIE_NODE(TR_NODE, DATA) TrNode_child(TR_NODE) = (TrNode)TAG_ADDR(DATA)
|
||||
#define GET_DATA_FROM_LEAF_TRIE_NODE(TR_NODE) UNTAG_ADDR(TrNode_child(TR_NODE))
|
||||
#define MARK_AS_LEAF_TRIE_NODE(TR_NODE) PUT_DATA_IN_LEAF_TRIE_NODE(TR_NODE, TrNode_child(TR_NODE))
|
||||
#define IS_LEAF_TRIE_NODE(TR_NODE) ((unsigned long int)(TrNode_child(TR_NODE)) & 0x1)
|
||||
#define IS_LEAF_TRIE_NODE(TR_NODE) ((YAP_UInt)(TrNode_child(TR_NODE)) & 0x1)
|
||||
|
||||
#define IsTrieVar(TERM, STACK, STACK_BASE) ((YAP_Term *)(TERM) > STACK && (YAP_Term *)(TERM) <= STACK_BASE)
|
||||
#define MkTrieVar(INDEX) ((INDEX) << 4)
|
||||
|
141
misc/mkwin
141
misc/mkwin
@ -19,6 +19,7 @@
|
||||
# http://nsis.sourceforge.net/Main_Page
|
||||
#
|
||||
#
|
||||
YHOME=/y/vsc
|
||||
VERSION=6.3.4
|
||||
#cross-compiler for OSX, see http://mxe.cc/
|
||||
#notice that OSX does not allow WIN64 emulation (wine64)
|
||||
@ -27,9 +28,11 @@ MXE=$HOME/Yap/mxe/usr
|
||||
THREADS=no
|
||||
# use 64 bits
|
||||
ABI=64
|
||||
|
||||
SRC=/c/cygwin/Yap/yap-6.3
|
||||
#SRC=/l/work/noth/git
|
||||
#SRC_WIN=L:\\work\\noth\\git
|
||||
SRC="$HOME"/git/yap-6.3
|
||||
#SRC="$HOME"/git/yap-6.3
|
||||
TARGET=/c/Yap64
|
||||
NSIS="/c/Program Files (x86)/NSIS/makensis"
|
||||
# by default, ""
|
||||
@ -57,7 +60,8 @@ do
|
||||
done
|
||||
|
||||
# srcdir comes from here, please avoid relative paths
|
||||
CONFIGURE=$SRC/configure
|
||||
CONFIGURE="$SRC"/configure
|
||||
DEBUG=" --enable-debug-yap --enable-low-level-tracer"
|
||||
|
||||
# debugging setup
|
||||
do_compile=true
|
||||
@ -66,54 +70,51 @@ do_install=true
|
||||
# HOME WIN64 configuration
|
||||
|
||||
# DOCS_DIR=/l/work/noth/yapdocs
|
||||
DOCS_DIR=$HOME/Yap/bins/threads
|
||||
DOCS_DIR="$YHOME"/Yap/bins/threads
|
||||
|
||||
if test "$THREADS" = yes; then
|
||||
FULL_VERSION="$VERSION"-threads
|
||||
else
|
||||
FULL_VERSION="$VERSION"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $ABI = 64; then
|
||||
#GCC_PATH=/l/Work/noth/mingw-w64/x86_64-4.9.0-posix-seh-rt_v3-rev1/mingw64
|
||||
BUILD=/c/cygwin/Yap/mingw"$ABI"
|
||||
#GCC_DIR=/l/Work/noth/mingw-w64/x86_64-4.9.0-posix-seh-rt_v3-rev1/mingw64
|
||||
case $( uname ) in
|
||||
*Darwin*)
|
||||
GCC_PATH="$MXE"/bin
|
||||
PATH=$PATH:$GCC_PATH
|
||||
GCC_DIR="$MXE"
|
||||
HOST="x86_64-w64-mingw32"
|
||||
LIB_PATH="$MXE"/"$HOST"/lib
|
||||
;;
|
||||
esac
|
||||
*MINGW64*)
|
||||
GCC_DIR=/c/TDM-GCC-64
|
||||
HOST="x86_64-w64-mingw32"
|
||||
LIB_PATH="$GCC_DIR"/"$HOST"/lib
|
||||
;;
|
||||
esac
|
||||
# ok.
|
||||
|
||||
CUDD=no # BDD compiler package. Get version that compiles on Windows from Vitor!
|
||||
GECODE=no #does not link with mingw64, VC++ trouble
|
||||
GMP=yes # Compile it for infinite precision numbers and rationals
|
||||
JAVA=no # for JPL only
|
||||
PYTHON=no # does not work in Windows anyway (currently)
|
||||
REAL=no # interface to R
|
||||
|
||||
# it seems python2.7 does not support mingw64
|
||||
PYTHON_PATH="/c/Python33-64"
|
||||
export PATH="$PYTHON_PATH"/bin:"$PATH"
|
||||
GECODE_PATH="/c/Program Files/Gecode"
|
||||
# BDD compiler package. Get version that compiles on Windows from Vitor!
|
||||
# GMP=/l/Work/noth/msys/1.0/local
|
||||
GMP=yes
|
||||
CUDD_PATH=/c/cygwin/Yap/cudd-2.5.0-mingw64
|
||||
JAVA_PATH="/c/Program Files/Java/jdk1.7.0_51"
|
||||
R_PATH="/c/Program Files/R/R-3.1.0"
|
||||
GMP=/c/msys64/usr/win64
|
||||
CUDD=/c/cygwin/Yap/cudd-2.5.0-mingw64
|
||||
GECODE=no # "/c/Program Files/Gecode"
|
||||
JAVA="$( echo /c/Program\ Files/Java/jdk* )"
|
||||
PYTHON="/c/Python33-64"
|
||||
R="$( echo /c/Program\ Files/R/R-*/bin/x64 )"
|
||||
|
||||
fi
|
||||
|
||||
# HOME WIN32 configuration
|
||||
if test $ABI = 32; then
|
||||
ABI=32
|
||||
case $( uname ) in
|
||||
*Darwin*)
|
||||
#use mxe as a cross compiler
|
||||
echo $( uname )
|
||||
GCC_PATH="$MXE"/bin
|
||||
PATH="$GCC_PATH":"$PATH"
|
||||
GCC_DIR="$MXE"/bin
|
||||
PATH="$GCC_DIR":"$PATH"
|
||||
HOST="i686-pc-mingw32"
|
||||
LIB_PATH="$MXE"/"$HOST"/lib
|
||||
CUDD=yes
|
||||
GECODE=no # install only allows one of 32 or 64 bits
|
||||
GMP=yes
|
||||
JAVA=no
|
||||
@ -122,18 +123,48 @@ if test $ABI = 32; then
|
||||
;;
|
||||
esac
|
||||
|
||||
PYTHON_PATH="/c/Python27"
|
||||
export PATH="$GCC_PATH"/bin:$PATH
|
||||
GECODE_PATH="/c/Program Files/Gecode"
|
||||
GMP=/c/cygwin/Yap/win32
|
||||
CUDD_PATH=/c/cygwin/Yap/cudd-2.5.0-mingw32
|
||||
JAVA_PATH="/c/Program Files (x86)/Java/jdk1.7.0_51"
|
||||
R_PATH="/c/Program Files/R/R-3.0.2"
|
||||
case $( uname ) in
|
||||
*Darwin*)
|
||||
GCC_DIR="$MXE"
|
||||
HOST="x86_64-w64-mingw32"
|
||||
LIB_PATH="$MXE"/"$HOST"/lib
|
||||
;;
|
||||
*MINGW64*)
|
||||
GCC_DIR=/c/TDM-GCC-64
|
||||
HOST="x86_64-w64-mingw32"
|
||||
LIB_PATH="$GCC_DIR"/"$HOST"/lib
|
||||
;;
|
||||
esac
|
||||
# ok.
|
||||
# BDD compiler package. Get version that compiles on Windows from Vitor!
|
||||
# GMP=/l/Work/noth/msys/1.0/local
|
||||
GMP=/c/msys64/usr/win32
|
||||
CUDD=/c/cygwin/Yap/cudd-2.5.0-mingw32
|
||||
GECODE=no # "/c/Program Files/Gecode"
|
||||
JAVA="$( echo /c/Program\ Files\ */Java/jdk* )"
|
||||
PYTHON="/c/Python27"
|
||||
R="$( echo /c/Program\ Files/R/R-*/bin/i* )"
|
||||
HOST+=" --enable-abi=32"
|
||||
|
||||
fi
|
||||
|
||||
if test $THREADS = yes
|
||||
export PATH="$GCC_DIR"/bin:"$PATH"
|
||||
# echo "gcc= " $GCC_DIR
|
||||
# echo "host= " $HOST
|
||||
if test x"$JAVA" != xno
|
||||
then
|
||||
export PATH="$PATH":"$JAVA"/bin
|
||||
fi
|
||||
if test x"$PYTHON" != xno
|
||||
then
|
||||
export PATH="$PATH":"$PYTHON"/"python.exe"
|
||||
fi
|
||||
if test x"$R" != xno
|
||||
then
|
||||
export PATH="$PATH":"$R"
|
||||
fi
|
||||
|
||||
if test ${THREADS} = yes
|
||||
then
|
||||
cp "$LIB_PATH"/libwinpthread-1.dll .
|
||||
cp libwinpthread-1.dll pthreadGC2.dll
|
||||
@ -142,7 +173,6 @@ fi
|
||||
|
||||
if test $CUDD != no
|
||||
then
|
||||
CUDD="$CUDD_PATH"
|
||||
BDDLIB="yes"
|
||||
CPLINT="yes"
|
||||
else
|
||||
@ -150,44 +180,51 @@ else
|
||||
CPLINT="no"
|
||||
fi
|
||||
|
||||
if test $GECODE = yes
|
||||
if test x"$GECODE" != xno
|
||||
then
|
||||
export PATH="$PATH":"$GECODE_PATH"/bin
|
||||
export PATH="$PATH":"$GECODE"/bin
|
||||
fi
|
||||
|
||||
if test $JAVA = yes
|
||||
if test "$JAVA" = yes
|
||||
then
|
||||
export PATH="$PATH":"$JAVA_PATH"/bin
|
||||
export PATH="$PATH":"$JAVA"/bin
|
||||
fi
|
||||
|
||||
if test $PYTHON = yes
|
||||
if test "$PYTHON" = yes
|
||||
then
|
||||
export PATH="$PATH":"$PYTHON_PATH"
|
||||
export PATH="$PATH":"$PYTHON"
|
||||
fi
|
||||
|
||||
if test $REAL = yes
|
||||
if test x"$R" != xno
|
||||
then
|
||||
if test $ABI = 32; then
|
||||
R_ABI=i386
|
||||
else
|
||||
R_ABI=x64
|
||||
fi
|
||||
export PATH="$PATH":"$R_PATH"/bin/"$R_ABI"
|
||||
export PATH="$PATH":"$R"
|
||||
fi
|
||||
|
||||
if test do_compile = true
|
||||
then
|
||||
make distclean
|
||||
fi
|
||||
|
||||
export INSTALL_SH=$SRC/yap-6.3/install.sh
|
||||
# avoid using relative paths
|
||||
if test "$do_compile" = true; then
|
||||
"$CONFIGURE" --host=$HOST \
|
||||
--prefix=$TARGET \
|
||||
--with-R="$REAL" \
|
||||
BUILD=/c/cygwin/Yap/mingw"$ABI"
|
||||
mkdir -p "$BUILD"
|
||||
# /bin/rm -rf "$BUILD"/*
|
||||
"$CONFIGURE" --host="$HOST" \
|
||||
--prefix="$TARGET" $DEBUG\
|
||||
--with-R="$R" \
|
||||
--with-java="$JAVA" \
|
||||
--with-gmp="$GMP" \
|
||||
--with-python="$PYTHON" \
|
||||
--with-cudd="$CUDD" --enable-bddlib="$BDDLIB" --with-cplint="$CPLINT" \
|
||||
--with-gecode="$GECODE" \
|
||||
--enable-threads="$THREADS" --enable-pthread-locking \
|
||||
--enable-debug-yap --enable-low-level-tracer
|
||||
--enable-threads="$THREADS" --enable-pthread-locking
|
||||
|
||||
make #-j 4 install
|
||||
fi
|
||||
@ -199,7 +236,7 @@ if test "$do_install" = true; then
|
||||
-DROOTDIR=$TARGET \
|
||||
-DABI="$ABI" \
|
||||
-DVERSION="$FULL_VERSION" \
|
||||
-DOPTIONS="$SRC_WIN\\yap-6.3\\misc\\options.ini" \
|
||||
-DOPTIONS="$SRC_WIN\\misc\\options.ini" \
|
||||
-DOUT_DIR=".." -D"WIN64=1" \
|
||||
-NOCD $SRC/yap-6.3/misc/Yap.nsi
|
||||
else
|
||||
@ -209,7 +246,7 @@ if test "$do_install" = true; then
|
||||
-DROOTDIR=$TARGET \
|
||||
-DABI="$ABI" \
|
||||
-DVERSION="$FULL_VERSION" \
|
||||
-DOPTIONS="$SRC_WIN\\yap-6.3\\misc\\options.ini" \
|
||||
-DOPTIONS="$SRC_WIN\\misc\\options.ini" \
|
||||
-DOUT_DIR=".." \
|
||||
-NOCD $SRC/yap-6.3/misc/Yap.nsi
|
||||
fi
|
||||
|
@ -46,11 +46,12 @@
|
||||
#include <wchar.h>
|
||||
#include <stddef.h>
|
||||
#ifdef __WINDOWS__
|
||||
#include <stdint.h>
|
||||
#ifndef INT64_T_DEFINED
|
||||
#define INT64_T_DEFINED 1
|
||||
typedef __int64 int64_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
#if (_MSC_VER < 1300) && !defined(__MINGW32__)
|
||||
#if (_MSC_VER < 1300)
|
||||
typedef long intptr_t;
|
||||
typedef unsigned long uintptr_t;
|
||||
typedef intptr_t ssize_t; /* signed version of size_t */
|
||||
|
@ -22,6 +22,7 @@
|
||||
*/
|
||||
|
||||
#if defined(__WINDOWS__) || defined(__MINGW32__)
|
||||
#include <stdint.h>
|
||||
#include "windows/uxnt.h"
|
||||
#ifdef _YAP_NOT_INSTALLED_
|
||||
#include <config.h>
|
||||
|
@ -789,7 +789,7 @@ simple:
|
||||
|
||||
|
||||
int
|
||||
_xos_chmod(const char *path, int mode)
|
||||
_xos_chmod(const char *path, mode_t mode)
|
||||
{ TCHAR buf[PATH_MAX];
|
||||
|
||||
if ( !_xos_os_filenameW(path, buf, PATH_MAX) )
|
||||
@ -1003,6 +1003,20 @@ _xos_getcwd(char *buf, size_t len)
|
||||
{ return _xos_canonical_filenameW(buf1, buf, len, 0);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
char *
|
||||
_xos_getcwd_i(char *buf, int len)
|
||||
{ TCHAR buf0[PATH_MAX];
|
||||
TCHAR buf1[PATH_MAX];
|
||||
|
||||
if ( _wgetcwd(buf0, sizeof(buf0)/sizeof(TCHAR)) &&
|
||||
_xos_long_file_nameW(buf0, buf1, sizeof(buf0)/sizeof(TCHAR)) )
|
||||
{ return _xos_canonical_filenameW(buf1, buf, len, 0);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -36,8 +36,10 @@
|
||||
#include <sys/stat.h>
|
||||
#include <stdio.h>
|
||||
#include <io.h>
|
||||
#if HAVE_DIRECT_H
|
||||
#include <direct.h>
|
||||
#if !defined(__MINGW32__)
|
||||
#endif
|
||||
#if !defined(__MINGW32__) && !defined(__MSYS__)
|
||||
#if (_MSC_VER < 1300)
|
||||
typedef long intptr_t;
|
||||
typedef unsigned long uintptr_t;
|
||||
@ -81,13 +83,13 @@ typedef intptr_t ssize_t; /* signed version of size_t */
|
||||
#define chdir _xos_chdir
|
||||
#define mkdir _xos_mkdir
|
||||
#define rmdir _xos_rmdir
|
||||
#define getcwd _xos_getcwd
|
||||
#define getcwd _xos_getcwd_i
|
||||
#define setenv _xos_setenv
|
||||
#define fopen(p, m) _xos_fopen(p, m)
|
||||
|
||||
#endif /*_UXNT_KERNEL*/
|
||||
|
||||
#ifndef __MINGW32__
|
||||
#if !defined(__MINGW32__) && !defined(__MSYS__)
|
||||
#define F_OK 00
|
||||
#define R_OK 04 /* access() fields */
|
||||
#define W_OK 06
|
||||
@ -101,6 +103,10 @@ typedef intptr_t ssize_t; /* signed version of size_t */
|
||||
#define PATH_MAX 1024
|
||||
#endif
|
||||
|
||||
#if __MSYS__
|
||||
#define _stati64 stat
|
||||
#endif
|
||||
|
||||
#undef _xos_stat
|
||||
|
||||
_export char * _xos_home(void);
|
||||
@ -130,7 +136,7 @@ _export ssize_t _xos_write(int handle, const void *buf, size_t size);
|
||||
_export long _xos_lseek(int handle, long offset, int whence);
|
||||
_export long _xos_tell(int handle);
|
||||
_export int _xos_access(const char *path, int mode);
|
||||
_export int _xos_chmod(const char *path, int mode);
|
||||
_export int _xos_chmod(const char *path, mode_t mode);
|
||||
_export int _xos_remove(const char *path);
|
||||
_export int _xos_rename(const char *old, const char *newname);
|
||||
_export int _xos_stat(const char *path, struct _stati64 *sbuf);
|
||||
@ -138,6 +144,7 @@ _export int _xos_chdir(const char *path);
|
||||
_export int _xos_mkdir(const char *path, int mode);
|
||||
_export int _xos_rmdir(const char *path);
|
||||
_export char * _xos_getcwd(char *buf, size_t len);
|
||||
_export char * _xos_getcwd_i(char *buf, int len);
|
||||
_export int _xos_errno(void);
|
||||
_export int _xos_exists(const char *path, int flags);
|
||||
_export size_t _xos_getenv(const char *name, char *buf, size_t buflen);
|
||||
|
@ -6,6 +6,7 @@ prefix = @prefix@
|
||||
exec_prefix = ${prefix}
|
||||
ROOTDIR = $(prefix)
|
||||
EROOTDIR = ${prefix}
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
#
|
||||
# where the binary should be
|
||||
#
|
||||
|
Reference in New Issue
Block a user