Francois GORET wrote:
> On Thursday 12 May 2005 22:09, Ilias Lazaridis wrote:
>>This is a development list.
>>
>>Please move your whining elsewhere, e.g. ruby-talk.
> 
> <smile> Readers of development list should know about 'make'</smile>

if the project encapsulates the "make" domain-knowledge correctly, 
developers don't need to know about make.

and: subsystems of the sources should be detectable without the need of 
make (e.g. with folder-hierarchy).

> Make can explain what it does to build the program on your platform. The 
> following looks like you are asking for, no ?

yes, this comes close.

> fg@moo:~/install/ruby/ruby-1.8.2$ make -n miniruby 
> gcc -g -O2   -I. -I.  -c array.c
> gcc -g -O2   -I. -I.  -c bignum.c
> gcc -g -O2   -I. -I.  -c class.c
> gcc -g -O2   -I. -I.  -c compar.c
> gcc -g -O2   -I. -I.  -c dir.c
> gcc -g -O2   -I. -I.  -c dln.c
> gcc -g -O2   -I. -I.  -c enum.c
> gcc -g -O2   -I. -I.  -c error.c
> gcc -g -O2   -I. -I.  -c eval.c
> gcc -g -O2   -I. -I.  -c file.c
> gcc -g -O2   -I. -I.  -c gc.c
> gcc -g -O2   -I. -I.  -c hash.c
> gcc -g -O2   -I. -I.  -c inits.c
> gcc -g -O2   -I. -I.  -c io.c
> gcc -g -O2   -I. -I.  -c marshal.c
> gcc -g -O2   -I. -I.  -c math.c
> gcc -g -O2   -I. -I.  -c numeric.c
> gcc -g -O2   -I. -I.  -c object.c
> gcc -g -O2   -I. -I.  -c pack.c
> gcc -g -O2   -I. -I.  -c parse.c
> gcc -g -O2   -I. -I.  -c process.c
> gcc -g -O2   -I. -I.  -c prec.c
> gcc -g -O2   -I. -I.  -c random.c
> gcc -g -O2   -I. -I.  -c range.c
> gcc -g -O2   -I. -I.  -c re.c
> gcc -g -O2   -I. -I.  -c regex.c
> gcc -g -O2   -I. -I.  -c ruby.c
> gcc -g -O2   -I. -I.  -c signal.c
> gcc -g -O2   -I. -I.  -c sprintf.c
> gcc -g -O2   -I. -I.  -c st.c
> gcc -g -O2   -I. -I.  -c string.c
> gcc -g -O2   -I. -I.  -c struct.c
> gcc -g -O2   -I. -I.  -c time.c
> gcc -g -O2   -I. -I.  -c util.c
> gcc -g -O2   -I. -I.  -c variable.c
> gcc -g -O2   -I. -I.  -c version.c
> gcc -g -O2   -I. -I.  -c dmyext.c

ok, compiled to object-files.

> rm -f libruby-static.a

making "libruby-static.a"...

> ar rcu libruby-static.a array.o bignum.o class.o compar.o dir.o dln.o enum.o 
> error.o eval.o file.o gc.o hash.o inits.o io.o marshal.o math.o numeric.o 
> object.o pack.o parse.o process.o prec.o random.o range.o re.o regex.o ruby.o 
> signal.o sprintf.o st.o string.o struct.o time.o util.o variable.o version.o  
> dmyext.o

...whilst linking all the above files.

> ranlib libruby-static.a 2> /dev/null || true

?

> gcc -g -O2   -I. -I.  -c main.c

compile main.c

> rm -f miniruby

making "miniruby"

> gcc -g -O2    -rdynamic -Wl,-export-dynamic  main.o dmyext.o libruby-static.a 
> -ldl -lcrypt -lm   -o miniruby

why is "dmyext.o" used again (already within "libruby-static.a")?

.

-- 
http://lazaridis.com