#!/bin/csh
#######################################################################################################################################
# #
# C O M P I L A T I O N G E N E R A L E D E S B I B L I O T H E Q U E S : #
# #
# #
# Utilisation : #
# #
# $xb/GENERE$Z [<CKonstantes> [<CDerivFormel> [<GListeFonctions> [<CommandeCompilation> [<GArgAriExt>]]]]] #
# #
# #
# Nota sur la duree d'execution : #
# #
# CMAP28 : #
# #
# 20080115141616 01:20:?? #
# 20090111183623 01:32:?? #
# #
# Apres le remplacement de "trinite.polytechnique.fr" par "europe.polytechnique.fr" (='$CMAP28', #
# 'v $Fmachines 20090316110150') qui est un quadri-coeur : #
# #
# 20090318094507 00:15:?? #
# 20100406172718 00:29:?? (sur 'villiers.polytechnique.fr' et '$xTG' #
# dans '/home2') #
# 20100406181233 00:22:?? (sur 'villiers.polytechnique.fr' et '$xTG' #
# dans '/home') #
# 20100522130028 00:10:?? (sur 'abbesses.polytechnique.fr' qui est un 8-coeur) #
# 20101118135625 00:22:?? (sur 'grenelle.polytechnique.fr') #
# #
# Apres l'introduction de '$FindExec_InverserOrdre' : #
# #
# 20101118175525 00:20:?? (sur 'grenelle.polytechnique.fr') #
# #
# Apres suppression de '$FindExec_InverserOrdre' et d'autres choses : #
# #
# 20101120095837 00:16:?? (sur 'grenelle.polytechnique.fr') #
# 20110601111609 00:20:?? (sur 'courcelle.polytechnique.fr') #
# #
# Apres les modifications 'v $xEa/PhasCriB$vv$Y 20110927130019' et 'v $xE/.alias.2$vv$Y 20110927163000' : #
# #
# 20110927174443 00:26:?? (sur 'courcelle.polytechnique.fr') #
# 20110928092009 00:24:?? (sur 'courcelle.polytechnique.fr' en forcant #
# "a la main" '$FindExec_InverserOrdre') #
# #
# 20160815180914 00:19:04 (sur 'vaugirard.polytechnique.fr') #
# 20170124144315 00:21:18 (sur 'vaugirard.polytechnique.fr') #
# 20170405122028 00:20:08 (sur 'vaugirard.polytechnique.fr') #
# 20170519162857 00:27:43 (sur 'vaugirard.polytechnique.fr') #
# 20170520111050 00:17:01 (sur 'vaugirard.polytechnique.fr') #
# 20170522101149 00:17:47 (sur 'vaugirard.polytechnique.fr') #
# 20170710112222 00:10:45 (sur 'porte-de-la-chapelle.polytechnique.fr' sans #
# compiler '$xcp/Konstantes$K a cause de #
# 'v $xcc/cl$Z ne.peut.s.executer.sur') #
# #
# Apres 'v $xiiD/definit.2$DEF 20170715111607' : #
# #
# 20170715144550 00:07:28 (sur 'porte-brancion.polytechnique.fr' sans #
# compiler '$xcp/Konstantes$K a cause de #
# 'v $xcc/cl$Z ne.peut.s.executer.sur') #
# #
# Apres 'v $xb/GENERE$Z 20170716102643' : #
# #
# 20170716124805 00:08:25 (sur 'porte-brancion.polytechnique.fr' sans #
# compiler '$xcp/Konstantes$K a cause de #
# 'v $xcc/cl$Z ne.peut.s.executer.sur') #
# 20180105101928 00:06:27 (sur 'porte-brancion.polytechnique.fr' sans #
# compiler '$xcp/Konstantes$K a cause de #
# 'v $xcc/cl$Z ne.peut.s.executer.sur') #
# 20180315141404 00:10:44 (sur 'porte-brancion.polytechnique.fr') #
# 20180320155313 00:10:56 (sur 'porte-brancion.polytechnique.fr') #
# 20180322113304 00:10:59 (sur 'porte-brancion.polytechnique.fr') #
# #
# Apres 'v $xb/GENERE$Z 20180402102346' : #
# #
# 20180403123412 00:14:50 (sur 'porte-brancion.polytechnique.fr') #
# 20180403172458 00:14:39 (sur 'porte-brancion.polytechnique.fr') #
# 20180409111837 00:14:17 (sur 'porte-brancion.polytechnique.fr') #
# 20190211120804 00:24:20 (sur 'porte-brancion.polytechnique.fr') #
# 20190724154420 00:26:38 (sur 'porte-brancion.polytechnique.fr') #
# 20210226080952 00:20:19 (sur 'porte-brancion.polytechnique.fr') #
# #
# Apres la modification 'v $xcc/cb$Z soname=' : #
# #
# 20211217171920 00:19:39 (sur 'porte-brancion.polytechnique.fr') #
# 20230324130149 00:15:31 (sur 'republique.polytechnique.fr') #
# 20231130123518 00:15:37 (sur 'republique.polytechnique.fr') #
# 20240626122011 00:14:41 (sur 'republique.polytechnique.fr') #
# #
# #
# LACT15 : #
# #
# 20070914112112 01:15:?? #
# 20071117165934 01:19:?? #
# 20080924143433 01:42:?? #
# #
# #
# LACT16 : #
# #
# 20070918113859 00:50:?? #
# 20090318105220 00:56:?? [1] #
# 20101108102809 01:48:?? [2] #
# 20101122143636 01:31:?? #
# #
# #
# LACT17 : #
# #
# 20071005170900 01:20:?? #
# 20071117164427 01:24:?? #
# 20080821114554 01:38:?? #
# 20080923182542 01:35:?? #
# 20090313095928 01:40:?? #
# 20091117183054 02:05:?? #
# 20100211113004 02:24:?? #
# 20100317185353 02:26:?? #
# 20101229131652 02:11:?? #
# 20130317152457 02:11:?? #
# #
# #
# LACT18 : #
# #
# 20071125185805 00:40:?? #
# 20090117102153 00:30:?? [3] (apres 'v $xcg/FindExec.01$Z 20090115173510') #
# 20090119182550 00:27:?? [4] (apres 'v $xcg/FindExec.01$Z ParalleleLinda') #
# 20100317190016 00:24:?? [5] #
# 20101118124950 00:46:?? #
# 20101118182644 00:47:?? (apres l'introduction de '$FindExec_InverserOrdre') #
# 20101118182644 00:45:?? (apres l'introduction de '$FindExec_InverserOrdre') #
# 20101119080312 01:12:?? (avec FindExec_Parallele=$NEXIST pour tenter #
# d'expliquer les valeurs inferieures ou egales #
# a 00:30 obtenues anterieurement -voir [3,4,5]-) #
# 20101119092747 00:46:?? (avec 'v $xcg/FindExec.01$Z parallele_14=VRAI' pour #
# tenter d'expliquer les valeurs inferieures ou egales #
# a 00:30 obtenues anterieurement -voir [3,4,5]-. On #
# notera une augmentation brutale aussi entre [1] et #
# [2]. D'autre part, la duree actuelle sur '$LACT18', #
# de l'ordre de 00:45, est approximativement le double #
# de ce qu'elle est sur '$CMAP28' avec deux fois plus #
# de processeurs, ce qui est tres coherent. Ainsi, #
# entre 20090318 -[1]- et 20101108 -[2]- quelque chose #
# de "lourd" a du etre introduit : mais quoi ?) #
# 20101119135450 00:39:?? (apres 'v $xiipf/fonction.3$FON 20101119132724') #
# 20101119175555 00:38:?? #
# 20101120094632 00:38:?? #
# 20101229131410 00:40:?? #
# 20110224160634 00:41:?? #
# 20110601121416 00:42:?? #
# 20110916174048 00:55:?? #
# #
# Apres les modifications 'v $xEa/PhasCriB$vv$Y 20110927130019' et 'v $xE/.alias.2$vv$Y 20110927163000' : #
# #
# 20110927182316 00:55:?? #
# 20110928091028 00:53:?? (en forcant "a la main" '$FindExec_InverserOrdre') #
# #
# Apres la modification 'v $ximcd/operator$FON 20111204113520' : #
# #
# 20111206173559 00:53:?? #
# #
# #
# LACT19 : #
# #
# 20111026183050 00:29:?? (avec ProcessorNumber=8) #
# 20111027093040 00:22:?? (avec ProcessorNumber=4) #
# 20111116214912 00:21:?? (avec ProcessorNumber=8) #
# #
# Apres la modification 'v $ximcd/operator$FON 20111204113520' : #
# #
# 20111204115028 00:17:?? (avec ProcessorNumber=8) #
# #
# Apres la modification 'v $xcc/cb$Z 20120623103901 : #
# #
# 20120623105623 00:20:?? (avec ProcessorNumber=8) #
# 20120626172348 00:20:?? (avec ProcessorNumber=8) #
# 20131205184451 00:22:?? (avec ProcessorNumber=8) #
# 20131206171435 00:22:?? (avec ProcessorNumber=8) #
# 20140922160751 00:19:?? (avec ProcessorNumber=8) #
# 20160603153933 00:19:26 (avec ProcessorNumber=8) #
# 20160604094557 00:19:27 (avec ProcessorNumber=8) #
# 20160815175222 00:19:39 (avec ProcessorNumber=8) #
# 20160913164021 00:18:20 (avec ProcessorNumber=8) #
# 20161214133406 00:17:38 (avec ProcessorNumber=8) #
# 20161223103700 00:16:46 (avec ProcessorNumber=8) #
# 20161224101327 00:17:06 (avec ProcessorNumber=8) #
# 20170402111419 00:17:49 (avec ProcessorNumber=8) #
# 20170405121626 00:17:58 (avec ProcessorNumber=8) #
# 20170519160536 00:16:54 (avec ProcessorNumber=8) #
# 20170519162852 00:18:40 (avec ProcessorNumber=8) #
# 20170519211626 00:17:40 (avec ProcessorNumber=8) #
# 20170520110550 00:17:29 (avec ProcessorNumber=8) #
# 20170521092802 00:17:39 (avec ProcessorNumber=8) #
# 20170612115216 00:18:43 (avec ProcessorNumber=8) #
# 20170710171758 00:18:26 (avec ProcessorNumber=8) #
# 20170710180239 00:18:04 (avec ProcessorNumber=8) #
# #
# Apres 'v $xcc/cpp$Z 20170711093516' : #
# #
# 20170711175036 00:17:44 (avec ProcessorNumber=8) #
# #
# Apres 'v $xiiD/definit.2$DEF 20170715111607' : #
# #
# 20170715122440 00:16:52 (avec ProcessorNumber=8) #
# 20170720083934 00:17:25 (avec ProcessorNumber=8) #
# 20171219134211 00:16:47 (avec ProcessorNumber=8) #
# 20180124175028 00:18:53 (avec ProcessorNumber=8) #
# 20180315141355 00:20:15 (avec ProcessorNumber=8) #
# 20180323180130 00:19:25 (avec ProcessorNumber=8) #
# 20180325185324 00:19:27 (avec ProcessorNumber=8) #
# #
# Apres 'v $xb/GENERE$Z 20180402102346' : #
# #
# 20180404133640 00:22:13 (avec ProcessorNumber=8) #
# 20180407113558 00:20:33 (avec ProcessorNumber=8) #
# 20180413131526 00:20:59 (avec ProcessorNumber=8) #
# 20180414080954 00:20:46 (avec ProcessorNumber=8) #
# 20180425182650 00:20:49 (avec ProcessorNumber=8) #
# 20180426092423 00:20:39 (avec ProcessorNumber=8) #
# 20180428081450 00:20:35 (avec ProcessorNumber=8) #
# 20181231162728 00:31:44 (avec ProcessorNumber=8) #
# 20190202105950 00:32:47 (avec ProcessorNumber=8) #
# 20190901101748 00:32:42 (avec ProcessorNumber=8) #
# #
# Apres la modification 'v $xb/GENERE$Z 20200413103739' : #
# #
# 20200414121700 00:36:03 (avec ProcessorNumber=8) #
# #
# Apres la modification 'v $xig/fonct$vv$DEF GENERE__FonctionF_UNI2_02_ALLEGEE' : #
# #
# 20201111121013 00:28:28 (avec ProcessorNumber=8) #
# #
# Apres les modifications 'v $xig/fonct$vv$DEF 20221101103441' : #
# #
# 20221101185747 00:35:09 (avec ProcessorNumber=8) #
# 20240626121718 00:40:25 (avec ProcessorNumber=8) #
# #
# #
# LACT1A : #
# #
# 20160813180700 00:10:23 (avec ProcessorNumber=8) #
# 20160814081749 00:09:54 (avec ProcessorNumber=8) #
# 20160815122224 00:09:52 (avec ProcessorNumber=8) #
# 20160815175103 00:09:54 (avec ProcessorNumber=8) #
# 20160913164024 00:09:46 (avec ProcessorNumber=8) #
# 20161208112823 00:09:23 (avec ProcessorNumber=8) #
# 20161216151828 00:09:40 (avec ProcessorNumber=8) #
# 20161223103703 00:09:38 (avec ProcessorNumber=8) #
# 20161224095352 00:09:36 (avec ProcessorNumber=8) #
# 20161224101446 00:09:37 (avec ProcessorNumber=8) #
# 20170402113855 00:10:13 (avec ProcessorNumber=8) #
# 20170405123757 00:10:19 (avec ProcessorNumber=8) #
# 20170520051659 00:10:20 (avec ProcessorNumber=8) #
# 20170520105811 00:10:10 (avec ProcessorNumber=8) #
# 20170521090950 00:10:25 (avec ProcessorNumber=8) #
# 20170612203525 00:10:15 (avec ProcessorNumber=8) #
# #
# Apres 'v $xcc/cpp$Z 20170711093516' : #
# #
# 20170711135530 00:11:04 (avec ProcessorNumber=8) #
# 20170711142238 00:11:06 (avec ProcessorNumber=8) #
# 20170711153946 00:11:03 (avec ProcessorNumber=8) #
# 20170711174511 00:11:02 (avec ProcessorNumber=8) #
# 20170711182956 00:11:06 (avec ProcessorNumber=8) #
# #
# Apres 'v $xiiD/definit.2$DEF 20170715111607' : #
# #
# 20170715111856 00:10:43 (avec ProcessorNumber=8) #
# #
# Apres 'v $xb/GENERE$Z 20170716102643' : #
# #
# 20170716140718 00:10:42 (avec ProcessorNumber=8) #
# 20170720084814 00:10:46 (avec ProcessorNumber=8) #
# #
# Apres 'v $xE/genere$vv$Z 20170722093635' : #
# #
# 20170722104108 00:06:39 (avec ProcessorNumber=8) #
# 20170829121617 00:10:45 (avec ProcessorNumber=8) #
# 20170830075848 00:10:45 (avec ProcessorNumber=8) #
# 20171219181624 00:10:47 (avec ProcessorNumber=8) #
# 20180104125743 00:11:35 (avec ProcessorNumber=8) #
# 20180104132754 00:11:34 (avec ProcessorNumber=8) #
# 20180124173527 00:11:38 (avec ProcessorNumber=8) #
# 20180315153935 00:11:53 (avec ProcessorNumber=8) #
# 20180321174435 00:11:49 (avec ProcessorNumber=8) #
# 20180323125515 00:11:50 (avec ProcessorNumber=8) #
# 20180324111441 00:11:48 (avec ProcessorNumber=8) #
# 20180326181141 00:11:46 (avec ProcessorNumber=8) #
# 20180328132557 00:11:46 (avec ProcessorNumber=8) #
# 20180401113246 00:11:52 (avec ProcessorNumber=8) #
# #
# Apres 'v $xb/GENERE$Z 20180402102346' : #
# #
# 20180402110048 00:12:53 (avec ProcessorNumber=8) #
# 20180403190403 00:12:59 (avec ProcessorNumber=8) #
# 20180412153558 00:12:13 (avec ProcessorNumber=8) #
# 20180413181748 00:12:18 (avec ProcessorNumber=8) #
# 20180425181146 00:12:16 (avec ProcessorNumber=8) #
# 20180426091137 00:12:16 (avec ProcessorNumber=8) #
# 20180428075812 00:12:21 (avec ProcessorNumber=8) #
# 20181231162720 00:18:31 (avec ProcessorNumber=8) #
# 20190626120334 00:18:31 (avec ProcessorNumber=8) #
# 20190724115632 00:18:31 (avec ProcessorNumber=8) #
# 20190726111030 00:18:33 (avec ProcessorNumber=8) #
# 20190902182317 00:18:38 (avec ProcessorNumber=8) #
# 20190930132425 00:18:46 (avec ProcessorNumber=8) #
# 20190930190138 00:18:47 (avec ProcessorNumber=8) #
# 20190930192526 00:17:34 (avec ProcessorNumber=8, en testant l'ordre inverse #
# via 'FindExec_InverserOrdre=$EXIST') #
# #
# Apres la re-introduction de '$FindExec_InverserOrdre' : #
# #
# 20191001111557 00:17:35 (avec ProcessorNumber=8) #
# 20191001133036 00:17:31 (avec ProcessorNumber=8) #
# 20200310182726 00:17:30 (avec ProcessorNumber=8) #
# 20200324084815 00:17:28 (avec ProcessorNumber=8) #
# #
# Apres la modification 'v $xcc/cpp$Z 20200408142613' : #
# #
# 20200409203701 00:17:23 (avec ProcessorNumber=8) #
# #
# Apres la modification 'v $xb/GENERE$Z 20200413103739' : #
# #
# 20200414121706 00:23:25 (avec ProcessorNumber=8) #
# #
# Apres la modification 'v $xig/fonct$vv$DEF GENERE__FonctionF_UNI2_02_ALLEGEE' : #
# #
# 20201110204339 00:12:26 (avec ProcessorNumber=8) #
# 20201112125336 00:12:26 (avec ProcessorNumber=8) #
# 20210118144437 00:12:54 (avec ProcessorNumber=8) #
# 20210226081907 00:15:00 (avec ProcessorNumber=8) #
# 20220123091126 00:15:16 (avec ProcessorNumber=8) #
# 20221202165249 00:15:03 (avec ProcessorNumber=8) #
# 20221202174724 00:14:55 (avec ProcessorNumber=8) #
# 20230324123631 00:15:13 (avec ProcessorNumber=8) #
# 20230406132615 00:15:31 (avec ProcessorNumber=8) #
# 20230809180233 00:15:33 (avec ProcessorNumber=8) #
# 20240624204454 00:15:44 (avec ProcessorNumber=8) #
# 20240626121300 00:15:47 (avec ProcessorNumber=8) #
# 20240705101317 00:15:53 (avec ProcessorNumber=8) #
# #
# #
# LACT1B : #
# #
# 20210902082319 00:17:13 (avec ProcessorNumber=16) #
# 20210904115505 00:17:19 (avec ProcessorNumber=16) #
# 20210906113149 00:18:40 (avec ProcessorNumber=8) #
# #
# Apres la modification 'v $xcc/cb$Z 20210909073237' : #
# #
# 20210909075244 00:15:59 (avec ProcessorNumber=16) #
# 20210924152142 00:15:37 (avec ProcessorNumber=16) #
# #
# Apres la modification 'v $Fdirectories 20211208113640' : #
# #
# 20211212120515 00:15:14 (avec ProcessorNumber=16) #
# #
# Apres la modification 'v $xcc/cb$Z soname=' : #
# #
# 20211217143424 00:15:16 (avec ProcessorNumber=16) #
# 20211220103639 00:15:11 (avec ProcessorNumber=16) #
# 20221022122453 00:15:48 (avec ProcessorNumber=16) #
# #
# Apres les modifications 'v $xil/defi_c1$vv$DEF 20221028181016' et '$xcc/cpp$Z 20221029114820' : #
# #
# 20221029165622 00:15:40 (avec ProcessorNumber=16) #
# 20221030182517 00:15:42 (avec ProcessorNumber=16) #
# 20221114121650 00:17:43 (avec ProcessorNumber=16) #
# 20221114130123 00:15:36 (avec ProcessorNumber=16) #
# #
# Apres l'introduction de 'v $xil/defi_K2$vv$DEF .define...MOYS.a.b.' : #
# #
# 20230123133632 00:14:46 (avec ProcessorNumber=16) #
# 20230301095937 00:14:56 (avec ProcessorNumber=16) #
# 20230406124355 00:15:00 (avec ProcessorNumber=16) #
# 20230414190006 00:15:04 (avec ProcessorNumber=16) #
# #
# Apres l'introduction de 'v $xbii/alphabet.5$K' : #
# #
# 20230516153818 00:15:07 (avec ProcessorNumber=16) #
# 20231130095851 00:15:02 (avec ProcessorNumber=16) #
# 20240626132610 00:15:34 (avec ProcessorNumber=16) #
# 20240924141252 00:15:13 (avec ProcessorNumber=16) #
# #
# #
# #
# Author of '$xb/GENERE$Z' : #
# #
# Jean-Francois COLONNA (LACTAMME, AAAAMMJJhhmmss). #
# #
#######################################################################################################################################
source $xcc/PeutOnCompiler$vv$Y
# Introduit le 20240713143238 depuis que la vraie '$CMAP28' est devenue incompatible au #
# niveau des '$X's avec les fausses '$CMAP28's... #
set CKonstantes=$1
# On recompile '$xcp/Konstantes$K' a priori (parametre introduit le 20081006091049). #
set CDerivFormel=$2
# On genere 'v $ximd/DerivFormel.1$DEF' a priori (parametre introduit le 20101222095334). #
set GListeFonctions=$3
set CommandeCompilation="$4"
# Introduit le 20190930181849 afin, en particulier, de chronometrer (via 'duree') chaque #
# compilation... #
set GArgAriExt=$5
# Introduit le 20200413103739... #
if ("$CKonstantes" == "$K_VIDE") then
set CKonstantes=$EXIST
# On recompile '$xcp/Konstantes$K' a priori (parametre introduit le 20081006091049). #
else
endif
if ("$CDerivFormel" == "$K_VIDE") then
set CDerivFormel=$EXIST
# On genere 'v $ximd/DerivFormel.1$DEF' a priori (parametre introduit le 20101222095334). #
else
endif
if ("$GListeFonctions" == "$K_VIDE") then
set GListeFonctions=$EXIST
# On genere 'v $LISTE_FonctionsPrivees' et 'v $LISTE_FonctionsSystemes' a priori #
# (parametre introduit le 20120627145148). #
else
endif
if ("$CommandeCompilation" == "$K_VIDE") then
set CommandeCompilation=$xcc/cbg$Z
else
endif
if ("$GArgAriExt" == "$K_VIDE") then
set GArgAriExt=$EXIST
# Introduit le 20200413103739... #
else
endif
setenv TaillePaquetsDiviseur 1000
# Introduit le 20200329164702 afin que les paquets aient pour taille 1 et favoriser ainsi #
# le parallelisme a cause de certains '$K's qui se compilent tres vites et d'autres tres #
# lentement ('v $xbii/tri_image$K 20181118133107')... #
if ($GListeFonctions == $EXIST) then
# Test introduit le 20120627145148... #
$xcc/GLFonctions$vv$Z $LISTE_FonctionsSystemes \
$LISTE_FonctionsPrivees \
$LISTE_ArgumentsImplicitesFonctionsPrivees
# Introduit le 20120627145148 et complete le 20120628135532... #
else
endif
if ($GArgAriExt == $EXIST) then
# Test introduit le 20200413103739... #
if ("$mHOTE" == "$mREFERENCE") then
# Test introduit le 20200415111149... #
($xcg/GENERE$ARG$Z)
($xcg/GENERE$ARI$Z)
($xcg/GENERE$EXT$Z)
# Generations introduites le 20200413103739 et complete le 20200414103714 avec '$ARI'... #
# #
# On notera la mise entre parentheses introduite le 20200413120449. En fait elle ne sert #
# qu'a permettre une generation correcte de 'v $xiMd/xb_____GENERE$Z.$m4'. En effet, en #
# leur absence des liens incorrects sont generes... #
else
endif
else
endif
if ($CKonstantes == $EXIST) then
# Test introduit le 20081006091049... #
xcp
$xcc/cl$Z Konstantes
# Introduit le 20081005123027. C'est en effet beaucoup plus prudent : ainsi, par exemple #
# la modification 'v $xiii/Images$DEF L_SUBSTITUTION_HISTOGRAMME' sans cette recompilation #
# a cree quelques problemes a cette date... #
saut 2
# Introduit le 20081009190627... #
else
endif
if ($CDerivFormel == $EXIST) then
# Test introduit le 20101222095334... #
setenv ForcerDerivFormel $EXIST
# Introduit le 20230301094727 pour forcer la generation de 'v $ximd/DerivFormel.1$DEF'... #
$xi/DerivFormel$Z
# Mis sous cette forme le 20101223082334... #
unsetenv ForcerDerivFormel
saut 2
else
endif
xb
# Passage dans le directory "bibliotheques". #
# ATTENTION, il y avait autrefois : #
# #
# echo "$Prompt""$Prompt""$Prompt""$Prompt" #
# saut #
# saut #
# saut #
# saut #
# #
# Ceci n'etait destine qu'a permettre un "copier-coller" des deux lignes "0/[Ee]rror/" et #
# "0/[Ww]arning/" alors que le curseur de '$VI' est sur la premiere ligne ; cette derniere #
# ne doit donc pas etre vide (ce que donnerait "saut" seul...), et contenir suffisamment de #
# caracteres "espaces". Malheureusement, '$VI' se positionnait au bout de cette premiere #
# ligne d'espaces (a la recherche du premier caractere non blanc...). La solution est donc #
# de faire que le "titre" suivant sorte sur la premiere ligne... #
echo "$Prompt""Compilation des bibliotheques :"
echo "$Prompt""-----------------------------"
source $xcc/GENERE$Y
if ($?CONSERVE_c == $EXIST) then
echo "ATTENTION : les fichiers de type '$c' sont conserves."
echo "Alors..."
answer
else
endif
saut
saut
saut
saut
#20101119135123____:setenv FindExec_InverserOrdre $EXIST #
#20190930183038____:setenv FindExec_InverserOrdre $EXIST #
setenv FindExec_InverserOrdre $EXIST
# Introduit le 20101118182346 pour favoriser le parallelisme. En effet, en particulier #
# la librairie 'v $xbmcf/conformes$K' est tres longue a compiler, or elle se #
# retrouvait en dernier sur l'une des branches paralleles, les autres branches etant alors #
# inoccupees et le processus devenant sequentiel. Ainsi, en inversant l'ordre, j'espere #
# faire du parallelisme jusqu'au bout, meme s'il s'agit d'un bricolage un peu specifique, #
# mais je ne vois pas comment faire autrement... #
# #
# Le 20101119135123, j'annule cela grace a 'v $xiipf/fonction.3$FON 20101119132724'... #
# #
# Le 20190930171101, je l'ai retabli car, en effet, les fichiers les plus longs a compiler #
# (tel 'v $xbii/tri_image$K PRAGMA_CPP_____AUTORISER_LE_GooF') sont compiles en parallele #
# plutot au debut et non pas tous seuls a la fin... #
# #
# Le 20191001103120, je retabli '$FindExec_InverserOrdre' suite a des experiences faites #
# sur '$LACT1A'. L'ensemble des '$K's de '$xb' (a l'exception de 'v $$xbg/allocation$K' #
# et de 'v $xbg/fonction$K' qui ne peuvent etre recompiles en parallele...) ont ete #
# compiles de trois facons differentes via 'v $xcg/ExecParallele.01$Z' : #
# #
# 20191001092956 Ordre alphabetique duree=00:15:17 #
# 20191001100950 Ordre alphabetique inverse duree=00:14:09 #
# 20191001095144 Ordre "durees decroissantes" duree=00:13:30 #
# #
# Il est evident que utiliser les "durees decroissantes" place en particulier #
# 'v $xbii/tri_image$K' en tete des compilations, or c'est elle qui est la plus longue et #
# on a donc interet a compiler ce '$K' en premier car, ainsi cette compilation se fera en #
# parallele d'autres (beaucoup) plus courtes. Or malheureusement la generation de la liste #
# des '$K's a compiler est faite par 'v $xcg/FindExec.01$Z' qui ne peut evidemment prendre #
# en compte ces considerations. Un peu par hasard, il apparait que 'v $xbii/tri_image$K' #
# figure parmi les derniers '$K's par ordre alphabetique et donc en inversant cet ordre, #
# 'v $xbii/tri_image$K' se trouvera presque en tete... #
# #
# #
# Voici les durees mesurees par 'v $xb/GENERE$Z $EXIST $EXIST $EXIST "duree $xcc/cbg$Z"' #
# (le 20190930192526) par ordre decroissant : #
# #
# $xb/images/images/tri_image$K 00:12:22 #
# #
# $xb/mathematiques/complexes/fonctions/operator$K 00:04:11 #
# $xb/images/images/pent_image$K 00:03:44 #
# $xb/images/images/di_image$K 00:03:08 #
# $xb/images/images/GooF_image$K 00:02:27 #
# $xb/mathematiques/complexes/fonctions/conformes$K 00:02:26 #
# $xb/images/images/di_album$K 00:02:12 #
# $xb/mathematiques/complexes/fonctions/iterations$K 00:02:09 #
# $xb/images/images/mono_image$K 00:01:49 #
# $xb/images/images/quad_image$K 00:01:36 #
# #
# a partir d'ici, les '$K's dont les compilations sont parfaitement parallelisables car de #
# faibles durees : #
# #
# $xb/images/images/alphabet.3$K 00:01:23 #
# $xb/images/images/conversion$K 00:01:10 #
# $xb/generales/edition$K 00:01:10 #
# $xb/images/images/aleatoires.2$K 00:01:07 #
# $xb/mathematiques/fonctions/aleatoires$K 00:01:04 #
# $xb/images/images/alphabets$K 00:01:01 #
# $xb/images/images/vecteurs$K 00:00:59 #
# $xb/images/images/montagnes$K 00:00:58 #
# $xb/images/images/scalaires$K 00:00:57 #
# $xb/images/points/fonctions/fonction.2$K 00:00:56 #
# $xb/images/images/entrees$K 00:00:56 #
# $xb/images/drivers/X_Window/fonction$K 00:00:56 #
# $xb/images/images/files$K 00:00:55 #
# $xb/images/images/alphabet.4$K 00:00:53 #
# $xb/mathematiques/complexes/fonctions/fonction$K 00:00:52 #
# $xb/images/images/alphabet.1$K 00:00:52 #
# $xb/mathematiques/complexes/fonctions/common$K 00:00:51 #
# $xb/images/images/alphabet.2$K 00:00:49 #
# $xb/images/images/alphabet.0$K 00:00:49 #
# $xb/images/images/Images$K 00:00:48 #
# $xb/images/images/ImagesF$K 00:00:47 #
# $xb/generales/GooF_fonct$K 00:00:47 #
# $xb/images/points/fonctions/fonction.3$K 00:00:46 #
# $xb/images/niveaux/fonction.1$K 00:00:45 #
# $xb/images/images/contours$K 00:00:44 #
# $xb/images/images/aleatoires.1$K 00:00:43 #
# $xb/mathematiques/complexes/fonctions/outils$K 00:00:42 #
# $xb/images/drivers/alphanumerique/fonction$K 00:00:41 #
# $xb/generales/common$K 00:00:41 #
# $xb/mathematiques/fonctions/surfaces.1$K 00:00:40 #
# $xb/mathematiques/fonctions/courbes.1$K 00:00:40 #
# $xb/images/images/ImagesS$K 00:00:40 #
# $xb/mathematiques/transformation/ondelettes$K 00:00:38 #
# $xb/images/points/fonctions/fonction.1$K 00:00:38 #
# $xb/images/images/mono_album$K 00:00:37 #
# $xb/mathematiques/fonctions/trigoc$K 00:00:36 #
# $xb/mathematiques/fonctions/nombres$K 00:00:36 #
# $xb/mathematiques/transformation/fourier$K 00:00:35 #
# $xb/mathematiques/fonctions/produits$K 00:00:35 #
# $xb/images/drivers/solar/fonction$K 00:00:35 #
# $xb/images/drivers/disk_video_P/fonction$K 00:00:34 #
# $xb/images/drivers/cubi7/fonction.1$K 00:00:34 #
# $xb/images/drivers/UltraNet_FB/fonction$K 00:00:34 #
# $xb/images/drivers/Silicon_Grafic/fonction.1$K 00:00:34 #
# $xb/images/images/ImagesJ$K 00:00:33 #
# $xb/images/drivers/ridge/fonction$K 00:00:33 #
# $xb/images/drivers/dpx5000c/fonction$K 00:00:33 #
# $xb/images/drivers/disk_video_S/fonction$K 00:00:33 #
# $xb/images/drivers/Silicon_Grafic/fonction.2$K 00:00:33 #
# $xb/images/drivers/Motif/fonction$K 00:00:32 #
# $xb/mathematiques/fonctions/operator.1$K 00:00:31 #
# $xb/images/drivers/Compression/jpeg$K 00:00:31 #
# #
# et enfin, les '$K's dont les compilations ne sont pas parallelisables : #
# #
# $xb/generales/fonction$K 00:00:57 #
# $xb/generales/allocation$K 00:00:19 #
# #
FilSTmpB FMeSsAgEs
# Introduit le 20170716102643... #
#20131205174349____:$xcg/FindExec.01$Z $Dcourant $K $xcc/cbg$Z #
#20170716102643____:$xcg/FindExec.01$Z $xb $K $xcc/cbg$Z #
#20180402084239____:$xcg/FindExec.01$Z $xb $K $xcc/cbg$Z \ #
#20180402084239____: >> $FMeSsAgEs #
FilSTmpB FExClUsIoNs
$CA $xcs/csh$Y \
>> $FExClUsIoNs
$GRE -r "^$PASSE_5""define *PRAGMA_CB_____AJOUTER_DES_LIBRAIRIES *" * | \
$SE -e "s/:$PASSE_5""define *PRAGMA_CB_____AJOUTER_DES_LIBRAIRIES */ /" \
-e 's/"//g' \
-e 's+^+$xb'"$K_sepS+" \
-e "s/^/eval echo /" \
>> $FExClUsIoNs
(source $FExClUsIoNs) | \
$SE \
-e "s/\""$K_sepP""[^ $K_sepP]* */$K /" \
-e "s/\""$K_sepP""[^ $K_sepP]*"'$'"/$K/" \
> $FExClUsIoNs.1
set LExClUsIoNs_avant=`$CA $FExClUsIoNs.1 | $AW ' { print $2 } '`
set LExClUsIoNs_apres=`$CA $FExClUsIoNs.1 | $AW ' { print $1 } '`
set LExClUsIoNs=`$CA $FExClUsIoNs.1`
FilSTmpE FExClUsIoNs
if ("$LExClUsIoNs_avant" != "$K_VIDE") then
foreach FiChIeR_K ($LExClUsIoNs_avant)
#20190930181849____: $xcc/cbg$Z $FiChIeR_K \ #
#20190930181849____: >>& $FMeSsAgEs #
(eval $CommandeCompilation $FiChIeR_K) \
>>& $FMeSsAgEs
# Compilation sequentielle des '$K's lies par un 'PRAGMA_CB_____AJOUTER_DES_LIBRAIRIES' et #
# dits "avant" (c'est par exemple le cas de 'v $xbg/allocation$K' qui doit evidemment #
# preceder celle de 'v $xbg/fonction$K'...). #
# #
# Elle fut introduite le 20180402102346... #
end
else
endif
if ("$LExClUsIoNs_apres" != "$K_VIDE") then
foreach FiChIeR_K ($LExClUsIoNs_apres)
#20190930181849____: $xcc/cbg$Z $FiChIeR_K \ #
#20190930181849____: >>& $FMeSsAgEs #
(eval $CommandeCompilation $FiChIeR_K) \
>>& $FMeSsAgEs
# Compilation sequentielle des '$K's lies par un 'PRAGMA_CB_____AJOUTER_DES_LIBRAIRIES' et #
# dits "apres" (c'est par exemple le cas de 'v $xbg/fonction$K' qui doit evidemment #
# suivre celle de 'v $xbg/allocation$K'...). #
# #
# Elle fut introduite le 20180402102346... #
end
else
endif
#20190930181849____:$xcg/FindExec.01$Z $xb $K $xcc/cbg$Z "$LExClUsIoNs" \ #
#20190930181849____: >>& $FMeSsAgEs #
$xcg/FindExec.01$Z $xb $K "$CommandeCompilation" "$LExClUsIoNs" \
>>& $FMeSsAgEs
# Et compilation de tous les modules. #
# #
# Je note le 20101119123644 que si le parallelisme est demande et si 'N' processeurs sont #
# disponibles, il ne faut pas s'attendre a voir le temps de compilation en mode "sequentiel" #
# divise par 'N'. En effet, d'une part il y les entrees-sorties et d'autre il y a surtout #
# le fait que 'v $xcc/cpp$Z' est lui-meme parallele et ce a cause de ses tres nombreux et #
# tres longs "pipes" qui favorisent le parallelisme intrinseque, ce dernier rentrant donc #
# en concurrence avec le parallelisme "explicite" de 'v $xcg/FindExec.01$Z'... #
unset LExClUsIoNs
unset LExClUsIoNs_apres
unset LExClUsIoNs_avant
$CA $FMeSsAgEs
# Edition des messages de compilation... #
set MReCoMpIlEr="RECOMPILER SUR"
set ReCoMpIlEr=`$CA $FMeSsAgEs | $GRE "$MReCoMpIlEr" | $GRE "'"'\$'"$sHOTE'"`
# Des recompilations sont-elles a refaire (introduit le 20170716102643) ? #
if ("$ReCoMpIlEr" != "$K_VIDE") then
# Oui, test introduit le 20170716102643... #
FilSTmpB FReCoMpIlEr $Y
$CA $xcs/csh$Y \
>> $FReCoMpIlEr
set QuOtEs_1="$K_QD$K_QS$K_QD"
set QuOtEs_2="$K_QD$K_QS"
set CoMpUtEr=`eval echo $K_DOLLAR$sHOTE | $R "$K_sepP" "$K_BLANC" | $AW ' { print $1 }'`
set ExPoRt="$K_VIDE"
set ExPoRt="$ExPoRt"" export COMPUTER=$CoMpUtEr ;"
# Ceci correspond a la necessite 'v $xE/..base.11$vv$Y ..base.11.deguise.CMAP.vv.sed' car, #
# effet, s'il s'agit ci-apres d'un : #
# #
# $RSH $CMAP28 (...) #
# #
# alors on se trouve par defaut sur '$CMAP28' avec : #
# #
# COMPUTER=ssh #
# #
# non reconnue par 'v $Foptions La.variable..COMPUTER..definit.une.machine.inconnue'. On #
# force ici : #
# #
# COMPUTER=europe #
# #
# dans ce cas... #
set ExPoRt="$ExPoRt"' export LOGIN=$EXIST ;'
set ExPoRt="$ExPoRt"' export Edit_EROR=$NEXIST ;'
set ExPoRt="$ExPoRt"' export ForcerFcshrc=$EXIST ;'
set ExPoRt="$ExPoRt"' export TERM=$TERM ;'
set ExPoRt="$ExPoRt"' $CSH -c '
$CA $FMeSsAgEs | \
$GRE "$MReCoMpIlEr" | \
$GRE "'"'\$'"$sHOTE'" | \
$SE \
-e "s/^.* $MReCoMpIlEr '\([^ ][^ ]*\)' *: */\1 /" \
-e "s/'\(.*\)'"'$/'"$QuOtEs_1\1$QuOtEs_2/" \
-e "s/^\([^ ][^ ]*\) /"'$RSH \1 "'"$ExPoRt/" \
>> $FReCoMpIlEr
# Generation d'un '$Y' de recompilations a distance... #
unset ExPoRt
unset CoMpUtEr
unset QuOtEs_2
unset QuOtEs_1
source $FReCoMpIlEr
# Recompilations a distance... #
# #
# Cela avait ete introduit le 20170716102643 pour 'v $xbidX/fonction$K' qui donnait des : #
# #
# Segmentation fault #
# #
# sur '$CMAP28' (sur toutes MACHINEs...) apres compilation sur '$CMAP28' (sur toutes MACHINEs #
# sauf sur 'europe.polytechnique.fr' a cause de sa '$nSYSTEM_RELEASE' >= 700000000). Or j'ai #
# reussi a corriger cela via 'v $xiidX/fonct$vv$DEF 20170717101538' et ce dispositif n'a #
# alors plus d'utilite. Mais le conserve car d'une part on ne sait jamais et d'autre part #
# c'est tout a fait magnifique ! #
FilSTmpE FReCoMpIlEr
else
endif
unset ReCoMpIlEr
unset MReCoMpIlEr
FilSTmpE FMeSsAgEs
#20101119135123____:unsetenv FindExec_InverserOrdre #
if (-e $xb/modele$c) then
rw $xb/modele$c
$DELETE_VALIDE $xb/modele$c
# Destruction eventuelle du fichier '$xb/modele$c' qui ne sert a rien et qui n'a ete cree #
# que s'il y a eu des problemes... #
else
endif
if (-e $xb/modele$o) then
rw $xb/modele$o
$DELETE_VALIDE $xb/modele$o
# Destruction du fichier '$xb/modele$o' qui ne sert a rien... #
else
endif
if (-e $xb/modele$a) then
rw $xb/modele$a
$DELETE_VALIDE $xb/modele$a
# Destruction du fichier '$xb/modele$a' qui ne sert a rien... #
else
endif
if (-e $xb/modele$SO) then
rw $xb/modele$SO
$DELETE_VALIDE $xb/modele$SO
# Destruction du fichier '$xb/modele$SO' qui ne sert a rien... #
else
endif
# ATTENTION : on ne fait pas : #
# #
# if (-e $xb/portage$c) then #
# rw $xb/portage$c #
# $DELETE_VALIDE $xb/portage$c #
# else #
# endif #
# #
# car, en effet, il faut pouvoir examiner '$xb/portage$c' afin de comprendre les problemes #
# de portage, et les resoudre... #
if (-e $xb/portage$o) then
rw $xb/portage$o
$DELETE_VALIDE $xb/portage$o
# Destruction du fichier '$xb/portage$o' qui ne sert a rien et qui n'a ete cree que s'il #
# n'y a pas eu de problemes de portage... #
else
endif
if (-e $xb/portage$a) then
rw $xb/portage$a
$DELETE_VALIDE $xb/portage$a
# Destruction du fichier '$xb/portage$a' qui ne sert a rien et qui n'a ete cree que s'il #
# n'y a pas eu de problemes de portage... #
else
endif
if (-e $xb/portage$SO) then
rw $xb/portage$SO
$DELETE_VALIDE $xb/portage$SO
# Destruction du fichier '$xb/portage$SO' qui ne sert a rien et qui n'a ete cree que s'il #
# n'y a pas eu de problemes de portage... #
else
endif
if ($CKonstantes == $EXIST) then
saut 2
xcp
$xcc/cl$Z Konstantes
# Introduit le 20171219181504. C'est en effet beaucoup plus prudent : il pourrait y avoir #
# eu des erreurs lors de la premiere compilation, celles-ci ayant ete corrigees par la #
# compilation des librairies... #
else
endif