diff --git a/builds/vms/patch_ftcalc.sed b/builds/vms/patch_ftcalc.sed new file mode 100644 index 000000000..79174183e --- /dev/null +++ b/builds/vms/patch_ftcalc.sed @@ -0,0 +1,4 @@ +/^# *undef FT_MulFix/ a\ +# ifdef vms_auto64_source\ +# define FT_MulFix FT_MulFix64__\ +# endif diff --git a/include/freetype/internal/ftcalc.h b/include/freetype/internal/ftcalc.h index c6a79fb7e..dd33c56b5 100644 --- a/include/freetype/internal/ftcalc.h +++ b/include/freetype/internal/ftcalc.h @@ -100,12 +100,6 @@ FT_BEGIN_HEADER } -#ifdef __VMS -# ifdef FT_MulFix -# undef FT_MulFix -# endif -#endif - #define FT_MulFix( a, b ) FT_MulFix_64( a, b ) #elif !defined( FT_CONFIG_OPTION_NO_ASSEMBLER ) diff --git a/src/base/ftcalc.c b/src/base/ftcalc.c index b5e2cba58..c30f1326e 100644 --- a/src/base/ftcalc.c +++ b/src/base/ftcalc.c @@ -41,9 +41,6 @@ /* cancel inlining macro from internal/ftcalc.h */ #ifdef FT_MulFix # undef FT_MulFix -# ifdef vms_auto64_source -# define FT_MulFix FT_MulFix64__ -# endif #endif diff --git a/vms_make.com b/vms_make.com index 805a0d918..92b34c45b 100644 --- a/vms_make.com +++ b/vms_make.com @@ -480,21 +480,22 @@ CXXFLAGS=$(CXXCOMP_FLAGS) -I[] -I[--.include] -I[--.src.base] cc$(CFLAGS)/warn=noinfo/point=32/list/show=all $(MMS$TARGET_NAME).c pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl: mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map - cc$(CFLAGS)/warn=(noinfo,disable=(MAYLOSEDATA3))/point=64/obj=$(MMS$TARGET_NAME)_64.obj\ + cc$(CFLAGS)/warn=(noinfo,disable=(MAYLOSEDATA3,MACROREDEF))/point=64/obj=$(MMS$TARGET_NAME)_64.obj\ $(MMS$TARGET_NAME)_64.c - clang $(CXXFLAGS) -o $(MMS$TARGET_NAME)_64_cxx.obj $(MMS$TARGET_NAME)_64.c + clang $(CXXFLAGS) -Wno-macro-redefined\ + -o $(MMS$TARGET_NAME)_64_cxx.obj $(MMS$TARGET_NAME)_64.c delete $(MMS$TARGET_NAME)_64.c;* .else .c.obj : cc$(CFLAGS)/warn=noinfo/point=32/list/show=all $(MMS$TARGET_NAME).c pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl: mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map - cc$(CFLAGS)/warn=(noinfo,disable=(MAYLOSEDATA3))/point=64/obj=$(MMS$TARGET_NAME)_64.obj\ + cc$(CFLAGS)/warn=(noinfo,disable=(MAYLOSEDATA3,MACROREDEF))/point=64/obj=$(MMS$TARGET_NAME)_64.obj\ $(MMS$TARGET_NAME)_64.c delete $(MMS$TARGET_NAME)_64.c;* .endif -OBJS=ftbase.obj,\ +OBJS=ftbase_vms.obj,\ ftbbox.obj,\ ftbdf.obj,\ ftbitmap.obj,\ @@ -511,7 +512,7 @@ OBJS=ftbase.obj,\ fttype1.obj,\ ftwinfnt.obj,ftpatent.obj,ftgxval.obj,ftotval.obj -OBJS64=ftbase_64.obj,\ +OBJS64=ftbase_vms_64.obj,\ ftbbox_64.obj,\ ftbdf_64.obj,\ ftbitmap_64.obj,\ @@ -528,7 +529,7 @@ OBJS64=ftbase_64.obj,\ fttype1_64.obj,\ ftwinfnt_64.obj,ftpatent_64.obj,ftgxval_64.obj,ftotval_64.obj -OBJSCXX=ftbase_cxx.obj,\ +OBJSCXX=ftbase_vms_cxx.obj,\ ftbbox_cxx.obj,\ ftbdf_cxx.obj,\ ftbitmap_cxx.obj,\ @@ -545,7 +546,7 @@ OBJSCXX=ftbase_cxx.obj,\ fttype1_cxx.obj,\ ftwinfnt_cxx.obj,ftpatent_cxx.obj,ftgxval_cxx.obj,ftotval_cxx.obj -OBJSCXX32=ftbase_cxx32.obj,\ +OBJSCXX32=ftbase_vms_cxx32.obj,\ ftbbox_cxx32.obj,\ ftbdf_cxx32.obj,\ ftbitmap_cxx32.obj,\ @@ -571,10 +572,37 @@ all : $(OBJS) library [--.lib]freetype_cxx.olb $(OBJS64) .endif -ftbase.obj : ftbase.c ftadvanc.c ftcalc.c ftcolor.c ftdbgmem.c fterrors.c\ +.ifdef X86 +ftbase_vms.obj : ftbase.c ftadvanc.c ftcalc.c_vms ftcolor.c ftdbgmem.c fterrors.c\ ftfntfmt.c ftgloadr.c fthash.c ftlcdfil.c ftmac.c ftobjs.c ftoutln.c\ ftpsprop.c ftrfork.c ftsnames.c ftstream.c fttrigon.c ftutil.c + pipe gsed -e "s/ftcalc.c/ftcalc.c_vms/" < ftbase.c > ftbase_vms.c + clang $(CXXFLAGS) -pointer-size=32 -o ftbase_vms_cxx32.obj ftbase_vms.c + clang $(CXXFLAGS) -o ftbase_vms_cxx.obj ftbase_vms.c + cc$(CFLAGS)/warn=noinfo/point=32/list/show=all ftbase_vms.c + pipe link/map/full/exec=nl: ftbase_vms.obj | copy sys$input nl: + mc sys$library:vms_auto64 ftbase_vms.map + cc$(CFLAGS)/warn=(noinfo,disable=(MAYLOSEDATA3,MACROREDEF))/point=64/obj=ftbase_vms_64.obj\ + ftbase_vms_64.c + clang $(CXXFLAGS) -Wno-macro-redefined\ + -o ftbase_vms_64_cxx.obj ftbase_vms_64.c + delete ftbase_vms_64.c;* +.else +ftbase_vms.obj : ftbase.c ftadvanc.c ftcalc.c_vms ftcolor.c ftdbgmem.c fterrors.c\ + ftfntfmt.c ftgloadr.c fthash.c ftlcdfil.c ftmac.c ftobjs.c ftoutln.c\ + ftpsprop.c ftrfork.c ftsnames.c ftstream.c fttrigon.c ftutil.c + pipe gsed -e "s/ftcalc.c/ftcalc.c_vms/" < ftbase.c > ftbase_vms.c + cc$(CFLAGS)/warn=noinfo/point=32/list/show=all ftbase_vms.c + pipe link/map/full/exec=nl: ftbase_vms.obj | copy sys$input nl: + mc sys$library:vms_auto64 ftbase_vms.map + cc$(CFLAGS)/warn=(noinfo,disable=(MAYLOSEDATA3,MACROREDEF))/point=64/obj=ftbase_vms_64.obj\ + ftbase_vms_64.c + delete ftbase_vms_64.c;* + delete ftbase_vms.c;* +.endif +ftcalc.c_vms : ftcalc.c + pipe gsed -f [--.builds.vms]patch_ftcalc.sed < ftcalc.c > ftcalc.c_vms # EOF $ eod @@ -2158,9 +2186,9 @@ $ then $ write sys$output "Unsupported compiler choice ''cc_com' ignored" $ write sys$output "Use DECC, VAXC, or GNUC instead" $ else -$ if cc_com .eqs. "DECC" then its_decc = true -$ if cc_com .eqs. "VAXC" then its_vaxc = true -$ if cc_com .eqs. "GNUC" then its_gnuc = true +$ if cc_com .eqs. "DECC" then its_decc = true +$ if cc_com .eqs. "VAXC" then its_vaxc = true +$ if cc_com .eqs. "GNUC" then its_gnuc = true $ endif $ endif $ if f$locate("MAKE=",cparm) .lt. f$length(cparm)