Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview

Artifact ID: f96eba085d3af04963be8850691b799852330ae3
Page Name:compillingOnWindows
Date: 2012-12-17 17:56:20
Original User: anonymous
Parent: c1b1ba01b67c9598c526db158d36afb3a4756421
Content

Compiling under windows XP with sdk compiler.

  • download Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1. Install and configure.
  • download openssl source
  • download nasm
  • download perl
  • install sdk
  • install nasm
  • install perl
  • mkdir c:\msc\extra\lib, c:\msc\extra\include
  • unpack ssl source. I assume c:\src\openssl
  • open VIA START MENU "SDK..." > cmd shell
  • make sure nasm is in the path
  • cd into c:\src\openssl
  • perl Configure VC-WIN32 --prefix=c:\msc\extra
  • ms\do_nasm
  • nmake -f ms\nt.mak
  • nmake -f ms\nt.mak install
  • checkout fossil. assume c:\src\fossil
  • cd \src\fossil
  • mkdir msc\
  • cd msc
  • edit ..\win\Makefile.msc to enable SSL and uncomment the SSL LIBS
  • nmake -f ..\win\Makefile.msc

Compiling under windows with Digital Mars C compiler

  • download Digital Mars c-ompiler. unzip to c:\
  • download the zlib source.
  • unzip it and compile
  • open dosbox
  • mkdir c:\DM\extra\lib, c:\DM\extra\include
  • copy zlib.lib c:\DM\extra\lib
  • copy zlib.h and zconf.h to c:\DM\extra\include
  • checkout fossil. assume c:\src\fossil
  • cd \src\fossil
  • mkdir dmc\
  • cd dmc
  • c:\DM\bin\make -f ..\win\Makefile.dmc

Updating windows sdk dmc

With the advent of fossil having a windows service interface compiling fossil will not work. The simplest option is to replace dm/include/win32/winsvc.h. The downside is that your headers are from 2 different versions and possible from 2 different sources. I used the files from mingw.org to update the sdk. The recipe for the upgrade can be found on the digital mars news server.

Compiling under Wine with Digital Mars C compiler

  • download Digital Mars c-ompiler. unzip to c:\
  • download the zlib source.
  • unzip it
  • open dosbox "wineconsole cmd"
  • compile zlib
  • mkdir c:\DM\extra\lib, c:\DM\extra\include
  • copy zlib.lib c:\DM\extra\lib
  • copy zlib.h and zconf.h to c:\DM\extra\include
  • checkout fossil. assume c:\src\fossil
  • cd \src\fossil
  • mkdir dmc\
  • cd dmc
  • c:\DM\bin\make -f ..\win\Makefile.dmc

Compiling under windows with Mingw

Installing the tools.

  • download mingw-get-inst-xx.exe. Install it using the default c:\MingW. Make sure you tell the installer to include MSYS by checking the relevant option.
  • Either build a user logon script, or change Windows' system PATH so MinGW finds its programs: C:\MinGW\bin;C:\MinGW\MSYS\1.0\bin, and reboot
  • If you want https support download openssl the binary and developer files. Extract to c:\MingW

Getting fossil source code

Log on as Anonymous, go to the Timeline section, and download the latest development source code. Just unzip the Fossil file anywhere you want (c:\src\fossil is assumed).

Compiling fossil source code

  • If you want https supports
    • make -f Makefile.w32 FOSSIL_ENABLE_SSL=1 LIB="-lssl -lcrypto -lgdi32 -lmingwex -lz -lws2_32"
  • else, cd c:\src\fossil, and run make -f win/Makefile.mingw. The compiled fossil.exe will be available at the root in c:\src\fossil.

Compiling under windows with PellesC

  • download and install PellesC C-compiler
  • download a windows version of gnu-make(http://unxutils.sourceforge.net/)
  • download the zlib source and unzip
  • checkout fossil
  • edit Makefile.PellesCGMake and check paths
  • open dosbox
  • change directory to fossil project tree
  • mkdir PellesC
  • cd PellesC
  • unxutils-path\make -f ..\win\Makefile.PellesCGMake

This is tested under Windows XP with PellesC 5 and Window 7 with PellesC 6(32 & 64 bit)

Compiling under linux for windows with Mingw

This is called cross compiling. I'm using Arch linux distribution which uses the package manager pacman to install packages. If you have a differen linux distribution the packages might be called different. I assume a login name of renez substitute yours were apropiate.

Installing the tools.

  • Install mingw32-gccs. With Arch linux you do Pacman -S mingw32-gcc (As root!). This will be installed in /usr/i486-mingw32
  • download zlib the binary and developer files.
  • If you want https support download openssl the binary and developer files.
  • Extract to /usr/i486-mingw32 by: su to root
  • cd /usr/i486-mingw32
  • unzip ~renez/Downloads/zlib-1.2.3-bin.zip
  • unzip ~renez/Downloads/zlib-1.2.3-lib.zip
  • unzip ~renez/Downloads/openssl-0.9.8h-1-bin.zip
  • unzip ~renez/Downloads/openssl-0.9.8h-1-lib.zip
  • exit root
  • download fossil for linux, and copy fossil to some where in your PATH directories maybe $HOME/bin.

Getting fossil source code

  • cd ; mkdir fossil; cd fossil
  • clone fossil repository. e.g. fossil clone http://www.fossil-scm.org/ myclone.fossil
  • mkdir src; cd src
  • fossil open ../myclone.fossil

Compiling fossil source code

  • If you want https supports
    • make -f Makefile.w32 TCC="i486-mingw32-gcc -Os -Wall -DFOSSIL_I18N=0 -L/usr/i486-mingw32/lib -I/usr/i486-mingw32/include -DFOSSIL_ENABLE_SSL=1 LIB="-lssl -lcrypto -lgdi32 -lmingwex -lz -lws2_32"
  • else make -f Makefile.w32 TCC="i486-mingw32-gcc -Os -Wall -DFOSSIL_I18N=0 -L/usr/i486-mingw32/lib -I/usr/i486-mingw32/include "

Distribution of cross compiled fossil.exe

Because you have linked against zlib and maybe ssl you need to include from /usr/i486-mingw32/bin zlib1.dll and, optional, libssl32.dll (and maybe also libeay32.dll)

testing the cross compiled fossil.exe

  • copy fossil.exe and the dll's to a windows system. For testing purpose all in one directory. For production use a directory in your PATH
  • fossil clone http://www.fossil-scm.org/ http.fossil
  • If it has https support then fossil clone https://www.fossil-scm.org/ https.fossil
test