[0001] [0002] [0003] [0004] [0005] [0006] [0007] [0008] [0009] [0010] [0011] [0012] [0013] [0014] [0015] [0016] [0017] [0018] [0019] [0020] [0021] [0022] [0023] [0024] [0025] [0026] [0027] [0028] [0029] [0030] [0031] [0032] [0033] [0034] [0035] [0036] [0037] [0038] [0039] [0040] [0041] [0042] [0043] [0044] [0045] [0046] [0047] [0048] [0049] [0050] [0051] [0052] [0053] [0054] [0055] [0056] [0057] [0058] [0059] [0060] [0061] [0062] [0063] [0064] [0065] [0066] [0067] [0068] [0069] [0070] [0071] [0072] [0073] [0074] [0075] [0076] [0077] [0078] [0079] [0080] [0081] [0082] [0083] [0084] [0085] [0086] [0087] [0088] [0089] [0090] [0091] [0092] [0093] [0094] [0095] [0096] [0097] [0098] [0099] [0100] [0101] [0102] [0103] [0104] [0105] [0106] [0107] [0108] [0109] [0110] [0111] [0112] [0113] [0114] [0115] [0116] [0117] [0118] [0119] [0120] [0121] [0122] [0123] [0124] [0125] [0126] [0127] [0128] [0129] [0130] [0131] [0132] [0133] [0134] [0135] [0136] [0137] [0138] [0139] [0140] [0141] [0142] [0143] [0144] [0145] [0146] [0147] [0148] [0149] [0150] [0151] [0152] [0153] [0154] [0155] [0156] [0157] [0158] [0159] [0160] [0161] [0162] [0163] [0164] [0165] [0166] [0167] [0168] [0169] [0170] [0171] [0172] [0173] [0174] [0175] [0176] [0177] [0178] [0179] [0180] [0181] [0182] [0183] [0184] [0185] [0186] [0187] [0188] [0189] [0190] [0191] [0192] [0193] [0194] [0195] [0196] [0197] [0198] [0199] [0200] [0201] [0202] [0203] [0204] [0205] [0206] [0207] [0208] [0209] [0210] [0211] [0212] [0213] [0214] [0215] [0216] [0217] [0218] [0219] [0220] [0221] [0222] [0223] [0224] [0225] [0226] [0227] [0228] [0229] [0230] [0231] [0232] [0233] [0234] [0235] [0236] [0237] [0238] [0239] [0240] [0241] [0242] [0243] [0244] [0245] [0246] [0247] [0248] [0249] [0250] [0251] [0252] [0253] [0254] [0255] [0256] [0257] [0258] [0259] [0260] [0261] [0262] [0263] [0264] [0265] [0266] [0267] [0268] [0269] [0270] [0271] [0272] [0273] [0274] [0275] [0276] [0277] [0278] [0279] [0280] [0281] [0282] [0283] [0284] [0285] [0286] [0287] [0288] [0289] [0290] [0291] [0292] [0293] [0294] [0295] [0296] [0297] [0298] [0299] [0300] [0301] [0302] [0303] [0304] [0305] [0306] [0307] [0308] [0309] [0310] [0311]
$!----------------------------------------------------------------------------- $! BUILD_ALL.COM $! $! BRUTE-FORCE build procedure for WASD VMS HTTPd package applications $! $! Copyright (C) 1996-2021 Mark G.Daniel. $! $! Licensed under the Apache License, Version 2.0 (the "License"); $! you may not use this file except in compliance with the License. $! You may obtain a copy of the License at $! $! http://www.apache.org/licenses/LICENSE-2.0 $! $! Unless required by applicable law or agreed to in writing, software $! distributed under the License is distributed on an "AS IS" BASIS, $! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. $! See the License for the specific language governing permissions and $! limitations under the License. $! $! P1 == "BUILD" to compile and link all applications $! P1 == "LINK" to only re-link all applications $! P2 == "SSL" to build/link SSL-version HTTPd executable $! P3 == "DIST" to build a full distribution (not for general usage) $! $! 18-AUG-2021 MGD add SCREPER build $! 12-NOV-2020 MGD VAX no longer supported - it did have a 26 year run! $! 02-JUL-2020 MGD rework to support partial installs $! 28-JUN-2019 MGD replace SDM2HTM with WASDOC $! 05-DEC-2014 MGD remove GIFT build $! 04-SEP-2011 MGD add WEBSOCKET build $! 07-NOV-2009 MGD use WASD_ROOT $! add EXPAT as prerequisite for HTTPd $! 28-NOV-2007 MGD add proxyMUNGE utility/script $! 31-MAY-2005 MGD add WOTSUP utility $! 04-NOV-2002 MGD check for C compiler, $! add RANDSEED and SECHAN, make STREAMLF a procedure $! 28-JUN-2002 MGD add WB and CALOGS, $! remove WWWRKOUT and PERLRTE $! 03-NOV-2001 MGD PERSONA_MACRO $! 20-MAY-2001 MGD add MD5DIGEST build, $! remove SCRUNCH,DBIV,HWP builds $! 26-JAN-2001 MGD "+SSL" for distribution builds $! 28-OCT-2000 MGD modified for CGILIB.OLB $! 27-MAY-2000 MGD add AB utility $! 30-NOV-1999 MGD remove NETLIB/UCX build parameter, $! add SCRUNCH build $! bugfix; HT_ROOT derived from concealed device $! 03-OCT-1998 MGD related EXTRACT in with QUERY $! 27-JUN-1998 MGD modified for v5.1 $! ??-???-???? MGD long unrecorded pre-history :^) $!----------------------------------------------------------------------------- $! $ set noverify $ ss$_abort = 44 $ bell[0,8] = 7 $ copy = "copy/log" $ delete = "delete/noconfirm/log" $ say = "write sys$output" $! $ if f$getsyi("arch_name") .eqs. "VAX" $ then $ write sys$output "VAX no longer supported - it did have a 26 year run!" $ exit 44 $ endif $! $ vms_version = f$integer(f$extract(1,1,f$getsyi("version"))) * 10 +- f$integer(f$extract(3,1,f$getsyi("version"))) $ if vms_version .ge. 72 then set process /parse=traditional $ set noon $ set control=Y $ on controly then exit ss$_abort $! $ if P1 .eqs. "DIST" $ then $ DIST_SSL == "VMS_SSL111=1" $ say f$cvtime() $ stime = f$time() $ P1 = "COMPILE" $ P2 = "" $ P3 = "DIST" $ endif $ if P1 .nes. "BUILD" .and. P1 .nes. "COMPILE" .and. P1 .nes. "LINK" $ then $ say "Usage: @BUILD_ALL LINK|BUILD [SSL]" $ exit $ endif $ if P2 .nes. "" .and. P2 .nes. "SSL" $ then $ say "Usage: @BUILD_ALL LINK|BUILD [SSL]" $ exit $ endif $! $!(look for local WASD_ROOT environment used when building) $ if f$trnlnm("WASD_ROOT","LNM$JOB") .eqs. "" $ then $! (subprocess to do the actual work, define local logicals) $ procCom = f$environment("PROCEDURE") $ procDev = f$parse(procCom,,,"DEVICE","NO_CONCEAL") $ procDir = f$edit(f$parse(procCom,,,"DIRECTORY","NO_CONCEAL"),"UPCASE") $ procDir = procDir - "][" $ wasdRootLength = f$length("WASD_ROOT") $ wasdRoot = procDev+f$extract(0,f$locate("WASD_ROOT",procDir)+wasdRootLength,procDir)+".]" $ define /job /nolog /translation=concealed WASD_ROOT 'wasdRoot' $ wasdExe = "WASD_ROOT:[''wasd_arch_name']" $ define /job /nolog WASD_EXE 'wasdExe' $! (spawn a subprocess to do the actual build ensures job logical deletion) $ spawn /wait @'procCom' "''p1'" "''p2'" "''p3'" $ say "" $ deassign /job WASD_ROOT $ deassign /job WASD_EXE $ exit $ else $ if f$trnlnm("XCC$WASD","LNM$PROCESS") .eqs. "YES" $ then $! (for the spawned process) $ @sys$manager:x86_xtools$sylogin.com $ endif $ endif $! $ @wasd_root:[src]archer.com "" $! $ if P1 .nes. "LINK" $ then $! (make sure we have a C compiler and that it's probably DECC) $ if wasd_arch_name .eqs. "AXP" $ then cc nl: /version $ else cc nl: /decc /version $ endif $ status = $status .and. %x0fffffff $ set on $ if .not. status then exit status $ if f$search("sys$system:decc$*.exe") .eqs. "" $ then $ say "Can't seem to locate SYS$SYSTEM:DECC$*.EXE" $ exit %x00038090 $ endif $ endif $! $ on error then goto finished $ currentDefault = f$environment("DEFAULT") $ set default WASD_ROOT:[SRC] $! $!----------------------------------------------------------------------------- $! $ say "" $ say "--- EXPAT ---" $ set default [.EXPAT] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_EXPAT "''P1'" "''P2'" $ set default [-] $! $ say "" $ say "--- HTTPD ---" $ say "" $ set default [.HTTPD] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_HTTPD "''P1'" "''P2'" "''P3'" $ set default [-] $! $!(library must be built before other applications using it can!) $ say "" $ say "--- CGILIB ---" $ set default [.MISC] $ if P3 .eqs. "DIST" $ then $ delete [.OBJ_'wasd_arch_name']CGILIB*.OBJ;* $ delete [.OBJ_'wasd_arch_name']CGILIB*.OLB;* $ endif $ @BUILD_CGILIB "''P1'" "''P2'" $ set default [-] $! $ if f$search("[]AGENT.DIR") .nes. "" $ then $ say "" $ say "--- AGENTs ---" $ set default [.AGENT] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_ALL "''P1'" "''P2'" $ set default [-] $ endif $! $ if f$search("[]CGIPLUS.DIR") .nes. "" $ then $ say "" $ say "--- CGIPLUS ---" $ set default [.CGIPLUS] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_CGIPLUS "''P1'" "''P2'" $ @BUILD_CGISAPI "''P1'" "''P2'" $ @BUILD_CGIPLUSTEST "''P1'" "''P2'" $ @BUILD_ISAPIEXAMPLE "''P1'" "''P2'" $ @BUILD_RTE_EXAMPLE "''P1'" "''P2'" $ set default [-] $ endif $! $ if f$search("[]CGIPLUS.DIR") .nes. "" $ then $ say "" $ say "--- CONAN ---" $ set default [.CONAN] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_CONAN "''P1'" "''P2'" $ set default [-] $ endif $! $ if f$search("[]HYPERREADER.DIR") .nes. "" $ then $ say "" $ say "--- HYPERREADER & HYPERSHELF ---" $ set default [.HYPERREADER] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_HYPERREADER "''P1'" "''P2'" $ @BUILD_HYPERSHELF "''P1'" "''P2'" $ set default [-] $ endif $! $ if f$search("[]HYPERSPI.DIR") .nes. "" $ then $ say "" $ say "--- HYPERSPI ---" $ set default [.HYPERSPI] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_HYPERSPI$AGENT "''P1'" "''P2'" $ @BUILD_HYPERSPI "''P1'" "''P2'" $! 'f$verify(0) $ set default [-] $ endif $! $ if f$search("[]MISC.DIR") .nes. "" $ then $ say "" $ say "--- MISC(ellaneous) ---" $ set default [.MISC] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* /EXCLUDE=*CGILIB*.OBJ;* $ @BUILD_MISC "''P1'" "''P2'" $ set default [-] $ endif $! $ if f$search("[]OSU.DIR") .nes. "" $ then $ say "" $ say "--- OSU ---" $ set default [.OSU] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_OSU "''P1'" "''P2'" $ set default [-] $ endif $! $ if f$search("[]QUERY.DIR") .nes. "" $ then $ say "" $ say "--- QUERY ---" $ set default [.QUERY] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_QUERY "''P1'" "''P2'" $ set default [-] $ endif $! $ if f$search("[]SCREPER.DIR") .nes. "" $ then $ say "" $ say "--- SCREPER ---" $ set default [.SCREPER] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_SCREPER "''P1'" "''P2'" $ @BUILD_SADHOC "''P1'" "''P2'" $ @BUILD_SHTTPDMON "''P1'" "''P2'" $ @BUILD_SMONITOR "''P1'" "''P2'" $ set default [-] $ endif $! $ if f$search("[]WASDOC.DIR") .nes. "" $ then $ say "" $ say "--- WASDOC ---" $ set default [.WASDOC] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_WASDOC "''P1'" "''P2'" $ set default [-] $ endif $! $ if f$search("[]UTILS.DIR") .nes. "" $ then $ say "" $ say "--- UTILITIES ---" $ set default [.UTILS] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_ALL "''P1'" "''P2'" $ set default [-] $ endif $! $ if f$search("[]WEBSOCKET.DIR") .nes. "" $ then $ say "" $ say "--- WEBSOCKET ---" $ set default [.WEBSOCKET] $ if P3 .eqs. "DIST" then delete [.OBJ_'wasd_arch_name']*.OBJ;* $ @BUILD_ALL "''P1'" "''P2'" $ set default [-] $ endif $! $ finished: !'f$verify(0) $ if P3 .eqs. "DIST" $ then $ say f$cvtime() $ say f$delta_time(stime,f$time()) $ endif $ say "" $ set default 'currentDefault' $! $!-----------------------------------------------------------------------------