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 |