Taking this out of order a little.

On Thu, Oct 11, 2012 at 2:27 AM, Staffan Tylen <staffan.ty...@gmail.com> wrote:

> for it. You also mentioned in the same thread (?) that by using C++ Visual
> Express I can build ooSQLite on my own using the included make file. As
> mentioned before I have no C/C++ background but have tried to do exactly
> that but can't figure out how to do it. VC++ prompts me to either create a
> new project or open an existing one, and in either case I can't get to a
> position where I can perform a build using the downloaded source tree. I
> would highly appreciate some hints on how to get started with this.

You have to build from the command line.  Don't open up the GUI part
of VC++ Express at all.

I'm not sure about this, but I expect that VC++ Express has a .bat
file to set up the environment properly. Historically this has always
been vcvarsall.bat and I suspect it is the same in the Express edition
 What you do is open up a command prompt window and run that command:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\work.ooRexx>C:\Tools\VisualStudio.10.0\VC\vcvarsall.bat /?
Error in script usage. The correct usage is:
    C:\Tools\VisualStudio.10.0\VC\vcvarsall.bat [option]
where [option] is: x86 | ia64 | amd64 | x86_amd64 | x86_ia64

For example:
    C:\Tools\VisualStudio.10.0\VC\vcvarsall.bat x86_ia64

C:\work.ooRexx>

In the above you just need to locate the correct path to vcvarsall.bat.

Then you cd to where you have the ooSQLite source code:

C:\work.ooRexx>C:\Tools\VisualStudio.10.0\VC\vcvarsall.bat amd64
Setting environment for using Microsoft Visual Studio 2010 x64 tools.

C:\work.ooRexx>cd wc\ooSQLite

C:\work.ooRexx\wc\ooSQLite>dir Makefile.*
 Volume in drive C is Win7
 Volume Serial Number is D25E-50D5

 Directory of C:\work.ooRexx\wc\ooSQLite

06/12/2012  08:28 PM             8,881 Makefile.lin
06/16/2012  11:44 AM             9,043 Makefile.mac
06/01/2012  09:53 PM            12,833 Makefile.win
               3 File(s)         30,757 bytes
               0 Dir(s)   2,266,365,952 bytes free

Run nMake using the /F option to name the Makefile to use.  In this
case the Windows MakeFile.  This command does a clean:

C:\work.ooRexx\wc\ooSQLite>nmake /F Makefile.win clean_all

Microsoft (R) Program Maintenance Utility Version 10.00.40219.01
Copyright (C) Microsoft Corporation.  All rights reserved.

C:\work.ooRexx\wc\ooSQLite\src
SVN_REV 8472
        del /Q bin\windows\*.dll bin\windows\*exe bin\windows\*.cls 1>nul 2>&1
        del /Q bin\linux\*.dll bin\linux\*exe bin\linux\*.cls 1>nul 2>&1
        del /Q build\release\* 1>nul 2>&1
        del /Q build\debug\* 1>nul 2>&1


This command does a non-debug build:

C:\work.ooRexx\wc\ooSQLite>nmake /F Makefile.win RELEASE=1

Microsoft (R) Program Maintenance Utility Version 10.00.40219.01
Copyright (C) Microsoft Corporation.  All rights reserved.

C:\work.ooRexx\wc\ooSQLite\src
SVN_REV 8472
        cl /nologo /EHsc /O2 /Gr /Gs /Gy /FAs /Fabuild\release\ /MT
/W3 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTD
C_NO_DEPRECATE /DOOSQLITE_VER_MAJOR=1 /DOOSQLITE_VER_MINOR=0
/DOOSQLITE_VER_LEVEL=0 /DOOSQLITE_VER_BUILD=8472 /D
...

To build a debug version, just leave off the RELEASE=1 part.

To package everything up in a zip file

C:\work.ooRexx\wc\ooSQLite>nmake /F Makefile.win dist

> On the
> other hand, even if I did manage to perform the build using VC++ I'm not
> 100% sure that this would put me in a better position to integrate it with
> for example SQLCipher, would it?

It would put you in a better position, but not a good one.

When I originally responded, I had not looked into encryption for
SQLite and vaguely thought it was a standard extension like FTS.  It
is not, it is a completely separate library that is based on SQLite.

To add FTS to a build of ooSQLite, all you need to do is add a couple
of flags to the Makefile.

To build SQLCipher you would need to replace the SQLite source code
library with the SQLCipher library, probably change the Makefile a lot
to get it to build, probably make other source code changes in
ooSQLite source to get it too build.

If you knew a little C, building ooSQLite on you own would get you a
lot closer to building a SQLCipher native extension, using the
ooSQLite source code as a base to get started.  Probably 99% of the
work is done, in that case.

But, without some experience in C or C++, it will probably not get you closer.

> Mark, in a previous post you responded:
>
> "If there was a standard extension to SQLite that did encryption, I
> could be tempted into doing a standard ooSQLite build that included
> that extension.

The critical part of that sentence is: "If"  and "standard extension"

A FTS build can be done by setting a flag in the current ooSQLite
Makefile and making one other small change in the Makefile.  I've
already done that to help one of the first persons to try ooSQLite.
When I first responded, I was thinking that encryption would be
similar.

But, when I looked into it, encryption is not similar.  The SQLite
developers do not support encryption.  You need to get a different
product supported by different people and most likely a product with a
different license.  As I recall the license for SQLCipher is not one
that would work for ooRexx.

> For example, one of the extensions to SQLite is full text search.  If
> people wanted that, I would think about including in the standard
> distribution a build that has that extension compiled in, along with
> the regular build.
>
> Haven't given thought ...

> As response to the above regarding FTS, I'm asking myself why have different
> builds of ooSQLite to include optional extensions such as full text search?

The key part to that response is "Haven't given thought"

> Why not create a single ooSQLite version with all the bells and whistles
> included?

If people wanted FTS, I probably would not create a separate build ...
 But again, I haven[t given this a lot of thought at this point.  In
the back of my mind, I'm thinking FTS might be useful.  At the point I
decide I'm definitely interested, then I will give some thought to it.

An encrypted database solution, even one based on SQLite would need to
be a different project than ooSQLite.  I'm more likely to do a ooMySQL
next, based on what I recall the license for SQLCiper is.

--
Mark Miesfeld

------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
Oorexx-users mailing list
Oorexx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-users

Reply via email to