$!---------------make.com for xpmlib---------------------------------------- $! make xpmlib under VMS $! $ Make = "" $! $! Where are we? $! $ here = f$directory() $ disk = f$trnlnm("SYS$DISK") $ path = "''disk'"+ "''here'" $ xpath = "''path'" - "SXPM]" + "lib]" $ if f$trnlnm("X11").eqs."" then define x11 decw$include,'xpath $! $! Check for MMK/MMS $! $ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS" $ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK" $! $! Look for the compiler used $! $ ccopt = "/define=(NEED_STRCASECMP,NEED_STRDUP,NO_ZPIPE)" $ if f$getsyi("HW_MODEL").ge.1024 $ then $ ccopt = "/prefix=all"+ccopt $ comp = "__decc__=1" $ if f$trnlnm("SYS").eqs."" then define sys sys$library: $ else $ if f$search("SYS$SYSTEM:DECC$COMPILER.EXE").eqs."" $ then $ comp = "__vaxc__=1" $ if f$trnlnm("SYS").eqs."" then define sys sys$library: $ else $ if f$trnlnm("SYS").eqs."" then define sys decc$library_include: $ ccopt = "/decc/prefix=all"+ccopt $ comp = "__decc__=1" $ endif $ endif $! $! Produce linker-options file according to X-Release and compiler used $! $ open/write optf sxpm.opt $ write optf "libxpm.olb/lib" $ write optf "sys$share:decw$xextlibshr.exe/share" $ write optf "sys$share:decw$xlibshr.exe/share" $ @sys$update:decw$get_image_version sys$share:decw$xlibshr.exe decw$version $ if f$extract(4,3,decw$version).eqs."1.1" $ then $ write optf "sys$share:decw$xtshr.exe/share" $ endif $ if f$extract(4,3,decw$version).eqs."1.2" $ then $ write optf "sys$share:decw$xtlibshrr5.exe/share" $ endif $ close optf $! $! Build the thing plain or with 'Make' $! $ write sys$output "Compiling XPMlib sources ..." $ if (Make .eqs. "") $ then $ 'Make'/Macro = ('comp') $ else $ CALL MAKE CrBufFrI.OBJ "CC ''CCOPT' CrBufFrI" - CrBufFrI.c XpmI.h xpm.h $ CALL MAKE CrBufFrP.OBJ "CC ''CCOPT' CrBufFrP" - CrBufFrP.c XpmI.h xpm.h $ CALL MAKE CrDatFI.OBJ "CC ''CCOPT' CrDatFrI" - CrDatFrI.c XpmI.h xpm.h $ CALL MAKE CrDatFP.OBJ "CC ''CCOPT' CrDatFrP" - CrDatFrP.c XpmI.h xpm.h $ CALL MAKE CrIFrBuf.OBJ "CC ''CCOPT' CrIFrBuf" - CrIFrBuf.c XpmI.h xpm.h $ CALL MAKE CrIFrDat.OBJ "CC ''CCOPT' CrIFrDat" - CrIFrDat.c XpmI.h xpm.h $ CALL MAKE CrPFrBuf.OBJ "CC ''CCOPT' CrPFrBuf" - CrPFrBuf.c XpmI.h xpm.h $ CALL MAKE CrPFrDat.OBJ "CC ''CCOPT' CrPFrDat" - CrPFrDat.c XpmI.h xpm.h $ CALL MAKE RdFToDat.OBJ "CC ''CCOPT' RdFToDat" - RdFToDat.c XpmI.h xpm.h $ CALL MAKE RdFToI.OBJ "CC ''CCOPT' RdFToI" - RdFToI.c XpmI.h xpm.h $ CALL MAKE RdFToP.OBJ "CC ''CCOPT' RdFToP" - RdFToP.c XpmI.h xpm.h $ CALL MAKE WrFFrDat.OBJ "CC ''CCOPT' WrFFrDat" - WrFFrDat.c XpmI.h xpm.h $ CALL MAKE WrFFrI.OBJ "CC ''CCOPT' WrFFrI" - WrFFrI.c XpmI.h xpm.h $ CALL MAKE WrFFrP.OBJ "CC ''CCOPT' WrFFrP" - WrFFrP.c XpmI.h xpm.h $ CALL MAKE create.OBJ "CC ''CCOPT' create" - create.c XpmI.h xpm.h $ CALL MAKE data.OBJ "CC ''CCOPT' data" - data.c XpmI.h xpm.h $ CALL MAKE hashtab.OBJ "CC ''CCOPT' hashtab" - hashtab.c XpmI.h xpm.h $ CALL MAKE misc.OBJ "CC ''CCOPT' misc" - misc.c XpmI.h xpm.h $ CALL MAKE parse.OBJ "CC ''CCOPT' parse" - parse.c XpmI.h xpm.h $ CALL MAKE rgb.OBJ "CC ''CCOPT' rgb" - rgb.c XpmI.h xpm.h $ CALL MAKE scan.OBJ "CC ''CCOPT' scan" - scan.c XpmI.h xpm.h $ CALL MAKE Attrib.OBJ "CC ''CCOPT' Attrib" - Attrib.c XpmI.h xpm.h $ CALL MAKE CrIFrP.OBJ "CC ''CCOPT' CrIFrP" - CrIFrP.c XpmI.h xpm.h $ CALL MAKE CrPFrI.OBJ "CC ''CCOPT' CrPFrI" - CrPFrI.c XpmI.h xpm.h $ CALL MAKE Image.OBJ "CC ''CCOPT' Image" - Image.c XpmI.h xpm.h $ CALL MAKE Info.OBJ "CC ''CCOPT' Info" - Info.c XpmI.h xpm.h $ CALL MAKE RdFToBuf.OBJ "CC ''CCOPT' RdFToBuf" - RdFToBuf.c XpmI.h xpm.h $ CALL MAKE WrFFrBuf.OBJ "CC ''CCOPT' WrFFrBuf" - WrFFrBuf.c XpmI.h xpm.h $ write sys$output "Building XPMlib ..." $ CALL MAKE LIBXPM.OLB "lib/crea libxpm.olb *.obj" *.OBJ $ CALL MAKE SXPM.OBJ "CC ''CCOPT' [-.sxpm]sxpm" - [-.sxpm]sxpm.c xpm.h $ write sys$output "Linking SXPM ..." $ CALL MAKE SXPM.EXE "LINK sxpm,sxpm.opt/OPT" sxpm.OBJ $ endif $ write sys$output "XPMlib build completed" $ sxpm :=="$''path'sxpm.exe" $ exit $! $! $MAKE: SUBROUTINE !SUBROUTINE TO CHECK DEPENDENCIES $ V = 'F$Verify(0) $! P1 = What we are trying to make $! P2 = Command to make it $! P3 - P8 What it depends on $ $ If F$Search(P1) .Eqs. "" Then Goto Makeit $ Time = F$CvTime(F$File(P1,"RDT")) $arg=3 $Loop: $ Argument = P'arg $ If Argument .Eqs. "" Then Goto Exit $ El=0 $Loop2: $ File = F$Element(El," ",Argument) $ If File .Eqs. " " Then Goto Endl $ AFile = "" $Loop3: $ OFile = AFile $ AFile = F$Search(File) $ If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl $ If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit $ Goto Loop3 $NextEL: $ El = El + 1 $ Goto Loop2 $EndL: $ arg=arg+1 $ If arg .Le. 8 Then Goto Loop $ Goto Exit $ $Makeit: $ VV=F$VERIFY(0) $ write sys$output P2 $ 'P2 $ VV='F$Verify(VV) $Exit: $ If V Then Set Verify $ENDSUBROUTINE