|
Packit Service |
f629e6 |
# install.awk
|
|
Packit Service |
f629e6 |
# awk script to handle "make install". Goal is to eliminate need for
|
|
Packit Service |
f629e6 |
# extra utilities (such as sh, mkdir, and cp). This is a hack.
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
function mkinstalldirs(dir, i, ii, j, jj, s, comp, mkdir)
|
|
Packit Service |
f629e6 |
{
|
|
Packit Service |
f629e6 |
gsub("/", "\\", dir); ii = split(dir, s, " ")
|
|
Packit Service |
f629e6 |
print "@echo off" > install_bat
|
|
Packit Service |
f629e6 |
print "@echo off" > install_cmd
|
|
Packit Service |
f629e6 |
for (i = 1; i <= ii; i++) {
|
|
Packit Service |
f629e6 |
jj = split(s[i], comp, "\\"); dir = comp[1];
|
|
Packit Service |
f629e6 |
for (j = 1; j <= jj; dir=dir "\\" comp[++j]) {
|
|
Packit Service |
f629e6 |
if (substr(dir, length(dir)) == ":" || mkdir[dir]) continue;
|
|
Packit Service |
f629e6 |
printf("if not exist %s\\*.* mkdir %s\n", dir, dir) > install_bat
|
|
Packit Service |
f629e6 |
printf("if not exist %s\\* mkdir %s\n", dir, dir) > install_cmd
|
|
Packit Service |
f629e6 |
mkdir[dir] = 1
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
close(install_bat); close(install_cmd)
|
|
Packit Service |
f629e6 |
system(install)
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
function cp(s, j, n, comp)
|
|
Packit Service |
f629e6 |
{
|
|
Packit Service |
f629e6 |
gsub("/", "\\", s); n = split(s, comp, " ");
|
|
Packit Service |
f629e6 |
print "@echo off" > install_bat
|
|
Packit Service |
f629e6 |
print "@echo off" > install_cmd
|
|
Packit Service |
f629e6 |
for (j = 1; j < n; j++) {
|
|
Packit Service |
f629e6 |
printf("copy %s %s\n", comp[j], comp[n]) > install_cmd
|
|
Packit Service |
f629e6 |
if (substr(comp[j], length(comp[j]), 1) == "*")
|
|
Packit Service |
f629e6 |
comp[j] = comp[j] ".*"
|
|
Packit Service |
f629e6 |
printf("copy %s %s\n", comp[j], comp[n]) > install_bat
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
close(install_bat); close(install_cmd)
|
|
Packit Service |
f629e6 |
system(install)
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
BEGIN{
|
|
Packit Service |
f629e6 |
install = "installg"
|
|
Packit Service |
f629e6 |
install_bat = install ".bat"; install_cmd = install ".cmd"
|
|
Packit Service |
f629e6 |
igawk_cmd = prefix "/bin/igawk.cmd"
|
|
Packit Service |
f629e6 |
igawk_bat = prefix "/bin/igawk.bat"
|
|
Packit Service |
f629e6 |
igawk = "pc/awklib/igawk"
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
# Make the bin directory
|
|
Packit Service |
f629e6 |
mkinstalldirs(prefix "/bin");
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
# Create igawk.cmd for OS/2
|
|
Packit Service |
f629e6 |
printf("extproc sh %s/bin/igawk.cmd\nshift\n", prefix) > igawk_cmd
|
|
Packit Service |
f629e6 |
while (getline < igawk) print $0 > igawk_cmd
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
# Create igawk.bat for DOS
|
|
Packit Service |
f629e6 |
printf("@sh igawk %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9", prefix) > igawk_bat
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
# Do common
|
|
Packit Service |
f629e6 |
cp(igawk " *awk.exe " prefix "/bin")
|
|
Packit Service |
f629e6 |
mkinstalldirs(prefix "/lib/awk " prefix "/share/man/man1 " prefix "/share/info")
|
|
Packit Service |
f629e6 |
cp("awklib/eg/lib/* pc/awklib/igawk.awk " prefix "/lib/awk");
|
|
Packit Service |
f629e6 |
cp("doc/*.1 " prefix "/share/man/man1");
|
|
Packit Service |
f629e6 |
cp("doc/gawk.info " prefix "/share/info");
|
|
Packit Service |
f629e6 |
cp("doc/gawkinet.info " prefix "/share/info");
|
|
Packit Service |
f629e6 |
}
|