mirror of
https://github.com/GerbilSoft/rom-properties.git
synced 2025-06-18 19:45:41 -04:00

I've decided to get rid of the GDI+ PNG handling. It doesn't improve anything performance-wise, adds coding overhead, and probably isn't any faster than libpng. GDI+ also doesn't support APNG. This version does. NOTE: If I add APNG export, I'll need to use the included libpng in Ubuntu builds, since Ubuntu still has libpng-1.2, and it's a version that doesn't support APNG. Reworked the bundled library system to be similar to the one in mcrecover, but improved. Added "-fpic -fPIC" to all extlib static libraries when building for Linux systems. This is needed for libpng, but might not be needed for other libraries; nevertheless, it should be set. TODO: Use libpng in the Windows build. It's being linked in, but it isn't actually being used for anything yet.
143 lines
4.7 KiB
Plaintext
Vendored
143 lines
4.7 KiB
Plaintext
Vendored
$! make libpng under VMS
|
|
$!
|
|
$!
|
|
$! Check for MMK/MMS
|
|
$!
|
|
$! This procedure accepts one parameter (contrib), which causes it to build
|
|
$! the programs from the contrib directory instead of libpng.
|
|
$!
|
|
$ p1 = f$edit(p1,"UPCASE")
|
|
$ if p1 .eqs. "CONTRIB"
|
|
$ then
|
|
$ set def [.contrib.gregbook]
|
|
$ @makevms
|
|
$ set def [-.pngminus]
|
|
$ @makevms
|
|
$ set def [--]
|
|
$ exit
|
|
$ endif
|
|
$ Make = ""
|
|
$ 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
|
|
$!
|
|
$ zlibsrc = "[-.zlib]"
|
|
$ ccopt="/include=''zlibsrc'"
|
|
$ 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
|
|
$ if f$trnlnm("SYS").eqs."" then define sys sys$library:
|
|
$ if f$search("SYS$SYSTEM:VAXC.EXE").eqs.""
|
|
$ then
|
|
$ comp = "__gcc__=1"
|
|
$ CC :== GCC
|
|
$ else
|
|
$ comp = "__vaxc__=1"
|
|
$ endif
|
|
$ else
|
|
$ if f$trnlnm("SYS").eqs."" then define sys decc$library_include:
|
|
$ ccopt = "/decc/prefix=all"+ccopt
|
|
$ comp = "__decc__=1"
|
|
$ endif
|
|
$ endif
|
|
$!
|
|
$! Build the thing plain or with mms/mmk
|
|
$!
|
|
$ write sys$output "Compiling Libpng sources ..."
|
|
$ if make.eqs.""
|
|
$ then
|
|
$ dele pngtest.obj;*
|
|
$ CALL MAKE png.OBJ "cc ''CCOPT' png" -
|
|
png.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngset.OBJ "cc ''CCOPT' pngset" -
|
|
pngset.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngget.OBJ "cc ''CCOPT' pngget" -
|
|
pngget.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngread.OBJ "cc ''CCOPT' pngread" -
|
|
pngread.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngpread.OBJ "cc ''CCOPT' pngpread" -
|
|
pngpread.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngrtran.OBJ "cc ''CCOPT' pngrtran" -
|
|
pngrtran.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngrutil.OBJ "cc ''CCOPT' pngrutil" -
|
|
pngrutil.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngerror.OBJ "cc ''CCOPT' pngerror" -
|
|
pngerror.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngmem.OBJ "cc ''CCOPT' pngmem" -
|
|
pngmem.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngrio.OBJ "cc ''CCOPT' pngrio" -
|
|
pngrio.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngwio.OBJ "cc ''CCOPT' pngwio" -
|
|
pngwio.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngtrans.OBJ "cc ''CCOPT' pngtrans" -
|
|
pngtrans.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngwrite.OBJ "cc ''CCOPT' pngwrite" -
|
|
pngwrite.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngwtran.OBJ "cc ''CCOPT' pngwtran" -
|
|
pngwtran.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ CALL MAKE pngwutil.OBJ "cc ''CCOPT' pngwutil" -
|
|
pngwutil.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
$ write sys$output "Building Libpng ..."
|
|
$ CALL MAKE libpng.OLB "lib/crea libpng.olb *.obj" *.OBJ
|
|
$ write sys$output "Building pngtest..."
|
|
$ CALL MAKE pngtest.OBJ "cc ''CCOPT' pngtest" -
|
|
pngtest.c png.h pngconf.h pnglibconf.h
|
|
$ call make pngtest.exe -
|
|
"LINK pngtest,libpng.olb/lib,''zlibsrc'libz.olb/lib" -
|
|
pngtest.obj libpng.olb
|
|
$ write sys$output "Testing Libpng..."
|
|
$ run pngtest
|
|
$ else
|
|
$ if f$search("DESCRIP.MMS") .eqs. "" then copy/nolog [.SCRIPTS]DESCRIP.MMS []
|
|
$ 'make'/macro=('comp',zlibsrc='zlibsrc')
|
|
$ endif
|
|
$ write sys$output "Libpng build completed"
|
|
$ 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
|