BRL-CAD builds pervasively on a number of different operating systems, hardware, and compilers. We actively seek out new compilation environments and like to get them working as best as we can. We regularly build with Microsoft Visual Studio (the professional one you have to pay for). One we have not tried in a long while is Cygwin.
This task involves attempting to compile BRL-CAD on Windows on Cygwin.
You'll need to download our source code, CMake, and a FULL install of Cygwin (including gcc, g++, make, and their other devs tools). Try to get BRL-CAD to compile and keep notes of what you attempt along the way. You'll report back any failures and otherwise document all the steps you take along the way. Submit a complete build log (whether it succeeds or fails) and your notes documenting everything you did.
Note this was already attempted by someone else, so their efforts and logs may help you if you run into a problem.
Resources:
- http://brlcad.org/wiki/Compiling
- http://www.cmake.org/
- http://www.cygwin.com/
- http://www.google-melange.com/gci/task/view/google/gci2012/7972239
File name/URL | File size | Date submitted | |
---|---|---|---|
brlcad-buildlog.txt | 44.7 KB | December 17 2012 13:32 UTC | |
brlcad-buildlog.txt | 70.3 KB | December 17 2012 15:37 UTC | |
brlcad-buildlog.txt | 126.7 KB | December 17 2012 16:07 UTC | |
brlcad-buildlog.txt | 129.2 KB | December 17 2012 16:24 UTC | |
brlcad-buildlog.txt | 317.7 KB | December 18 2012 04:56 UTC | |
brlcad_buildlog_cmake_success.txt | 375.2 KB | December 18 2012 08:05 UTC | |
brlcad-buildlog-part2.txt | 399.7 KB | December 18 2012 09:46 UTC | |
Configurations for building.txt | 1.9 KB | December 18 2012 14:39 UTC | |
build.txt | 49.7 KB | December 21 2012 01:17 UTC | |
build_log_22_dec.txt | 97.3 KB | December 22 2012 15:00 UTC | |
log_24_dec.txt | 132.8 KB | December 24 2012 06:28 UTC | |
Makefile | 946.1 KB | December 24 2012 06:29 UTC | |
final summary.txt | 128.3 KB | December 26 2012 15:28 UTC | |
final summary - Strict.txt | 102.0 KB | December 26 2012 15:29 UTC |
I would like to work on this task.
There are errors in the log that is something like
CMake Error: File /usr/brlcad/rel-7.22.1/brlcad-build/src/other/tcl/doc/mann/pkg::create.n does not exist.
CMake Error at CMakeLists.txt:417 (_configure_file):
configure_file Problem configuring file
Call Stack (most recent call first):
src/other/tcl/doc/CMakeLists.txt:291 (configure_file)
It says that the file pkg::create.n does not exist, but when viewed from windows explorer, the file is present but the file name looks like "pkgcreate.n" where the looks like spaces. But when the file is listed in the cygwin terminal, it is called "pkg::create.n". This is mainly because the file name contains the character ":" which is not allowed in windows file name. Therefore, when cmake tries to access the file, it cannot be found, as it thinks that it is in the unix environment where such characters are allowed in file names.
In conclusion, many of these errors occured due to the character ":", I tried to find a way to bypass this, but unless there is a way for cmake to avoid using the character ":" when generating files, there is no way to compile brlcad using the cmake in cygwin.
Here is the link to my build log before my claim is accepted:
https://www.box.com/s/ova6dm970kmzk41ngxcp
This task has been assigned to Steven Kou. You have 48 hours to complete this task, good luck!
So for starters, that is not your build log. That is your cmake configuration log. That's a very important distinction to understand.
Second, so your inspection that the problem stems from those colons seems fair, but lacks understanding for where they're coming from. Where are they coming from?
They are not specified in src/other/tcl/doc/CMakeLists.txt from what I can quickly tell. If you are able to identify the source, you may identify the cause and a fix may present itself.
That said, those errors also do not seem to halt configuration. You very well should be able to continue to the build phase ("make").
I understand that it may be my bad that I did not explain clear enough. I apologize for that. But in the last line said that configurations are incomplete, so I think that building it will not be possible, nonetheless, I will still try to build using make and update the log.
I do not know how to edit the cmake configuration files to change the naming system such that colon will not exist in file names which is unacceptable in windows, although through the cygwin terminal the file names are correct and I do not know why cmake is unable to recognise the file. I will research on that or ask around if anyone has experience this problem.
Due the error during cmake, the makefile is not generated, therefore make cannot continue, is there any cmake files that can be edited to stop cmake from generating file with names that include colons? As long as the files generated in the build directory does not contain colons which windows does not accept, there will be less errors.
I ran cmake a second time to consolidate the errors so that it is clearer to see. Hope that there would be a solution as the web don't seem to have such solutions.
Call Stack (most recent call first):
src/other/tcl/doc/CMakeLists.txt:291 (configure_file)
if (NOT CMAKE_CONFIGURATION_TYPES)
configure_file(${man} ${CMAKE_BINARY_DIR}/${MAN_DIR}/mann/${tclmann} COPYONLY)
from line 290 to 291
Do you know what is happening?
From what I understand, zlib fails to build perhaps because of some syntax errors, but I do not understand the last few lines that make it giving me, hope that someone would explain it to me.
For me it looks like a misformed command line in the make script: "/usr/bin/windres: invalid option -- w" and "recipe for target ... failed". What is in line 402 of src/other/libz/CMakeFiles/zlib.dir/build.make ? What's the corresponding section in CMakeLists.txt?
It's a zlib line (as you said on IRC) and the error message was about the zlib. But look at the other lines in your log. So the error was simply at the first occurrence of -w. There is probably nothing special with zlib. It had bad luck in beeing the first library.
Therefore, write down what you did (e.g. the cmake parameters you set), what you had found and what you recommend should be investigated next. Then mark this task as completed. You've invested enough time in this task then.
The work on this task is ready to be reviewed.
As per mentor Daniel Rossberg's advice, I have written down what I have done so far and did a summary. Hope that it will do along with all the logs I submitted.
Should I claim the task on http://www.google-melange.com/gci/task/view/google/gci2012/8093204 ? Or should it just be closed? I actually did the work of the other one instead, but since I went on to building, I might as well submit here.
One of the mentors has sent this task back for more work. Talk to the mentor(s) assigned to this task to satisfy the requirements needed to complete this task, submit your work again and mark the task as complete once you re-submit your work.
Fort the Windows MSVC build there seams to be a work around fore the :: problem by replacing it with _. You did this by hand but there is perhaps already some code for it in the cmake files. You should make a note about comparing cygwin with MSVC to get a solution fot this problem.
Furthermore I couldn't see any other reason for the zlib to fail than the -w parameter. Where did you see the "unknown reason"?
It's good to see what all you've tried, but that certainly isn't what's needed to close either task out. Given your progress, I suggest you unclaim this task, claim the other, and work on submitting everything you did to get cmake to configure correctly. That's not a text file like you submitted here. That will be a single proper patch file (see http:://brlcad.org/wiki/Patches for help) that gets it all working.
That said, even your text file doesn't seem accurate:
I think what you probably meant to say is to edit the ttk_*.n files and change the ttk::* references within the file to ttk_* references? Still, I don't think that's required to get it working. Notice the CMakeLists.txt file in the src/other/tk/doc directory. Read what it's doing. Notice how it iterates over all of the tk_*.n files and runs the installManPage script on them. That's probably where you should be looking.
Since the goal is getting a working compile, at this point I suggest you unclaim this task and claim the other task since you're so close. Once that task is complete, you wlll probably be able to come back to this one. It's a gamble, but a pretty safe one. :)
Melange has detected that the final deadline has passed and it has reopened the task.
I would like to work on this task.
This task has been assigned to Steven Kou. You have 48 hours to complete this task, good luck!
I have uploaded my latest findings, hope that the mentors can take a look.
I am quite busy these few days so I may not be able to finish the task on time, is it possible to have an extension? If it is not possible then perhaps I will try my luck to claim the task again later.
The deadline of the task has been extended with 2 days and 0 hours.
As I am not an expert in this program, there are something that I don't understand and therefore cannot solve the problem.
My conclusions so far are:
1. During zlib compilation, -w flag is passed to windres.exe. From my understanding, windres.exe does not accept such flags. The related file that contains the flags are indicated in the log on 21 Dec.
2. In the makefile, make has problems at line 146 onwards, it seems to not be able to process "all". This is the portion which I don't understand at all, there isn't much on the internet regarding this.
I hope someone who understands all these errors could give me a tip on how to resolve them, or at least explain what is going on.
Thank you.
Melange has detected that the initial deadline has passed and it has set the task status to ActionNeeded. The student has 24 hours to submit the work before the task is reopened and sent back to the pool for other students to claim.
The work on this task is ready to be reviewed.
I don't feel that my work is complete too, but I need some guidance to do more. Hope that someone that understands the problems would give me a guide on this.
Steven, you definitely got further along than others. Can you provide all of the exact steps and commands that you ran?
Looking at your build log, the compile failed in our libpkg library due to a definition mismatch. Why that occurred depends on many many factors, but what you can do is look at the lines of code mention in the error. Notice how it says a function (select) and struct are being redefined? That probably means we're declaring something we shouldn't or we're including too many headers, or something failed to detect properly during cmake as being available. Try a simple edit to see if you can get past that build error. If you run just "make", it should halt at the first error so it's more clear where it stopped.
The deadline of the task has been extended with 2 days and 0 hours.
One of the mentors has sent this task back for more work. Talk to the mentor(s) assigned to this task to satisfy the requirements needed to complete this task, submit your work again and mark the task as complete once you re-submit your work.
Don't worry if you can't get it to work as you've made some good progress (enough to complete the task, but need to submit your steps and try). Just make sure that you try and document the steps you take so someone else can build on your work on investigate where you left off with ample documentation.
Make sure you're using our latest svn sources if you hadn't already: http://brlcad.org/wiki/Compiling
The work on this task is ready to be reviewed.
Basically I have uploaded 2 similar summaries, the only difference is in the strict flag. One version has strict turned off, while the other has strict turned on for the compilation to stop early.
I did this as I'm not very sure whether to turn on strict or not. Nontheless, the compilation should have halt much earlier at around 3% if Zlib is not turned off. Since it comes along with cygwin, skipping the compilation of zlib is not unreasonable.
Hope that someone with better knowledge can help to investigate into this problem and make this great programme compile and work.
Melange has detected that the deadline has passed and no more work can be submitted. The submitted work should be reviewed.
Congratulations, this task has been completed successfully.
As GCI comes to a close, we wanted to take the time to say THANK YOU for all your efforts. This comment interface closes after GCI is over, so you're encouraged to join our mailing list where we'll be announcing contributions from GCI participants like yourelf over the upcoming months:
https://lists.sourceforge.net/lists/listinfo/brlcad-news
If you've provided your full name, we'll be sure to credit you in our authorship documentation and you'll see your name in a future announcement. If you contact us at devs@brlcad.org or via IRC, we'll even let you know when your work is integrated and follow up with updates. You're welcome and encouraged to contact us any time, especially if you have a question about how to continue participating in Open Source after GCI is over, but even if just to keep in touch. Note that ongoing participation in Open Source is one of the most impressive skills to have on your resumé. Take care, be well, and thank you again!