1.3.1 pre+
Konstantin Popov
kost at sics.se
Thu Jun 10 00:28:45 CEST 2004
Dear Bob,
the shortest known path is to bootstrap the system, including the
mozart-stdlib but excluding documentation (which is taken from the
linux build), using cygwin and specified packages Mozart depends on,
and then use InstallShield to produce the packages similar to
e.g. those produced by Thorsten for 1.3.0. There is some documentation
(possibly a bit dated but giving the right "feeling") and the
InstallShield's Mozart.ism script.
I won't mind having the packages prepared using VS.NET (or whatever
else) as long as they work and the installation sequence is not too
different from present day's packages or too complicated, but then
there is no ready (or even semi-ready) script for it.
Porting ot VC++ is a *next* step. After all, cygwin does work, and the
resulting Mozart pacakage is a native win32 application (i.e. it does
not require cygwin.dll to run). Mozart used to compile with C++ - as
Christian already pointed out. gcc3 is much closer to VC++ than
gcc2.95, so I agree - it should be doable. I'm not so sure about all
the packages though - so if one wants to compile packages from sources
then the cygwin might become necessary anyway.
Besides Thorsten, at least Kevin and myself have bootstrapped the
system (I attach my log) but we did not touch the InstallShield issue.
Actually, I have a version of InstallShield (cannot tell the version
ID right now since the box is in the office) so maybe I can do
packaging. But again, I'm not the Windows user at all..
'hope this helps.
Cheers,
--- Kostja.
> What needs to be done for Windows at this point? I got the impression that
> Kevin already has the 1.3.1 binaries building.... is it just a packaging
> issue?
>
> I don't have installshield but I do have the VS.NET installation projects,
> which are quite powerful and have obviated the need for me at work to even
> use installshield to create sophisticated setup packages.
>
> I'm willing to a.) build on Cygwin using the prepackaged binaries and the
> current CVS branch, and b.) create a VS.NET setup package for Mozart on
> Windows, if anybody wants me to. Then I can add the projects later to my
> VS.NET Solution (including the setup) to eventually have Mozart compiling
> with VC++ in the VS.NET IDE as the next step.
>
> OK, don't ask me to do it. I'm going to do it. But any pointers from the
> InstallShield-based installation package would be appreciated. :)
>
> - Bob Calco
#
WINBUILD=${HOME}/compile/build-1.3.0/windows
cd ${WINBUILD}
# environment
CFLAGS="-mno-cygwin -O3 -fno-strict-aliasing -fomit-frame-pointer -march=i586 -mcpu=i686"
# PACKAGES
mkdir -p packages
mkdir -p packages-build
# copy msvcrt.dll !
# I did not find it on a Windows XP, but e.g.:
cd packages/dlls
cp $SYSTEMROOT/system32/msvcr70.dll .
# make a link in orde to keep the configure script happy:
ln -s msvcr70.dll msvcrt.dll
# gmp
cd ${WINBUILD}/packages-build
zcat.exe gmp-4.1.2.tar.gz | tar xfv -
cd gmp-4.1.2
./configure --prefix=${WINBUILD}/packages --disable-shared CFLAGS="${CFLAGS}"
make
make install
# zlib
cd ${WINBUILD}/packages-build
bzcat.exe zlib-1.2.1.tar.bz2 | tar xfv -
cd zlib-1.2.1
CFLAGS="${CFLAGS}" ./configure --prefix=${WINBUILD}/packages
make
make install
# tcl/tk (don't build, but copy already installed one)
cd ${WINBUILD}/packages
# Do NOT take tcl/tk from cygwin - it depends on cygwin.dll !!!
cp /cygdrive/c/Tcl/include/tcl.h include
cp /cygdrive/c/Tcl/include/tclDecls.h include
cp /cygdrive/c/Tcl/include/tclPlatDecls.h include
cp /cygdrive/c/Tcl/include/tk.h include
cp /cygdrive/c/Tcl/include/tkDecls.h include
cp /cygdrive/c/Tcl/include/tkIntXlibDecls.h include
cp /cygdrive/c/Tcl/include/tkPlatDecls.h include
cp -ar /cygdrive/c/Tcl/include/X11 include
cp -ar /cygdrive/c/Tcl/lib/tk8.4 lib
cp -ar /cygdrive/c/Tcl/lib/tcl8.4 lib
cp /cygdrive/c/Tcl/bin/tcl*.dll dlls
cp /cygdrive/c/Tcl/bin/tk*.dll dlls
# these two cause problems when building emulator.dll (apparently, the idiot is not
# case-sensitive and mixes up libtk.a and libTk.a)
#cp /usr/lib/libtcl* lib
#cp /usr/lib/libtk* lib
cat <<EOF >tclConfig.sh
TCL_VERSION='8.4'
TCL_PREFIX='/cygdrive/h/compile/build-1.3.0/windows/packages'
TCL_LIBS=''
TCL_LIB_SPEC='/cygdrive/h/compile/build-1.3.0/windows/packages/dlls/tcl84.dll'
EOF
cat <<EOF >tkConfig.sh
TK_VERSION='8.4'
TK_PREFIX='/cygdrive/h/compile/build-1.3.0/windows/packages'
TK_LIBS=''
TK_LIB_SPEC='/cygdrive/h/compile/build-1.3.0/windows/packages/dlls/tk84.dll'
TK_XINCLUDES=''
EOF
# gdbm
cd ${WINBUILD}/packages-build
zcat zcat.exe gdbm-1.8.3.tar.gz | tar xfv -
cd gdbm-1.8.3
patch < ../gdbm-1.8.3-patch.diff
CFLAGS="${CFLAGS}" ./configure --disable-shared
make CFLAGS="${CFLAGS}"
make prefix=${WINBUILD}/packages install
$ regex
cd ${WINBUILD}/packages-build
zcat.exe regex-0.12.tar.gz | tar xfv -
cd regex-0.12
patch < ../regex-0.12-patch.diff
CFLAGS="${CFLAGS}" ./configure --prefix=${WINBUILD}/packages
make CFLAGS="${CFLAGS}"
make prefix=${WINBUILD}/packages install
# MOZART
cd ${WINBUILD}
# echo $PATH
# /usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Program Files/Common Files/Adaptec Shared/System
export PATH=/usr/bin:/bin:/cygdrive/c/WINNT/system32:/cygdrive/c/WINNT:${PATH}
export windlldir=${WINBUILD}/packages/dlls
mkdir -p mozart-build
cp -aL mozart c:/temp
cp -aL mozart-stdlib c:/temp
cd mozart-build
CXX=g++ /cygdrive/c/temp/mozart/configure --prefix=${WINBUILD}/mozart-install --with-inc-dir=${WINBUILD}/packages/include --with-lib-dir=${WINBUILD}/packages/lib --with-tcl=${WINBUILD}/packages --with-tk=${WINBUILD}/packages --disable-contrib-compat --with-stdlib=/cygdrive/c/temp/mozart-stdlib
make depend
# if emacs comes from cygwin, edit the share/elisp/Makefile:
# $(EMACS) --eval "(setq load-path (cons \"$(SRCDIR)\" load-path))" -q -batch -f batch-byte-compile $< && \
make bootstrap
make install
# tmp
More information about the mozart-hackers
mailing list