building on windows

19 views
Skip to first unread message

Bill Nelson

unread,
Nov 6, 2009, 10:58:50 AM11/6/09
to spctools-discuss
I'm building tpp on windows with VS8. I checked out 4.3. I have a
couple questions.

1. I wanted to check out the trunk but I could only find win_lib in
the branches; where is win_lib for the trunk?
2. I assume I need to extract some of the external libs but I can't
find anything in the readme files. In extern I found:
bjam_src.tgz
boost_1_39_0.tar.bz2
expat-2.0.1.tar.gz
libarchive-2.2.7.tar.gz
sqlite-amalgamation-3.6.15.tar.gz
Which ones do I need and where do they go?

It looks like the build script tried to extract them but I can't find
any boost stuff other than the archive and there are a lot can't find
boost errors in the build:

1>zlib - 0 error(s), 14 warning(s)
3>------ Build started: Project: boost_vc8, Configuration: Debug Win32
------
4>------ Build started: Project: regenerate_versionInfo,
Configuration: Debug Win32 ------
3>Performing Makefile project actions
3>Setting environment for using Microsoft Visual Studio 2005 x86
tools.
3>Archive: bjam.zip
3> inflating: bjam.exe
3>The system cannot find the path specified.
3>"extracting boost source code; this may take a few minutes..."
3>"done extracting boost source code"
3>ECHO is off.
3>The system cannot find the path specified.
3>"buildling boost libraries; this may take some time..."
3>The system cannot find the path specified.
3>"done building boost libraries"
3>ECHO is off.
3>The system cannot find the path specified.
3>Build log was saved at "file://c:\sashimi\win_lib\Debug
\BuildLog.htm"
3>boost_vc8 - 0 error(s), 0 warning(s)

The build log did not have much to say.

Thanks,
Bill

Brian Pratt

unread,
Nov 6, 2009, 11:48:46 AM11/6/09
to spctools...@googlegroups.com
Bill,
 
The VC build is not officially maintained, only a handful of folks use it so when it breaks it can be a while before anyone notices.  Which is probably what happened here - I'll try a totally clean build and see what's what.
 
Brian Pratt
Insilicos

Brian Pratt

unread,
Nov 6, 2009, 1:16:33 PM11/6/09
to spctools...@googlegroups.com
Try a release build first - it handles the uncompressing stuff.  Apparently just an oversight on the debug side, I'm sure it will get fixed soon, but this should get you rolling. 

On Fri, Nov 6, 2009 at 7:58 AM, Bill Nelson <nels...@gmail.com> wrote:

Bill Nelson

unread,
Nov 6, 2009, 1:41:47 PM11/6/09
to spctools-discuss
Hi Brian,
I am using branch 4-3. do you know the last release that working?
Thanks for your help.
Bill

Brian Pratt

unread,
Nov 6, 2009, 2:05:59 PM11/6/09
to spctools...@googlegroups.com
Branch should be fine - trunk build system is being worked on so no surprise to find a hiccup there.

Bill Nelson

unread,
Nov 6, 2009, 5:39:11 PM11/6/09
to spctools-discuss
I couldn't get 4.3 to work so I went back to 4.2 (because it was the
release used in the documentation's build example).
It definitely got better and the build was running for about 45
minutes but still no joy. I hope you've seen this one:

LIB : fatal error LNK1181: cannot open input file 'C:\sashimi
\release4-2-1\trans_proteomic_pipeline\src\/Debug/zlib.lib'
LINK : fatal error LNK1181: cannot open input file '..\..\..\debug
\tpplib.lib' *this one happens in almost every target*

========== Build: 7 succeeded, 38 failed, 0 up-to-date, 0 skipped
==========

Brian Pratt

unread,
Nov 6, 2009, 6:27:14 PM11/6/09
to spctools...@googlegroups.com
Just about everything links against tpplib, so yes, if that's not happy nobody's happy.  And tpplib depends on zlib, so...
 
I think you're better off looking forward than backward, though, and I'd say go with trunk.

Bill Nelson

unread,
Nov 9, 2009, 10:27:33 AM11/9/09
to spctools-discuss
The newer releases don't extract the external libraries.
I was using the XML_only solution. I switched to the plain vanilla TPP
solution, rebuilt ziplib , and everything works now.
I would like to use the trunk but it does not match the documentation:
I can't find the win_lib folder in the trunk.
Can you please guide me to the correct win_lib folder for the trunk or
is it no longer needed?

Thanks,
Bill

Natalie Tasman

unread,
Nov 9, 2009, 11:23:03 AM11/9/09
to spctools...@googlegroups.com
Hi Bill,

