153 lines
4.6 KiB
Bash
Executable File
153 lines
4.6 KiB
Bash
Executable File
# Make.sh = update Makefile.lib, Makefile.shlib, Makefile.list
|
|
# or style_*.h files
|
|
# Syntax: sh Make.sh style
|
|
# sh Make.sh Makefile.lib
|
|
# sh Make.sh Makefile.shlib
|
|
# sh Make.sh Makefile.list
|
|
|
|
# turn off enforced customizations
|
|
GREP_OPTIONS=
|
|
# enforce using portable C locale
|
|
LC_ALL=C
|
|
export LC_ALL GREP_OPTIONS
|
|
|
|
# function to create one style_*.h file
|
|
# must whack *.d files that depend on style_*.h file,
|
|
# else Make will not recreate them
|
|
|
|
style () {
|
|
list=`grep -sl $1 $2*.h`
|
|
if (test -e style_$3.tmp) then
|
|
rm -f style_$3.tmp
|
|
fi
|
|
for file in $list; do
|
|
qfile="\"$file\""
|
|
echo "#include $qfile" >> style_$3.tmp
|
|
done
|
|
if (test ! -e style_$3.tmp) then
|
|
if (test ! -e style_$3.h) then
|
|
touch style_$3.h
|
|
elif (test "`cat style_$3.h`" != "") then
|
|
rm -f style_$3.h
|
|
touch style_$3.h
|
|
rm -f Obj_*/$4.d
|
|
if (test $5) then
|
|
rm -f Obj_*/$5.d
|
|
fi
|
|
rm -f Obj_*/lammps.d
|
|
fi
|
|
elif (test ! -e style_$3.h) then
|
|
mv style_$3.tmp style_$3.h
|
|
rm -f Obj_*/$4.d
|
|
if (test $5) then
|
|
rm -f Obj_*/$5.d
|
|
fi
|
|
rm -f Obj_*/lammps.d
|
|
elif (test "`diff --brief style_$3.h style_$3.tmp`" != "") then
|
|
mv style_$3.tmp style_$3.h
|
|
rm -f Obj_*/$4.d
|
|
if (test $5) then
|
|
rm -f Obj_*/$5.d
|
|
fi
|
|
rm -f Obj_*/lammps.d
|
|
else
|
|
rm -f style_$3.tmp
|
|
fi
|
|
}
|
|
|
|
packages () {
|
|
list=`grep -sl $1 */$2*.h`
|
|
if (test -e packages_$3.tmp) then
|
|
rm -f packages_$3.tmp
|
|
fi
|
|
for file in $list; do
|
|
dir="\"`dirname $file`\""
|
|
echo "#undef PACKAGE" >> packages_$3.tmp
|
|
echo "#define PACKAGE $dir" >> packages_$3.tmp
|
|
qfile="\"$file\""
|
|
echo "#include $qfile" >> packages_$3.tmp
|
|
done
|
|
if (test ! -e packages_$3.tmp) then
|
|
if (test ! -e packages_$3.h) then
|
|
touch packages_$3.h
|
|
elif (test "`cat packages_$3.h`" != "") then
|
|
rm -f packages_$3.h
|
|
touch packages_$3.h
|
|
fi
|
|
elif (test ! -e packages_$3.h) then
|
|
mv packages_$3.tmp packages_$3.h
|
|
elif (test "`diff --brief packages_$3.h packages_$3.tmp`" != "") then
|
|
mv packages_$3.tmp packages_$3.h
|
|
else
|
|
rm -f packages_$3.tmp
|
|
fi
|
|
}
|
|
|
|
# create individual style files
|
|
# called by "make machine"
|
|
# col 1 = string to search for
|
|
# col 2 = search in *.h files starting with this name
|
|
# col 3 = name of style file
|
|
# col 4 = file that includes the style file
|
|
# col 5 = optional 2nd file that includes the style file
|
|
|
|
cmd=$1
|
|
|
|
if (test $cmd = "style") || (test $cmd = "packages") then
|
|
|
|
$cmd ANGLE_CLASS angle_ angle force
|
|
$cmd ATOM_CLASS atom_vec_ atom atom atom_vec_hybrid
|
|
$cmd BODY_CLASS body_ body atom_vec_body
|
|
$cmd BOND_CLASS bond_ bond force
|
|
$cmd COMMAND_CLASS "" command input
|
|
$cmd COMPUTE_CLASS compute_ compute modify
|
|
$cmd DIHEDRAL_CLASS dihedral_ dihedral force
|
|
$cmd DUMP_CLASS dump_ dump output write_dump
|
|
$cmd FIX_CLASS fix_ fix modify
|
|
$cmd IMPROPER_CLASS improper_ improper force
|
|
$cmd INTEGRATE_CLASS "" integrate update
|
|
$cmd KSPACE_CLASS "" kspace force
|
|
$cmd MINIMIZE_CLASS min_ minimize update
|
|
$cmd NBIN_CLASS nbin_ nbin neighbor
|
|
$cmd NPAIR_CLASS npair_ npair neighbor
|
|
$cmd NSTENCIL_CLASS nstencil_ nstencil neighbor
|
|
$cmd NTOPO_CLASS ntopo_ ntopo neighbor
|
|
$cmd PAIR_CLASS pair_ pair force
|
|
$cmd READER_CLASS reader_ reader read_dump
|
|
$cmd REGION_CLASS region_ region domain
|
|
|
|
# edit Makefile.lib, for creating non-shared lib
|
|
# called by "make makelib"
|
|
# use current list of *.cpp and *.h files in src dir w/out main.cpp
|
|
|
|
elif (test $1 = "Makefile.lib") then
|
|
|
|
list=`ls -1 *.cpp | sed s/^main\.cpp// | tr "[:cntrl:]" " "`
|
|
sed -i -e "s/SRC = .*/SRC = $list/" Makefile.lib
|
|
list=`ls -1 *.h | tr "[:cntrl:]" " "`
|
|
sed -i -e "s/INC = .*/INC = $list/" Makefile.lib
|
|
|
|
# edit Makefile.shlib, for creating shared lib
|
|
# called by "make makeshlib"
|
|
# use current list of *.cpp and *.h files in src dir w/out main.cpp
|
|
|
|
elif (test $1 = "Makefile.shlib") then
|
|
|
|
list=`ls -1 *.cpp | sed s/^main\.cpp// | tr "[:cntrl:]" " "`
|
|
sed -i -e "s/SRC = .*/SRC = $list/" Makefile.shlib
|
|
list=`ls -1 *.h | tr "[:cntrl:]" " "`
|
|
sed -i -e "s/INC = .*/INC = $list/" Makefile.shlib
|
|
|
|
# edit Makefile.list
|
|
# called by "make makelist"
|
|
# use current list of *.cpp and *.h files in src dir
|
|
|
|
elif (test $1 = "Makefile.list") then
|
|
|
|
list=`ls -1 *.cpp | tr "[:cntrl:]" " "`
|
|
sed -i -e "s/SRC = .*/SRC = $list/" Makefile.list
|
|
list=`ls -1 *.h | tr "[:cntrl:]" " "`
|
|
sed -i -e "s/INC = .*/INC = $list/" Makefile.list
|
|
|
|
fi
|