Closed ghost closed 8 years ago
I'm afraid the title doesn't tell me all.
What does "breaks out of source builds" mean?
out of source builds mean building in a different directory than the source,
out of source builds will not pollute the source directory out of source builds allow to test cleanly different configure options
Okay. How does one do that? I'd like to try it for myself so see what the problem is. Unless you can tell me. Can you explain where (what) the problem is? Help me out here, Enrico! I'm not used to doing "out of source" builds! :)
supposing that hyperion.git is the source directory
cd to reach hyperion.git bash autogen.sh
after that cd .. ( back out one level ) mkdir hyperion.bin cd hyperion.bin ../hyperion.git/configure ... ... ... make
I looked at Makefile.am and it seems that it should be enough to plug into DYNAMIC_VERSION := $(shell ./_dynamic_version) the top_srcdir
but i really do not know how
Ah. Okay. I understand now. Thank you.
Yes, I believe you may be correct. Let me try it (play around with it for a while) on my CentOS system and I'll get back to you. Thanks for reporting it.
I think I've explained this several times.
mkdir build
Sourcedir/configure --prefix=run_dir
make
make install
(It's called VPATH support in autoconf)
Here is a copy of my build script :
rep=$1 dst=$2 a=~
src=$a/hercules/src/$rep bld=$a/hercules/build/$dst run=$a/hercules/run/$dst
cd $src sh ./autogen.sh
cd $a/hercules/build rm -rf $dst mkdir $dst cd $dst
$src/configure --prefix=$run --enable-optimization="-O3 -fomit-frame-pointer" make -j 10 make install
At which point I can run hercules by adding ~/hercules/run/$dst/bin in the PATH... (say I add /home/ivan/hercules/run/hy-clang/bin to my path after running "./buildit hyperion hy-clang")
--Ivan
Le 08/05/2016 à 03:00, Fish-Git a écrit :
Okay. How does one do that? I'd like to try it for myself so see what the problem is. Unless you can tell me. Can you explain where (what) the problem is? Help me out here, Enrico! I'm not used to doing "out of source" builds! |:)|
— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/hercules-390/hyperion/issues/109#issuecomment-217681227
Fish,
Complete support should also ensure that you can build from a source package built from "make dist" (which creates a pre-digested tarball (that is without a need to run autogen.sh and with version information being fixed without needing access to a source repository) and that the resulting package also supports VPATH.
--Ivan
Le 08/05/2016 à 03:38, Fish-Git a écrit :
Ah. Okay. I understand now. Thank you.
Yes, I believe you may be correct. Let me try it (play around with it for a while) on my CentOS system and I'll get back to you. Thanks for reporting it.
— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/hercules-390/hyperion/issues/109#issuecomment-217682179
Cool! Thanks Ivan! I'll have to give that a try too!
Complete support should also ensure that you can build from a source package built from "make dist" (which creates a pre-digested tarball (that is without a need to run autogen.sh and with version information being fixed without needing access to a source repository) and that the resulting package also supports VPATH.
I don't know how to do that. :(
I'm just trying to do the best I can on Linux, but I'm obviously no expert at it (understatement of the century). I'm relying on you guys to help me out in that regard.
Le 08/05/2016 à 03:46, Fish-Git a écrit :
Complete support should also ensure that you can build from a source package built from "make dist" (which creates a pre-digested tarball (that is without a need to run autogen.sh and with version information being fixed without needing access to a source repository) and that the resulting package also supports VPATH.
I don't know how to do that. |:(|
I'm just /trying/ to do the best I can on Linux, but I'm obviously no expert at it (understatement of the century). I'm relying on /you/ guys to help me out in that regard.
— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/hercules-390/hyperion/issues/109#issuecomment-217682392
Fish,
I will do my best to help you ! This can be discussed on the google groups herc-devel list I guess. (and if it requires more intense discussion, off-list or even on the phone.. PS my phone number has changed - so if you need it, I will give it off-list).
--Ivan
I looked at Makefile.am and it seems that it should be enough to plug into DYNAMIC_VERSION := $(shell ./_dynamic_version) the top_srcdir
I suspect some changes to the _dynamic_version
script might probably be needed too. I think I coded it to presume the current directory was the source code directory.
It might be a while (how long I don't know) before I figure this out but I'm looking into it folks!
In the mean time if you have any ideas/suggestions let me know. (*)
Thanks!
(*) In the hercules-devel group per Ivan's request.
I've been building outside the source directory "forever". I even have multiple architectures on a BSD server, one object directory for each.
To run out of the bin directory I do this after "make": "./hercules" this deals with the autolib script. I also set LD_LIBRARY_PATH to ./libs in addition to setting PATH as Ivan already described.
That was easy! :)
I used Ivan's provided script further above to test with. Works great now!
Negative sarge ! I am getting a fail to build :
In file included from /home/ivan/hercules/src/hyperion/hsys.c:12: In file included from /home/ivan/hercules/src/hyperion/hercules.h:116: /home/ivan/hercules/src/hyperion/version.h:19:10: fatal error: '_dynamic_version.h' file not found
^
1 error generated. Makefile:2095: recipe for target 'hsys.lo' failed make[1]: _\ [hsys.lo] Error 1
(This is complete rebuild using the aformentioned script after a git pull (5/6/2016 18:07 GMT) - autogen.sh and configure has been run).
I'll look if it's something obvious or if it is something I missed on my side (although it's using the script that has been working for like - ever)... But since you're on the it, it's probably going to be easier for you (I have no idea what technics are used there - so going to have to reverse engineer everything for this issue).
--Ivan
Unfortunately it still does not work on APPLE
autogen works configure works make chokes
[enrico@Enrico-iMac hyperion.test]$make V=0
make: ./_dynamic_version: Command not found
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
make[1]: ./_dynamic_version: Command not found
Making all in decNumber
CC decContext.lo
CC decimal128.lo
CC decimal32.lo
CC decimal64.lo
CC decNumber.lo
CC decPacked.lo
CCLD libdecNumber.la
Making all in m4
make[2]: Nothing to be done for all'. Making all in util make[2]: Nothing to be done for
all'.
Making all in html
make[2]: Nothing to be done for all'. Making all in man make[2]: Nothing to be done for
all'.
Making all in .
make[2]: ./_dynamic_version: Command not found
CC hsys.lo
In file included from /Users/enrico/Hercules/hyperion.git.test/hsys.c:12:
In file included from /Users/enrico/Hercules/hyperion.git.test/hercules.h:116:
/Users/enrico/Hercules/hyperion.git.test/version.h:19:10: fatal error: '_dynamic_version.h' file not found
^
1 error generated. make[2]: _\ [hsys.lo] Error 1 make[1]: * [all-recursive] Error 1 make: * [all] Error 2
the current working directory is the out of source directory an NO _dynamic_version is there
have a good time enrico
On 08 May 2016, at 18:55, Fish-Git notifications@github.com wrote:
That was easy! :)
I used Ivan's provided script further above to test with. Works great now!
— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/hercules-390/hyperion/issues/109#issuecomment-217732752
Did someone forget to commit ? (Just weeding out the obvious)
--Ivan
Shouldn't it be
DYNAMIC_VERSION := $(shell $(top_srcdir)/_dynamic_version $(top_srcdir))
On line 15 of makefile.am ? (When building out of the source dir - all files that are in the source dir should be explcit. (Although I'm a little concerned about the parens).
--Ivan
On 08 May 2016, at 19:19, ivan-w notifications@github.com wrote:
Shouldn't it be
DYNAMIC_VERSION := $(shell $(top_srcdir)/_dynamic_version $(top_srcdir))
On line 15 of makefile.am ?
--Ivan
— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/hercules-390/hyperion/issues/109#issuecomment-217734513 Yes tested and working and committed cheers enrico
Signoff : Ivan Warren - Out of source build works as designed
THANK YOU, Enrico! I totally missed that.
And I too can add my conformation that from-outside-of-the-source-directory and from-within-the-source-directory builds -- as well as the "-modified" issue too -- are all working just fine now.
I really appreciate your patience with me guys! Thanks for that!
the title tells