For 4.3.x, I moved everything that was still needed from win_lib into
trunk/extern. I did this because people often didn't understand that
they had to download both directories (tpp and win_lib), and/or that
win_lib needed to match the exact version of tpp.

I maintained the Visual Studio VC8 build solely for the purposes of
building the SPC converters for the TPP releases: ReAdW, massWolf,
trapper, and mzWiff. As these have not significantly changed (from a
build point of view) in the last few releases, I'd only been
maintaining the "Release" variant of the TPP "solution" on VC8. I did
take time to make sure, however, that the release build does indeed
uncompress and build everything it needs in TPP/extern (that is, I
made sure that a standalone Release build worked, rather than have it
depended on having run the mingw build in the same directory, to
uncompress everything first.)

As it turns out that some TPP developers, such as Brian and yourself,
particularly like the VC8 debugger. I can assure you that if you
download trans_proteomic_pipeline and qualscore from
sashimi/tags/release_4-3-1 in svn as a completely clean download, the
Release build will work from start to finish. (It's possible that the
build system was confused by build objects/directories from the 4-2
win_lib style layout if you upgraded your source directory, rather
than did a clean checkout.) Then, after Release has built, and
uncompressed everything in the process, you should be able to switch
to the Debug build. However, as you've found, this hasn't been as
maintained, and you and/or Brian may need to make a few tweaks to get
Debug back up to speed.

Moving forward, the SPC converters will be retired in favor of
ProteoWizard's msconvert (which is why we hope people are using it now
and giving the pwiz team feedback on any issues encountered.) We'll
be using the pwiz team's build of the program, so we won't have a
direct need to maintain VC8. However devs such as Brian and yourself
may end up contributing changes to keep it working, if they prefer the
debugger, etc.

Hope this info helps. Let us know how it works on your system to try
a completely clean checkout of the release_4-3-1 tag followed by a
Release build first.

-Natalie

Matthew Chambers

unread,
Nov 9, 2009, 11:33:32 AM11/9/09
to spctools...@googlegroups.com
If debugging with the IDE is desirable, it's possible to use the
debugger without building with the IDE:
> devenv /debugexe foo.exe some args "to the program"

I too prefer the IDE debugger so this is what I use to debug pwiz. To be
really spiffy, Boost.Build users can do this:
> quickbuild path/to//someTestTarget testing.launcher="devenv /debugexe"
That will build the test and then launch it in the debugger ready to be
run. Life with BB is a glorious mix of ecstasy and misery. :)

However, I'm not too sure how well or even if MSVC will debug an exe
built with MinGW.

-Matt


Natalie Tasman wrote:
> However devs such as Brian and yourself
> may end up contributing changes to keep it working, if they prefer the
> debugger, etc.
>

> -Natalie

Brian Pratt

unread,
Nov 9, 2009, 11:59:11 AM11/9/09
to spctools...@googlegroups.com
>>Can you please guide me to the correct win_lib folder for the trunk or
is it no longer needed?
No longer needed.  Instead, things are extracted as needed from compressed files in extern.  Ordinarily that happens seamlessly as part of the build process (but as we have seen, in the case of VC you need to do a release buld first to trigger the uncompressing).
 
Such is life in trunk.
 
Brian

Bill Nelson

unread,
Nov 16, 2009, 12:13:14 PM11/16/09
to spctools-discuss
Okay, I got a little side tracked but I'm back. I'm not a C++
programmer so I don't think I'll be much help maintaining the VS8
build. I'm using VS8 because in the past this was the easiest way for
me to build the TPP on windows and from the perspective of a Java
programmer it is difficult for me to understand how one could
sacrifice the productivity of an IDE on such a large project.

I did check out the trunk and did a clean release build. Boost did not
extract. I'm very grateful for open source contribution of the TPP and
I do understand how difficult it is to maintain documentation but it
would have saved me a lot of time if, at least, the README file had
been updated when the build procedure was changed.
Thanks,
Bill

Brian Pratt

unread,
Nov 16, 2009, 1:34:47 PM11/16/09
to spctools...@googlegroups.com
Bill,
 
Agreed, it's bad when the docs get stale.  I'll update that windows readme.
 
As to the IDE, I'm with you but the bulk of the TPP developers are linux folk.

Brian

Bill Nelson

unread,
Nov 16, 2009, 3:27:35 PM11/16/09
to spctools-discuss
Can you tell me how to extract the external libs manually or how to
troubleshoot the makefile?
Thanks,
Bill

Brian Pratt

unread,
Nov 16, 2009, 5:40:58 PM11/16/09
to spctools...@googlegroups.com
Try opening a command window, cd to the extern directory, and run
build_boost_vc8.bat
 
Should have happened automatically, I wonder what's up.
 
Brian

