#!/bin/csh # $Id: mkmflien,v 1.12 2001-12-19 18:34:11 ansari Exp $ # WARNING : mkmflien has to be runned FROM Mgr/ # usage : mkmflien [-copy] [dir_dest] # -copy : includes are copied (if not they are linked) # -clean : after copy/link file are deleted if not existing (empty link) # dir_dest : link/copy to dir_dest/ # default : $DPCDEVREP/Include ####################### #### Decodage arguments ####################### unset dst set cpln = "ln -sf" unset clln if( $?DPCDEVREP ) then set dst = $DPCDEVREP/Include endif while( $#argv > 0 ) if( "$1" == "-copy" ) then set cpln = "cp" else if( "$1" == "-clean" ) then set clln else set dst = $1 endif shift end if( ! $?dst ) then echo "Variable DPCDEVREP must be set" echo "OR you must give a directory for linking/copying" exit -1 endif ############################################################# #### repertoire contenant les liens a creer pour les includes ############################################################# if ( ! -d $dst/ ) then echo repertoire $dst inconnu exit -1 endif ######################################################### #### repertoire contenant les repertoires du code+include ######################################################### pushd ../. > /dev/null set src = `pwd | sed 's?/tmp_mnt??'` set src = `echo $src | sed 's?/.automount/dapservfic/root??'` popd > /dev/null ######################################################### ### Les includes a mettre dans Include pour les Makefiles ######################################################### if( -d $src/Mgr ) then cd $src/Mgr/. echo $cpln from Mgr set FILE = ( Makefile.h Makefile.slb MakefileUser.h ) pushd $dst/. > /dev/null rm -f $FILE foreach f ( $FILE ) if( -e $src/Mgr/$f ) then $cpln $src/Mgr/$f ./ endif end popd > /dev/null endif ############################################# #### Les includes de Blitz++ lien ds Include ############################################# if( -d $src/Blitz ) then cd $src/Blitz/. foreach d ( blitz blitz/meta blitz/array ) if( -d $d ) then echo $cpln from Blitz/$d if( ! -d $dst/$d ) mkdir $dst/$d pushd $d > /dev/null set FILE = ( *.h *.cc ) popd > /dev/null pushd $dst/$d/. > /dev/null rm -f $FILE $cpln $src/Blitz/$d/*.h ./ $cpln $src/Blitz/$d/*.cc ./ popd > /dev/null endif end endif #################################################### #### Les includes du code C++ a mettre dans Include #################################################### foreach d (`cat ../Mgr/libdirs` `cat ../Mgr/extlibdirs` `cat ../Mgr/PIlibdirs` ) if ( -d $src/$d ) then cd $src/$d/. echo $cpln from $d set FILE = ( *.h ) pushd $dst/. > /dev/null rm -f $FILE $cpln $src/$d/*.h ./ popd > /dev/null endif end ###################################### #### Le cas particulier de machdefs.h ###################################### if ( -e $src/BaseTools/machdefs_mkmf.h ) then echo $cpln from BaseTools/machdefs_mkmf.h $cpln $src/BaseTools/machdefs_mkmf.h $dst/machdefs.h endif ############################### #### Nettoyage des liens vides ############################### if( $?clln ) then foreach f ( $dst/*.h ) if( ! -e $f ) then echo remove empty link : $f rm -f $f endif end endif exit 0