Hey folks;
In my last message I was building fossil with PortableMingW. I've figured out
the steps to add OpenSSL support.
I have compiled executables, but I have not verify functionality.
Building Fossil on Windows - mingw
Using mingw, zlib, OpenSSL
Download portable mingw 5.1.4, available from portableapps.com
http://portableapps.com/node/18601
Start up the portable build environment by running MSYSPortable.exe
Change to a working directory:
$ cd /c/dev/fossil/src
zlib
Download the zlib source files from zlib.net:
http://zlib.net/zlib-1.2.4.tar.gz
Extract zlib source:
$ cd /c/dev/fossil/src
$ tar zxvf zlib-1.2.4.tar.gz
This puts the source code in /c/dev/fossil/src/zlib-1.2.4
Build the zlib library:
$ cd /c/dev/fossil/src/zlib-1.2.4
$ make -f ./win32/Makefile.gcc
(This should build with no errors.)
OpenSSL
---
Download OpenSSL from http://www.openssl.org/source/
http://www.openssl.org/source/openssl-1.0.0.tar.gz
Extract OpenSSL source:
$ cd /c/dev/fossil/src
$ tar zxvf openssl-1.0.0.tar.gz
This puts the source code in /c/dev/fossil/src/openssl-1.0.0
(There are some errors about symbolic links, ignoring them for now.)
Run the config script, disable asm and shared libs:
$ cd /c/dev/fossil/src/openssl-1.0.0
$ ./config no-asm no-shared
...
Configured for mingw.
Build libssl.a and libcrypto.a;
$ make build_ssl build_crypto
...
This should build libcrypto.a and libssl.a with no errors;
$ ls -la lib*
-rw-r--r-- 1 rppowell Administrators 2227328 Mar 30 21:47 libcrypto.a
-rw-r--r-- 1 rppowell Administrators 419516 Mar 30 21:45 libssl.a
fossil
--
Download fossil-src from http://www.fossil-scm.org/download.html
http://www.fossil-scm.org/download/fossil-src-20100318142033.tar.gz
Extract fossil-src:
$ cd /c/dev/fossil/src
$ tar zxvf fossil-src-20100318142033.tar.gz
$ cd fossil-src-20100318142033
Edit Makefile.w32
Enable SSL by enabling the commented value:
Before:
# FOSSIL_ENABLE_SSL=1
After:
FOSSIL_ENABLE_SSL=1
Add zlib and OpenSSL to TCC line:
Before:
TCC = gcc -Os -Wall -DFOSSIL_I18N=0 -L/mingw/lib -I/mingw/include
After
TCC = gcc -Os -Wall -DFOSSIL_I18N=0 -L/mingw/lib -I/mingw/include
TCC += -I../zlib-1.2.4 -L../zlib-1.2.4
TCC += -I../openssl-1.0.0/include -L../openssl-1.0.0
Edit options to LIB;
Before:
LIB = -lmingwex -lz -lws2_32
# OpenSSL:
ifdef FOSSIL_ENABLE_SSL
LIB += -lcrypto -lssl
endif
After:
# OpenSSL:
ifdef FOSSIL_ENABLE_SSL
LIB += -lssl -lcrypto -lgdi32
endif
LIB += -lmingwex -lz -lws2_32
Note: The order of the linking libraries is IMPORTANT!
I found that if the the 'ssl' and 'crypto' libs are linked last, there are
linking errors, such as undefined reference to 'create...@16',
undefined reference to 'shutd...@8', undefined reference to 'winm...@16',
etc.
Build fossil;
$ make -f Makefile.w32
This generates a 'fossil.exe'.
I have tested the basic function of the generated binary by starting the ui:
C:\dev\fossil\src\fossil-src-20100318142033fossil.exe new TEST
project-id:
server-id:
admin-user: rppowell (initial password is XX)
C:\dev\fossil\fossiltestfossil-ssl.exe ui SSL
Listening for HTTP requests on TCP port 8080
Launch webbrowser: start http://127.0.0.1:8080/
Type Ctrl-C to stop the HTTP server
Comments/thoughts?
-rppowell
_
The New Busy is not the old busy. Search, chat and e-mail from your inbox.
http://www.windowslive.com/campaign/thenewbusy?ocid=PID27925::T:WLMTAGL:ON:WL:en-US:WM_HMP:032010_3___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users