Bill Nelson

unread,
Nov 17, 2009, 11:24:34 AM11/17/09
to spctools-discuss
Hi Brian,
Well, here's a guess to what is happening. The C:\sashimi\trunk
\trans_proteomic_pipeline\extern>bsdtar-1_2_38.exe -xjf
boost_1_39_0.tar.bz2 command takes about five minutes. It takes so
long because it prints " Can't set permissions: Function not
implemented" for every file. When the build is started with VS8 the
extraction is running in the background but the build keeps running.
After the build completes, with a lot of missing boost library
errors, boost_1_39_0.tar.bz2 still has not finished extracting but the
extraction process is killed when the build script ends leaving a
corrupted boost_1_39_0 directory.
So, if I do a clean, manually run bsdtar-1_2_38.exe -xjf
boost_1_39_0.tar.bz2, and then do a build everything works except for
two errors. I do have BioworksBrowser 3.3.1 SP1 installed on this PC:

24>------ Build started: Project: Out2XML, Configuration: Release
Win32 ------
24>Compiling...
23>Compiling...
24>SequestOut.cxx
23>StdAfx.cpp
24>SequestHit.cxx
24>Out2XMLMain.cxx
23>Compiling...
23>ThermoInterface.cpp
24>Out2XML.cxx
24>.\Out2XML.cxx(752) : error C2220: warning treated as error - no
'object' file generated
24>.\Out2XML.cxx(752) : warning C4018: '<' : signed/unsigned mismatch
24>Generating Code...
23>SimpleXMLWriter.cpp
24>Build log was saved at "file://c:\sashimi\trunk
\trans_proteomic_pipeline\src\Parsers\Algorithm2XML\Sequest2XML\Release
\BuildLog.htm"
24>Out2XML - 1 error(s), 1 warning(s)

37>------ Build started: Project: CombineOut, Configuration: Release
Win32 ------
37>Compiling...
37>SequestOut.cxx
37>SequestHit.cxx
37>Out2XML.cxx
37>.\Out2XML.cxx(752) : error C2220: warning treated as error - no
'object' file generated
37>.\Out2XML.cxx(752) : warning C4018: '<' : signed/unsigned mismatch
37>CombineOutMain.cxx
37>CombineOut.cxx
37>Build log was saved at "file://c:\sashimi\trunk
\trans_proteomic_pipeline\src\Parsers\Algorithm2XML\Sequest2XML\Release
\BuildLog.htm"
37>CombineOut - 1 error(s), 1 warning(s)

The Centos build worked well. The pre-install scripts are very
helpful.

Thanks for your help.
Bill

Brian Pratt

unread,
Nov 17, 2009, 2:42:18 PM11/17/09
to spctools...@googlegroups.com
Glad it's coming along. 
 
There is some weirdness here, though - my copy of out2xml.cxx doesn't have a comparison operator at line 752, and it's current with SVN.

Brian

Bill Nelson

unread,
Nov 17, 2009, 3:56:16 PM11/17/09
to spctools-discuss
Must be the time difference. Does Seattle observe daylight savings
time?

My SVN root is :https://sashimi.svn.sourceforge.net/svnroot/sashimi/
trunk/trans_proteomic_pipeline/src/Parsers/Algorithm2XML/Sequest2XML
I'm at version 4775

At line 752 in out2xml.cxx I have: for (i=2; i <strlen(szPep)-2; i++)

i is defined as: int (signed) and strlen returns size_t an Unsigned
integral
I think C++ might be a little OCD.

Thanks,
Bill
> ...
>
> read more »

Brian Pratt

unread,
Nov 17, 2009, 5:14:39 PM11/17/09
to spctools...@googlegroups.com
Oops, I wasn't up to date after all, sorry.
 
Just add an (int) cast in front of that strlen call and drive on...

--

You received this message because you are subscribed to the Google Groups "spctools-discuss" group.
To post to this group, send email to spctools...@googlegroups.com.
To unsubscribe from this group, send email to spctools-discu...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/spctools-discuss?hl=.



Bill Nelson

unread,
Nov 24, 2009, 4:25:28 PM11/24/09
to spctools-discuss
So, is that an error in the code or is my compiler special, that is,
do I change my local copy or has the trunk been updated?
Thanks,
Bill
> ...
>
> read more »

Brian Pratt

unread,
Nov 24, 2009, 5:46:56 PM11/24/09
to spctools...@googlegroups.com
I checked in that change on Nov 17.
 
Brian

> ...
>
> read more »

--

You received this message because you are subscribed to the Google Groups "spctools-discuss" group.
To post to this group, send email to spctools...@googlegroups.com.
To unsubscribe from this group, send email to spctools-discu...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/spctools-discuss?hl=en.



