292 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			292 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # script for compiling and installing YAP under msys. Uses a mingw64
 | |
| # compiler, msys shell and nsis to do the installing
 | |
| # Please read the script before trying to execute it.
 | |
| # Legal arguments for the script are
 | |
| #  'threads' - enable threads
 | |
| #  'no_threads',
 | |
| #  '32', '64'  - compile for 32 or 64 bit architecture.
 | |
| # By default threads are turned off and we use 64 bits.
 | |
| #
 | |
| # please check if you have gcc 64 bits in your path and a clone
 | |
| # of msys shell like smartgit:
 | |
| #
 | |
| # http://sourceforge.net/projects/mingwbuilds/
 | |
| #   PS: don't install in the default location.
 | |
| #   mingw should avoid space in its directory path,
 | |
| #   it freaks winres out.
 | |
| # http://nsis.sourceforge.net/Main_Page
 | |
| #
 | |
| #
 | |
| # newline
 | |
| 
 | |
| for YHOME in /y/vsc /z /home/vsc /home/vitor /Users/vsc /u/vitor;
 | |
| do
 | |
|     if test -d $YHOME/Yap
 | |
|     then
 | |
| 	break
 | |
|     fi
 | |
| done
 | |
| 
 | |
| #!/bin/sh
 | |
| #
 | |
| # /**
 | |
| #
 | |
| # assumes o mingw32/mingw64 compiler
 | |
| #         native sh like env: msys usually, such as 
 | |
| #            http://msys2.sourceforge.net/
 | |
| #          
 | |
| 
 | |
| # Major and Minor
 | |
| VER="6.3"
 | |
| # Patch
 | |
| PATCHID="4"
 | |
| # SRC in the way it loks to the script
 | |
| SRC=/c/cygwin/yap-"$VER"
 | |
| # the way it looks to win32
 | |
| SRC_WIN="c:\\cygwin\\yap-${VER}"
 | |
| #SRC=/l/work/noth/git
 | |
| #SRC_WIN=L:\\work\\noth\\git
 | |
| #SRC="$HOME"/git/yap-6.3
 | |
| # do we support THREADS
 | |
| THREADS=no
 | |
| # makes install bundle
 | |
| NSIS="/c/Program Files (x86)/NSIS/makensis"
 | |
| # emulator, by default, ""
 | |
| PREFIX_CMD=wine
 | |
| # work from scratch
 | |
| CLEAN=yes
 | |
| 
 | |
| VERSION="$VER"."$PATCHID"
 | |
| I=$#
 | |
| while test $I -gt 0
 | |
| do
 | |
|     case $1 in
 | |
|     threads)
 | |
| 	THREADS=yes
 | |
| 	;;
 | |
|     no_threads)
 | |
| 	THREADS=no
 | |
| 	;;
 | |
|     reuse)
 | |
| 	CLEAN=no
 | |
| 	;;
 | |
|     exe)
 | |
| 	CLEAN=exe
 | |
| 	;;
 | |
|     clean)
 | |
| 	CLEAN=yes
 | |
| 	;;
 | |
|     32)
 | |
| 	ABI=32
 | |
| 	;;
 | |
|     64)
 | |
| 	ABI=64
 | |
| 	;;
 | |
|     **)
 | |
| 	echo "received \"$1\", should be one of threads, no_threads, 32, 64, reuse, clean"
 | |
| 	;;
 | |
|     esac
 | |
|     I=$(( $I - 1 ))
 | |
| done
 | |
| 
 | |
| # srcdir comes from here, please avoid relative paths
 | |
| CONFIGURE="$SRC"/configure
 | |
| DEBUG=" --enable-debug-yap --enable-low-level-tracer"
 | |
| #DEBUG=
 | |
| 
 | |
| # debugging setup
 | |
| do_compile=yes
 | |
| do_install=yes
 | |
| 
 | |
| # HOME WIN64 configuration
 | |
| 
 | |
| # DOCS_DIR=/l/work/noth/yapdocs
 | |
| DOCS_DIR="$YHOME"/Yap/doxout
 | |
| 
 | |
| if test $ABI = 64; then
 | |
|     TARGET=YAP64
 | |
|     case $( uname ) in
 | |
