makeengines.com
上传用户:yisoukefu
上传日期:2020-08-09
资源大小:39506k
文件大小:20k
源码类别:

其他游戏

开发平台:

Visual C++

  1. $!
  2. $!  MAKEAPPS.COM
  3. $!  Written By:  Richard Levitte
  4. $!               richard@levitte.org
  5. $!
  6. $!  This command file compiles and creates the various engines in form
  7. $!  of shared images.  They are placed in [.xxx.EXE.ENGINES], where "xxx"
  8. $!  is either AXP or VAX depending on your hardware.
  9. $!
  10. $!  P1 if this is ENGINES or ALL, the engines will build, otherwise not.
  11. $!
  12. $!  P2 DEBUG or NODEBUG to compile with or without debugger information.
  13. $!
  14. $!  P3  VAXC for VAX C
  15. $! DECC for DEC C
  16. $! GNUC for GNU C (untested)
  17. $!
  18. $!  P4 if defined, sets the TCP/IP libraries to use.  UCX or TCPIP is
  19. $! used by default since most other implementations come with a
  20. $! compatibility library.  The value must be one of the following:
  21. $!
  22. $! UCX for UCX
  23. $! SOCKETSHR for SOCKETSHR+NETLIB
  24. $! TCPIP for TCPIP (post UCX)
  25. $!
  26. $!  P5 if defined, tells the compiler not to use special threads.
  27. $!
  28. $!  P6 if defined, denotes which engines to build.  If not defined,
  29. $! all available engines are built.
  30. $!
  31. $!-----------------------------------------------------------------------------
  32. $!
  33. $! Set the names of the engines we want to build
  34. $!
  35. $ ENGINES = "," + P6
  36. $ IF ENGINES .EQS. "," THEN -
  37. ENGINES = ",4758cca,aep,atalla,cswift,chil,nuron,sureware,ubsec"
  38. $!
  39. $! Set the default TCP/IP library to link against if needed
  40. $!
  41. $ TCPIP_LIB = ""
  42. $!
  43. $! Set the architecture name
  44. $!
  45. $ ARCH := VAX
  46. $ IF F$GETSYI("CPU") .GE. 128 THEN ARCH := AXP
  47. $!
  48. $! Set the goal directories, and creat them if necessary
  49. $!
  50. $ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.ENGINES]
  51. $ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.ENGINES]
  52. $ IF F$PARSE(OBJ_DIR) .EQS. "" THEN CREATE/DIRECTORY 'OBJ_DIR'
  53. $ IF F$PARSE(EXE_DIR) .EQS. "" THEN CREATE/DIRECTORY 'EXE_DIR'
  54. $!
  55. $! Set the goal files, and create them if necessary
  56. $!
  57. $ CRYPTO_LIB :=SYS$DISK:[-.'ARCH'.EXE.CRYPTO]LIBCRYPTO.OLB
  58. $ CRYPTO_EXE :=SYS$DISK:[-.'ARCH'.EXE.CRYPTO]LIBCRYPTO.EXE
  59. $ IF F$SEARCH(CRYPTO_LIB) .EQS. "" THEN LIBRARY/CREATE/OBJECT 'CRYPTO_LIB'
  60. $!
  61. $! OK, time to check options and initialise
  62. $!
  63. $ OPT_PHASE = P1
  64. $ ACCEPT_PHASE = "ALL,ENGINES"
  65. $ OPT_DEBUG = P2
  66. $ OPT_COMPILER = P3
  67. $ OPT_TCPIP_LIB = P4
  68. $ OPT_SPECIAL_THREADS = P5
  69. $
  70. $ GOSUB CHECK_OPTIONS
  71. $ GOSUB INITIALISE
  72. $ GOSUB CHECK_OPT_FILE
  73. $!
  74. $! Define what goes into each engine
  75. $!
  76. $ ENGINE_ = ""
  77. $ IF ARCH .EQS. "VAX"
  78. $ THEN
  79. $   ENGINE_ = "engine_vector.mar"
  80. $   EXTRA_OBJ := ,'OBJ_DIR'ENGINE_VECTOR.OBJ
  81. $ ENDIF
  82. $ ENGINE_4758CCA = "e_4758cca"
  83. $ ENGINE_aep = "e_aep"
  84. $ ENGINE_atalla = "e_atalla"
  85. $ ENGINE_cswift = "e_cswift"
  86. $ ENGINE_chil = "e_chil"
  87. $ ENGINE_nuron = "e_nuron"
  88. $ ENGINE_sureware = "e_sureware"
  89. $ ENGINE_ubsec = "e_ubsec"
  90. $!
  91. $! Define which programs need to be linked with a TCP/IP library
  92. $!
  93. $ TCPIP_ENGINES = ",,"
  94. $ IF COMPILER .EQS. "VAXC" THEN -
  95.      TCPIP_ENGINES = ",,"
  96. $!
  97. $! Set up two loops, one that keeps track of the engines,
  98. $! and one that keeps track of all the files going into
  99. $! the current engine.
  100. $!
  101. $! Here's the start of the engine loop.
  102. $!
  103. $ ENGINE_COUNTER = 0
  104. $ ENGINE_NEXT:
  105. $!
  106. $! Extract the current engine name, and if we've reached the end, stop
  107. $!
  108. $ ENGINE_NAME = F$ELEMENT(ENGINE_COUNTER,",",ENGINES)
  109. $ IF (ENGINE_NAME.EQS.",") THEN GOTO ENGINE_DONE
  110. $!
  111. $ ENGINE_COUNTER = ENGINE_COUNTER + 1
  112. $!
  113. $! Set up the engine library names.
  114. $!
  115. $ LIB_ENGINE = "ENGINE_" + ENGINE_NAME
  116. $!
  117. $! Check if the library module name actually is defined
  118. $!
  119. $ IF F$TYPE('LIB_ENGINE') .EQS. ""
  120. $ THEN
  121. $   WRITE SYS$ERROR ""
  122. $   WRITE SYS$ERROR "The module ",ENGINE_NAME," does not exist.  Continuing..."
  123. $   WRITE SYS$ERROR ""
  124. $   GOTO ENGINE_NEXT
  125. $ ENDIF
  126. $!
  127. $! Talk to the user
  128. $!
  129. $ IF ENGINE_NAME .NES. ""
  130. $ THEN
  131. $   WRITE SYS$OUTPUT "Compiling The ",ENGINE_NAME," Library Files. (",BUILDALL,")"
  132. $ ELSE
  133. $   WRITE SYS$OUTPUT "Compiling Support Files. (",BUILDALL,")"
  134. $ ENDIF
  135. $!
  136. $! Here's the start of per-engine module loop.
  137. $!
  138. $ FILE_COUNTER = 0
  139. $ FILE_NEXT:
  140. $!
  141. $! Extract the file name from the file list, and if we've reached the end, stop
  142. $!
  143. $ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",'LIB_ENGINE')
  144. $ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE
  145. $!
  146. $ FILE_COUNTER = FILE_COUNTER + 1
  147. $!
  148. $ IF FILE_NAME .EQS. "" THEN GOTO FILE_NEXT
  149. $!
  150. $! Set up the source and object reference
  151. $!
  152. $ SOURCE_FILE = F$PARSE(FILE_NAME,"SYS$DISK:[].C",,,"SYNTAX_ONLY")
  153. $ OBJECT_FILE = OBJ_DIR + F$PARSE(FILE_NAME,,,"NAME","SYNTAX_ONLY") + ".OBJ"
  154. $!
  155. $! If we get some problem, we just go on trying to build the next module.
  156. $ ON WARNING THEN GOTO FILE_NEXT
  157. $!
  158. $! Check if the module we want to compile is actually there.
  159. $!
  160. $ IF F$SEARCH(SOURCE_FILE) .EQS. ""
  161. $ THEN
  162. $   WRITE SYS$OUTPUT ""
  163. $   WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Doesn't Exist."
  164. $   WRITE SYS$OUTPUT ""
  165. $   GOTO EXIT
  166. $ ENDIF
  167. $!
  168. $! Talk to the user.
  169. $!
  170. $ WRITE SYS$OUTPUT " ",FILE_NAME,""
  171. $!
  172. $! Do the dirty work.
  173. $!
  174. $ ON ERROR THEN GOTO FILE_NEXT
  175. $ IF FILE_NAME - ".MAR" .NES. FILE_NAME
  176. $ THEN
  177. $   MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
  178. $ ELSE
  179. $   CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
  180. $ ENDIF
  181. $!
  182. $! Now, there are two ways to handle this.  We can either build 
  183. $! shareable images or stick the engine object file into libcrypto.
  184. $! For now, the latter is NOT supported.
  185. $!
  186. $!!!!! LIBRARY/REPLACE 'CRYPTO_LIB' 'OBJECT_FILE'
  187. $!
  188. $! For shareable libraries, we need to do things a little differently
  189. $! depending on if we link with a TCP/IP library or not.
  190. $!
  191. $ ENGINE_OPT := SYS$DISK:[]'ARCH'.OPT
  192. $ IF TCPIP_LIB .NES. ""
  193. $ THEN
  194. $   LINK/'DEBUGGER'/'TRACEBACK' /SHARE='EXE_DIR''ENGINE_NAME'.EXE -
  195. 'OBJECT_FILE''EXTRA_OBJ', -
  196. 'CRYPTO_LIB'/LIBRARY, -
  197. 'ENGINE_OPT'/OPTION,'TCPIP_LIB','OPT_FILE'/OPTION
  198. $ ELSE
  199. $   LINK/'DEBUGGER'/'TRACEBACK' /SHARE='EXE_DIR''ENGINE_NAME'.EXE -
  200. 'OBJECT_FILE''EXTRA_OBJ', -
  201.         'CRYPTO_LIB'/LIBRARY, -
  202. 'ENGINE_OPT'/OPTION,'OPT_FILE'/OPTION
  203. $ ENDIF
  204. $!
  205. $! Clean up
  206. $!
  207. $ DELETE 'OBJECT_FILE';*
  208. $!
  209. $! Next file
  210. $!
  211. $ GOTO FILE_NEXT
  212. $!
  213. $ FILE_DONE:
  214. $!
  215. $! Next engine
  216. $!
  217. $ GOTO ENGINE_NEXT
  218. $!
  219. $ ENGINE_DONE:
  220. $!
  221. $! Talk to the user
  222. $!
  223. $ WRITE SYS$OUTPUT "All Done..."
  224. $ EXIT:
  225. $ GOSUB CLEANUP
  226. $ EXIT
  227. $!
  228. $! Check For The Link Option FIle.
  229. $!
  230. $ CHECK_OPT_FILE:
  231. $!
  232. $! Check To See If We Need To Make A VAX C Option File.
  233. $!
  234. $ IF (COMPILER.EQS."VAXC")
  235. $ THEN
  236. $!
  237. $!  Check To See If We Already Have A VAX C Linker Option File.
  238. $!
  239. $   IF (F$SEARCH(OPT_FILE).EQS."")
  240. $   THEN
  241. $!
  242. $!    We Need A VAX C Linker Option File.
  243. $!
  244. $     CREATE 'OPT_FILE'
  245. $DECK
  246. !
  247. ! Default System Options File To Link Agianst 
  248. ! The Sharable VAX C Runtime Library.
  249. !
  250. SYS$SHARE:VAXCRTL.EXE/SHARE
  251. $EOD
  252. $!
  253. $!  End The Option File Check.
  254. $!
  255. $   ENDIF
  256. $!
  257. $! End The VAXC Check.
  258. $!
  259. $ ENDIF
  260. $!
  261. $! Check To See If We Need A GNU C Option File.
  262. $!
  263. $ IF (COMPILER.EQS."GNUC")
  264. $ THEN
  265. $!
  266. $!  Check To See If We Already Have A GNU C Linker Option File.
  267. $!
  268. $   IF (F$SEARCH(OPT_FILE).EQS."")
  269. $   THEN
  270. $!
  271. $!    We Need A GNU C Linker Option File.
  272. $!
  273. $     CREATE 'OPT_FILE'
  274. $DECK
  275. !
  276. ! Default System Options File To Link Agianst 
  277. ! The Sharable C Runtime Library.
  278. !
  279. GNU_CC:[000000]GCCLIB/LIBRARY
  280. SYS$SHARE:VAXCRTL/SHARE
  281. $EOD
  282. $!
  283. $!  End The Option File Check.
  284. $!
  285. $   ENDIF
  286. $!
  287. $! End The GNU C Check.
  288. $!
  289. $ ENDIF
  290. $!
  291. $! Check To See If We Need A DEC C Option File.
  292. $!
  293. $ IF (COMPILER.EQS."DECC")
  294. $ THEN
  295. $!
  296. $!  Check To See If We Already Have A DEC C Linker Option File.
  297. $!
  298. $   IF (F$SEARCH(OPT_FILE).EQS."")
  299. $   THEN
  300. $!
  301. $!    Figure Out If We Need An AXP Or A VAX Linker Option File.
  302. $!
  303. $     IF ARCH .EQS. "VAX"
  304. $     THEN
  305. $!
  306. $!      We Need A DEC C Linker Option File For VAX.
  307. $!
  308. $       CREATE 'OPT_FILE'
  309. $DECK
  310. !
  311. ! Default System Options File To Link Agianst 
  312. ! The Sharable DEC C Runtime Library.
  313. !
  314. SYS$SHARE:DECC$SHR.EXE/SHARE
  315. $EOD
  316. $!
  317. $!    Else...
  318. $!
  319. $     ELSE
  320. $!
  321. $!      Create The AXP Linker Option File.
  322. $!
  323. $       CREATE 'OPT_FILE'
  324. $DECK
  325. !
  326. ! Default System Options File For AXP To Link Agianst 
  327. ! The Sharable C Runtime Library.
  328. !
  329. SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
  330. SYS$SHARE:CMA$OPEN_RTL/SHARE
  331. $EOD
  332. $!
  333. $!    End The VAX/AXP DEC C Option File Check.
  334. $!
  335. $     ENDIF
  336. $!
  337. $!  End The Option File Search.
  338. $!
  339. $   ENDIF
  340. $!
  341. $! End The DEC C Check.
  342. $!
  343. $ ENDIF
  344. $!
  345. $!  Tell The User What Linker Option File We Are Using.
  346. $!
  347. $ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
  348. $!
  349. $! Time To RETURN.
  350. $!
  351. $ RETURN
  352. $!
  353. $! Check The User's Options.
  354. $!
  355. $ CHECK_OPTIONS:
  356. $!
  357. $! Check To See If OPT_PHASE Is Blank.
  358. $!
  359. $ IF (OPT_PHASE.EQS."ALL")
  360. $ THEN
  361. $!
  362. $!   OPT_PHASE Is Blank, So Build Everything.
  363. $!
  364. $    BUILDALL = "ALL"
  365. $!
  366. $! Else...
  367. $!
  368. $ ELSE
  369. $!
  370. $!  Else, Check To See If OPT_PHASE Has A Valid Arguement.
  371. $!
  372. $   IF ("," + ACCEPT_PHASE + ",") - ("," + OPT_PHASE + ",") -
  373.        .NES. ("," + ACCEPT_PHASE + ",")
  374. $   THEN
  375. $!
  376. $!    A Valid Arguement.
  377. $!
  378. $     BUILDALL = OPT_PHASE
  379. $!
  380. $!  Else...
  381. $!
  382. $   ELSE
  383. $!
  384. $!    Tell The User We Don't Know What They Want.
  385. $!
  386. $     WRITE SYS$OUTPUT ""
  387. $     WRITE SYS$OUTPUT "The option ",OPT_PHASE," is invalid.  The valid options are:"
  388. $     WRITE SYS$OUTPUT ""
  389. $     IF ("," + ACCEPT_PHASE + ",") - ",ALL," -
  390. .NES. ("," + ACCEPT_PHASE + ",") THEN -
  391. WRITE SYS$OUTPUT "    ALL      :  just build everything."
  392. $     IF ("," + ACCEPT_PHASE + ",") - ",ENGINES," -
  393. .NES. ("," + ACCEPT_PHASE + ",") THEN -
  394. WRITE SYS$OUTPUT "    ENGINES  :  to compile just the [.xxx.EXE.ENGINES]*.EXE hareable images."
  395. $     WRITE SYS$OUTPUT ""
  396. $     WRITE SYS$OUTPUT " where 'xxx' stands for:"
  397. $     WRITE SYS$OUTPUT ""
  398. $     WRITE SYS$OUTPUT "        AXP  :  Alpha architecture."
  399. $     WRITE SYS$OUTPUT "        VAX  :  VAX architecture."
  400. $     WRITE SYS$OUTPUT ""
  401. $!
  402. $!    Time To EXIT.
  403. $!
  404. $     EXIT
  405. $!
  406. $!  End The Valid Arguement Check.
  407. $!
  408. $   ENDIF
  409. $!
  410. $! End The OPT_PHASE Check.
  411. $!
  412. $ ENDIF
  413. $!
  414. $! Check To See If OPT_DEBUG Is Blank.
  415. $!
  416. $ IF (OPT_DEBUG.EQS."NODEBUG")
  417. $ THEN
  418. $!
  419. $!   OPT_DEBUG Is NODEBUG, So Compile Without The Debugger Information.
  420. $!
  421. $    DEBUGGER = "NODEBUG"
  422. $    TRACEBACK = "NOTRACEBACK" 
  423. $    GCC_OPTIMIZE = "OPTIMIZE"
  424. $    CC_OPTIMIZE = "OPTIMIZE"
  425. $    MACRO_OPTIMIZE = "OPTIMIZE"
  426. $    WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
  427. $    WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
  428. $ ELSE
  429. $!
  430. $!  Check To See If We Are To Compile With Debugger Information.
  431. $!
  432. $   IF (OPT_DEBUG.EQS."DEBUG")
  433. $   THEN
  434. $!
  435. $!    Compile With Debugger Information.
  436. $!
  437. $     DEBUGGER = "DEBUG"
  438. $     TRACEBACK = "TRACEBACK"
  439. $     GCC_OPTIMIZE = "NOOPTIMIZE"
  440. $     CC_OPTIMIZE = "NOOPTIMIZE"
  441. $     MACRO_OPTIMIZE = "NOOPTIMIZE"
  442. $     WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
  443. $     WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
  444. $   ELSE 
  445. $!
  446. $!    They Entered An Invalid Option..
  447. $!
  448. $     WRITE SYS$OUTPUT ""
  449. $     WRITE SYS$OUTPUT "The Option ",OPT_DEBUG," Is Invalid.  The Valid Options Are:"
  450. $     WRITE SYS$OUTPUT ""
  451. $     WRITE SYS$OUTPUT "     DEBUG   :  Compile With The Debugger Information."
  452. $     WRITE SYS$OUTPUT "     NODEBUG :  Compile Without The Debugger Information."
  453. $     WRITE SYS$OUTPUT ""
  454. $!
  455. $!    Time To EXIT.
  456. $!
  457. $     EXIT
  458. $!
  459. $!  End The Valid Arguement Check.
  460. $!
  461. $   ENDIF
  462. $!
  463. $! End The OPT_DEBUG Check.
  464. $!
  465. $ ENDIF
  466. $!
  467. $! Special Threads For OpenVMS v7.1 Or Later
  468. $!
  469. $! Written By:  Richard Levitte
  470. $!              richard@levitte.org
  471. $!
  472. $!
  473. $! Check To See If We Have A Option For OPT_SPECIAL_THREADS.
  474. $!
  475. $ IF (OPT_SPECIAL_THREADS.EQS."")
  476. $ THEN
  477. $!
  478. $!  Get The Version Of VMS We Are Using.
  479. $!
  480. $   ISSEVEN :=
  481. $   TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
  482. $   TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
  483. $!
  484. $!  Check To See If The VMS Version Is v7.1 Or Later.
  485. $!
  486. $   IF (TMP.GE.71)
  487. $   THEN
  488. $!
  489. $!    We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
  490. $!
  491. $     ISSEVEN := ,PTHREAD_USE_D4
  492. $!
  493. $!  End The VMS Version Check.
  494. $!
  495. $   ENDIF
  496. $!
  497. $! End The OPT_SPECIAL_THREADS Check.
  498. $!
  499. $ ENDIF
  500. $!
  501. $! Check To See If OPT_COMPILER Is Blank.
  502. $!
  503. $ IF (OPT_COMPILER.EQS."")
  504. $ THEN
  505. $!
  506. $!  O.K., The User Didn't Specify A Compiler, Let's Try To
  507. $!  Find Out Which One To Use.
  508. $!
  509. $!  Check To See If We Have GNU C.
  510. $!
  511. $   IF (F$TRNLNM("GNU_CC").NES."")
  512. $   THEN
  513. $!
  514. $!    Looks Like GNUC, Set To Use GNUC.
  515. $!
  516. $     OPT_COMPILER = "GNUC"
  517. $!
  518. $!  Else...
  519. $!
  520. $   ELSE
  521. $!
  522. $!    Check To See If We Have VAXC Or DECC.
  523. $!
  524. $     IF (ARCH.EQS."AXP").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
  525. $     THEN 
  526. $!
  527. $!      Looks Like DECC, Set To Use DECC.
  528. $!
  529. $       OPT_COMPILER = "DECC"
  530. $!
  531. $!    Else...
  532. $!
  533. $     ELSE
  534. $!
  535. $!      Looks Like VAXC, Set To Use VAXC.
  536. $!
  537. $       OPT_COMPILER = "VAXC"
  538. $!
  539. $!    End The VAXC Compiler Check.
  540. $!
  541. $     ENDIF
  542. $!
  543. $!  End The DECC & VAXC Compiler Check.
  544. $!
  545. $   ENDIF
  546. $!
  547. $!  End The Compiler Check.
  548. $!
  549. $ ENDIF
  550. $!
  551. $! Check To See If We Have A Option For OPT_TCPIP_LIB.
  552. $!
  553. $ IF (OPT_TCPIP_LIB.EQS."")
  554. $ THEN
  555. $!
  556. $!  Find out what socket library we have available
  557. $!
  558. $   IF F$PARSE("SOCKETSHR:") .NES. ""
  559. $   THEN
  560. $!
  561. $!    We have SOCKETSHR, and it is my opinion that it's the best to use.
  562. $!
  563. $     OPT_TCPIP_LIB = "SOCKETSHR"
  564. $!
  565. $!    Tell the user
  566. $!
  567. $     WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
  568. $!
  569. $!    Else, let's look for something else
  570. $!
  571. $   ELSE
  572. $!
  573. $!    Like UCX (the reason to do this before Multinet is that the UCX
  574. $!    emulation is easier to use...)
  575. $!
  576. $     IF F$TRNLNM("UCX$IPC_SHR") .NES. "" -
  577.  .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" -
  578.  .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. ""
  579. $     THEN
  580. $!
  581. $! Last resort: a UCX or UCX-compatible library
  582. $!
  583. $ OPT_TCPIP_LIB = "UCX"
  584. $!
  585. $!      Tell the user
  586. $!
  587. $       WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
  588. $!
  589. $! That was all...
  590. $!
  591. $     ENDIF
  592. $   ENDIF
  593. $ ENDIF
  594. $!
  595. $! Set Up Initial CC Definitions, Possibly With User Ones
  596. $!
  597. $ CCDEFS = "TCPIP_TYPE_''OPT_TCPIP_LIB',DSO_VMS"
  598. $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
  599. $ CCEXTRAFLAGS = ""
  600. $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
  601. $ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX"
  602. $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
  603. CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
  604. $!
  605. $!  Check To See If The User Entered A Valid Paramter.
  606. $!
  607. $ IF (OPT_COMPILER.EQS."VAXC").OR.(OPT_COMPILER.EQS."DECC").OR.(OPT_COMPILER.EQS."GNUC")
  608. $ THEN
  609. $!
  610. $!    Check To See If The User Wanted DECC.
  611. $!
  612. $   IF (OPT_COMPILER.EQS."DECC")
  613. $   THEN
  614. $!
  615. $!    Looks Like DECC, Set To Use DECC.
  616. $!
  617. $     COMPILER = "DECC"
  618. $!
  619. $!    Tell The User We Are Using DECC.
  620. $!
  621. $     WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
  622. $!
  623. $!    Use DECC...
  624. $!
  625. $     CC = "CC"
  626. $     IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
  627.  THEN CC = "CC/DECC"
  628. $     CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + -
  629.            "/NOLIST/PREFIX=ALL" + -
  630.    "/INCLUDE=(SYS$DISK:[],SYS$DISK:[.VENDOR_DEFNS])" + -
  631.    CCEXTRAFLAGS
  632. $!
  633. $!    Define The Linker Options File Name.
  634. $!
  635. $     OPT_FILE = "SYS$DISK:[]VAX_DECC_OPTIONS.OPT"
  636. $!
  637. $!  End DECC Check.
  638. $!
  639. $   ENDIF
  640. $!
  641. $!  Check To See If We Are To Use VAXC.
  642. $!
  643. $   IF (OPT_COMPILER.EQS."VAXC")
  644. $   THEN
  645. $!
  646. $!    Looks Like VAXC, Set To Use VAXC.
  647. $!
  648. $     COMPILER = "VAXC"
  649. $!
  650. $!    Tell The User We Are Using VAX C.
  651. $!
  652. $     WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
  653. $!
  654. $!    Compile Using VAXC.
  655. $!
  656. $     CC = "CC"
  657. $     IF ARCH.EQS."AXP"
  658. $     THEN
  659. $ WRITE SYS$OUTPUT "There is no VAX C on Alpha!"
  660. $ EXIT
  661. $     ENDIF
  662. $     IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
  663. $     CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
  664.    "/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[.ENGINE.VENDOR_DEFNS])" + -
  665.    CCEXTRAFLAGS
  666. $     CCDEFS = """VAXC""," + CCDEFS
  667. $!
  668. $!    Define <sys> As SYS$COMMON:[SYSLIB]
  669. $!
  670. $     DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
  671. $!
  672. $!    Define The Linker Options File Name.
  673. $!
  674. $     OPT_FILE = "SYS$DISK:[]VAX_VAXC_OPTIONS.OPT"
  675. $!
  676. $!  End VAXC Check
  677. $!
  678. $   ENDIF
  679. $!
  680. $!  Check To See If We Are To Use GNU C.
  681. $!
  682. $   IF (OPT_COMPILER.EQS."GNUC")
  683. $   THEN
  684. $!
  685. $!    Looks Like GNUC, Set To Use GNUC.
  686. $!
  687. $     COMPILER = "GNUC"
  688. $!
  689. $!    Tell The User We Are Using GNUC.
  690. $!
  691. $     WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
  692. $!
  693. $!    Use GNU C...
  694. $!
  695. $     CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
  696.    "/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[.ENGINE.VENDOR_DEFNS])" + -
  697.    CCEXTRAFLAGS
  698. $!
  699. $!    Define The Linker Options File Name.
  700. $!
  701. $     OPT_FILE = "SYS$DISK:[]VAX_GNUC_OPTIONS.OPT"
  702. $!
  703. $!  End The GNU C Check.
  704. $!
  705. $   ENDIF
  706. $!
  707. $!  Set up default defines
  708. $!
  709. $   CCDEFS = """FLAT_INC=1""," + CCDEFS
  710. $!
  711. $!  Finish up the definition of CC.
  712. $!
  713. $   IF COMPILER .EQS. "DECC"
  714. $   THEN
  715. $     IF CCDISABLEWARNINGS .NES. ""
  716. $     THEN
  717. $       CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
  718. $     ENDIF
  719. $   ELSE
  720. $     CCDISABLEWARNINGS = ""
  721. $   ENDIF
  722. $   CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
  723. $!
  724. $!  Show user the result
  725. $!
  726. $   WRITE/SYMBOL SYS$OUTPUT "Main C Compiling Command: ",CC
  727. $!
  728. $!  Else The User Entered An Invalid Arguement.
  729. $!
  730. $ ELSE
  731. $!
  732. $!  Tell The User We Don't Know What They Want.
  733. $!
  734. $   WRITE SYS$OUTPUT ""
  735. $   WRITE SYS$OUTPUT "The Option ",OPT_COMPILER," Is Invalid.  The Valid Options Are:"
  736. $   WRITE SYS$OUTPUT ""
  737. $   WRITE SYS$OUTPUT "    VAXC  :  To Compile With VAX C."
  738. $   WRITE SYS$OUTPUT "    DECC  :  To Compile With DEC C."
  739. $   WRITE SYS$OUTPUT "    GNUC  :  To Compile With GNU C."
  740. $   WRITE SYS$OUTPUT ""
  741. $!
  742. $!  Time To EXIT.
  743. $!
  744. $   EXIT
  745. $!
  746. $! End The Valid Arguement Check.
  747. $!
  748. $ ENDIF
  749. $!
  750. $! Build a MACRO command for the architecture at hand
  751. $!
  752. $ IF ARCH .EQS. "VAX" THEN MACRO = "MACRO/''DEBUGGER'"
  753. $ IF ARCH .EQS. "AXP" THEN MACRO = "MACRO/MIGRATION/''DEBUGGER'/''MACRO_OPTIMIZE'"
  754. $!
  755. $!  Show user the result
  756. $!
  757. $ WRITE/SYMBOL SYS$OUTPUT "Main MACRO Compiling Command: ",MACRO
  758. $!
  759. $! Time to check the contents, and to make sure we get the correct library.
  760. $!
  761. $ IF OPT_TCPIP_LIB.EQS."SOCKETSHR" .OR. OPT_TCPIP_LIB.EQS."MULTINET" -
  762.      .OR. OPT_TCPIP_LIB.EQS."UCX" .OR. OPT_TCPIP_LIB.EQS."TCPIP" -
  763.      .OR. OPT_TCPIP_LIB.EQS."NONE"
  764. $ THEN
  765. $!
  766. $!  Check to see if SOCKETSHR was chosen
  767. $!
  768. $   IF OPT_TCPIP_LIB.EQS."SOCKETSHR"
  769. $   THEN
  770. $!
  771. $!    Set the library to use SOCKETSHR
  772. $!
  773. $     TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT"
  774. $!
  775. $!    Done with SOCKETSHR
  776. $!
  777. $   ENDIF
  778. $!
  779. $!  Check to see if MULTINET was chosen
  780. $!
  781. $   IF OPT_TCPIP_LIB.EQS."MULTINET"
  782. $   THEN
  783. $!
  784. $!    Set the library to use UCX emulation.
  785. $!
  786. $     OPT_TCPIP_LIB = "UCX"
  787. $!
  788. $!    Done with MULTINET
  789. $!
  790. $   ENDIF
  791. $!
  792. $!  Check to see if UCX was chosen
  793. $!
  794. $   IF OPT_TCPIP_LIB.EQS."UCX"
  795. $   THEN
  796. $!
  797. $!    Set the library to use UCX.
  798. $!
  799. $     TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT"
  800. $     IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
  801. $     THEN
  802. $       TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT/OPT"
  803. $     ELSE
  804. $       IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
  805.   TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT/OPT"
  806. $     ENDIF
  807. $!
  808. $!    Done with UCX
  809. $!
  810. $   ENDIF
  811. $!
  812. $!  Check to see if TCPIP was chosen
  813. $!
  814. $   IF OPT_TCPIP_LIB.EQS."TCPIP"
  815. $   THEN
  816. $!
  817. $!    Set the library to use TCPIP (post UCX).
  818. $!
  819. $     TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT"
  820. $!
  821. $!    Done with TCPIP
  822. $!
  823. $   ENDIF
  824. $!
  825. $!  Check to see if NONE was chosen
  826. $!
  827. $   IF OPT_TCPIP_LIB.EQS."NONE"
  828. $   THEN
  829. $!
  830. $!    Do not use a TCPIP library.
  831. $!
  832. $     TCPIP_LIB = ""
  833. $!
  834. $!    Done with TCPIP
  835. $!
  836. $   ENDIF
  837. $!
  838. $!  Print info
  839. $!
  840. $   WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
  841. $!
  842. $!  Else The User Entered An Invalid Arguement.
  843. $!
  844. $ ELSE
  845. $!
  846. $!  Tell The User We Don't Know What They Want.
  847. $!
  848. $   WRITE SYS$OUTPUT ""
  849. $   WRITE SYS$OUTPUT "The Option ",OPT_TCPIP_LIB," Is Invalid.  The Valid Options Are:"
  850. $   WRITE SYS$OUTPUT ""
  851. $   WRITE SYS$OUTPUT "    SOCKETSHR  :  To link with SOCKETSHR TCP/IP library."
  852. $   WRITE SYS$OUTPUT "    UCX        :  To link with UCX TCP/IP library."
  853. $   WRITE SYS$OUTPUT "    TCPIP      :  To link with TCPIP (post UCX) TCP/IP library."
  854. $   WRITE SYS$OUTPUT ""
  855. $!
  856. $!  Time To EXIT.
  857. $!
  858. $   EXIT
  859. $!
  860. $!  Done with TCP/IP libraries
  861. $!
  862. $ ENDIF
  863. $!
  864. $!  Time To RETURN...
  865. $!
  866. $ RETURN
  867. $!
  868. $ INITIALISE:
  869. $!
  870. $! Save old value of the logical name OPENSSL
  871. $!
  872. $ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
  873. $!
  874. $! Save directory information
  875. $!
  876. $ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
  877. $ __HERE = F$EDIT(__HERE,"UPCASE")
  878. $ __TOP = __HERE - "ENGINES]"
  879. $ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
  880. $!
  881. $! Set up the logical name OPENSSL to point at the include directory
  882. $!
  883. $ DEFINE OPENSSL/NOLOG '__INCLUDE'
  884. $!
  885. $! Done
  886. $!
  887. $ RETURN
  888. $!
  889. $ CLEANUP:
  890. $!
  891. $! Restore the logical name OPENSSL if it had a value
  892. $!
  893. $ IF __SAVE_OPENSSL .EQS. ""
  894. $ THEN
  895. $   DEASSIGN OPENSSL
  896. $ ELSE
  897. $   DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL'
  898. $ ENDIF
  899. $!
  900. $! Done
  901. $!
  902. $ RETURN