Dmitrii Tchekhovskoi

unread,
Dec 1, 2009, 3:37:28 PM12/1/09
to spctools...@googlegroups.com, nels...@gmail.com, brian...@insilicos.com
Oh well,

I posted the following months ago. Today I downloaded the trunk again
and all of the old fixes are still needed to build TPP.sln under MS VC++
2005.
Perhaps it will help some folks.

Dmitrii


(0)====================================
To avoid making changes to the original files downloaded from
https://sashimi.svn.sourceforge.net/svnroot/sashimi/trunk
copy the following folders to a separate folder:

qualscore
trans_proteomic_pipeline

and optionally run in that folder this command:
for /r %a in (.svn) do rd /S /Q "%a"
to remove SVN stuff
(1)====================================
In the file
trans_proteomic_pipeline\extern\build_boost_vc8.bat

(a) replace the line
bjam --toolset=msvc "-sNO_ZLIB=0" <...>
with
..\bjam --toolset=msvc-8.0 "-sNO_ZLIB=0" <...>
[this is a must if you have MS VS 2008 installed]

(b) replace line
UnxUtils\usr\local\wbin\rm.exe -rf bin.v2
with
..\UnxUtils\usr\local\wbin\rm.exe -rf bin.v2

-- non-critical optional changes:

(c) replace the 1st line,
cd %1
with pushd %1

(d) remove line cd %1 above :DONE at the bottom

(e) add last line:
popd


(2)===================================
Manually expand trans_proteomic_pipeline\extern\UnxUtils.tar.bz2
preserving directory structure to trans_proteomic_pipeline\extern\

(3)===================================
Manually expand trans_proteomic_pipeline\extern\expat-2.0.1.tar.gz
preserving directory structure to trans_proteomic_pipeline\extern\

(4)===================================
In trans_proteomic_pipeline\extern\: copy file bsdtar-1_2_38.exe to
bsdtar.exe

(5)=====Installer Case Sensitivity Issues======
(a) Manually create folder
trans_proteomic_pipeline\src\Release
(b) In batchcoverage project,
trans_proteomic_pipeline\COVERAGE\batchcoverage.vcproj
Change output name from batchcoverage.exe to BatchCoverage.exe

(6)===================================
Start MS VC++ 2005.
In the dialog Tools/Options/Projects and Solutions/Build and Run/
make sure that 1=maximum number of parallel project buils,
otherwise you get errors due to concurrently running builds.

(7)==============================
In MSVC Project/Project Dependencies dialog
select project msvc_makeinstall
check two more items in the "Depends on:" list:
indexmzXML
batchcoverage

(8)====project paths fixes=================
(a) Right-click runperl project, select Properties, select Debug
configuration at the top of the runperl Property Pages.
- Select Configuration Properties/Browse Information/General
- In the Output File field, replace
\..\..\Debug/runperl.bsc
with
.\Debug/runperl.bsc
- Click OK to save the changes
(b) Right-click InterProphetParser project, select Properties, select Debug
configuration at the top of the runperl Property Pages.
- Select Configuration Properties/Browse Information/General
- In the Output File field, replace
\trans_proteomic_pipeline\Debug/InterProphetParser.bsc
with
$(SolutionDir)$(ConfigurationName)/InterProphetParser.bsc
- Click OK to save the changes
(c) Right-click ProteinProphet project, select Properties, select Debug
configuration at the top of the runperl Property Pages.
- Select Configuration Properties/Browse Information/General
- In the Output File field, replace
\trans_proteomic_pipeline\Debug/ProteinProphet.bsc
with
.\Debug/ProteinProphet.bsc

- Select Configuration Properties/Linker/Debugging
- In theGenerate Program Database File, replace
\trans_proteomic_pipeline\Debug/ProteinProphet.pdb
with
.\Debug/ProteinProphet.pdb
-Click OK to save the changes

(9)=====Additional notes on TPP installer creation ================
The following executables required in the msvc_makeinstall project file
trans_proteomic_pipeline\installer_win32\TPP_files.nsh are not created
because there are no vcproj project files for that:

digestdb.exe
subsetdb.exe
pep_dbcount.exe
translateDNA2AA-FASTA.exe
calculate_pi.exe
add_mz.exe

Under gcc, these files are built with
trans_proteomic_pipeline\src\util\Makefile
>> read more �
>>
>
> --
>
> You received this message because you are subscribed to the Google Groups "spctools-discuss" group.
> To post to this group, send email to spctools...@googlegroups.com.
> To unsubscribe from this group, send email to spctools-discu...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/spctools-discuss?hl=en.
>
>
>
>

Reply all
Reply to author
Forward
0 new messages