make -j >1

Stefan Winter stefan.winter at restena.lu
Thu May 31 14:44:20 CEST 2007


Hi,

>   That's more a side effect of invoking Make as a child process, inside
> of "for" loops in shell script.  That will be difficult to fix.
>
>   The way to fix it cleanly is non-recursive make:
>
> http://www.xs4all.nl/~evbergen/nonrecursive-make.html
>
>   But that requires major changes to the Makefile.

played around with it a bit. I have a version running -j 3 cleanly on my 
system now. Compilation time:

make -j 3

real    0m48.303s
user    0m50.199s
sys     0m11.493s

make

real    1m5.771s
user    0m49.847s
sys     0m11.149s

The idea was to

- move rlm_eap/*.{c|h}, configure.in to its own new subdir ("main")
- change all references to these header files in libeap/ and types/*
- change Makefiles in types and libeap to reference ../main/
- change some .c files that included ../../eap.h
- the ugly part: new Makefile for rlm_eap, and new one for main/
- delete Makefile.in and configure* in rlm_eap

These two Makefile in the end were basically stolen from other subdirs and 
halfways hacked to make it work. I'm sure they are ugly and probably don't 
work everywhere. They will need someone knowledgable looking into it.

So, if this is of interest for anyone, I'll open a bug report with the diff 
against existing files, a tar with the new "main/" subdir and the Makefile 
for rlm_eap. 

The basic trick lies in rlm_eap Makefile: target "common" depends on new 
target "libeap-dep", which just descends into subdir libeap. For concurrency, 
the dependency means that the recursion via common (which includes the main/ 
dir) will only start after libeap-dep is finished.

I think it's worth noting that rlm_eap was the *only* neuralgic point in the 
whole build process - the idea about types/ttls being dependend on tls proved 
to either be not true or was not a problem on my specific workstation's 
timing.

Greetings,

Stefan

-- 
Stefan WINTER

Stiftung RESTENA - Réseau Téléinformatique de l'Education Nationale et de 
la Recherche
Ingenieur Forschung & Entwicklung

6, rue Richard Coudenhove-Kalergi
L-1359 Luxembourg
E-Mail: stefan.winter at restena.lu     Tel.:     +352 424409-1
http://www.restena.lu                Fax:      +352 422473
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.freeradius.org/pipermail/freeradius-devel/attachments/20070531/4033bad1/attachment.pgp>


More information about the Freeradius-Devel mailing list