WIN32 support updates and some fixes.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@685 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
9cfd0deeab
commit
81716ef31f
@ -331,7 +331,7 @@ _YAP_absmi(int inp)
|
|||||||
/* YREG =was pointing to where we were going to build the
|
/* YREG =was pointing to where we were going to build the
|
||||||
* next choice-point. The stack shifter will need to know this
|
* next choice-point. The stack shifter will need to know this
|
||||||
* to move the local stack */
|
* to move the local stack */
|
||||||
if (YREG => (CELL *) B) {
|
if (YREG > (CELL *) B) {
|
||||||
ASP = (CELL *) B;
|
ASP = (CELL *) B;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -41,13 +41,13 @@ STATIC_PROTO (void ShowOp, (char *));
|
|||||||
* afterwards
|
* afterwards
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
static Int arg, rn;
|
static Int arg, rn;
|
||||||
|
|
||||||
static compiler_vm_op ic;
|
static compiler_vm_op ic;
|
||||||
|
|
||||||
static CELL *cptr;
|
static CELL *cptr;
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
char _YAP_Option[20];
|
char _YAP_Option[20];
|
||||||
|
|
||||||
YP_FILE *_YAP_logfile;
|
YP_FILE *_YAP_logfile;
|
||||||
|
12
C/iopreds.c
12
C/iopreds.c
@ -4422,17 +4422,17 @@ format(Term tail, Term args, int sno)
|
|||||||
if (size_args)
|
if (size_args)
|
||||||
radix = arg_size;
|
radix = arg_size;
|
||||||
if (IsVarTerm (args)) {
|
if (IsVarTerm (args)) {
|
||||||
FreeAtomSpace(format_base);
|
_YAP_FreeAtomSpace(format_base);
|
||||||
Error(INSTANTIATION_ERROR,args,"~T in format/2");
|
_YAP_Error(INSTANTIATION_ERROR,args,"~T in format/2");
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
} else if (!IsPairTerm (args)) {
|
} else if (!IsPairTerm (args)) {
|
||||||
FreeAtomSpace(format_base);
|
_YAP_FreeAtomSpace(format_base);
|
||||||
Error(TYPE_ERROR_LIST,args,"~T in format/2");
|
_YAP_Error(TYPE_ERROR_LIST,args,"~T in format/2");
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
if (radix > 36 || radix < 2) {
|
if (radix > 36 || radix < 2) {
|
||||||
FreeAtomSpace(format_base);
|
_YAP_FreeAtomSpace(format_base);
|
||||||
Error(DOMAIN_ERROR_RADIX,MkIntTerm(radix),"~T in format/2");
|
_YAP_Error(DOMAIN_ERROR_RADIX,MkIntTerm(radix),"~T in format/2");
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
arghd = HeadOfTerm (args);
|
arghd = HeadOfTerm (args);
|
||||||
|
@ -681,7 +681,7 @@ Macros to check the limits of stacks
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define check_trail() if (Unsigned(TrailTop) - Unsigned(TR) < MinTrailGap) \
|
#define check_trail() if (Unsigned(_YAP_TrailTop) - Unsigned(TR) < MinTrailGap) \
|
||||||
goto notrailleft
|
goto notrailleft
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -491,6 +491,7 @@ main (int argc, char **argv)
|
|||||||
int BootMode;
|
int BootMode;
|
||||||
YAP_init_args init_args;
|
YAP_init_args init_args;
|
||||||
|
|
||||||
|
fprintf(stderr,"Entering YAP\n");
|
||||||
#ifdef SIMICS
|
#ifdef SIMICS
|
||||||
fprintf(stdout,"Entering YAP\n");
|
fprintf(stdout,"Entering YAP\n");
|
||||||
#endif /* SIMICS */
|
#endif /* SIMICS */
|
||||||
|
31
docs/yap.tex
31
docs/yap.tex
@ -671,20 +671,32 @@ CC="gcc -mabi=64" ./configure --...
|
|||||||
Be careful. At least for some versions of @code{GCC}, compiling with
|
Be careful. At least for some versions of @code{GCC}, compiling with
|
||||||
@code{-g} seems to result in broken code.
|
@code{-g} seems to result in broken code.
|
||||||
|
|
||||||
@item WIN32: The cygwin environment is our suggested approach. The
|
@item WIN32: GCC is distributed in the MINGW32 and CYGWIN packages.
|
||||||
|
|
||||||
|
The Mingw32 environment is available from the URL:
|
||||||
|
|
||||||
|
@code{http://www.mingw.org}
|
||||||
|
|
||||||
|
You will need to install the @code{msys} and @code{mingw}
|
||||||
|
packages. You should be able to do configure, make and make install.
|
||||||
|
|
||||||
|
If you use mingw32 you may want to search the contributed packages for
|
||||||
|
the @code{gmp} multi-precision arithmetic library. If you do setup Yap
|
||||||
|
with @code{gmp} note that @code{libgmp.dll} must be in the path,
|
||||||
|
otherwise Yap will not be able to execute.
|
||||||
|
|
||||||
CygWin environment is available from the URL:
|
CygWin environment is available from the URL:
|
||||||
|
|
||||||
@code{http://sourceware.cygnus.com}
|
@code{http://www.cygwin.com}
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
and mirrors. Yap should compile under cygwin 20.1 but we suggest using
|
and mirrors. We suggest using recent versions of the cygwin shell. The
|
||||||
the newer 1.1.1 or recent, which has a more complete implementation of
|
compilation steps under the cygwin shell are as follows:
|
||||||
the WIN32 API and uses GCC2.95.2 instead of egcs. The compilation
|
|
||||||
steps under the cygwin shell are as follows:
|
|
||||||
|
|
||||||
@example
|
@example
|
||||||
mkdir cyg
|
mkdir cyg
|
||||||
$YAPSRC/configure --enable-coroutining \\
|
$YAPSRC/configure --enable-coroutining \\
|
||||||
|
--enable-depth-limit \\
|
||||||
--enable-max-performance
|
--enable-max-performance
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
@ -702,7 +714,7 @@ You should check the default installation path which is set to
|
|||||||
@code{/PROGRA~1/Yap} in the standard Makefile. This string will usually
|
@code{/PROGRA~1/Yap} in the standard Makefile. This string will usually
|
||||||
be expanded into @code{c:\Program Files\Yap} by Windows.
|
be expanded into @code{c:\Program Files\Yap} by Windows.
|
||||||
|
|
||||||
The cygwin environment does not provide @t{gm}. You can fetch a dll for
|
The cygwin environment does not provide @t{gmp}. You can fetch a dll for
|
||||||
the @t{gmp} library from @url{http://www.sf.net/projects/mingwrep}.
|
the @t{gmp} library from @url{http://www.sf.net/projects/mingwrep}.
|
||||||
|
|
||||||
It is also possible to configure Yap to be a part of the cygwin
|
It is also possible to configure Yap to be a part of the cygwin
|
||||||
@ -715,8 +727,9 @@ $YAPSRC/configure --enable-coroutining \\
|
|||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
@end example
|
@end example
|
||||||
Yap will then compile using the cygwin library. You can use Yap from a
|
Yap will then compile using the cygwin library and will be installed
|
||||||
cygwin console, or as a standalone application as long as it can fin
|
in cygwin's @code{/usr/local}. You can use Yap from a cygwin console,
|
||||||
|
or as a standalone application as long as it can find
|
||||||
@code{cygwin1.dll} in its path.
|
@code{cygwin1.dll} in its path.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
@ -39,11 +39,7 @@ SOBJS=random@SHLIB_SUFFIX@
|
|||||||
#in some systems we just create a single object, in others we need to
|
#in some systems we just create a single object, in others we need to
|
||||||
# create a libray
|
# create a libray
|
||||||
|
|
||||||
all: @NEWSHOBJ@
|
all: $(SOBJS)
|
||||||
|
|
||||||
sobjs: $(SOBJS)
|
|
||||||
|
|
||||||
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
|
||||||
@ -54,38 +50,9 @@ random.o: $(srcdir)/random.c
|
|||||||
@DO_SECOND_LD@random@SHLIB_SUFFIX@: random.o
|
@DO_SECOND_LD@random@SHLIB_SUFFIX@: random.o
|
||||||
@DO_SECOND_LD@ @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
|
|
||||||
#
|
|
||||||
# DLLNAME: name of the new dll
|
|
||||||
# OBJS: list of object files I want to put in
|
|
||||||
# LIBS: list of libraries to link with
|
|
||||||
# DEFFILE is the name of the definitions file.
|
|
||||||
# BASEFILE temporary
|
|
||||||
# EXPFILE temporary
|
|
||||||
# ENTRY is the entry point int WINAPI startup (HINSTANCE, DWORD, LPVOID)
|
|
||||||
#
|
|
||||||
DLLTOOL=dlltool
|
|
||||||
DLLNAME=random.dll
|
|
||||||
DLL_LIBS=@DLL_LIBS@ -L../.. -lWYap
|
|
||||||
BASE_FILE=random.base
|
|
||||||
EXP_FILE=random.exp
|
|
||||||
DEF_FILE=$(srcdir)/random.def
|
|
||||||
ENTRY_FUNCTION=_win_random@12
|
|
||||||
#
|
|
||||||
random.dll: $(OBJS)
|
|
||||||
$(LD) -s --base-file $(BASE_FILE) --dll -o $(DLLNAME) $(OBJS) $(DLL_LIBS) -e $(ENTRY_FUNCTION)
|
|
||||||
$(DLLTOOL) --as=$(AS) --dllname $(DLLNAME) --def $(DEF_FILE) --base-file $(BASE_FILE) --output-exp $(EXP_FILE)
|
|
||||||
$(LD) -s --base-file $(BASE_FILE) $(EXP_FILE) -dll -o $(DLLNAME) $(OBJS) $(DLL_LIBS) -e $(ENTRY_FUNCTION)
|
|
||||||
$(DLLTOOL) --as=$(AS) --dllname $(DLLNAME) --def $(DEF_FILE) --base-file $(BASE_FILE) --output-exp $(EXP_FILE)
|
|
||||||
$(LD) $(EXP_FILE) --dll -o $(DLLNAME) $(OBJS) $(DLL_LIBS) -e $(ENTRY_FUNCTION)
|
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
$(INSTALL_PROGRAM) $(SOBJS) $(DESTDIR)$(LIBDIR)
|
$(INSTALL_PROGRAM) $(SOBJS) $(DESTDIR)$(LIBDIR)
|
||||||
|
|
||||||
install_win32: dll
|
|
||||||
$(INSTALL_PROGRAM) -m 755 random.dll $(LIBDIR)/random.dll
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *~ $(OBJS) $(SOBJS) *.BAK
|
rm -f *.o *~ $(OBJS) $(SOBJS) *.BAK
|
||||||
|
|
||||||
|
@ -39,11 +39,7 @@ SOBJS=regexp@SHLIB_SUFFIX@ @NO_BUILTIN_REGEXP@ regcomp@SHLIB_SUFFIX@ regexec@SHL
|
|||||||
#in some systems we just create a single object, in others we need to
|
#in some systems we just create a single object, in others we need to
|
||||||
# create a libray
|
# create a libray
|
||||||
|
|
||||||
all: @NEWSHOBJ@
|
all: $(SOBJS)
|
||||||
|
|
||||||
sobjs: $(SOBJS)
|
|
||||||
|
|
||||||
dll: regexp@SHLIB_SUFFIX@
|
|
||||||
|
|
||||||
regexp.o: $(srcdir)/regexp.c @NO_BUILTIN_REGEXP@ $(srcdir)/regex2.h $(srcdir)/engine.c
|
regexp.o: $(srcdir)/regexp.c @NO_BUILTIN_REGEXP@ $(srcdir)/regex2.h $(srcdir)/engine.c
|
||||||
$(CC) -c $(CFLAGS) $(SHLIB_CFLAGS) $(srcdir)/regexp.c -o regexp.o
|
$(CC) -c $(CFLAGS) $(SHLIB_CFLAGS) $(srcdir)/regexp.c -o regexp.o
|
||||||
@ -63,11 +59,11 @@ regexec.o: $(srcdir)/regexec.c
|
|||||||
@DO_SECOND_LD@%@SHLIB_SUFFIX@: %.o
|
@DO_SECOND_LD@%@SHLIB_SUFFIX@: %.o
|
||||||
@DO_SECOND_LD@ @SHLIB_LD@ -o $@ $<
|
@DO_SECOND_LD@ @SHLIB_LD@ -o $@ $<
|
||||||
|
|
||||||
@DO_SECOND_LD@regexp@SHLIB_SUFFIX@: regexp.o
|
@DO_SECOND_LD@regexp@SHLIB_SUFFIX@: regexp.o @MERGE_DLL_OBJS@ regcomp.o regerror.o regfree.o regexec.o
|
||||||
@DO_SECOND_LD@ @SHLIB_LD@ -o regexp@SHLIB_SUFFIX@ regexp.o
|
@DO_SECOND_LD@ @SHLIB_LD@ -o regexp@SHLIB_SUFFIX@ regexp.o @MERGE_DLL_OBJS@ regcomp.o regerror.o regfree.o regexec.o
|
||||||
|
|
||||||
@DO_SECOND_LD@regcomp@SHLIB_SUFFIX@: regcomp.o
|
@DO_SECOND_LD@regcomp@SHLIB_SUFFIX@: regcomp.o @MERGE_DLL_OBJS@ regfree.o
|
||||||
@DO_SECOND_LD@ @SHLIB_LD@ -o regcomp@SHLIB_SUFFIX@ regcomp.o
|
@DO_SECOND_LD@ @SHLIB_LD@ -o regcomp@SHLIB_SUFFIX@ regcomp.o @MERGE_DLL_OBJS@ regfree.o
|
||||||
|
|
||||||
@DO_SECOND_LD@regerror@SHLIB_SUFFIX@: regerror.o
|
@DO_SECOND_LD@regerror@SHLIB_SUFFIX@: regerror.o
|
||||||
@DO_SECOND_LD@ @SHLIB_LD@ -o regerror@SHLIB_SUFFIX@ regerror.o
|
@DO_SECOND_LD@ @SHLIB_LD@ -o regerror@SHLIB_SUFFIX@ regerror.o
|
||||||
@ -78,38 +74,9 @@ regexec.o: $(srcdir)/regexec.c
|
|||||||
@DO_SECOND_LD@regexec@SHLIB_SUFFIX@: regexec.o
|
@DO_SECOND_LD@regexec@SHLIB_SUFFIX@: regexec.o
|
||||||
@DO_SECOND_LD@ @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
|
|
||||||
#
|
|
||||||
# DLLNAME: name of the new dll
|
|
||||||
# OBJS: list of object files I want to put in
|
|
||||||
# LIBS: list of libraries to link with
|
|
||||||
# DEFFILE is the name of the definitions file.
|
|
||||||
# BASEFILE temporary
|
|
||||||
# EXPFILE temporary
|
|
||||||
# ENTRY is the entry point int WINAPI startup (HINSTANCE, DWORD, LPVOID)
|
|
||||||
#
|
|
||||||
DLLTOOL=dlltool
|
|
||||||
DLLNAME=regexp.dll
|
|
||||||
DLL_LIBS=@DLL_LIBS@ -L../.. -lWYap
|
|
||||||
BASE_FILE=regexp.base
|
|
||||||
EXP_FILE=regexp.exp
|
|
||||||
DEF_FILE=$(srcdir)/regexp.def
|
|
||||||
ENTRY_FUNCTION=_win_regexp@12
|
|
||||||
#
|
|
||||||
regexp.dll: $(OBJS)
|
|
||||||
$(LD) -s --base-file $(BASE_FILE) --dll -o $(DLLNAME) $(OBJS) $(DLL_LIBS) -e $(ENTRY_FUNCTION)
|
|
||||||
$(DLLTOOL) --as=$(AS) --dllname $(DLLNAME) --def $(DEF_FILE) --base-file $(BASE_FILE) --output-exp $(EXP_FILE)
|
|
||||||
$(LD) -s --base-file $(BASE_FILE) $(EXP_FILE) -dll -o $(DLLNAME) $(OBJS) $(DLL_LIBS) -e $(ENTRY_FUNCTION)
|
|
||||||
$(DLLTOOL) --as=$(AS) --dllname $(DLLNAME) --def $(DEF_FILE) --base-file $(BASE_FILE) --output-exp $(EXP_FILE)
|
|
||||||
$(LD) $(EXP_FILE) --dll -o $(DLLNAME) $(OBJS) $(DLL_LIBS) -e $(ENTRY_FUNCTION)
|
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
$(INSTALL_PROGRAM) $(SOBJS) $(DESTDIR)$(LIBDIR)
|
$(INSTALL_PROGRAM) $(SOBJS) $(DESTDIR)$(LIBDIR)
|
||||||
|
|
||||||
install_win32: dll
|
|
||||||
$(INSTALL_PROGRAM) -m 755 regexp.dll $(LIBDIR)/regexp.dll
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *~ $(OBJS) $(SOBJS) *.BAK
|
rm -f *.o *~ $(OBJS) $(SOBJS) *.BAK
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ unsigned char collate_substitute_table[UCHAR_MAX + 1][STR_LEN];
|
|||||||
struct collate_st_char_pri collate_char_pri_table[UCHAR_MAX + 1];
|
struct collate_st_char_pri collate_char_pri_table[UCHAR_MAX + 1];
|
||||||
struct collate_st_chain_pri collate_chain_pri_table[TABLE_SIZE];
|
struct collate_st_chain_pri collate_chain_pri_table[TABLE_SIZE];
|
||||||
|
|
||||||
#if _MSC_VER || defined(__MINGW32__)
|
#if _MSC_VER || defined(__MINGW32__) || defined(__CYGWIN__)
|
||||||
#define isblank(X) isspace(X)
|
#define isblank(X) isspace(X)
|
||||||
#define isascii(X) ((unsigned int)(X) < 0177)
|
#define isascii(X) ((unsigned int)(X) < 0177)
|
||||||
#endif
|
#endif
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* utility definitions */
|
/* utility definitions */
|
||||||
#if defined(_WIN32) || defined(__MINGW32__)
|
#if defined(_WIN32) || defined(__MINGW32__) || defined(__CYGWIN__)
|
||||||
#define DUPMAX ((unsigned int)-2) /* xxx is this right? */
|
#define DUPMAX ((unsigned int)-2) /* xxx is this right? */
|
||||||
#else
|
#else
|
||||||
#define DUPMAX _POSIX2_RE_DUP_MAX /* xxx is this right? */
|
#define DUPMAX _POSIX2_RE_DUP_MAX /* xxx is this right? */
|
||||||
|
@ -39,9 +39,7 @@ SOBJS=sys@SHLIB_SUFFIX@
|
|||||||
#in some systems we just create a single object, in others we need to
|
#in some systems we just create a single object, in others we need to
|
||||||
# create a libray
|
# create a libray
|
||||||
|
|
||||||
all: @NEWSHOBJ@
|
all: $(SOBJS)
|
||||||
|
|
||||||
sobjs: $(SOBJS)
|
|
||||||
|
|
||||||
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
|
||||||
@ -52,38 +50,9 @@ sys.o: $(srcdir)/sys.c
|
|||||||
@DO_SECOND_LD@sys@SHLIB_SUFFIX@: sys.o
|
@DO_SECOND_LD@sys@SHLIB_SUFFIX@: sys.o
|
||||||
@DO_SECOND_LD@ @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 mingw32 environments
|
|
||||||
#
|
|
||||||
# DLLNAME: name of the new dll
|
|
||||||
# OBJS: list of object files I want to put in
|
|
||||||
# LIBS: list of libraries to link with
|
|
||||||
# DEFFILE is the name of the definitions file.
|
|
||||||
# BASEFILE temporary
|
|
||||||
# EXPFILE temporary
|
|
||||||
# ENTRY is the entry point int WINAPI startup (HINSTANCE, DWORD, LPVOID)
|
|
||||||
#
|
|
||||||
DLLTOOL=dlltool
|
|
||||||
DLLNAME=sys.dll
|
|
||||||
DLL_LIBS=@DLL_LIBS@ -L../.. -lWYap
|
|
||||||
BASE_FILE=sys.base
|
|
||||||
EXP_FILE=sys.exp
|
|
||||||
DEF_FILE=$(srcdir)/sys.def
|
|
||||||
ENTRY_FUNCTION=_win_sys@12
|
|
||||||
#
|
|
||||||
sys.dll: $(OBJS)
|
|
||||||
$(LD) -s --base-file $(BASE_FILE) --dll -o $(DLLNAME) $(OBJS) $(DLL_LIBS) -e $(ENTRY_FUNCTION)
|
|
||||||
$(DLLTOOL) --as=$(AS) --dllname $(DLLNAME) --def $(DEF_FILE) --base-file $(BASE_FILE) --output-exp $(EXP_FILE)
|
|
||||||
$(LD) -s --base-file $(BASE_FILE) $(EXP_FILE) -dll -o $(DLLNAME) $(OBJS) $(DLL_LIBS) -e $(ENTRY_FUNCTION)
|
|
||||||
$(DLLTOOL) --as=$(AS) --dllname $(DLLNAME) --def $(DEF_FILE) --base-file $(BASE_FILE) --output-exp $(EXP_FILE)
|
|
||||||
$(LD) $(EXP_FILE) --dll -o $(DLLNAME) $(OBJS) $(DLL_LIBS) -e $(ENTRY_FUNCTION)
|
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
$(INSTALL_PROGRAM) $(SOBJS) $(DESTDIR)$(LIBDIR)
|
$(INSTALL_PROGRAM) $(SOBJS) $(DESTDIR)$(LIBDIR)
|
||||||
|
|
||||||
install_win32: dll
|
|
||||||
$(INSTALL_PROGRAM) -m 755 sys.dll $(LIBDIR)/sys.dll
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *~ $(OBJS) $(SOBJS) *.BAK
|
rm -f *.o *~ $(OBJS) $(SOBJS) *.BAK
|
||||||
|
|
||||||
|
@ -39,11 +39,7 @@ SOBJS=yap2swi@SHLIB_SUFFIX@
|
|||||||
#in some systems we just create a single object, in others we need to
|
#in some systems we just create a single object, in others we need to
|
||||||
# create a libray
|
# create a libray
|
||||||
|
|
||||||
all: @NEWSHOBJ@
|
all: $(SOBJS)
|
||||||
|
|
||||||
sobjs: $(SOBJS)
|
|
||||||
|
|
||||||
dll: yap2swi@SHLIB_SUFFIX@
|
|
||||||
|
|
||||||
yap2swi.o: $(srcdir)/yap2swi.c
|
yap2swi.o: $(srcdir)/yap2swi.c
|
||||||
$(CC) -c $(CFLAGS) $(SHLIB_CFLAGS) $(srcdir)/yap2swi.c -o yap2swi.o
|
$(CC) -c $(CFLAGS) $(SHLIB_CFLAGS) $(srcdir)/yap2swi.c -o yap2swi.o
|
||||||
@ -54,38 +50,9 @@ yap2swi.o: $(srcdir)/yap2swi.c
|
|||||||
@DO_SECOND_LD@yap2swi@SHLIB_SUFFIX@: yap2swi.o
|
@DO_SECOND_LD@yap2swi@SHLIB_SUFFIX@: yap2swi.o
|
||||||
@DO_SECOND_LD@ @SHLIB_LD@ -o yap2swi@SHLIB_SUFFIX@ yap2swi.o
|
@DO_SECOND_LD@ @SHLIB_LD@ -o yap2swi@SHLIB_SUFFIX@ yap2swi.o
|
||||||
|
|
||||||
#
|
|
||||||
# create a new DLL library on cygwin environments
|
|
||||||
#
|
|
||||||
# DLLNAME: name of the new dll
|
|
||||||
# OBJS: list of object files I want to put in
|
|
||||||
# LIBS: list of libraries to link with
|
|
||||||
# DEFFILE is the name of the definitions file.
|
|
||||||
# BASEFILE temporary
|
|
||||||
# EXPFILE temporary
|
|
||||||
# ENTRY is the entry point int WINAPI startup (HINSTANCE, DWORD, LPVOID)
|
|
||||||
#
|
|
||||||
DLLTOOL=dlltool
|
|
||||||
DLLNAME=yap2swi.dll
|
|
||||||
DLL_LIBS=@DLL_LIBS@ -L../.. -lWYap
|
|
||||||
BASE_FILE=yap2swi.base
|
|
||||||
EXP_FILE=yap2swi.exp
|
|
||||||
DEF_FILE=$(srcdir)/yap2swi.def
|
|
||||||
ENTRY_FUNCTION=_win_yap2swi@12
|
|
||||||
#
|
|
||||||
yap2swi.dll: $(OBJS)
|
|
||||||
$(LD) -s --base-file $(BASE_FILE) --dll -o $(DLLNAME) $(OBJS) $(DLL_LIBS) -e $(ENTRY_FUNCTION)
|
|
||||||
$(DLLTOOL) --as=$(AS) --dllname $(DLLNAME) --def $(DEF_FILE) --base-file $(BASE_FILE) --output-exp $(EXP_FILE)
|
|
||||||
$(LD) -s --base-file $(BASE_FILE) $(EXP_FILE) -dll -o $(DLLNAME) $(OBJS) $(DLL_LIBS) -e $(ENTRY_FUNCTION)
|
|
||||||
$(DLLTOOL) --as=$(AS) --dllname $(DLLNAME) --def $(DEF_FILE) --base-file $(BASE_FILE) --output-exp $(EXP_FILE)
|
|
||||||
$(LD) $(EXP_FILE) --dll -o $(DLLNAME) $(OBJS) $(DLL_LIBS) -e $(ENTRY_FUNCTION)
|
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
$(INSTALL_PROGRAM) $(SOBJS) $(DESTDIR)$(LIBDIR)
|
$(INSTALL_PROGRAM) $(SOBJS) $(DESTDIR)$(LIBDIR)
|
||||||
|
|
||||||
install_win32: dll
|
|
||||||
$(INSTALL_PROGRAM) -m 755 yap2swi.dll $(LIBDIR)/yap2swi.dll
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *~ $(OBJS) $(SOBJS) *.BAK
|
rm -f *.o *~ $(OBJS) $(SOBJS) *.BAK
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user