IRC log for #brlcad on 20100907

00:30.27 ``Erik poor guy
01:58.33 brlcad starseeker: if it's quick, all or nothing is probably fine
01:59.26 brlcad since you can still rebuild specific targets
02:01.47 brlcad starseeker: and yes, all of the package requires are *potentially* problematic, if code is called that uses that package. that's one of the specific intents of libtclcad's autopath init code, to find stuff whether installed or not
02:06.14 brlcad changing them to package require code is perfectly fine, but should just make sure they still work the same as they do now by running mged before install and having it still work (as well, of course, post-install)
02:07.10 brlcad that feature is useful and has been used for development porting and testing over the years
02:07.30 starseeker fwiw, I can start bwish from my build directory
02:08.24 starseeker mged I don't have working either pre or post install yet - at a minimum I need to get install logic in place for src/tclscripts, and there may be other issues
02:09.44 starseeker I'm a bit fried, so I'll have to tackle it tomorrow, but I need to get tclscripts, the install headers, doc and the docbook logic set up
02:10.03 brlcad did you make sure you didn't already have an install in place that it might have picked up?
02:10.10 brlcad if it was a clean test, then good to go
02:10.32 starseeker I cleared out /usr/brlcad, IIRC...
02:10.36 starseeker checks
02:10.36 brlcad k
02:11.34 brlcad if you follow the --enable-only-benchmark logic, that enables our "core" components that constitute a representative base build
02:11.57 starseeker nods
02:12.02 brlcad mged, rt, asc2g (technically all conv for simplicity), etc
02:12.45 starseeker 'course, with this approach to building the tcl/tk stuff is "installed" and in place anyway, at least from the standpoint of the BRL-CAD code - I take it you ment a tcl/tk install elsewhere on the system?
02:13.36 starseeker I should be pretty darn close to having most of the binaries built, although I don't have some of the nicities like version arguments for the libraries in yet
02:13.39 brlcad nothing tcl/tk specific really
02:14.03 starseeker (also, it looks like autotools is building both .so and .a files for the libraries and I'm just building .so (or .dylib, depending on platform)
02:14.08 brlcad it's library runtime management
02:14.16 starseeker nods
02:14.49 starseeker I did some reading on the CMake wiki about the options for runtime stuff, and I THINK I'm in good shape
02:15.07 brlcad yeah, being able to --disable-shared has been useful many times over
02:15.10 starseeker I have been able to run rt successfully from non-installed and installed off of the CMake build
02:15.14 brlcad nick had to use it just a couple weeks ago
02:15.32 starseeker winces - I can probably set that up, but it may take a little doing
02:15.34 brlcad best way to debug
02:16.27 brlcad it's a lot more involved than it seems on the surface
02:16.37 brlcad it's another thing libtool just takes care of for us
02:16.55 starseeker CMake has shared and static support, but I'm still learning my way around it
02:17.23 starseeker given the hideous size of the resulting files, I had assumed static was something we would use only when we really had to
02:18.06 brlcad .so/.dylib's should be position-independent code (-fPIC) ... archive files are without -fPIC
02:19.27 starseeker sigh - that's probably another speed differential between CMake and autotools builds - I'm not doing the static copy for every library
02:25.39 *** join/#brlcad IriX64 (~IriX64@bas2-sudbury98-1177593807.dsl.bell.ca)
02:32.15 *** join/#brlcad akafubu (~akafubu@unaffiliated/akafubu)
02:39.13 CIA-88 BRL-CAD: 03starseeker * r40486 10/brlcad/branches/cmake/ (22 files in 22 dirs): Another tidbit from the CMake list - take out the LIBRARY part of the INSTALL command for libraries (ARCHIVES are static libraries, apparently) and turning off BUILD_SHARED_LIBS actually results in a build.
02:39.24 starseeker 'course, not a fully WORKING build, but hey...
02:41.53 starseeker alright, enough for one day
02:48.48 brlcad starseeker: undoubtedly a speed difference -- we technically compile every source file twice in the auto* build (once PIC, another non-PIC)
02:49.03 brlcad all under the hood behind the scenes automatic
03:04.29 starseeker brlcad: is it essential that both be built, or is an either/or setup enough?
05:58.15 Ralith I imagine the static libs are only of interest to lib user developers, and few of those, even
05:58.20 Ralith assuming all platforms support dynamic
07:05.41 *** join/#brlcad merzo (~merzo@smartbussiness.mobicom.net.ua)
09:48.50 ``Erik PIC only makes sense in a lib, kinda irrelevant in an executable... I can see a lib user wanting the static stuff (.a) to provide a single drop binary if they're not clever enough to provide the shared libs
09:50.29 ``Erik (I've even been toying with the notion of aggregating several libs into one .so/.dll/.dylib/.sl/etc for convenience in a drop)
11:16.05 *** join/#brlcad Zaebos (~irc@pd95b7f5e.dip0.t-ipconnect.de)
11:25.24 brlcad starseeker: it's pretty standard practice to install static and non-static libraries as they serve different purposes
11:29.49 brlcad wow, looks like they kinda fucked that one up: http://www.paraview.org/Wiki/CMake_FAQ#Can_I_build_both_shared_and_static_libraries_with_one_ADD_LIBRARY_command.3F
11:32.32 brlcad you either have to give them different names (which is fine if the install rule fixes the name), or you rely on peeking at cmake internals to get at the object files
11:33.05 brlcad looks necesary: http://www.paraview.org/Wiki/CMake_FAQ#How_do_I_make_my_shared_and_static_libraries_have_the_same_root_name.2C_but_different_suffixes.3F
12:06.37 starseeker brlcad: what purpose do the static libraries serve in a standard install? (just curious)
12:08.02 starseeker that's definitely gonna be the speed difference, at least on gentoo :-/
12:10.10 starseeker I've got to get the oil changed on my car (light is on, waaaay late this time) so I'll be in after that
12:10.48 starseeker I'll try and update the macros to take care of the static/shared logic
12:11.55 starseeker ``Erik: my thought was if someone wants the static libs they could compile BRL-CAD themselves with that option turned on... seems like a lot of overhead to stick in the install...
12:12.25 starseeker but that's not an area I know all that much about yet :-/
12:13.09 starseeker looks like gentoo does that too for most libs
12:15.59 starseeker winces at the thought of compiling all the libs twice...
12:16.33 brlcad same purpose static libraries solve anywhere :)
12:17.40 brlcad if someone is trying to build *their* application static, they have to link against static libraries
12:17.55 starseeker thought building a static application was quite rare in this day and age
12:18.04 brlcad the speed difference is no different than what we currently do
12:18.16 brlcad we build both now
12:18.35 starseeker brlcad: oh, I know - I was hoping CMake was faster, but it turns out it just wasn't doing all the work yet :-P
12:18.47 brlcad it's rare for production installs, but no less rare than solaris builds or freebsd usage
12:19.22 starseeker waits for ``Erik to pick up that gauntlet...
12:19.36 brlcad could add an option to enable/disable, but our production releases should include both as a matter of principle
12:20.23 starseeker OK. I may leave the static stuff off in the Debug build type though...
12:20.27 brlcad still, how rare shouldn't really matter -- it's an expectation
12:20.50 brlcad given every libtool program produces and installs both, they're not rare at all from that persepctive
12:21.12 starseeker that's a hell of a lot of compiler time and disk space just for an expectation, but I guess you're right
12:22.32 brlcad I think statics are used by private orgs way more than realized too, as that's the most convenient way to distribute an app
12:22.38 brlcad it has no dependencies
12:23.01 starseeker how big is a full static build of mged?
12:23.08 brlcad e.g., we could post an adrt/isst application binary fully static that links gtk, without requiring gtk
12:23.21 brlcad you don't build the apps static
12:23.24 brlcad libraries
12:23.36 starseeker yeah, I guess come to think of it Opera does release a version built static
12:23.40 starseeker ah
12:24.20 brlcad rather, we wouldn't build apps static -- the expectation is that there are dynamic and static libraries provided, so I can link my application however I need to
12:25.39 starseeker alrightie, I'll see what I can do
12:25.58 starseeker dismally wonders how many more little gotchas are waiting in the wings...
12:28.35 starseeker wow, this sounds cool: http://www.eurekalert.org/pub_releases/2010-09/miot-mrc090110.php
12:41.12 *** join/#brlcad d_rossberg (~rossberg@BZ.BZFLAG.BZ)
13:43.00 *** join/#brlcad Zaebos (~irc@pd95b7f5e.dip0.t-ipconnect.de)
17:14.05 CIA-88 BRL-CAD: 03starseeker * r40487 10/brlcad/branches/cmake/src/mged/cmd.c: Whoops, stray itcl.h
17:57.05 brlcad probably dozens
18:08.54 CIA-88 BRL-CAD: 03starseeker * r40488 10/brlcad/branches/cmake/ (23 files in 23 dirs): Switch all the libraries over to using our ADDLIB macro, in preparation for adding in a static option.
18:20.34 *** join/#brlcad mafm (~mafm@83.42.152.208)
18:23.50 CIA-88 BRL-CAD: 03starseeker * r40489 10/brlcad/branches/cmake/ (4 files in 4 dirs):
18:23.50 CIA-88 BRL-CAD: Since we're never going to want liblib as our prefix on a file name, have our
18:23.52 CIA-88 BRL-CAD: add_library wrapper catch target names with lib in them and turn off the lib
18:23.52 CIA-88 BRL-CAD: PREFIX in the target properties. Now if we decide to rename all the lib targets
18:24.03 CIA-88 BRL-CAD: (e.g. bu->libbu, bn->libbn, etc.) all we have to do is rename them.
18:30.41 *** join/#brlcad Stattrav (~Stattrav@unaffiliated/stattrav)
18:42.15 CIA-88 BRL-CAD: 03starseeker * r40490 10/brlcad/branches/cmake/ (CMakeLists.txt misc/CMake/BRLCAD_Util.cmake):
18:42.15 CIA-88 BRL-CAD: OK, here we go - build shared and static libraries by default thanks to some
18:42.15 CIA-88 BRL-CAD: macro fun. Naturally, Windows immediately makes me eat my words - we do need a
18:42.15 CIA-88 BRL-CAD: lib prefix in all cases on Windows for static libs, so only in that case always
18:42.16 CIA-88 BRL-CAD: set the prefix to 'lib' regardless of target name.
18:47.45 CIA-88 BRL-CAD: 03starseeker * r40491 10/brlcad/branches/cmake/CMakeLists.txt: Fix comment.
20:59.54 CIA-88 BRL-CAD: 03starseeker * r40492 10/brlcad/branches/cmake/ (4 files in 4 dirs): Add build logic for URToolkit - don't have a Find* script for this yet.
21:00.57 *** join/#brlcad R0b0t1 (~Enigma@unaffiliated/r0b0t1)
21:02.06 *** join/#brlcad Nohla (~Nohla@201.255.233.16)
21:12.00 starseeker blinks - apparently zlib regards crc32.h as a private header
21:12.18 starseeker our autotools build installs it though
21:13.57 CIA-88 BRL-CAD: 03starseeker * r40493 10/brlcad/branches/cmake/misc/CMake/BRLCAD_Util.cmake: Whoops, might want to actually install the static libs...
21:13.58 CIA-88 BRL-CAD: 03starseeker * r40494 10/brlcad/branches/cmake/ (CMakeLists.txt include/CMakeLists.txt): Add install logic for the headers.
21:44.53 CIA-88 BRL-CAD: 03starseeker * r40495 10/brlcad/branches/cmake/ (4 files in 4 dirs): Add more headers to the install.
21:47.02 *** join/#brlcad Ralith (~ralith@d142-058-095-117.wireless.sfu.ca)
21:54.24 Ralith does Tom Browder come here?
22:17.46 brlcad Ralith: rarely
22:18.27 brlcad starseeker: the installed names shouldn't be libbu-static.a ... there was an FAQ on making the static and non-static install with the right name
23:08.57 *** join/#brlcad IriX64 (~IriX64@bas2-sudbury98-1177726445.dsl.bell.ca)
23:37.51 starseeker brlcad: did I do it wrong? I thought I used the FAQ as the template
23:38.02 starseeker looks
23:38.37 starseeker it's installing as libbu.a - it's just the target name that's bu-static

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.