EasyPG 1.07 Released
[packages] / xemacs-packages / mew / mew / OS2 / configure.cmd
1 /*\r
2  *              configure.cmd for Mew\r
3  *\r
4  *       Copyleft:-) 1997 OKUNISHI Fujikazu\r
5  *\r
6  *       This [OS/2] REXX procedure conforms\r
7  *      GNU GENERAL PUBLIC LICENSE Version 2.\r
8  *\r
9  * Created: Jun 22,1997\r
10  * Revised: Sep 16,1997\r
11  * Keywords: Mew, OS/2, rexx, configure, install\r
12  *\r
13  * special thanks to:\r
14  *   SASAKI Osamu    <s-osamu@ppp.bekkoame.or.jp>\r
15  *   OHMORI Norihito <ohmori@p.chiba-u.ac.jp>\r
16  */\r
17 \r
18   Trace Off\r
19 \r
20   Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'\r
21   Call SysLoadFuncs\r
22   Parse Arg Argv.1 Argv.2 Argv.3 .\r
23 \r
24 /* set variable */\r
25   Parse Source . . thiscmd\r
26    thiscmd = Filespec('Name',thiscmd)  /* OS/2 REXX */\r
27   DefaultPerl5 = 'perl5'\r
28   CacheFile    = '.\os2config.cache'\r
29 \r
30 /* ----------------------------------------------------------------- *\r
31  *            cachefile exist ?\r
32  * ----------------------------------------------------------------- */\r
33   If Stream(CacheFile,'c','query exist') <> ''\r
34     Then Do\r
35          Say 'use sed script' CacheFile\r
36          Signal CREATE\r
37     End\r
38   Say 'NOT exist' CacheFile\r
39 \r
40 /* ------------------------------------------------------------------ *\r
41  *            Argment item syntax check   CASE: no cachefile\r
42  * ------------------------------------------------------------------ */\r
43   ConfVal.1.0='--autoconf';  ConfVal.1.1=''\r
44   ConfVal.2.0='--perl5';  ConfVal.2.1=''\r
45   ConfVal.3.0="--help"\r
46 \r
47   Do lp = 1 To 2\r
48     If Argv.lp = "" Then Leave\r
49     Do lp2 = 1 To 4\r
50       If lp2 = 4 Then\r
51         Do\r
52           Say Argv.lp "???"\r
53           Signal USAGE\r
54         End\r
55       match = Compare(ConfVal.lp2.0, Argv.lp)\r
56       If match = 0 Then\r
57         Do\r
58           If lp2 = 3 Then Signal USAGE  /*14*/\r
59           ConfVal.lp2.1="yes"\r
60           Leave\r
61         End\r
62       If (match > Length(ConfVal.lp2.0)) & (Substr(Argv.lp, match,1) = '=')\r
63         Then Do\r
64           ConfVal.lp2.1=Substr(Argv.lp, match+1)\r
65           Leave\r
66         End\r
67     End\r
68   End\r
69   AutoConf = Translate(ConfVal.1.1)\r
70     If AutoConf <> 'YES' Then AUTOCONF = 'NO'\r
71   Perl5Prog = ConfVal.2.1\r
72     If Translate(Perl5Prog)='YES'|Perl5prog =''\r
73       Then Perl5Prog=''\r
74       Else Signal GENERATE\r
75 \r
76 /* ----------------------------------------------------------------- *\r
77  *            get perl5 program name w/ fullpath\r
78  * ----------------------------------------------------------------- */\r
79   If AUTOCONF='YES'\r
80     Then Perl5Prog = SysSearchPath('PATH',DefaultPerl5 || '.exe')\r
81     Else Do  /* AUTOCONF=NO */\r
82      Do Forever\r
83       Say "Perl5 program name ? (default =" DefaultPerl5 ")"\r
84       Parse Pull Perl5Path .\r
85       If Perl5Path = "" Then\r
86         Do\r
87           Perl5Path = DefaultPerl5\r
88           Cursor = SysCurPos( Word( SysCurPos( ), 1 ) -1, 0 )\r
89           Say Perl5Path\r
90         End\r
91       ChkExt = Perl5Path\r
92       Parse Upper Var ChkExt ChkExt\r
93       If Pos( ".EXE", ChkExt ) = 0 Then Perl5Path = Insert(Perl5Path, ".exe")\r
94       Drop ChkExt\r
95       Perl5Prog = SysSearchPath("PATH", Perl5Path)\r
96       If Perl5Prog = ""\r
97        Then\r
98         Do\r
99           Say "Perl program `"Perl5Path"' Not Found."\r
100           Signal PROG_END\r
101         End\r
102        Else\r
103         Do\r
104           Say "Perl5 executable `"Perl5Prog"'. Found."\r
105           Say "Use this program ? Yes or No ( default = Yes )"\r
106           Pull Anser .\r
107           If (Anser = "") | (Anser = "YES" ) Then\r
108             Do\r
109               Cursor = SysCurPos( Word( SysCurPos( ), 1 ) -1, 0 )\r
110               Say "Yes"\r
111               Leave\r
112             End\r
113         End\r
114      End\r
115     End /* AUTOCONF=YES */\r
116     Perl5Prog = Translate(Perl5Prog,Xrange('a','z'),Xrange('A','Z'))\r
117     Perl5Prog = Translate(Perl5Prog,'/','\')\r
118 \r
119  /* generate sed script file */\r
120 GENERATE:\r
121   Call Lineout STDERR,'AutoConf='autoconf', Perl5Prog='perl5prog\r
122   SedScr = 's|@PERL@|' || Perl5Prog || '|'\r
123   Call LineOut CacheFile, SedScr\r
124   Call LineOut CacheFile\r
125 \r
126 /* ----------------------------------------------------------------- *\r
127  *  search `*.in' files, then create\r
128  * ----------------------------------------------------------------- */\r
129 CREATE:\r
130   Call SysFileTree '*.in', 'src', 'FO'\r
131   If src.0 <> '0' Then\r
132     Do\r
133       Say 'Please Wait...'\r
134       Do i=1 To src.0\r
135         /* delete '.in' strings */\r
136         target = Reverse(Delstr(Reverse(src.i),1,3))\r
137         If Filespec('Name',src.i) <> 'configure.in' &,\r
138            Filespec('Name',src.i) <> 'Makefile.in'\r
139           Then\r
140            Do\r
141              Say 'creating' target\r
142              '@sed -f' CacheFile src.i '>' target\r
143              Say 'Done.'\r
144            End\r
145       End\r
146   End\r
147   Exit\r
148 \r
149 /* ----------------------------------------------------------------- *\r
150  *      Display usage message\r
151  * ----------------------------------------------------------------- */\r
152 USAGE:\r
153   Say 'Usage:' thiscmd 'CONFIGURATION [-OPTION[=VALUE] ...]'\r
154   Say\r
155   Say 'Set configration and installation parameters for IM.'\r
156   Say 'CONFIGURATION specifies the operating system to build for.'\r
157   Say\r
158   Say ConfVal.1.0||'            skip manual configuration'\r
159   Say ConfVal.2.0||'                    set Perl5 executable w/ fullpath'\r
160   Say\r
161   Say 'for example:'\r
162   Say ' ' thiscmd ConfVal.1.0\r
163   Say ' ' thiscmd ConfVal.2.0 || '=d:/usr/local/bin/perl(.exe)'\r
164 \r
165 \r
166 PROG_END:\r
167 Exit\r
168 \r
169 /* End of procedure */\r