lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame^] | 1 | $! make libpng under VMS |
| 2 | $! |
| 3 | $! |
| 4 | $! Check for MMK/MMS |
| 5 | $! |
| 6 | $! This procedure accepts one parameter (contrib), which causes it to build |
| 7 | $! the programs from the contrib directory instead of libpng. |
| 8 | $! |
| 9 | $ p1 = f$edit(p1,"UPCASE") |
| 10 | $ if p1 .eqs. "CONTRIB" |
| 11 | $ then |
| 12 | $ set def [.contrib.gregbook] |
| 13 | $ @makevms |
| 14 | $ set def [-.pngminus] |
| 15 | $ @makevms |
| 16 | $ set def [--] |
| 17 | $ exit |
| 18 | $ endif |
| 19 | $ Make = "" |
| 20 | $ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS" |
| 21 | $ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK" |
| 22 | $! |
| 23 | $! Look for the compiler used |
| 24 | $! |
| 25 | $ zlibsrc = "[-.zlib]" |
| 26 | $ ccopt="/include=''zlibsrc'" |
| 27 | $ if f$getsyi("HW_MODEL").ge.1024 |
| 28 | $ then |
| 29 | $ ccopt = "/prefix=all"+ccopt |
| 30 | $ comp = "__decc__=1" |
| 31 | $ if f$trnlnm("SYS").eqs."" then define sys sys$library: |
| 32 | $ else |
| 33 | $ if f$search("SYS$SYSTEM:DECC$COMPILER.EXE").eqs."" |
| 34 | $ then |
| 35 | $ if f$trnlnm("SYS").eqs."" then define sys sys$library: |
| 36 | $ if f$search("SYS$SYSTEM:VAXC.EXE").eqs."" |
| 37 | $ then |
| 38 | $ comp = "__gcc__=1" |
| 39 | $ CC :== GCC |
| 40 | $ else |
| 41 | $ comp = "__vaxc__=1" |
| 42 | $ endif |
| 43 | $ else |
| 44 | $ if f$trnlnm("SYS").eqs."" then define sys decc$library_include: |
| 45 | $ ccopt = "/decc/prefix=all"+ccopt |
| 46 | $ comp = "__decc__=1" |
| 47 | $ endif |
| 48 | $ endif |
| 49 | $! |
| 50 | $! Build the thing plain or with mms/mmk |
| 51 | $! |
| 52 | $ write sys$output "Compiling Libpng sources ..." |
| 53 | $ if make.eqs."" |
| 54 | $ then |
| 55 | $ dele pngtest.obj;* |
| 56 | $ CALL MAKE png.OBJ "cc ''CCOPT' png" - |
| 57 | png.c png.h pngconf.h |
| 58 | $ CALL MAKE pngpread.OBJ "cc ''CCOPT' pngpread" - |
| 59 | pngpread.c png.h pngconf.h |
| 60 | $ CALL MAKE pngset.OBJ "cc ''CCOPT' pngset" - |
| 61 | pngset.c png.h pngconf.h |
| 62 | $ CALL MAKE pngget.OBJ "cc ''CCOPT' pngget" - |
| 63 | pngget.c png.h pngconf.h |
| 64 | $ CALL MAKE pngread.OBJ "cc ''CCOPT' pngread" - |
| 65 | pngread.c png.h pngconf.h |
| 66 | $ CALL MAKE pngpread.OBJ "cc ''CCOPT' pngpread" - |
| 67 | pngpread.c png.h pngconf.h |
| 68 | $ CALL MAKE pngrtran.OBJ "cc ''CCOPT' pngrtran" - |
| 69 | pngrtran.c png.h pngconf.h |
| 70 | $ CALL MAKE pngrutil.OBJ "cc ''CCOPT' pngrutil" - |
| 71 | pngrutil.c png.h pngconf.h |
| 72 | $ CALL MAKE pngerror.OBJ "cc ''CCOPT' pngerror" - |
| 73 | pngerror.c png.h pngconf.h |
| 74 | $ CALL MAKE pngmem.OBJ "cc ''CCOPT' pngmem" - |
| 75 | pngmem.c png.h pngconf.h |
| 76 | $ CALL MAKE pngrio.OBJ "cc ''CCOPT' pngrio" - |
| 77 | pngrio.c png.h pngconf.h |
| 78 | $ CALL MAKE pngwio.OBJ "cc ''CCOPT' pngwio" - |
| 79 | pngwio.c png.h pngconf.h |
| 80 | $ CALL MAKE pngtrans.OBJ "cc ''CCOPT' pngtrans" - |
| 81 | pngtrans.c png.h pngconf.h |
| 82 | $ CALL MAKE pngwrite.OBJ "cc ''CCOPT' pngwrite" - |
| 83 | pngwrite.c png.h pngconf.h |
| 84 | $ CALL MAKE pngwtran.OBJ "cc ''CCOPT' pngwtran" - |
| 85 | pngwtran.c png.h pngconf.h |
| 86 | $ CALL MAKE pngwutil.OBJ "cc ''CCOPT' pngwutil" - |
| 87 | pngwutil.c png.h pngconf.h |
| 88 | $ write sys$output "Building Libpng ..." |
| 89 | $ CALL MAKE libpng.OLB "lib/crea libpng.olb *.obj" *.OBJ |
| 90 | $ write sys$output "Building pngtest..." |
| 91 | $ CALL MAKE pngtest.OBJ "cc ''CCOPT' pngtest" - |
| 92 | pngtest.c png.h pngconf.h |
| 93 | $ call make pngtest.exe - |
| 94 | "LINK pngtest,libpng.olb/lib,''zlibsrc'libz.olb/lib" - |
| 95 | pngtest.obj libpng.olb |
| 96 | $ write sys$output "Testing Libpng..." |
| 97 | $ run pngtest |
| 98 | $ else |
| 99 | $ if f$search("DESCRIP.MMS") .eqs. "" then copy/nolog [.SCRIPTS]DESCRIP.MMS [] |
| 100 | $ 'make'/macro=('comp',zlibsrc='zlibsrc') |
| 101 | $ endif |
| 102 | $ write sys$output "Libpng build completed" |
| 103 | $ exit |
| 104 | $! |
| 105 | $! |
| 106 | $MAKE: SUBROUTINE !SUBROUTINE TO CHECK DEPENDENCIES |
| 107 | $ V = 'F$Verify(0) |
| 108 | $! P1 = What we are trying to make |
| 109 | $! P2 = Command to make it |
| 110 | $! P3 - P8 What it depends on |
| 111 | $ |
| 112 | $ If F$Search(P1) .Eqs. "" Then Goto Makeit |
| 113 | $ Time = F$CvTime(F$File(P1,"RDT")) |
| 114 | $arg=3 |
| 115 | $Loop: |
| 116 | $ Argument = P'arg |
| 117 | $ If Argument .Eqs. "" Then Goto Exit |
| 118 | $ El=0 |
| 119 | $Loop2: |
| 120 | $ File = F$Element(El," ",Argument) |
| 121 | $ If File .Eqs. " " Then Goto Endl |
| 122 | $ AFile = "" |
| 123 | $Loop3: |
| 124 | $ OFile = AFile |
| 125 | $ AFile = F$Search(File) |
| 126 | $ If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl |
| 127 | $ If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit |
| 128 | $ Goto Loop3 |
| 129 | $NextEL: |
| 130 | $ El = El + 1 |
| 131 | $ Goto Loop2 |
| 132 | $EndL: |
| 133 | $ arg=arg+1 |
| 134 | $ If arg .Le. 8 Then Goto Loop |
| 135 | $ Goto Exit |
| 136 | $ |
| 137 | $Makeit: |
| 138 | $ VV=F$VERIFY(0) |
| 139 | $ write sys$output P2 |
| 140 | $ 'P2 |
| 141 | $ VV='F$Verify(VV) |
| 142 | $Exit: |
| 143 | $ If V Then Set Verify |
| 144 | $ENDSUBROUTINE |