r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3 Source Control] How to manage build process

Andreas
1-Nov-2010
[589]
Along with the recommendation to use msysGit for Win32.
Carl
1-Nov-2010
[590x4]
link added, table removed
msysgit note/link added
so, msysgit for windows uses google, not github?
that's not much of an endorsement
Andreas
1-Nov-2010
[594]
they only host their downloads there.
Carl
1-Nov-2010
[595x2]
ok, so doc is completed... need only to change the URL once A110 
is posted
I hope it can be done today... tight timing.  If not, it will get 
delayed to Thurs.
Andreas
1-Nov-2010
[597]
Well, do you have more time on Thursday?
Carl
1-Nov-2010
[598]
Yes. But I want to try to get it out today.
Andreas
1-Nov-2010
[599]
I think the primary question is how we want to bundle the libraries.
Carl
1-Nov-2010
[600]
yes
Andreas
1-Nov-2010
[601x2]
I thought about putting libraries for all platforms in a directory 
structure below lib/ .
Either using the platform numbers or the more descriptive names.
Carl
1-Nov-2010
[603]
There are advantages to both methods... which is why I ping pong 
on them.
GrahamC
1-Nov-2010
[604]
it should be "cheat sheet" not 'cheet sheet" http://www.rebol.com/r3/docs/git.html
Carl
2-Nov-2010
[605x5]
fixed
http://github.com/carls/R3A110
This is a temporary test area for the release... until we get it 
how we want it.
Andeas: take a look at R3A100, and let me know your comments. There 
are some issues:
1. how best to handle the libs dir for multiple platforms?
2. should we merge the makefiles into a single dir?
3. should about.txt be renamed to README ?
BrianH
2-Nov-2010
[610]
Sounds like a good idea.
Andreas
2-Nov-2010
[611x4]
3. Yes.
1. The easiest way for now will probably be a directory hierarchy 
under lib:
lib/1.3/libr3.so
lib/3.1/r3lib.{dll,exp,lib}
lib/4.2/libr3.so
We can always restructure that later on.
2. I'd drop all makefiles you did not personally test/use, for now. 
I just assume that means only make-gcc will remain. Then either leave 
that in make-gcc/ or move it to the toplevel again.


But I would not fuss about the makefiles much, same thing here: we 
can restructure that later on.
PeterWood
2-Nov-2010
[615]
Don't forget lib/2.5/libr3.dylib
Andreas
2-Nov-2010
[616x2]
Great stuff, though! Congrats!
But I gotta run now. Will be back in an hour.
Pekr
2-Nov-2010
[618]
why do we mess with git location?
BrianH
2-Nov-2010
[619]
It's not the final location. It's a test, to get feedback on the 
layout of the source files before we release to the final location.
Pekr
2-Nov-2010
[620]
what will happen if I pull into the directory of earlier git synced 
stuff? Will it mess new things into old things, or will it delete 
earlier stuff and replace it wit new?
BrianH
2-Nov-2010
[621]
Andreas? Learning git is still on my todo list for this week.
Pekr
2-Nov-2010
[622x2]
I think I will be more safe to just purge the directory befor syncing, 
as I don't introduce any changes to local files myself. OTOH I might 
do some small scripts for testing, and would like to not loose them 
...
I want to achieve following workflow:

- new files are added

- files with the same name replace old ones (no mater if I edited 
them)

- non-used files which are not part of the distro anymore, are deleted 
(no matter if I edited them)

- files which are not part of previous nor recent distro (e.g. my 
testing scripts) stay untouched ....
Andreas
2-Nov-2010
[624x6]
Pekr, no need to purge.
You can pull from multiple remote repositories into a single local 
repository.
what will happen if I pull into the directory of earlier git synced 
stuff? Will it mess new things into old things, or will it delete 
earlier stuff and replace it wit new?

You can choose.
If you have local commits which are not in the remote repository, 
if you _pull_ Git will try to merge your local changes with the remote 
changes.
If you want to always choose the remote changes, do not pull but 
_fetch_ and _reset_ instead.
And rest assured that your desired workflow is perfectly achievable. 
I'll describe how later, gotta run again, unfortunately.
Carl
3-Nov-2010
[630x3]
Pekr, there's no need to purge, but it is a good idea to do that. 
 There have been various changes, some of which will not merge properly.
Ok, so far we have:
1. change about.txt to README -- for consistency
2. change lib to use sub dirs per platform

3. move gcc makefile to top dir (and ignore other makefiles for now)
Let me know if there are any other revisions before we move to the 
final directory.
Andreas
4-Nov-2010
[633x3]
changing my previous suggestion for 3.:
3. drop non make-gcc makefiles for now
4. move the gcc makefiles to sub dirs per platform

additionally i'd suggest the following revisions:
5. remove reb-to.h, pass TO_<target> as compiler flag
6. fix bug#1658: link linux binaries against libdl
suggestion #5 allows to build for different targets from exactly 
the same sources. so we can easily bundle multiple makefiles for 
different targets, which simply pass the appropriate TO_<target> 
flag.


an alternative would be to have target-specific include directories 
(such as src/include/3-1/), place the reb-to.h there and then have 
makefiles for different targets adjust their include paths accordingly.
i have commits for all the above suggestions locally. as they're 
only modifying generated files, i'm not sure they'll be of much use. 
if it helps in more clearly defining what i mean by the above, i'll 
happily push them somewhere public.
Carl
5-Nov-2010
[636x2]
Andreas, it is easy to move the TO-* to the command line.   It was 
originally put in a file to try to keep the gcc line shorter (easier 
to see compiler warnings.)
On #6, I thought it was there now, but will check again.
Kaj
5-Nov-2010
[638]
There are more standard and automatic ways to detect target platforms, 
such as using the available __LINUX__ and __SYLLABLE__ defines