| 	*Darwin*)
 | |
| 	    GCC_DIR="$MXE"
 | |
| 	    HOST="x86_64-w64-mingw32"
 | |
| 	    BUILD=/c/cygwin/Yap/mingw"$ABI"
 | |
| 	    ;;
 | |
| 	*MINGW64*)
 | |
|      # GCC_DIR=/l/Work/noth/mingw-w64/x86_64-4.9.0-posix-seh-rt_v3-rev1/mingw64
 | |
|      # GCC_DIR=/c/TDM-GCC-64
 | |
| 	    GCC_DIR=/c/msys64/MinGW64
 | |
| 	    HOST="x86_64-w64-mingw32"
 | |
| 	    ;;
 | |
| 	MSYS*)
 | |
|      # GCC_DIR=/c/TDM-GCC-64
 | |
| 	    GCC_DIR=/c/msys64
 | |
| 	    HOST="x86_64-pc-msys"
 | |
| 	    BLD="--build=$HOST"
 | |
| 	    ;;
 | |
|     esac
 | |
|   # ok.
 | |
|   # BDD compiler package. Get version that compiles on Windows from Vitor!
 | |
|   #  GMP=/l/Work/noth/msys/1.0/local
 | |
|     GMP=yes #/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* )"
 | |
|     # "/c/Python33-64"
 | |
|     PYTHON=yes
 | |
|     R=yes
 | |
| # HOME WIN32 configuration
 | |
| elif test $ABI = 32; then
 | |
|     TARGET=YAP
 | |
|     case $( uname ) in
 | |
| 	*Darwin*)
 | |
|     #use mxe as a cross compiler
 | |
| 	    GCC_DIR="$MXE"
 | |
| 	    HOST="i686-pc-mingw32"
 | |
| 	    GMP=/c/msys64/usr/win32
 | |
| 	    ;;
 | |
| 	*MINGW32*)
 | |
| 	    GCC_DIR=/c/msys64/mingw32
 | |
| 	    HOST="i686-w64-mingw32"
 | |
| 	    GMP=yes
 | |
| 	    ;;
 | |
|     esac
 | |
|   # ok.
 | |
|   # BDD compiler package. Get version that compiles on Windows from Vitor!
 | |
|   #  GMP=/l/Work/noth/msys/1.0/local
 | |
|     CUDD=/c/cygwin/Yap/cudd-2.5.0-mingw32
 | |
|     GECODE=no  # "/c/Program Files/Gecode"
 | |
|     JAVA="$( echo /c/Program\ Files\ *x86*/Java/jdk* )"
 | |
|   #"/c/Python27/DLLs"
 | |
|     PYTHON=yes
 | |
|     R=yes
 | |
|   # HOST=" --enable-abi=32"
 | |
| fi
 | |
| 
 | |
| if test x"$THREADS" = xyes; then
 | |
|     EXTRA_THREADS="-threads"
 | |
| fi                                                           
 | |
| 
 | |
| for BUILD  in /c/cygwin/Yap "$HOME"/Yap/bins .
 | |
| do
 | |
|     if test -d $BUILD; then break; fi
 | |
| done
 | |
| BUILD+="/mingw""$ABI""$EXTRA_THREADS"
 | |
| 
 | |
| 
 | |
| 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 -a x"$PYTHON" != yes
 | |
| then
 | |
|     export PATH="$PATH":"$PYTHON"
 | |
| fi
 | |
| 
 | |
| if test x"$R" != yes
 | |
| then
 | |
|    if test "$ABI" = 32
 | |
|    then
 | |
|        RPATH="$( echo /c/Program\ Files/R/R-*/bin/i386 )" 
 | |
|    else
 | |
|        RPATH="$( echo /c/Program\ Files/R/R-*/bin/x64 )" 
 | |
|    fi
 | |
|     export PATH="$PATH":"$RPATH"
 | |
| elif test x"$R" != xno
 | |
| then
 | |
|     export PATH="$PATH":"$R"
 | |
| fi
 | |
| 
 | |
| if test $CUDD != no
 | |
| then
 | |
|     BDDLIB="yes"
 | |
|     CPLINT="yes"
 | |
| else
 | |
|     BDDLIB="no"
 | |
