Article 152460 of comp.os.vms: This is a multi-part message in MIME format. --------------6E64CA96B7C Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Jerome LAURET wrote: > Hi folks, Hi Jerome, > I did post this message in all Ghost** and postscript* newsGroup but > I got no answer at all. Sorry, I only occasionally look at those groups. > I used to use GhostScript to convert ps to epsi using the ps2epsi > program. This was of great use when I needed a ps preview within applications > such as Xfig etc... This command did work with gs 2.61 but since I've got the > 3.51 version it is not working anymore ... It always fail with an error of the > type > > Unrecoverable error: undefined in get > Operand stack: > nullpage --nostringval-- defaultdevice [...] > Though, the code did compile and link without a single problem. > Anyboddy having the same miserable experience ? > Any hints ? > PS: I did use DEC C V5.0-003 on OpenVMS 6.1 I suspect that you will have two problems doing PS->EPS conversion with gs 3.51 on VMS. Firstly -dNODISPLAY doesn't work, causing the error you described, and this prevents you progressing onto the second: file writing doesn't work properly. You can easily check whether you have the "-dNODISPLAY" problem (as I suspect you do) with the command:- $ gs -help nullpage should be included in the list of available devices. If it isn't there, "-dNODISPLAY" (used in ps2epsi) will cause a crash. I found both these problems, as well as a few other minor ones. Last year I posted fixes to comp.lang.postscript and mailed them to Aladdin, so perhaps they are fixed in version 4.01 (they are _not_ in gs 3.53), but I haven't had a chance to try that yet. Anyway, I shall attach my posting (as well as an additional mail giving more details), so you can apply the fixes yourself. If instead, you try gs 4.01, I'd be most interested to hear your experience. Regards, Tim. --------------6E64CA96B7C Content-Type: text/plain; charset=us-ascii; name="bugreport.news" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="bugreport.news" From - Tue Dec 19 21:19:19 1995 Path: ral!hepax6.rl.ac.uk!adye From: adye@hepax6.rl.ac.uk (Tim Adye) Newsgroups: comp.lang.postscript Subject: VMS Ghostscript 3.51 (bug report and fixes) Date: 19 Dec 1995 20:57:43 GMT Organization: Particle Physics Department, Rutherford Appleton Laboratory Lines: 122 Sender: adye@ralhep.your.domain.here (Tim Adye) Distribution: world Message-ID: <4b7907$1pu6@unixfe.rl.ac.uk> Reply-To: T.J.Adye@rl.ac.uk NNTP-Posting-Host: hepax6.rl.ac.uk X-Newsreader: mxrn 6.18-4 Hi, I have just installed Ghostscript 3.51 on our VAX/VMS and Alpha/VMS systems. Compared to the trouble I had getting version 2.6.1 working, this was very easy (in fact I got a mostly-working version with initially no changes), so I must congratulate and thank Aladdin and the VMS porters for a job well done. However I did get some DEC C compilation warnings, and soon found a couple of bugs, so I thought it would be worth reporting these in the hope that my fixes can be of some help to others doing the same job, and that these errors can be fixed in future versions of Ghostscript. The bug report form follows this message. Regards, Tim. PS. If anyone still wants to use the GNU version of Ghostscript (version 2.6.1) on VMS, I can supply executables with all my bug fixes. Since there are so few fixes required for this Aladdin version (3.51), it would be much easier for anyone who needs them to apply the following fixes themselves. ------snip------snip------snip------snip------snip------snip------snip------ Ghostscript version: 3.51 Where you got Ghostscript: ftp.cs.wisc.edu /ghost/aladdin Hardware you are using: VAX and Alpha/AXP Operating system you are using: OpenVMS versions 6.1 and 6.2 DECWindows/Motif versions 1.2 and 1.2-3 C compiler you are using: DEC C version 5.0 Symptoms: 1) "-dNODISPLAY" gives an interpreter error from inside gs_init.ps. This is the cause of one of the problems reported recently in comp.lang.postscript by Seamus Waldron . 2) A program such as pdf2dsc.ps that attempts to create a new file with "(w) file def" fails. 3) There were various compilation warnings under DEC C. I didn't notice any problems as a consequence, but I believe it's best to fix such things. Suggested fix (if any): 1) vms.mak should specify a "-dev nullpage". A quick fix for this should be to add the line $ ADDMOD gs -dev nullpage to the end of GS_DEV (just before the RETURN). 2) gp_fopen in gp_vms.c doesn't seem to be able to create new files. Here is my modified version. ================================= cut here ================================== FILE * gp_fopen(const char *fname, const char *mode) { #ifdef __DECC #define FAB$C_FIX 1 stat_t buffer; if ( stat((char *)fname, &buffer) == 0 ) /*file exists?*/ if ( buffer.st_fab_rfm == FAB$C_FIX ) /*and is fixed record len?*/ return fopen(fname, mode, "rfm=stmlf", "ctx=stm"); #endif return fopen(fname, mode); } ================================= cut here ================================== ie. if the stat() fails, it shouldn't return with an error (probably the file just doesn't exist), it just shouldn't check the record format. 3) byte*, which seems to be typedef'ed to unsigned char*, is not compatible with char*. This causes compilation warnings under DEC C in gdevcdj.c and gdevcgml.c. There is a similar problem (uint* vs int*) with &cdj->correction in gdevcdj.c. The routine cgm_ALTERNATE_CHARACTER_SET_INDEX in gdevcgml.c (and gdevcgml.h) is too long (>31 characters) for DECC on the VAX (OK for Alpha/AXP). I renamed it to cgm_ALT_CHARACTER_SET_INDEX. For consistency, I also renamed enum ALTERNATE_CHARACTER_SET_INDEX and int alternate_character_set_index (defined in gdevcgmx.h). _Xdebug doesn't seem to be defined for VMS, so I "#ifndef VMS"ed out its initialisation in gdevxini.c. There was also a compilation warning in gs.c, but this is due to a bug in a OpenVMS V6.2 header file (it does not appear under OpenVMS V6.1; I am reporting this to DEC). Briefly, the isspace() macro definition doesn't include brackets around the argument, so adding extra ()s at line 209 allows one to work around the problem until DEC fix it. Other comments: I have made a few minor improvements to vms.mak which I can post if anyone is interested. I've also added the ability to include some extra devices, including the ones implemented in gdevln03.c, which are quite useful on DEC systems (sxlcrt is really cool: as well as VT240 terminals, it also allows many compatible devices, such as old UIS workstations and DECterm windows, to be used). ------snip------snip------snip------snip------snip------snip------snip------ ================================ cut here ================================== Tim Adye, DELPHI/BaBar Groups, Particle Physics Dept, Rutherford Appleton Lab. e-mail: T.J.Adye@rl.ac.uk or VXCERN::ADYE (HEPNET/SPAN). =============================== cut here =================================== _ /| Oop! Ack! | \'o.O' Ththphfffft! | I know that I am God; =(___)= - Bill T Cat | when I pray I feel like I'm talking to myself. U | --------------6E64CA96B7C Content-Type: text/plain; charset=us-ascii; name="update.mail" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="update.mail" Date: 23-DEC-1995 00:38:59.12 From: RALHEP::ADYE "Tim Adye: RAL x6632, Oxford x73396, CERN x2103" Subj: Re: VMS Ghostscript 3.51 (bug report and fixes) To: SMTP%"fk64@bfkaxp.fm.bs.dlr.de" Hi Michael, Here is my modified VMS.MAK. You can use DIFFER to see my changes. You will also have to make a few minor changes to VMS-DECC.MAK (or whatever you use, though I've only tested it with VMS-DECC.MAK). 1) Remove /DEFINE=(A4) from CC_QUAL and add a definition CC_DEF="A4" (or "" if you don't want A4). This allows A4 and DEBUG to be defined at the same time. 2) Add the extra devices you want. The possibilities are:- DEVICE_DEVS1 = "sxlcrt.dev" DEVICE_DEVS6 = "ln03.dev la50.dev la70.dev la75.dev la75plus.dev" DEVICE_DEVS8 = "cgmmono.dev cgm8.dev cgm24.dev" DEVICE_DEVS11= "bmpmono.dev bmp16.dev bmp256.dev bmp16m.dev" These should be added onto the end of the appropriate symbol definitions if they already exist. You may not want all of these (see DEVS.MAK for a brief description of each). And then compile. I added an extra option, FROM=XX, where XX is a module name (eg. GDEVLN03) which allows you to restart the compilation from a particular point (apart from the configuration files which it always makes). This is useful if it crashed half way through. I hope this works for you. Regards, Tim. VMS.MAK follows. ================================ cut here ================================== $ ! Copyright (C) 1989, 1995 Aladdin Enterprises. $ ! All rights reserved. $ ! $ ! This file is part of Aladdin Ghostscript. $ ! $ ! Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author $ ! or distributor accepts any responsibility for the consequences of using it, $ ! or for whether it serves any particular purpose or works at all, unless he $ ! or she says so in writing. Refer to the Aladdin Ghostscript Free Public $ ! License (the "License") for full details. $ ! $ ! Every copy of Aladdin Ghostscript must include a copy of the License, $ ! normally in a plain ASCII text file named PUBLIC. The License grants you $ ! the right to copy, modify and redistribute Aladdin Ghostscript, but only $ ! under certain conditions described in the License. Among other things, the $ ! License requires that the copyright notice and this notice be preserved on $ ! all copies. $ ! $ ! $ ! VMS "makefile" for Ghostscript. $ ! $ WSO = "WRITE SYS$OUTPUT" $ ON ERROR THEN GOTO DONE $ ON CONTROL_Y THEN GOTO DONE $ JPEGC_DONE = 0 $!!! JSRCDIR = "[.jpeg-5a]" $ JSRCDIR = "[.jpeg-6]" $!!! JVERSION = 5 $ JVERSION = 6 $ ! $ ! Check input parameters $ ! $ IF P1 .NES. "" .AND. P1 .NES. "DEBUG" .AND. P1 .NES. "LINK" .AND. - P1 .NES. "BUILD" .AND. F$EXTRACT(0,5,P1) .NES. "FROM=" THEN - GS_LIB_DEFAULT = P1 $ IF P2 .NES. "" .AND. P2 .NES. "DEBUG" .AND. P2 .NES. "LINK" .AND. - P2 .NES. "BUILD" .AND. F$EXTRACT(0,5,P2) .NES. "FROM=" THEN - GS_LIB_DEFAULT = P2 $ ! $ IF P1 .NES. "DEBUG" .AND. P2 .NES. "DEBUG" THEN GOTO NODEBUG $ CC_QUAL = CC_QUAL + "/NOOPTIMIZE/DEBUG" $ IF CC_DEF .NES. "" THEN CC_DEF= CC_DEF + "," $ CC_DEF= CC_DEF + "DEBUG" $ L_QUAL = (L_QUAL-"/NOTRACEBACK") + "/DEBUG" $ ! $ NODEBUG: $ IF CC_DEF .NES. "" THEN CC_QUAL= CC_QUAL + "/DEFINE=(" + CC_DEF + ")" $ If P1 .EQS. "LINK" .OR. P2 .EQS. "LINK" THEN GOTO LINK_ONLY $ If P1 .EQS. "BUILD" .OR. P2 .EQS. "BUILD" THEN GOTO BUILD_EXES $ FROM = "" $ IF F$EXTRACT(0,5,P1) .EQS. "FROM=" THEN FROM = F$EXTRACT(5,F$LENGTH(P1)-5,P1) $ IF F$EXTRACT(0,5,P2) .EQS. "FROM=" THEN FROM = F$EXTRACT(5,F$LENGTH(P2)-5,P2) $ INSREP:= INSERT $ IF FROM .NES. "" THEN INSREP:= REPLACE $ ! $ ! $ ! Compile and link genarch.c and then run it to create the arch.h header file $ ! $ WSO "''CC_COMMAND'''CC_QUAL'/NOLIST/OBJECT=GENARCH.OBJ GENARCH.C" $ 'CC_COMMAND''CC_QUAL'/NOLIST/OBJECT=GENARCH.OBJ GENARCH.C $ LINK/NOMAP/EXE=GENARCH.EXE GENARCH.OBJ,RTL.OPT/OPT $ GENARCH = "$" + F$ENVIRONMENT("DEFAULT") + "GENARCH.EXE" $ GENARCH ARCH.H $ DELETE GENARCH.EXE.*,GENARCH.OBJ.* $ PURGE ARCH.H $ ! $ ! $ ! Compile and link echogs.c; define ECHOGS as a command $ ! $ WSO "''CC_COMMAND'''CC_QUAL'/NOLIST/OBJECT=ECHOGS.OBJ ECHOGS.C" $ 'CC_COMMAND''CC_QUAL'/NOLIST/OBJECT=ECHOGS.OBJ ECHOGS.C $ LINK/NOMAP/EXE=ECHOGS.EXE ECHOGS.OBJ,RTL.OPT/OPT $ ECHOGS = "$" + F$ENVIRONMENT("DEFAULT") + "ECHOGS.EXE" $ DELETE ECHOGS.OBJ;* $ PURGE ECHOGS.EXE $ ! $ ! $ ! Compile and link genconf.c; define GENCONF as a command $ ! $ WSO "''CC_COMMAND'''CC_QUAL/NOLIST/OBJECT=GENCONF.OBJ GENCONF.C" $ 'CC_COMMAND''CC_QUAL'/NOLIST/OBJECT=GENCONF.OBJ GENCONF.C $ LINK/NOMAP/EXE=GENCONF.EXE GENCONF.OBJ,RTL.OPT/OPT $ GENCONF = "$" + F$ENVIRONMENT("DEFAULT") + "GENCONF.EXE" $ DELETE GENCONF.OBJ;* $ PURGE GENCONF.EXE $ ! $ ! $ ! Create GSSETDEV.COM, GSSETMOD.COM, and GSADDMOD.COM. $ ! (These aren't distributed with the fileset because the .COM suffix $ ! causes certain development tools to treat them incorrectly.) $ ! $ ! $ OPEN/WRITE SETDEV GSSETDEV.COM $ WRITE SETDEV "$ echogs -w 'p1'.dev - -dev 'p1' -obj 'p2 'p3 'p4 'p5 'p6 'p7 'p8" $ CLOSE SETDEV $ ! $ OPEN/WRITE SETMOD GSSETMOD.COM $ WRITE SETMOD "$ if p2 .nes. """"" $ WRITE SETMOD "$ then" $ WRITE SETMOD "$ echogs -w 'p1'.dev - 'p2 'p3 'p4 'p5 'p6 'p7 'p8" $ WRITE SETMOD "$ else" $ WRITE SETMOD "$ echogs -w 'p1'.dev" $ WRITE SETMOD "$ endif" $ CLOSE SETMOD $ ! $ OPEN/WRITE ADDMOD GSADDMOD.COM $ WRITE ADDMOD "$ if (p2 .nes. """") then echogs -a 'p1'.dev - 'p2 'p3 'p4 'p5 'p6 'p7 'p8" $ CLOSE ADDMOD $ ! $ ! $ ! Define SETDEV, SETMOD, ADDMOD as commands to execute GSSETDEV.COM, $ ! GSSETMOD.COM and GSADDMOD.COM respectively. Those three command $ ! procedures make use of ECHOGS.EXE and the ECHOGS verb. $ ! $ SETDEV = "@GSSETDEV.COM" $ SETMOD = "@GSSETMOD.COM" $ ADDMOD = "@GSADDMOD.COM" $ ! $ ! $ ! Build GCONFIG_.H $ ! $ ECHOGS -w gconfig_.h #define SYSTIME_H $ ! $ ! Build GCONFIGV.H $ ! $ ECHOGS -w gconfigv.h #define USE_ASM 0 $ ECHOGS -a gconfigv.h #define USE_FPU 1 $ ECHOGS -a gconfigv.h #define EXTEND_NAMES 0 $ ! $ ! Now generate *.dev files $ ! $ DEV_LIST_NAMES = "FEATURE_DEVS DEVICE_DEVS DEVICE_DEVS1 DEVICE_DEVS2 DEVICE_DEVS3 DEVICE_DEVS4 DEVICE_DEVS5 DEVICE_DEVS6 DEVICE_DEVS7 DEVICE_DEVS8 DEVICE_DEVS9 DEVICE_DEVS10 DEVICE_DEVS11 DEVICE_DEVS12 DEVICE_DEVS13 DEVICE_DEVS14 DEVICE_DEVS15" $ DEV_MODULES = " " $ I = 0 $ DEVS_OUTER: $ DEV_LIST = F$ELEMENT(I," ",DEV_LIST_NAMES) $ IF DEV_LIST .EQS. " " THEN GOTO DEVS_DONE $ I = I+1 $ IF F$TYPE('DEV_LIST') .EQS. "" THEN GOTO DEVS_OUTER $ J = 0 $ DEVS_INNER: $ ACTION = F$ELEMENT(J," ",'DEV_LIST') $ IF ACTION .EQS. " " THEN GOTO DEVS_OUTER $ J = J+1 $ ! Replace "." with "_" $ IF F$LOCATE(".",ACTION) .NE. F$LENGTH(ACTION) THEN - $ ACTION = F$ELEMENT(0,".",ACTION) + "_" + F$ELEMENT(1,".",ACTION) $ GOSUB 'ACTION $ GOTO DEVS_INNER $ ! $ DEVS_DONE: $ ! $ DEV_MODULES = F$EDIT(DEV_MODULES,"TRIM") $ ! $ ! $ ! And now build gconfig.h and gconfigf.h $ ! $ GOSUB GCONFIG_H $ GOSUB GCONFIGF_H $ ! $ ! $ ! Create an empty object library $ ! $ IF FROM .EQS. "" THEN LIBRARY/CREATE GS.OLB $ ! $ ! NOW COMPILE AWAY! $ ! $ ! The next line should probably say MODULES'JVERSION'.LIS instead of just $ ! MODULES.LIS, but we don't want to have to keep two MODULES.LIS files up $ ! to date. $ OPEN/READ/ERROR=NO_MODULES MODULE_LIST MODULES.LIS $ OPEN/WRITE OPT_FILE GS.OPT $ OPT_LINE = "GS.OLB/LIBRARY/INCLUDE=(" $ COMMA = "" $ ! $ DEFDIR = F$PARSE(F$ENVIRONMENT("DEFAULT"),,,"DIRECTORY","SYNTAX_ONLY") $ COMPILE_LOOP: $ READ/END=END_COMPILE MODULE_LIST MODULE $ NAME = F$PARSE(MODULE,,,"NAME","SYNTAX_ONLY") $ IF NAME .EQS. FROM THEN FROM= "" $ IF FROM .NES. "" THEN GOTO _SKIP_MODULE $ DIR = F$PARSE(MODULE,,,"DIRECTORY","SYNTAX_ONLY") - DEFDIR $ IF DIR .NES. "" $ THEN $ COPY 'MODULE'.C [] $ INC = "/INCLUDE_DIRECTORY=(''DEFDIR',''DIR')" $ ELSE $ INC = "" $ ENDIF $ WSO "''CC_COMMAND'''CC_QUAL'''INC'/NOLIST/OBJECT=''MODULE'.OBJ ''MODULE'.C" $ 'CC_COMMAND''CC_QUAL''INC'/NOLIST/OBJECT='NAME'.OBJ 'NAME'.C $ LIBRARY/'INSREP' GS.OLB 'NAME'.OBJ $ DELETE 'NAME'.OBJ.* $ IF DIR .NES. "" THEN DELETE 'NAME'.C; $ _SKIP_MODULE: $ IF F$LENGTH(OPT_LINE) .GE. 70 $ THEN $ OPT_LINE = OPT_LINE + COMMA + "-" $ WRITE OPT_FILE OPT_LINE $ OPT_LINE = NAME $ ELSE $ OPT_LINE = OPT_LINE + COMMA + NAME $ ENDIF $ COMMA = "," $ GOTO COMPILE_LOOP $ ! $ END_COMPILE: $ ! $ ! Now compile device modules found in symbol DEV_MODULES $ ! $ I = 0 $ COMPILE_DEV_LOOP: $ MODULE = F$ELEMENT(I," ",DEV_MODULES) $ IF MODULE .EQS. " " THEN GOTO END_COMPILE_DEV $ I = I + 1 $ NAME = F$PARSE(MODULE,,,"NAME","SYNTAX_ONLY") $ IF NAME .EQS. FROM THEN FROM= "" $ IF FROM .NES. "" THEN GOTO _SKIP_DEV $ DIR = F$PARSE(MODULE,,,"DIRECTORY","SYNTAX_ONLY") - DEFDIR $ IF DIR .NES. "" $ THEN $ COPY 'MODULE'.C [] $ INC = "/INCLUDE_DIRECTORY=(''DEFDIR',''DIR')" $ ELSE $ INC = "" $ ENDIF $ WSO "''CC_COMMAND'''CC_QUAL'''INC'/NOLIST/OBJECT=''MODULE'.OBJ ''MODULE'.C" $ 'CC_COMMAND''CC_QUAL''INC'/NOLIST/OBJECT='NAME'.OBJ 'NAME'.C $ LIBRARY/'INSREP' GS.OLB 'NAME'.OBJ $ DELETE 'NAME'.OBJ.* $ IF DIR .NES. "" THEN DELETE 'NAME'.C; $ _SKIP_DEV: $ IF F$LENGTH(OPT_LINE) .GE. 70 $ THEN $ OPT_LINE = OPT_LINE + COMMA + "-" $ WRITE OPT_FILE OPT_LINE $ OPT_LINE = NAME $ ELSE $ OPT_LINE = OPT_LINE + COMMA + NAME $ ENDIF $ COMMA = "," $ GOTO COMPILE_DEV_LOOP $ ! $ END_COMPILE_DEV: $ ! $ OPT_LINE = OPT_LINE + ")" $ WRITE OPT_FILE OPT_LINE $ IF F$SEARCH("SYS$SHARE:DECW$XMLIBSHR12.EXE") .NES. "" $ THEN $ WRITE OPT_FILE "SYS$SHARE:DECW$XMLIBSHR12.EXE/SHARE" $ WRITE OPT_FILE "SYS$SHARE:DECW$XTLIBSHRR5.EXE/SHARE" $ WRITE OPT_FILE "SYS$SHARE:DECW$XLIBSHR.EXE/SHARE" $ ELSE $ WRITE OPT_FILE "SYS$SHARE:DECW$XMLIBSHR.EXE/SHARE" $ WRITE OPT_FILE "SYS$SHARE:DECW$XTSHR.EXE/SHARE" $ WRITE OPT_FILE "SYS$SHARE:DECW$XLIBSHR.EXE/SHARE" $ ENDIF $ WRITE OPT_FILE "Ident=""gs 3.51""" $ CLOSE MODULE_LIST $ CLOSE OPT_FILE $ ! $ ! $ ! Is the DECwindows environment about? Must be installed in order to $ ! build the executable program gs.exe. $ ! $ IF F$SEARCH("SYS$SHARE:DECW$XLIBSHR.EXE") .NES. "" THEN GOTO CHECK2 $ WSO "DECwindows user environment not installed;" $ WSO "unable to build executable programs." $ GOTO DONE $ ! $ CHECK2: $ IF F$TRNLNM("DECW$INCLUDE") .NES. "" THEN GOTO BUILD_EXES $ WSO "You must invoke @DECW$STARTUP before using this" $ WSO "command procedure to build the executable programs." $ GOTO DONE $ ! $ ! Build the executables $ ! $ BUILD_EXES: $ ! $ DEFINE X11 DECW$INCLUDE $ ! $ LINK_ONLY: $ WSO "''CC_COMMAND'''CC_QUAL'/NOLIST/OBJECT=GCONFIG.OBJ GCONF.C" $ 'CC_COMMAND''CC_QUAL/NOLIST/OBJECT=GCONFIG.OBJ GCONF.C $ ! $ WSO "''CC_COMMAND'''CC_QUAL'/NOLIST/OBJECT=GSMAIN.OBJ GSMAIN.C" $ 'CC_COMMAND''CC_QUAL/NOLIST/OBJECT=GSMAIN.OBJ GSMAIN.C $ ! $ WSO "''CC_COMMAND'''CC_QUAL'/NOLIST/OBJECT=GS.OBJ GS.C" $ 'CC_COMMAND''CC_QUAL/NOLIST/OBJECT=GS.OBJ GS.C $ ! $ WSO "Linking ... " $ WSO "LINK''L_QUAL'/NOMAP/EXE=GS.EXE GS,GSMAIN,GCONFIG,GS.OPT/OPT" $ LINK'L_QUAL/NOMAP/EXE=GS.EXE GS,GSMAIN,GCONFIG,GS.OPT/OPT $ ! $ DELETE GSMAIN.OBJ.*,GS.OBJ.*,GCONFIG.OBJ.* $ ! $ GOTO DONE $ ! $ ! $ BTOKEN_DEV: $ btoken_ = "iscanbin.obj zbseq.obj" $ SETMOD btoken 'btoken_' $ ADDMOD btoken -oper zbseq_l2 $ ADDMOD btoken -ps gs_btokn $ RETURN $ ! $ CMYKCORE_DEV: $ cmykcore_ = "gscolor1.obj gsht1.obj" $ SETMOD cmykcore 'cmykcore_' $ RETURN $ ! $ CMYKREAD_DEV: $ cmykread_ = "zcolor1.obj zht1.obj" $ SETMOD cmykread 'cmykread_' $ ADDMOD cmykread -oper zcolor1 zht1 $ RETURN $ ! $ CIE_DEV: $ ciecore_ = "gscie.obj" $ cieread_ = "zcie.obj" $ cie_ = "''ciecore_' ''cieread_'" $ SETMOD cie 'cie_' $ ADDMOD cie -oper zcie_l2 $ RETURN $ ! $ COLOR_DEV: $ GOSUB CMYKCORE_DEV $ GOSUB CMYKREAD_DEV $ SETMOD color -include cmykcore cmykread $ RETURN $ ! $ UPATH_DEV: $ upath_ = "zupath.obj ibnum.obj" $ SETMOD upath 'upath_' $ ADDMOD upath -oper zupath_l2 $ RETURN $ ! $ PSF1CORE_DEV: $ psf1core_ = "gstype1.obj gxhint1.obj gxhint2.obj gxhint3.obj" $ SETMOD psf1core 'psf1core_' $ RETURN $ ! $ PSF1READ_DEV: $ psf1read_ = "seexec.obj zchar1.obj zfont1.obj zmisc1.obj" $ SETMOD psf1read 'psf1read_' $ ADDMOD psf1read -oper zchar1 zfont1 zmisc1 $ ADDMOD psf1read -ps gs_type1 $ RETURN $ ! $ BCP_DEV: $ bcp_ = "sbcp.obj zfbcp.obj" $ SETMOD bcp 'bcp_' $ ADDMOD bcp -oper zfbcp $ RETURN $ ! $ HSB_DEV: $ hsb_ = "gshsb.obj zhsb.obj" $ SETMOD hsb 'hsb_' $ ADDMOD hsb -oper zhsb $ RETURN $ ! $ PATH1_DEV: $ path1_ = "gspath1.obj zpath1.obj" $ SETMOD path1 'path1_' $ ADDMOD path1 -oper zpath1 $ RETURN $ ! $ WRITEPPM_DEV: $ writeppm_ = "zwppm.obj" $ SETMOD writeppm 'writeppm_' $ ADDMOD writeppm -oper zwppm $ RETURN $ ! $ TYPE1_DEV: $ GOSUB PSF1CORE_DEV $ GOSUB PSF1READ_DEV $ SETMOD type1 -include psf1core psf1read $ RETURN $ ! $ LEVEL1_DEV: $ GOSUB BCP_DEV $ GOSUB HSB_DEV $ GOSUB PATH1_DEV $ GOSUB TYPE1_DEV $ SETMOD level1 -include bcp hsb path1 type1 $ ADDMOD level1 -emulator """PostScript""" """PostScriptLevel1""" $ RETURN $ ! $ DPS2CORE_DEV: $ dps2core_ = "gsdps1.obj" $ SETMOD dps2core 'dps2core_' $ RETURN $ ! $ DPS2READ_DEV: $ dps2read_ = "ibnum.obj zchar2.obj zdps1.obj zvmem2.obj" $ SETMOD dps2read 'dps2read_' $ ADDMOD dps2read -oper zvmem2 $ ADDMOD dps2read -oper ireclaim_l2 zchar2_l2 zdps1_l2 $ ADDMOD dps2read -ps gs_dps1 $ RETURN $ ! $ DPSAND2_DEV: $ GOSUB BTOKEN_DEV $ GOSUB COLOR_DEV $ GOSUB UPATH_DEV $ GOSUB DPS2CORE_DEV $ GOSUB DPS2READ_DEV $ SETMOD dpsand2 -include btoken color upath dps2core dps2read $ RETURN $ ! $ DPS_DEV: $ dps_ = "" $ GOSUB DPSAND2_DEV $ SETMOD dps 'dps_' -include dpsand2 $ ADDMOD dps -obj 'dps_' $ RETURN $ ! $ PSF0CORE_DEV: $ psf0core_ = "gschar0.obj gsfont0.obj" $ SETMOD psf0core 'psf0core_' $ RETURN $ ! $ PSF0READ_DEV: $ psf0read_ = "zchar2.obj zfont0.obj" $ SETMOD psf0read 'psf0read_' $ ADDMOD psf0read -oper zfont0 zchar2 $ ADDMOD psf0read -ps gs_type0 $ RETURN $ ! $ COMPFONT_DEV: $ GOSUB PSF0CORE_DEV $ GOSUB PSF0READ_DEV $ SETMOD compfont -include psf0core psf0read $ RETURN $ ! $ PSL2CORE_DEV: $ psl2core_ = "gscolor2.obj" $ SETMOD psl2core 'psl2core_' $ RETURN $ ! $ PSL2READ_DEV: $ psl2read1_ = "iutil2.obj zcolor2.obj zcsindex.obj" $ psl2read2_ = "zht2.obj zimage2.obj zmisc2.obj" $ psl2read_ = "''psl2read1_' ''psl2read2_'" $ SETMOD psl2read 'psl2read1_' $ ADDMOD psl2read -obj 'psl2read2_' $ ADDMOD psl2read -oper zmisc2 $ ADDMOD psl2read -oper zcolor2_l2 zcsindex_l2 $ ADDMOD psl2read -oper zht2_l2 zimage2_l2 $ ADDMOD psl2read -ps gs_lev2 gs_res $ RETURN $ ! $ DEVCTRL_DEV: $ devctrl_ = "zdevice2.obj ziodev2.obj zmedia2.obj zdevcal.obj" $ SETMOD devctrl 'devctrl_' $ ADDMOD devctrl -oper zdevice2_l2 ziodev2_l2 zmedia2_l2 $ ADDMOD devctrl -iodev null ram calendar $ ADDMOD devctrl -ps gs_setpd $ RETURN $ ! $ PATTERN_DEV: $ patcore_ = "gspcolor.obj gxclip2.obj gxpcmap.obj" $ patread_ = "zpcolor.obj" $ pattern_ = "''patcore_' ''patread_'" $ SETMOD pattern 'pattern_' $ ADDMOD pattern -oper zpcolor_l2 $ RETURN $ ! $ SEPR_DEV: $ seprcore_ = "gscsepr.obj" $ seprread_ = "zcssepr.obj" $ sepr_ = "''seprcore_' ''seprread_'" $ SETMOD sepr 'sepr_' $ ADDMOD sepr -oper zcssepr_l2 $ RETURN $ ! $ LEVEL2_DEV: $ GOSUB CIE_DEV $ GOSUB COMPFONT_DEV $ GOSUB DCT_DEV $ GOSUB DEVCTRL_DEV $ GOSUB DPSAND2_DEV $ GOSUB FILTER_DEV $ GOSUB LEVEL1_DEV $ GOSUB PATTERN_DEV $ GOSUB PSL2CORE_DEV $ GOSUB PSL2READ_DEV $ GOSUB SEPR_DEV $ SETMOD level2 -include cie compfont dct devctrl dpsand2 filter $ ADDMOD level2 -include level1 pattern psl2core psl2read sepr $ ADDMOD level2 -emulator """PostScript""" """PostScriptLevel2""" $ RETURN $ ! $ FDECODE_DEV: $ scfd_ = "scfd.obj scfdtab.obj" $ slzwd_ = "slzwd.obj slzwc.obj" $ fd2_ = "sfilter2.obj zfdecode.obj" $ fdecode_ = "''fd2_' ''scfd_' ''slzwd_'" $ SETMOD fdecode 'fd2_' $ ADDMOD fdecode 'scfd_' $ ADDMOD fdecode 'slzwd_' $ ADDMOD fdecode -oper zfdecode $ RETURN $ ! $ FILTER_DEV: $ scfe_ = "scfe.obj scfetab.obj shc.obj" $ slzwe_ = "slzwe.obj slzwc.obj" $ xfilter_ = "sbhc.obj sbwbs.obj shcgen.obj" $ filter_ = "''scfe_' ''slzwe_' ''xfilter_' zfilter2.obj" $ GOSUB FDECODE_DEV $ SETMOD filter -include fdecode $ ADDMOD filter -obj zfilter2.obj $ ADDMOD filter -obj 'scfe_' $ ADDMOD filter -obj 'slzwe_' $ ADDMOD filter -obj 'xfilter_' $ ADDMOD filter -oper zfilter2 $ RETURN $ ! $ SPDIFF_DEV: $ spdiff_ = "spdiff.obj zfpdiff.obj" $ SETMOD spdiff 'spdiff_' $ ADDMOD spdiff -oper zfpdiff $ RETURN $ ! $ PDF_DEV: $ GOSUB COLOR_DEV $ GOSUB DCTD_DEV $ GOSUB DPS2CORE_DEV $ GOSUB DPS2READ_DEV $ GOSUB FDECODE_DEV $ GOSUB TYPE1_DEV $ GOSUB PDFFONTS_DEV $ GOSUB PSL2CORE_DEV $ GOSUB PSL2READ_DEV $ GOSUB PDFREAD_DEV $ SETMOD pdf -include color dctd dps2core dps2read $ ADDMOD pdf -include fdecode type1 $ ADDMOD pdf -include pdffonts psl2core psl2read pdfread $ ADDMOD pdf -emulator """PDF""" $ RETURN $ ! $ PDFFONTS_DEV: $ SETMOD pdffonts -ps gs_mex_e gs_mro_e gs_pdf_e gs_wan_e $ RETURN $ ! $ PDFREAD_DEV: $ GOSUB SPDIFF_DEV $ SETMOD pdfread -include spdiff $ ADDMOD pdfread -ps gs_pdf pdf_base pdf_draw pdf_font pdf_main pdf_2ps $ RETURN $ ! $ JPEGC_DEV: $ IF JPEGC_DONE THEN RETURN $ jpegc_ = "jcomapi.obj jutils.obj sjpegerr.obj jmemmgr.obj" $ COPY GSJCONF.H JCONFIG.H $ COPY GSJMOREC.H JMORECFG.H $ COPY 'JSRCDIR'JMORECFG.H []JMCORIG.H $ COPY 'JSRCDIR'JERROR.H []JERROR.H $ COPY 'JSRCDIR'JINCLUDE.H []JINCLUDE.H $ COPY 'JSRCDIR'JPEGLIB.H []JPEGLIB.H $ COPY 'JSRCDIR'JVERSION.H []JVERSION.H $ SETMOD JPEGC 'jpegc_' $ JPEGC_DONE = 1 $ RETURN $ ! $ JPEGE_DEV: $ jpege5 = "jcapi.obj" $ jpege6 = "jcapimin.obj jcapistd.obj jcinit.obj" $ jpege_1 = "jccoefct.obj jccolor.obj jcdctmgr.obj " $ jpege_2 = "jchuff.obj jcmainct.obj jcmarker.obj jcmaster.obj" $ jpege_3 = "jcparam.obj jcprepct.obj jcsample.obj jfdctint.obj" $ GOSUB JPEGC_DEV $ IF JVERSION .EQ. 5 THEN SETMOD jpege 'jpege5' $ IF JVERSION .EQ. 6 THEN SETMOD jpege 'jpege6' $ ADDMOD jpege -include jpegc $ ADDMOD jpege -obj 'jpege_1' $ ADDMOD jpege -obj 'jpege_2' $ ADDMOD jpege -obj 'jpege_3' $ RETURN $ ! $ JPEGD_DEV: $ jpegd5 = "jdapi.obj" $ jpegd6 = "jdapimin.obj jdapistd.obj jdinput.obj jdphuff.obj" $ jpegd_1 = "jdcoefct.obj jdcolor.obj" $ jpegd_2 = "jddctmgr.obj jdhuff.obj jdmainct.obj jdmarker.obj" $ jpegd_3 = "jdmaster.obj jdpostct.obj jdsample.obj jidctint.obj" $ GOSUB JPEGC_DEV $ IF JVERSION .EQ. 5 THEN SETMOD jpegd 'jpegd5' $ IF JVERSION .EQ. 6 THEN SETMOD jpegd 'jpegd6' $ ADDMOD jpegd -include jpegc $ ADDMOD jpegd -obj 'jpegd_1' $ ADDMOD jpegd -obj 'jpegd_2' $ ADDMOD jpegd -obj 'jpegd_3' $ RETURN $ ! $ DCTE_DEV: $ dcte_ = "''dctc_' sdcte.obj sjpege.obj zfdcte.obj" $ GOSUB JPEGE_DEV $ SETMOD dcte -include jpege $ ADDMOD dcte -obj 'dcte_' $ ADDMOD dcte -oper zfdcte $ RETURN $ ! $ DCTD_DEV: $ dctd_ = "''dctc_' sdctd.obj sjpegd.obj zfdctd.obj" $ GOSUB JPEGD_DEV $ SETMOD dctd -include jpegd $ ADDMOD dctd -obj 'dctd_' $ ADDMOD dctd -oper zfdctd $ RETURN $ ! $ DCT_DEV: $ dctc_ = "sdctc.obj sjpegc.obj zfdctc.obj" $ GOSUB DCTE_DEV $ GOSUB DCTD_DEV $ SETMOD dct -include dcte dctd $ RETURN $ ! $ CCFONTS_DEV: $ GOSUB TYPE1_DEV $ SETMOD ccfonts -include type1 $ ADDMOD ccfonts -obj iccfont.obj $ ADDMOD ccfonts -obj 'ccfonts1_ $ ADDMOD ccfonts -obj 'ccfonts2_ $ ADDMOD ccfonts -obj 'ccfonts3_ $ ADDMOD ccfonts -obj 'ccfonts4_ $ ADDMOD ccfonts -obj 'ccfonts5_ $ ADDMOD ccfonts -obj 'ccfonts6_ $ ADDMOD ccfonts -obj 'ccfonts7_ $ ADDMOD ccfonts -obj 'ccfonts8_ $ ADDMOD ccfonts -obj 'ccfonts9_ $ ADDMOD ccfonts -obj 'ccfonts10_ $ ADDMOD ccfonts -obj 'ccfonts10_ $ ADDMOD ccfonts -obj 'ccfonts11_ $ ADDMOD ccfonts -obj 'ccfonts12_ $ ADDMOD ccfonts -obj 'ccfonts13_ $ ADDMOD ccfonts -obj 'ccfonts14_ $ ADDMOD ccfonts -obj 'ccfonts15_ $ ADDMOD ccfonts -oper ccfonts $ ADDMOD ccfonts -ps gs_ccfnt $ RETURN $ ! $ GCONFIGF_H: $ SETMOD ccfonts_ -font "''ccfonts1'" $ ADDMOD ccfonts_ -font "''ccfonts2'" $ ADDMOD ccfonts_ -font "''ccfonts3'" $ ADDMOD ccfonts_ -font "''ccfonts4'" $ ADDMOD ccfonts_ -font "''ccfonts5'" $ ADDMOD ccfonts_ -font "''ccfonts6'" $ ADDMOD ccfonts_ -font "''ccfonts7'" $ ADDMOD ccfonts_ -font "''ccfonts8'" $ ADDMOD ccfonts_ -font "''ccfonts9'" $ ADDMOD ccfonts_ -font "''ccfonts10'" $ ADDMOD ccfonts_ -font "''ccfonts11'" $ ADDMOD ccfonts_ -font "''ccfonts12'" $ ADDMOD ccfonts_ -font "''ccfonts13'" $ ADDMOD ccfonts_ -font "''ccfonts14'" $ ADDMOD ccfonts_ -font "''ccfonts15'" $ GENCONF ccfonts_.dev -f gconfigf.h $ RETURN $ ! $ CCINIT_DEV: $ SETMOD ccinit iccinit.obj gs_init.obj $ ADDMOD ccinit -oper ccinit $ RETURN $ ! $ GS_DEV: $ INT1 = "ialloc.obj idebug.obj idict.obj idparam.obj" $ INT2 = "igc.obj igcref.obj igcstr.obj iinit.obj" $ INT3 = "ilocate.obj iname.obj interp.obj iparam.obj isave.obj" $ INT4 = "iscan.obj iscannum.obj iscantab.obj istack.obj iutil.obj" $ INT5 = "sfile.obj sfilter1.obj sstring.obj stream.obj" $ Z1 = "zarith.obj zarray.obj zcontrol.obj zdict.obj" $ Z1OPS = "zarith zarray zcontrol zdict" $ Z2 = "zfile.obj zfileio.obj zfilter.obj zfname.obj zfproc.obj" $ Z2OPS = "zfile zfileio zfilter zfproc" $ Z3 = "zgeneric.obj ziodev.obj zmath.obj zmisc.obj zpacked.obj" $ Z3OPS = "zgeneric ziodev zmath zmisc zpacked" $ Z4 = "zrelbit.obj zstack.obj zstring.obj zsysvm.obj" $ Z4OPS = "zrelbit zstack zstring zsysvm" $ Z5 = "ztoken.obj ztype.obj zvmem.obj" $ Z5OPS = "ztoken ztype zvmem" $ Z6 = "zchar.obj zcolor.obj zdevice.obj zfont.obj zfont2.obj" $ Z6OPS = "zchar zcolor zdevice zfont zfont2" $ Z7 = "zgstate.obj zht.obj zmatrix.obj zpaint.obj zpath.obj" $ Z7OPS = "zgstate zht zmatrix zpaint zpath" $ SETMOD gs gsmain.obj gconfig.obj $ ADDMOD gs -obj 'INT1' $ ADDMOD gs -obj 'INT2' $ ADDMOD gs -obj 'INT3' $ ADDMOD gs -obj 'INT4' $ ADDMOD gs -obj 'INT5' $ ADDMOD gs -obj 'Z1' $ ADDMOD gs -oper 'Z1OPS' $ ADDMOD gs -obj 'Z2' $ ADDMOD gs -oper 'Z2OPS' $ ADDMOD gs -obj 'Z3' $ ADDMOD gs -oper 'Z3OPS' $ ADDMOD gs -obj 'Z4' $ ADDMOD gs -oper 'Z4OPS' $ ADDMOD gs -obj 'Z5' $ ADDMOD gs -oper 'Z5OPS' $ ADDMOD gs -obj 'Z6' $ ADDMOD gs -oper 'Z6OPS' $ ADDMOD gs -obj 'Z7' $ ADDMOD gs -oper 'Z7OPS' $ ADDMOD gs -iodev stdin stdout stderr lineedit statementedit $ RETURN $ ! $ CORE_DEV: $ SETMOD core -dev nullpage $ RETURN $ ! $ DEVS_TR: $ ! quote the dashes so that they are not interpreted as continuation $ ! marks when the following DCL symbol is not defined! $ ECHOGS -w devs.tr "-" gs.dev $ ECHOGS -a devs.tr "-" 'FEATURE_DEVS' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS1' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS2' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS3' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS4' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS5' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS6' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS7' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS8' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS9' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS10' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS11' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS12' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS13' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS14' $ ECHOGS -a devs.tr "-" 'DEVICE_DEVS15' $ ECHOGS -a devs.tr "-" core.dev $ RETURN $ ! $ GCONFIG_H: $ GOSUB GS_DEV $ GOSUB CORE_DEV $ GOSUB DEVS_TR $ GENCONF "@devs.tr" -h gconfig.h $ ECHOGS -a gconfig.h "#define GS_LIB_DEFAULT ""''GS_LIB_DEFAULT'""" $ ECHOGS -a gconfig.h "#define GS_DOCDIR ""''GS_DOCDIR'""" $ ECHOGS -a gconfig.h "#define GS_INIT ""''GS_INIT'""" $ RETURN $ ! $ X11DEV_INIT: $ x11_ = "gdevx.obj gdevxini.obj gdevxxf.obj gdevemap.obj" $ x11alt_ = "''x11_' gdevxalt.obj" $ XLIBS = "Xt Xext X11" $ RETURN $ ! $ X11_DEV: $ IF F$TYPE(x11_) .EQS. "" THEN GOSUB X11DEV_INIT $ SETDEV x11 'x11_' $ ADDMOD x11 -lib 'XLIBS' $ ADD_DEV_MODULES = "''x11_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ X11ALPHA_DEV: $ IF F$TYPE(x11_) .EQS. "" THEN GOSUB X11DEV_INIT $ SETDEV x11alpha 'x11alt_' $ ADDMOD x11alpha -lib 'XLIBS' $ ADD_DEV_MODULES = "''x11alt_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ X11CMYK_DEV: $ IF F$TYPE(x11_) .EQS. "" THEN GOSUB X11DEV_INIT $ SETDEV x11cmyk 'x11alt_' $ ADDMOD x11cmyk -lib 'XLIBS' $ ADD_DEV_MODULES = "''x11alt_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ X11MONO_DEV: $ IF F$TYPE(x11_) .EQS. "" THEN GOSUB X11DEV_INIT $ SETDEV x11mono 'x11alt_' $ ADDMOD x11mono -lib 'XLIBS' $ ADD_DEV_MODULES = "''x11alt_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ BJDEV_INIT: $ bj10e_ = "gdevbj10.obj gdevprn.obj" $ RETURN $ ! $ BJ10E_DEV: $ IF F$TYPE(bj10e_) .EQS. "" THEN GOSUB BJDEV_INIT $ SETDEV bj10e 'bj10e_' $ ADD_DEV_MODULES = "''bj10e_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ BJ200_DEV: $ IF F$TYPE(bj10e_) .EQS. "" THEN GOSUB BJDEV_INIT $ SETDEV bj200 'bj10e_' $ ADD_DEV_MODULES = "''bj10e_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ HPDEV_INIT: $ HPPCL = "gdevprn.obj gdevpcl.obj" $ HPMONO = "gdevdjet.obj ''HPPCL'" $ cdeskjet_ = "gdevcdj.obj ''HPPCL'" $ RETURN $ ! $ DESKJET_DEV: $ IF F$TYPE(HPMONO) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV deskjet 'HPMONO' $ ADD_DEV_MODULES = "''HPMONO'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ DJET500_DEV: $ IF F$TYPE(HPMONO) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV djet500 'HPMONO' $ ADD_DEV_MODULES = "''HPMONO'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ LASERJET_DEV: $ IF F$TYPE(HPMONO) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV laserjet 'HPMONO' $ ADD_DEV_MODULES = "''HPMONO'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ LJETPLUS_DEV: $ IF F$TYPE(HPMONO) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV ljetplus 'HPMONO' $ ADD_DEV_MODULES = "''HPMONO'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ LJET2P_DEV: $ IF F$TYPE(HPMONO) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV ljet2p 'HPMONO' $ ADD_DEV_MODULES = "''HPMONO'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ LJET3_DEV: $ IF F$TYPE(HPMONO) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV ljet3 'HPMONO' $ ADD_DEV_MODULES = "''HPMONO'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ LJET4_DEV: $ IF F$TYPE(HPMONO) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV ljet4 'HPMONO' $ ADD_DEV_MODULES = "''HPMONO'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ LP2563_DEV: $ IF F$TYPE(HPMONO) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV lp2563 'HPMONO' $ ADD_DEV_MODULES = "''HPMONO'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ CDESKJET_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV cdeskjet 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ CDJCOLOR_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV cdjcolor 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ CDJMONO_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV cdjmono 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ CDJ550_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV cdj550 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ DECLJ250_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV declj250 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ DNJ650C_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV dnj650c 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ L4DITH_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV lj4dith 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PJ_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV pj 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PJXL_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV pjxl 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PJXL300_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV pjxl300 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ ! $ BJC600_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV bjc600 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ ! $ BJC800_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV bjc800 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ ! $ ESCP_DEV: $ IF F$TYPE(cdeskjet_) .EQS. "" THEN GOSUB HPDEV_INIT $ SETDEV escp 'cdeskjet_' $ ADD_DEV_MODULES = "''cdeskjet_'" $ GOSUB ADD_DEV_MOD $ ! $ BITDEV_INIT: $ bit_ = "gdevbit.obj gdevprn.obj" $ RETURN $ ! $ BIT_DEV: $ IF F$TYPE(bit_) .EQS. "" THEN GOSUB BITDEV_INIT $ SETDEV bit 'bit_' $ ADD_DEV_MODULES = "''bit_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ BITRGB_DEV: $ IF F$TYPE(bit_) .EQS. "" THEN GOSUB BITDEV_INIT $ SETDEV bitrgb 'bit_' $ ADD_DEV_MODULES = "''bit_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ BITCMYK_DEV: $ IF F$TYPE(bit_) .EQS. "" THEN GOSUB BITDEV_INIT $ SETDEV bitcmyk 'bit_' $ ADD_DEV_MODULES = "''bit_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PCXDEV_INIT: $ pcx_ = "gdevpcx.obj gdevpccm.obj gdevprn.obj" $ RETURN $ ! $ PCXMONO_DEV: $ IF F$TYPE(pcx_) .EQS. "" THEN GOSUB PCXDEV_INIT $ SETDEV pcxmono 'pcx_' $ ADD_DEV_MODULES = "''pcx_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PCXGRAY_DEV: $ IF F$TYPE(pcx_) .EQS. "" THEN GOSUB PCXDEV_INIT $ SETDEV pcxgray 'pcx_' $ ADD_DEV_MODULES = "''pcx_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PCX16_DEV: $ IF F$TYPE(pcx_) .EQS. "" THEN GOSUB PCXDEV_INIT $ SETDEV pcx16 'pcx_' $ ADD_DEV_MODULES = "''pcx_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PCX256_DEV: $ IF F$TYPE(pcx_) .EQS. "" THEN GOSUB PCXDEV_INIT $ SETDEV pcx256 'pcx_' $ ADD_DEV_MODULES = "''pcx_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PCX24B_DEV: $ IF F$TYPE(pcx_) .EQS. "" THEN GOSUB PCXDEV_INIT $ SETDEV pcx24b 'pcx_' $ ADD_DEV_MODULES = "''pcx_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PBMDEV_INIT: $ pxm_ = "gdevpbm.obj gdevprn.obj" $ RETURN $ ! $ PBM_DEV: $ IF F$TYPE(pxm_) .EQS. "" THEN GOSUB PBMDEV_INIT $ SETDEV pbm 'pxm_' $ ADD_DEV_MODULES = "''pxm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PBMRAW_DEV: $ IF F$TYPE(pxm_) .EQS. "" THEN GOSUB PBMDEV_INIT $ SETDEV pbmraw 'pxm_' $ ADD_DEV_MODULES = "''pxm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PGM_DEV: $ IF F$TYPE(pxm_) .EQS. "" THEN GOSUB PBMDEV_INIT $ SETDEV pgm 'pxm_' $ ADD_DEV_MODULES = "''pxm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PGMRAW_DEV: $ IF F$TYPE(pxm_) .EQS. "" THEN GOSUB PBMDEV_INIT $ SETDEV pgmraw 'pxm_' $ ADD_DEV_MODULES = "''pxm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PGNM_DEV: $ IF F$TYPE(pxm_) .EQS. "" THEN GOSUB PBMDEV_INIT $ SETDEV pgnm 'pxm_' $ ADD_DEV_MODULES = "''pxm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PGNMRAW_DEV: $ IF F$TYPE(pxm_) .EQS. "" THEN GOSUB PBMDEV_INIT $ SETDEV pgnmraw 'pxm_' $ ADD_DEV_MODULES = "''pxm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PNM_DEV: $ IF F$TYPE(pxm_) .EQS. "" THEN GOSUB PBMDEV_INIT $ SETDEV pnm 'pxm_' $ ADD_DEV_MODULES = "''pxm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PNMRAW_DEV: $ IF F$TYPE(pxm_) .EQS. "" THEN GOSUB PBMDEV_INIT $ SETDEV pnmraw 'pxm_' $ ADD_DEV_MODULES = "''pxm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PPM_DEV: $ IF F$TYPE(pxm_) .EQS. "" THEN GOSUB PBMDEV_INIT $ SETDEV ppm 'pxm_' $ ADD_DEV_MODULES = "''pxm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PPMRAW_DEV: $ IF F$TYPE(pxm_) .EQS. "" THEN GOSUB PBMDEV_INIT $ SETDEV ppmraw 'pxm_' $ ADD_DEV_MODULES = "''pxm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ PSMONO_DEV: $ ps_ = "gdevpsim.obj gdevprn.obj" $ SETDEV psmono 'ps_' $ ADD_DEV_MODULES = "''ps_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ FAXDEV_INIT: $ tfax_ = "gdevtfax.obj gdevtifs.obj gdevprn.obj" $ RETURN $ ! $ FAXG3_DEV: $ IF F$TYPE(tfax_) .EQS. "" THEN GOSUB FAXDEV_INIT $ SETDEV faxg3 'tfax_' $ ADD_DEV_MODULES = "''tfax_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ FAXG32D_DEV: $ IF F$TYPE(tfax_) .EQS. "" THEN GOSUB FAXDEV_INIT $ SETDEV faxg32d 'tfax_' $ ADD_DEV_MODULES = "''tfax_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ FAXG4_DEV: $ IF F$TYPE(tfax_) .EQS. "" THEN GOSUB FAXDEV_INIT $ SETDEV faxg4 'tfax_' $ ADD_DEV_MODULES = "''tfax_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ TIFFCRLE_DEV: $ IF F$TYPE(tfax_) .EQS. "" THEN GOSUB FAXDEV_INIT $ SETDEV tiffcrle 'tfax_' $ ADD_DEV_MODULES = "''tfax_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ TIFFG3_DEV: $ IF F$TYPE(tfax_) .EQS. "" THEN GOSUB FAXDEV_INIT $ SETDEV tiffg3 'tfax_' $ ADD_DEV_MODULES = "''tfax_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ TIFFG32D_DEV: $ IF F$TYPE(tfax_) .EQS. "" THEN GOSUB FAXDEV_INIT $ SETDEV tiffg32d 'tfax_' $ ADD_DEV_MODULES = "''tfax_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ TIFFG4_DEV: $ IF F$TYPE(tfax_) .EQS. "" THEN GOSUB FAXDEV_INIT $ SETDEV tiffg4 'tfax_' $ ADD_DEV_MODULES = "''tfax_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ TIFF24NC_DEV: $ tiff24nc_ = "gdevtfnx.obj gdevtifs.obj gdevprn.obj" $ SETDEV tiff24nc 'tiff24nc_' $ ADD_DEV_MODULES = "''tiff24nc_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ TIFFLZW_DEV: $ IF F$TYPE(tfax_) .EQS. "" THEN GOSUB FAXDEV_INIT $ SETDEV tifflzw 'tfax_' $ ADD_DEV_MODULES = "''tfax_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ TIFFPACK_DEV: $ IF F$TYPE(tfax_) .EQS. "" THEN GOSUB FAXDEV_INIT $ SETDEV tiffpack 'tfax_' $ ADD_DEV_MODULES = "''tfax_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ LN03DEV_INIT: $ ln03_ = "gdevln03.obj" $ RETURN $ ! $ SXLCRT_DEV: $ IF F$TYPE(ln03_) .EQS. "" THEN GOSUB LN03DEV_INIT $ SETDEV sxlcrt 'ln03_' $ ADD_DEV_MODULES = "''ln03_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ LN03_DEV: $ IF F$TYPE(ln03_) .EQS. "" THEN GOSUB LN03DEV_INIT $ SETDEV ln03 'ln03_' $ ADD_DEV_MODULES = "''ln03_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ LA50_DEV: $ IF F$TYPE(ln03_) .EQS. "" THEN GOSUB LN03DEV_INIT $ SETDEV la50 'ln03_' $ ADD_DEV_MODULES = "''ln03_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ LA70_DEV: $ IF F$TYPE(ln03_) .EQS. "" THEN GOSUB LN03DEV_INIT $ SETDEV la70 'ln03_' $ ADD_DEV_MODULES = "''ln03_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ LA75_DEV: $ IF F$TYPE(ln03_) .EQS. "" THEN GOSUB LN03DEV_INIT $ SETDEV la75 'ln03_' $ ADD_DEV_MODULES = "''ln03_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ LA75PLUS_DEV: $ IF F$TYPE(ln03_) .EQS. "" THEN GOSUB LN03DEV_INIT $ SETDEV la75plus 'ln03_' $ ADD_DEV_MODULES = "''ln03_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ GIFDEV_INIT: $ gif_ = "gdevgif.obj gdevpccm.obj gdevprn.obj" $ RETURN $ ! $ GIFMONO_DEV: $ IF F$TYPE(gif_) .EQS. "" THEN GOSUB GIFDEV_INIT $ SETDEV gifmono 'gif_' $ ADD_DEV_MODULES = "''gif_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ GIF8_DEV: $ IF F$TYPE(gif_) .EQS. "" THEN GOSUB GIFDEV_INIT $ SETDEV gif8 'gif_' $ ADD_DEV_MODULES = "''gif_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ CGMDEV_INIT: $ cgm_ = "gdevcgm.obj gdevcgml.obj" $ RETURN $ ! $ CGMMONO_DEV: $ IF F$TYPE(cgm_) .EQS. "" THEN GOSUB CGMDEV_INIT $ SETDEV cgmmono 'cgm_' $ ADD_DEV_MODULES = "''cgm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ CGM8_DEV: $ IF F$TYPE(cgm_) .EQS. "" THEN GOSUB CGMDEV_INIT $ SETDEV cgm8 'cgm_' $ ADD_DEV_MODULES = "''cgm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ CGM24_DEV: $ IF F$TYPE(cgm_) .EQS. "" THEN GOSUB CGMDEV_INIT $ SETDEV cgm24 'cgm_' $ ADD_DEV_MODULES = "''cgm_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ BMPDEV_INIT: $ bmp_ = "gdevbmp.obj gdevpccm.obj" $ RETURN $ ! $ BMPMONO_DEV: $ IF F$TYPE(bmp_) .EQS. "" THEN GOSUB BMPDEV_INIT $ SETDEV bmpmono 'bmp_' $ ADD_DEV_MODULES = "''bmp_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ BMP16_DEV: $ IF F$TYPE(bmp_) .EQS. "" THEN GOSUB BMPDEV_INIT $ SETDEV bmp16 'bmp_' $ ADD_DEV_MODULES = "''bmp_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ BMP256_DEV: $ IF F$TYPE(bmp_) .EQS. "" THEN GOSUB BMPDEV_INIT $ SETDEV bmp256 'bmp_' $ ADD_DEV_MODULES = "''bmp_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ BMP16M_DEV: $ IF F$TYPE(bmp_) .EQS. "" THEN GOSUB BMPDEV_INIT $ SETDEV bmp16m 'bmp_' $ ADD_DEV_MODULES = "''bmp_'" $ GOSUB ADD_DEV_MOD $ RETURN $ ! $ ADD_DEV_MOD: $ II = 0 $ ADD_MORE: $ DEV_NOW = F$EDIT(F$ELEMENT(II," ",ADD_DEV_MODULES),"UPCASE") - ".OBJ" $ IF DEV_NOW .EQS. " " THEN RETURN $ II = II + 1 $ ! add delimiters to avoid mistaken identities $ ! (e.g., a search for "x11" finding "x11alpha") $ IF F$LOCATE(" "+DEV_NOW+" ",DEV_MODULES) .NE. F$LENGTH(DEV_MODULES) THEN - GOTO ADD_MORE $ DEV_MODULES = DEV_MODULES + DEV_NOW + " " $ GOTO ADD_MORE $ ! $ DONE: $ ! $ DELETE *.DEV;* $ IF F$SEARCH("DEVS.TR") .NES. "" THEN DELETE DEVS.TR;* $ IF F$SEARCH("ECHOGS.EXE") .NES. "" THEN DELETE ECHOGS.EXE;* $ IF F$SEARCH("GENCONF.EXE") .NES. "" THEN DELETE GENCONF.EXE;* $ IF F$LOGICAL("MODULE_LIST") .NES. "" THEN CLOSE MODULE_LIST $ IF F$LOGICAL("OPT_FILE") .NES. "" THEN CLOSE OPT_FILE $ IF F$LOGICAL("X11") .NES. "" THEN DEASSIGN X11 $ ! $ ! ALL DONE $ EXIT $ ! $ NO_MODULES: $ ! $ WSO "Error opening MODULES.LIS. Check this file!" $ GOTO DONE --------------6E64CA96B7C--