source: trunk/essentials/sys-apps/gawk/pc/install.awk

Last change on this file was 3076, checked in by bird, 18 years ago

gawk 3.1.5

File size: 1.9 KB
Line 
1# install.awk
2# awk script to handle "make install". Goal is to eliminate need for
3# extra utilities (such as sh, mkdir, and cp). This is a hack.
4
5function mkinstalldirs(dir, i, ii, j, jj, s, comp, mkdir)
6{
7 gsub("/", "\\", dir); ii = split(dir, s, " ")
8 print "@echo off" > install_bat
9 print "@echo off" > install_cmd
10 for (i = 1; i <= ii; i++) {
11 jj = split(s[i], comp, "\\"); dir = comp[1];
12 for (j = 1; j <= jj; dir=dir "\\" comp[++j]) {
13 if (substr(dir, length(dir)) == ":" || mkdir[dir]) continue;
14 printf("if not exist %s\\*.* mkdir %s\n", dir, dir) > install_bat
15 printf("if not exist %s\\* mkdir %s\n", dir, dir) > install_cmd
16 mkdir[dir] = 1
17 }
18 }
19 close(install_bat); close(install_cmd)
20 system(install)
21}
22
23function cp(s, j, n, comp)
24{
25 gsub("/", "\\", s); n = split(s, comp, " ");
26 print "@echo off" > install_bat
27 print "@echo off" > install_cmd
28 for (j = 1; j < n; j++) {
29 printf("copy %s %s\n", comp[j], comp[n]) > install_cmd
30 if (substr(comp[j], length(comp[j]), 1) == "*")
31 comp[j] = comp[j] ".*"
32 printf("copy %s %s\n", comp[j], comp[n]) > install_bat
33 }
34 close(install_bat); close(install_cmd)
35 system(install)
36}
37
38BEGIN{
39install = "installg"
40install_bat = install ".bat"; install_cmd = install ".cmd"
41igawk_cmd = prefix "/bin/igawk.cmd"
42igawk_bat = prefix "/bin/igawk.bat"
43igawk = "pc/awklib/igawk"
44
45# Make the bin directory
46mkinstalldirs(prefix "/bin");
47
48# Create igawk.cmd for OS/2
49printf("extproc sh %s/bin/igawk.cmd\nshift\n", prefix) > igawk_cmd
50while (getline < igawk) print $0 > igawk_cmd
51
52# Create igawk.bat for DOS
53printf("@sh %s/bin/igawk %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9", prefix) > igawk_bat
54
55# Do common
56cp(igawk " *awk.exe " prefix "/bin")
57mkinstalldirs(prefix "/lib/awk " prefix "/man/man1 " prefix "/info")
58cp("awklib/eg/lib/* pc/awklib/igawk.awk " prefix "/lib/awk");
59cp("doc/*.1 " prefix "/man/man1");
60cp("doc/gawk.info " prefix "/info");
61cp("doc/gawkinet.info " prefix "/info");
62}
Note: See TracBrowser for help on using the repository browser.