|     CPLINT="no"
 | |
| fi
 | |
| 
 | |
| if test x"$GECODE" != xno
 | |
| then
 | |
|     export PATH="$PATH":"$GECODE"/bin
 | |
| fi
 | |
| 
 | |
| if test x"$JAVA" != xno
 | |
| then
 | |
|     export PATH="$PATH":"$JAVA"/bin
 | |
| fi
 | |
| 
 | |
| if test "$PYTHON" = yes
 | |
| then
 | |
|     export PATH="$PATH":"$PYTHON"
 | |
| fi
 | |
| 
 | |
| if test x"$R"  != xno
 | |
| then
 | |
|     if test $ABI = 32; then
 | |
| 	R_ABI=i386
 | |
|     else
 | |
| 	R_ABI=x64
 | |
|     fi
 | |
|     export PATH="$PATH":"$R"
 | |
| fi
 | |
| 
 | |
| if test $CLEAN = yes
 | |
| then
 | |
|     rm -rf /c/$TARGET
 | |
| fi
 | |
| 
 | |
| export INSTALL_SH=$SRC/yap-"$VERSION"/install.sh
 | |
| 
 | |
| # avoid using relative paths
 | |
| if test "$do_compile" = yes -a "$CLEAN" = yes; then
 | |
|     rm -rf "$BUILD"/*
 | |
|     mkdir -p  "$BUILD"
 | |
|     cd "$BUILD"
 | |
| #  /bin/rm -rf "$BUILD"/*
 | |
|     "$CONFIGURE" --host="$HOST" "$BLD" \
 | |
| 	--prefix=/c/"$TARGET"  $DEBUG\
 | |
|         --with-R="$R" \
 | |
| 	--with-java="$JAVA" \
 | |
|         --with-gmp="$GMP" \
 | |
|         --with-python="$PYTHON"/python.exe \
 | |
|         --with-cudd="$CUDD" --enable-bddlib="$BDDLIB" --with-cplint="$CPLINT" \
 | |
|         --with-gecode="$GECODE" \
 | |
|         --enable-threads="$THREADS"  --enable-pthread-locking
 | |
| 
 | |
| fi
 | |
| make -j 4
 | |
| if test "$do_install" = yes; then
 | |
|     make install
 | |
|     cp -a "$DOCS_DIR"0/html /c/$TARGET/share/doc/Yap
 | |
|     cp $DOCS_DIR/latex/*pdf /c/$TARGET/share/doc/Yap
 | |
| 
 | |
|     DLL_PATH="$GCC_DIR"/bin
 | |
| 
 | |
|     cp "$DLL_PATH"/libwinpthread-1.dll /c/"$TARGET"/bin
 | |
|     cp "$DLL_PATH"/libgmp*.dll /c/"$TARGET"/bin
 | |
|     cp /c/"$TARGET"/bin/libwinpthread-1.dll /c/"$TARGET"/bin/pthreadGC2.dll
 | |
| 
 | |
|     if test $ABI = 64; then
 | |
| 	"$NSIS" -DREGKEY=SOFTWARE\\YAP\\Prolog64 \
 | |
| 	    -DROOTDIR=/c/$TARGET  -DTARGET="$TARGET"  \
 | |
|             -DABI="$ABI" \
 | |
|             -DVERSION="$VERSION""$EXTRA_THREADS" \
 | |
|             -DOPTIONS="$SRC_WIN\\misc\\options.ini" \
 | |
|             -DOUT_DIR=".." -D"WIN64=1" \
 | |
|             -NOCD $SRC/misc/Yap.nsi
 | |
|     else
 | |
| 	"$NSIS" -DREGKEY=SOFTWARE\\YAP\\Prolog \
 | |
| 	    -DROOTDIR=/c/$TARGET -DTARGET="$TARGET" \
 | |
|             -DABI="$ABI" \
 | |
|             -DVERSION="$VERSION""$EXTRA_THREADS" \
 | |
|             -DOPTIONS="$SRC_WIN\\misc\\options.ini" \
 | |
|             -DOUT_DIR=".." \
 | |
|             -NOCD $SRC/misc/Yap.nsi
 | |
|     fi
 | |
| fi
 |