freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Git][freetype/freetype][slot-inflate] 7 commits: * src/truetype/ttgload


From: Alexei Podtelezhnikov (@apodtele)
Subject: [Git][freetype/freetype][slot-inflate] 7 commits: * src/truetype/ttgload.c (TT_Hint_Glyph): Mostly cosmetic update.
Date: Thu, 16 Mar 2023 03:27:37 +0000

Alexei Podtelezhnikov pushed to branch slot-inflate at FreeType / FreeType

Commits:

  • 49c74ac0
    by Alexei Podtelezhnikov at 2023-03-09T22:37:03-05:00
    * src/truetype/ttgload.c (TT_Hint_Glyph): Mostly cosmetic update.
    
    The number of instructions is now taken from the executed context.
    Technically, this means that `control_len` and `control_data`
    values are no longer _used_ internally but only expose them.
    
  • 24d2523c
    by Jouk Jansen at 2023-03-10T16:56:15+01:00
    Update VMS installation support.
    
  • b9376065
    by Alexei Podtelezhnikov at 2023-03-10T23:41:39-05:00
    [truetype] Fix recent fallout in memory management.
    
    * src/truetype/ttgload.c (TT_Process_Composite_Glyph,
    TT_Load_Simple_Glyph): Clean up old instructions regardless of
    new ones, postpone setting `control_len` and `control_data` until...
    (TT_Load_Glyph): ... the exit from this function.
    
  • d857bd53
    by Werner Lemberg at 2023-03-13T11:47:38+01:00
    builds/vms/apinames_vms.bash: Fix `unzip` artifact
    
    The problem occured when unpacking a zip file created on OpenVMS on Linux..
    While OpenVMS knows many different file formats, Unix only knows stream-LF
    and binary.  In principle `zip` on Linux should have translated the file to
    stream-LF but failed to do so.  That caused the file to incorrectly contain
    only one line with control-characters.
    
  • e7164762
    by Alexei Podtelezhnikov at 2023-03-15T18:48:27+00:00
    * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Clean up.
  • 764bc8e4
    by Alexei Podtelezhnikov at 2023-03-15T23:18:18-04:00
    [truetype] Clean up glyph loading.
    
    * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Clean space checking.
    (TT_Hint_Glyph): Don't copy the outline structure.
    (TT_Process_Simple_Glyph): Cosmetic update.
    
  • 0c2a828f
    by Alexei Podtelezhnikov at 2023-03-16T03:27:24+00:00
    * src/base/ftsynth.c (FT_GlyphSlot_AdjustWeight): New API.
    * include/freetype/ftsynth.h (FT_GlyphSlot_AdjustWeight): Document it.
    

9 changed files:

Changes:

  • builds/vms/LIBS.OPT_IA64 deleted
    No preview for this file type
  • builds/vms/_LINK.OPT_IA64 deleted
    No preview for this file type
  • builds/vms/apinames_vms.bash
    1
    +src/tools/apinames -wV include/freetype/*.h > freetype_vms0.opt
    
    2
    +mv freetype_vms0.opt freetype_vms.opt

  • builds/vms/vmslib.dat deleted
    1
    -!
    
    2
    -! This is a simple driver file with information used by make.com to
    
    3
    -! check if external libraries (like t1lib and freetype) are available on
    
    4
    -! the system.
    
    5
    -!
    
    6
    -! Layout of the file:
    
    7
    -!
    
    8
    -!    - Lines starting with ! are treated as comments
    
    9
    -!    - Elements in a data line are separated by # signs
    
    10
    -!    - The elements need to be listed in the following order
    
    11
    -!      1.) Name of the Library 
    
    12
    -!      2.) Location where the object library can be found
    
    13
    -!      3.) Location where the include files for the library can be found
    
    14
    -!      4.) Include file used to verify library location
    
    15
    -!      5.) CPP define to pass to the build to indicate availability of
    
    16
    -!          the library
    
    17
    -!
    
    18
    -! Example: The following  lines show how definitions
    
    19
    -!          might look like. They are site specific and the locations of the
    
    20
    -!          library and include files need almost certainly to be changed.
    
    21
    -!
    
    22
    -! Location: All of the libaries can be found at the following addresses
    
    23
    -!
    
    24
    -!   ZLIB:     http://www.decus.de:8080/www/vms/sw/zlib.htmlx
    
    25
    -!
    
    26
    -BZ2LIB # sys$library:libbz2.olb # decc$user_include: # bzlib.h # FT_CONFIG_OPTION_SYSTEM_ZLIB
    
    27
    -PNGLIB # sys$library:libpng.olb # sys$library: # png.h # FT_CONFIG_OPTION_SYSTEM_ZLIB
    
    28
    -ZLIB # sys$library:libz.olb # sys$library: # zlib.h # FT_CONFIG_OPTION_SYSTEM_ZLIB

  • docs/INSTALL.VMS
    1
    -How to build the FreeType 2 library on VMS
    
    2
    ------------------------------------------
    
    1
    +How to build the FreeType library on VMS
    
    2
    +----------------------------------------
    
    3 3
     
    
    4
    -It is actually very straightforward to install the FreeType 2 library.
    
    5
    -Just  execute vms_make.com from  the toplevel  directory to  build the
    
    4
    +It is actually  very straightforward to install  the FreeType library.
    
    5
    +Just execute `vms_make.com  from` the toplevel directory  to build the
    
    6 6
     library.  This procedure currently accepts the following options:
    
    7 7
     
    
    8
    -DEBUG
    
    8
    +* `DEBUG`
    
    9 9
       Build the library with debug information and without optimization.
    
    10 10
     
    
    11
    -lopts=<value>
    
    12
    -  Options to pass to the link command e.g. lopts=/traceback
    
    11
    +* `lopts=<value>`
    
    12
    +  Options to pass to the link command, e.g., `lopts=/traceback`.
    
    13 13
     
    
    14
    -ccopt=<value>
    
    15
    -  Options to pass to the C compiler e.g. ccopt=/float=ieee
    
    14
    +* `ccopt=<value>`
    
    15
    +  Options to pass to the C compiler, e.g., `ccopt=/float=ieee`.
    
    16 16
     
    
    17 17
     In case you did download the demos, place them in a separate directory
    
    18
    -sharing the same top level  as the directory of FreeType 2  and follow
    
    19
    -the same instructions as above for  the demos from  there.  The  build
    
    20
    -process relies on this  to figure out  the location  of the FreeType 2
    
    18
    +sharing the same top level as the directory of FreeType and follow the
    
    19
    +same  instructions as  above  for  the demos  from  there.  The  build
    
    20
    +process relies  on this  to figure  out the  location of  the FreeType
    
    21 21
     include files.
    
    22 22
     
    
    23 23
     
    
    ... ... @@ -28,24 +28,31 @@ The library is available in the directory
    28 28
     
    
    29 29
       [.LIB]
    
    30 30
     
    
    31
    -To  compile applications  using  FreeType  2 you  have  to define  the
    
    32
    -logical FREETYPE pointing to the directory
    
    31
    +To compile applications using FreeType  you have to define the logical
    
    32
    +`FREETYPE` pointing to the directory
    
    33 33
     
    
    34 34
       [.INCLUDE.FREETYPE]
    
    35 35
     
    
    36
    -i.e., if  the directory in which  this INSTALL.VMS file  is located is
    
    37
    -$disk:[freetype] then define the logical with
    
    36
    +i.e., if the directory in which  this `INSTALL.VMS` file is located is
    
    37
    +`$disk:[freetype.docs]`, then define the logical with
    
    38 38
     
    
    39 39
       define freetype $disk:[freetype.include.freetype]
    
    40 40
     
    
    41
    -This version has  been tested with Compaq C  V6.2-006 on OpenVMS Alpha
    
    42
    -V7.2-1.
    
    41
    +See  http://nchrem.tnw.tudelft.nl/openvms/software2.html#Freetype  for
    
    42
    +the packages FreeType depends on.
    
    43 43
     
    
    44
    +The latest versions were tested using
    
    45
    +  - VSI C V7.4-002 and DECWindows V1.7-F on OpenVMS Alpha V8.4-2L1
    
    46
    +  - VSI C V7.4-001 and DECWindows V1.7-E on OpenVMS IA64 V8.4-2L3
    
    44 47
     
    
    45
    -  Any problems can be reported to
    
    46 48
     
    
    47
    -    Jouk Jansen <joukj@hrem.stm.tudelft.nl> or
    
    48
    -    Martin P.J. Zinser <zinser@zinser.no-ip.info>
    
    49
    +Any problems can be reported to
    
    50
    +
    
    51
    +  Jouk Jansen <joukj@hrem.nano.tudelft.nl> or
    
    52
    +
    
    53
    +Orginal version of the build procedures was created by
    
    54
    +
    
    55
    +  Martin P.J. Zinser <zinser@zinser.no-ip.info>
    
    49 56
     
    
    50 57
     ------------------------------------------------------------------------
    
    51 58
     
    

  • include/freetype/ftsynth.h
    ... ... @@ -68,6 +68,18 @@ FT_BEGIN_HEADER
    68 68
       FT_EXPORT( void )
    
    69 69
       FT_GlyphSlot_Embolden( FT_GlyphSlot  slot );
    
    70 70
     
    
    71
    +  /* Precisely adjust the glyph weight either horizontally or vertically.  */
    
    72
    +  /* The `xdelta` and `ydelta` values are fractions of the face Em size    */
    
    73
    +  /* (in fixed-point format).  Considering that a regular face would have  */
    
    74
    +  /* stem widths on the order of 0.1 Em, a delta of 0.05 (0x0CCC) should   */
    
    75
    +  /* be very noticeable.  To increase or decrease the weight, use positive */
    
    76
    +  /* or negative values, respectively.                                     */
    
    77
    +  FT_EXPORT( void )
    
    78
    +  FT_GlyphSlot_AdjustWeight( FT_GlyphSlot  slot,
    
    79
    +                             FT_Fixed      xdelta,
    
    80
    +                             FT_Fixed      ydelta );
    
    81
    +
    
    82
    +
    
    71 83
       /* Slant an outline glyph to the right by about 12 degrees.              */
    
    72 84
       FT_EXPORT( void )
    
    73 85
       FT_GlyphSlot_Oblique( FT_GlyphSlot  slot );
    

  • src/base/ftsynth.c
    ... ... @@ -97,9 +97,18 @@
    97 97
     
    
    98 98
       FT_EXPORT_DEF( void )
    
    99 99
       FT_GlyphSlot_Embolden( FT_GlyphSlot  slot )
    
    100
    +  {
    
    101
    +    FT_GlyphSlot_AdjustWeight( slot, 0x0AAA, 0x0AAA );
    
    102
    +  }
    
    103
    +
    
    104
    +
    
    105
    +  FT_EXPORT_DEF( void )
    
    106
    +  FT_GlyphSlot_AdjustWeight( FT_GlyphSlot  slot,
    
    107
    +                             FT_Fixed      xdelta,
    
    108
    +                             FT_Fixed      ydelta )
    
    100 109
       {
    
    101 110
         FT_Library  library;
    
    102
    -    FT_Face     face;
    
    111
    +    FT_Size     size;
    
    103 112
         FT_Error    error;
    
    104 113
         FT_Pos      xstr, ystr;
    
    105 114
     
    
    ... ... @@ -108,16 +117,15 @@
    108 117
           return;
    
    109 118
     
    
    110 119
         library = slot->library;
    
    111
    -    face    = slot->face;
    
    120
    +    size    = slot->face->size;
    
    112 121
     
    
    113 122
         if ( slot->format != FT_GLYPH_FORMAT_OUTLINE &&
    
    114 123
              slot->format != FT_GLYPH_FORMAT_BITMAP  )
    
    115 124
           return;
    
    116 125
     
    
    117
    -    /* some reasonable strength */
    
    118
    -    xstr = FT_MulFix( face->units_per_EM,
    
    119
    -                      face->size->metrics.y_scale ) / 24;
    
    120
    -    ystr = xstr;
    
    126
    +    /* express deltas in pixels in 26.6 format */
    
    127
    +    xstr = (FT_Pos)size->metrics.x_ppem * xdelta / 1024;
    
    128
    +    ystr = (FT_Pos)size->metrics.y_ppem * ydelta / 1024;
    
    121 129
     
    
    122 130
         if ( slot->format == FT_GLYPH_FORMAT_OUTLINE )
    
    123 131
           FT_Outline_EmboldenXY( &slot->outline, xstr, ystr );
    

  • src/truetype/ttgload.c
    ... ... @@ -362,17 +362,16 @@
    362 362
         FT_Byte*        p          = load->cursor;
    
    363 363
         FT_Byte*        limit      = load->limit;
    
    364 364
         FT_GlyphLoader  gloader    = load->gloader;
    
    365
    +    FT_Outline*     outline    = &gloader->current.outline;
    
    365 366
         FT_Int          n_contours = load->n_contours;
    
    366
    -    FT_Outline*     outline;
    
    367
    -    FT_UShort       n_ins;
    
    368 367
         FT_Int          n_points;
    
    368
    +    FT_UShort       n_ins;
    
    369 369
     
    
    370 370
         FT_Byte         *flag, *flag_limit;
    
    371 371
         FT_Byte         c, count;
    
    372 372
         FT_Vector       *vec, *vec_limit;
    
    373 373
         FT_Pos          x, y;
    
    374
    -    FT_Short        *cont, *cont_limit, prev_cont;
    
    375
    -    FT_Int          xy_size = 0;
    
    374
    +    FT_Short        *cont, *cont_limit, last;
    
    376 375
     
    
    377 376
     
    
    378 377
         /* check that we can add the contours to the glyph */
    
    ... ... @@ -380,40 +379,26 @@
    380 379
         if ( error )
    
    381 380
           goto Fail;
    
    382 381
     
    
    383
    -    /* reading the contours' endpoints & number of points */
    
    384
    -    cont       = gloader->current.outline.contours;
    
    385
    -    cont_limit = cont + n_contours;
    
    386
    -
    
    387 382
         /* check space for contours array + instructions count */
    
    388
    -    if ( n_contours >= 0xFFF || p + ( n_contours + 1 ) * 2 > limit )
    
    383
    +    if ( n_contours >= 0xFFF || p + 2 * n_contours + 2 > limit )
    
    389 384
           goto Invalid_Outline;
    
    390 385
     
    
    391
    -    prev_cont = FT_NEXT_SHORT( p );
    
    392
    -
    
    393
    -    if ( n_contours > 0 )
    
    394
    -      cont[0] = prev_cont;
    
    395
    -
    
    396
    -    if ( prev_cont < 0 )
    
    397
    -      goto Invalid_Outline;
    
    386
    +    /* reading the contours' endpoints & number of points */
    
    387
    +    cont       = outline->contours;
    
    388
    +    cont_limit = cont + n_contours;
    
    398 389
     
    
    399
    -    for ( cont++; cont < cont_limit; cont++ )
    
    390
    +    last = -1;
    
    391
    +    do
    
    400 392
         {
    
    401
    -      cont[0] = FT_NEXT_SHORT( p );
    
    402
    -      if ( cont[0] <= prev_cont )
    
    403
    -      {
    
    404
    -        /* unordered contours: this is invalid */
    
    405
    -        goto Invalid_Outline;
    
    406
    -      }
    
    407
    -      prev_cont = cont[0];
    
    408
    -    }
    
    393
    +      *cont = FT_NEXT_SHORT( p );
    
    409 394
     
    
    410
    -    n_points = 0;
    
    411
    -    if ( n_contours > 0 )
    
    412
    -    {
    
    413
    -      n_points = cont[-1] + 1;
    
    414
    -      if ( n_points < 0 )
    
    395
    +      if ( *cont <= last )
    
    415 396
             goto Invalid_Outline;
    
    416
    -    }
    
    397
    +
    
    398
    +      last = *cont;
    
    399
    +    } while ( ++cont < cont_limit );
    
    400
    +
    
    401
    +    n_points = last + 1;
    
    417 402
     
    
    418 403
         FT_TRACE5(( "  # of points: %d\n", n_points ));
    
    419 404
     
    
    ... ... @@ -422,17 +407,19 @@
    422 407
         if ( error )
    
    423 408
           goto Fail;
    
    424 409
     
    
    425
    -    /* reading the bytecode instructions */
    
    426
    -    load->glyph->control_len  = 0;
    
    427
    -    load->glyph->control_data = NULL;
    
    428
    -
    
    429
    -    if ( p + 2 > limit )
    
    430
    -      goto Invalid_Outline;
    
    431
    -
    
    410
    +    /* space checked above */
    
    432 411
         n_ins = FT_NEXT_USHORT( p );
    
    433 412
     
    
    434 413
         FT_TRACE5(( "  Instructions size: %u\n", n_ins ));
    
    435 414
     
    
    415
    +    /* check instructions size */
    
    416
    +    if ( p + n_ins > limit )
    
    417
    +    {
    
    418
    +      FT_TRACE1(( "TT_Load_Simple_Glyph: excessive instruction count\n" ));
    
    419
    +      error = FT_THROW( Too_Many_Hints );
    
    420
    +      goto Fail;
    
    421
    +    }
    
    422
    +
    
    436 423
     #ifdef TT_USE_BYTECODE_INTERPRETER
    
    437 424
     
    
    438 425
         if ( IS_HINTED( load->load_flags ) )
    
    ... ... @@ -441,29 +428,20 @@
    441 428
           FT_Memory       memory = exec->memory;
    
    442 429
     
    
    443 430
     
    
    444
    -      /* check instructions size */
    
    445
    -      if ( ( limit - p ) < n_ins )
    
    446
    -      {
    
    447
    -        FT_TRACE1(( "TT_Load_Simple_Glyph: instruction count mismatch\n" ));
    
    448
    -        error = FT_THROW( Too_Many_Hints );
    
    449
    -        goto Fail;
    
    450
    -      }
    
    431
    +      if ( exec->glyphSize )
    
    432
    +        FT_FREE( exec->glyphIns );
    
    433
    +      exec->glyphSize = 0;
    
    451 434
     
    
    452 435
           /* we don't trust `maxSizeOfInstructions' in the `maxp' table */
    
    453 436
           /* and thus allocate the bytecode array size by ourselves     */
    
    454 437
           if ( n_ins )
    
    455 438
           {
    
    456
    -        if ( exec->glyphSize )
    
    457
    -          FT_FREE( exec->glyphIns );
    
    458 439
             if ( FT_QNEW_ARRAY( exec->glyphIns, n_ins ) )
    
    459 440
               return error;
    
    460 441
     
    
    461 442
             FT_MEM_COPY( exec->glyphIns, p, (FT_Long)n_ins );
    
    462 443
     
    
    463 444
             exec->glyphSize  = n_ins;
    
    464
    -
    
    465
    -        load->glyph->control_len  = n_ins;
    
    466
    -        load->glyph->control_data = exec->glyphIns;
    
    467 445
           }
    
    468 446
         }
    
    469 447
     
    
    ... ... @@ -471,8 +449,6 @@
    471 449
     
    
    472 450
         p += n_ins;
    
    473 451
     
    
    474
    -    outline = &gloader->current.outline;
    
    475
    -
    
    476 452
         /* reading the point tags */
    
    477 453
         flag       = (FT_Byte*)outline->tags;
    
    478 454
         flag_limit = flag + n_points;
    
    ... ... @@ -510,9 +486,6 @@
    510 486
         flag      = (FT_Byte*)outline->tags;
    
    511 487
         x         = 0;
    
    512 488
     
    
    513
    -    if ( p + xy_size > limit )
    
    514
    -      goto Invalid_Outline;
    
    515
    -
    
    516 489
         for ( ; vec < vec_limit; vec++, flag++ )
    
    517 490
         {
    
    518 491
           FT_Pos   delta = 0;
    
    ... ... @@ -542,7 +515,7 @@
    542 515
     
    
    543 516
         /* reading the Y coordinates */
    
    544 517
     
    
    545
    -    vec       = gloader->current.outline.points;
    
    518
    +    vec       = outline->points;
    
    546 519
         vec_limit = vec + n_points;
    
    547 520
         flag      = (FT_Byte*)outline->tags;
    
    548 521
         y         = 0;
    
    ... ... @@ -834,15 +807,14 @@
    834 807
         TT_GlyphZone  zone = &loader->zone;
    
    835 808
     
    
    836 809
     #ifdef TT_USE_BYTECODE_INTERPRETER
    
    837
    -    FT_Long       n_ins;
    
    810
    +    TT_ExecContext  exec  = loader->exec;
    
    811
    +    FT_Long         n_ins = exec->glyphSize;
    
    838 812
     #else
    
    839 813
         FT_UNUSED( is_composite );
    
    840 814
     #endif
    
    841 815
     
    
    842 816
     
    
    843 817
     #ifdef TT_USE_BYTECODE_INTERPRETER
    
    844
    -    n_ins = loader->glyph->control_len;
    
    845
    -
    
    846 818
         /* save original point positions in `org' array */
    
    847 819
         if ( n_ins > 0 )
    
    848 820
           FT_ARRAY_COPY( zone->org, zone->cur, zone->n_points );
    
    ... ... @@ -854,15 +826,15 @@
    854 826
         /*      completely refer to the (already) hinted subglyphs.     */
    
    855 827
         if ( is_composite )
    
    856 828
         {
    
    857
    -      loader->exec->metrics.x_scale = 1 << 16;
    
    858
    -      loader->exec->metrics.y_scale = 1 << 16;
    
    829
    +      exec->metrics.x_scale = 1 << 16;
    
    830
    +      exec->metrics.y_scale = 1 << 16;
    
    859 831
     
    
    860 832
           FT_ARRAY_COPY( zone->orus, zone->cur, zone->n_points );
    
    861 833
         }
    
    862 834
         else
    
    863 835
         {
    
    864
    -      loader->exec->metrics.x_scale = loader->size->metrics->x_scale;
    
    865
    -      loader->exec->metrics.y_scale = loader->size->metrics->y_scale;
    
    836
    +      exec->metrics.x_scale = loader->size->metrics->x_scale;
    
    837
    +      exec->metrics.y_scale = loader->size->metrics->y_scale;
    
    866 838
         }
    
    867 839
     #endif
    
    868 840
     
    
    ... ... @@ -882,23 +854,19 @@
    882 854
         {
    
    883 855
           FT_Error  error;
    
    884 856
     
    
    885
    -      FT_GlyphLoader  gloader         = loader->gloader;
    
    886
    -      FT_Outline      current_outline = gloader->current.outline;
    
    887 857
     
    
    858
    +      TT_Set_CodeRange( exec, tt_coderange_glyph, exec->glyphIns, n_ins );
    
    888 859
     
    
    889
    -      TT_Set_CodeRange( loader->exec, tt_coderange_glyph,
    
    890
    -                        loader->exec->glyphIns, n_ins );
    
    891
    -
    
    892
    -      loader->exec->is_composite = is_composite;
    
    893
    -      loader->exec->pts          = *zone;
    
    860
    +      exec->is_composite = is_composite;
    
    861
    +      exec->pts          = *zone;
    
    894 862
     
    
    895 863
           error = TT_Run_Context( loader->exec );
    
    896
    -      if ( error && loader->exec->pedantic_hinting )
    
    864
    +      if ( error && exec->pedantic_hinting )
    
    897 865
             return error;
    
    898 866
     
    
    899 867
           /* store drop-out mode in bits 5-7; set bit 2 also as a marker */
    
    900
    -      current_outline.tags[0] |=
    
    901
    -        ( loader->exec->GS.scan_type << 5 ) | FT_CURVE_TAG_HAS_SCANMODE;
    
    868
    +      loader->gloader->current.outline.tags[0] |=
    
    869
    +        ( exec->GS.scan_type << 5 ) | FT_CURVE_TAG_HAS_SCANMODE;
    
    902 870
         }
    
    903 871
     
    
    904 872
     #endif
    
    ... ... @@ -908,7 +876,7 @@
    908 876
         /* compatibility mode, where no movement on the x axis means no reason */
    
    909 877
         /* to change bearings or advance widths.                               */
    
    910 878
         if ( !( driver->interpreter_version == TT_INTERPRETER_VERSION_40 &&
    
    911
    -            loader->exec->backward_compatibility ) )
    
    879
    +            exec->backward_compatibility ) )
    
    912 880
         {
    
    913 881
     #endif
    
    914 882
           loader->pp1 = zone->cur[zone->n_points - 4];
    
    ... ... @@ -922,10 +890,10 @@
    922 890
     #ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
    
    923 891
         if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 )
    
    924 892
         {
    
    925
    -      if ( loader->exec->sph_tweak_flags & SPH_TWEAK_DEEMBOLDEN )
    
    893
    +      if ( exec->sph_tweak_flags & SPH_TWEAK_DEEMBOLDEN )
    
    926 894
             FT_Outline_EmboldenXY( &loader->gloader->current.outline, -24, 0 );
    
    927 895
     
    
    928
    -      else if ( loader->exec->sph_tweak_flags & SPH_TWEAK_EMBOLDEN )
    
    896
    +      else if ( exec->sph_tweak_flags & SPH_TWEAK_EMBOLDEN )
    
    929 897
             FT_Outline_EmboldenXY( &loader->gloader->current.outline, 24, 0 );
    
    930 898
         }
    
    931 899
     #endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
    
    ... ... @@ -947,10 +915,10 @@
    947 915
       static FT_Error
    
    948 916
       TT_Process_Simple_Glyph( TT_Loader  loader )
    
    949 917
       {
    
    950
    -    FT_GlyphLoader  gloader = loader->gloader;
    
    951
    -    FT_Error        error   = FT_Err_Ok;
    
    952
    -    FT_Outline*     outline;
    
    953
    -    FT_Int          n_points;
    
    918
    +    FT_Error        error    = FT_Err_Ok;
    
    919
    +    FT_GlyphLoader  gloader  = loader->gloader;
    
    920
    +    FT_Outline*     outline  = &gloader->current.outline;
    
    921
    +    FT_Int          n_points = outline->n_points;
    
    954 922
     
    
    955 923
     #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
    
    956 924
         FT_Memory   memory    = loader->face->root.memory;
    
    ... ... @@ -958,11 +926,7 @@
    958 926
     #endif
    
    959 927
     
    
    960 928
     
    
    961
    -    outline  = &gloader->current.outline;
    
    962
    -    n_points = outline->n_points;
    
    963
    -
    
    964 929
         /* set phantom points */
    
    965
    -
    
    966 930
         outline->points[n_points    ] = loader->pp1;
    
    967 931
         outline->points[n_points + 1] = loader->pp2;
    
    968 932
         outline->points[n_points + 2] = loader->pp3;
    
    ... ... @@ -1349,27 +1313,6 @@
    1349 1313
     
    
    1350 1314
     #ifdef TT_USE_BYTECODE_INTERPRETER
    
    1351 1315
     
    
    1352
    -    /* TT_Load_Composite_Glyph only gives us the offset of instructions */
    
    1353
    -    /* so we read them here                                             */
    
    1354
    -    if ( FT_STREAM_SEEK( loader->ins_pos ) ||
    
    1355
    -         FT_READ_USHORT( n_ins )           )
    
    1356
    -      return error;
    
    1357
    -
    
    1358
    -    FT_TRACE5(( "  Instructions size = %hu\n", n_ins ));
    
    1359
    -
    
    1360
    -    if ( !n_ins )
    
    1361
    -      return FT_Err_Ok;
    
    1362
    -
    
    1363
    -    /* don't trust `maxSizeOfInstructions'; */
    
    1364
    -    /* only do a rough safety check         */
    
    1365
    -    if ( n_ins > loader->byte_len )
    
    1366
    -    {
    
    1367
    -      FT_TRACE1(( "TT_Process_Composite_Glyph:"
    
    1368
    -                  " too many instructions (%hu) for glyph with length %u\n",
    
    1369
    -                  n_ins, loader->byte_len ));
    
    1370
    -      return FT_THROW( Too_Many_Hints );
    
    1371
    -    }
    
    1372
    -
    
    1373 1316
         {
    
    1374 1317
           TT_ExecContext  exec = loader->exec;
    
    1375 1318
           FT_Memory       memory = exec->memory;
    
    ... ... @@ -1377,14 +1320,34 @@
    1377 1320
     
    
    1378 1321
           if ( exec->glyphSize )
    
    1379 1322
             FT_FREE( exec->glyphIns );
    
    1323
    +      exec->glyphSize = 0;
    
    1324
    +
    
    1325
    +      /* TT_Load_Composite_Glyph only gives us the offset of instructions */
    
    1326
    +      /* so we read them here                                             */
    
    1327
    +      if ( FT_STREAM_SEEK( loader->ins_pos ) ||
    
    1328
    +           FT_READ_USHORT( n_ins )           )
    
    1329
    +        return error;
    
    1330
    +
    
    1331
    +      FT_TRACE5(( "  Instructions size = %hu\n", n_ins ));
    
    1332
    +
    
    1333
    +      if ( !n_ins )
    
    1334
    +        return FT_Err_Ok;
    
    1335
    +
    
    1336
    +      /* don't trust `maxSizeOfInstructions'; */
    
    1337
    +      /* only do a rough safety check         */
    
    1338
    +      if ( n_ins > loader->byte_len )
    
    1339
    +      {
    
    1340
    +        FT_TRACE1(( "TT_Process_Composite_Glyph:"
    
    1341
    +                    " too many instructions (%hu) for glyph with length %u\n",
    
    1342
    +                    n_ins, loader->byte_len ));
    
    1343
    +        return FT_THROW( Too_Many_Hints );
    
    1344
    +      }
    
    1345
    +
    
    1380 1346
           if ( FT_QNEW_ARRAY( exec->glyphIns, n_ins )  ||
    
    1381 1347
                FT_STREAM_READ( exec->glyphIns, n_ins ) )
    
    1382 1348
             return error;
    
    1383 1349
     
    
    1384 1350
           exec->glyphSize = n_ins;
    
    1385
    -
    
    1386
    -      loader->glyph->control_len  = n_ins;
    
    1387
    -      loader->glyph->control_data = exec->glyphIns;
    
    1388 1351
         }
    
    1389 1352
     
    
    1390 1353
     #endif
    
    ... ... @@ -2942,6 +2905,9 @@
    2942 2905
     
    
    2943 2906
           if ( IS_HINTED( load_flags ) )
    
    2944 2907
           {
    
    2908
    +        glyph->control_data = loader.exec->glyphIns;
    
    2909
    +        glyph->control_len  = loader.exec->glyphSize;
    
    2910
    +
    
    2945 2911
             if ( loader.exec->GS.scan_control )
    
    2946 2912
             {
    
    2947 2913
               /* convert scan conversion mode to FT_OUTLINE_XXX flags */
    

  • vms_make.com
    ... ... @@ -71,18 +71,19 @@ $! Which command parameters were given
    71 71
     $!
    
    72 72
     $ gosub check_opts
    
    73 73
     $!
    
    74
    -$! Create option file
    
    75
    -$!
    
    76
    -$ open/write optf 'optfile'
    
    77 74
     $!
    
    78 75
     $! Pull in external libraries
    
    79 76
     $!
    
    80 77
     $ create libs.opt
    
    81 78
     $ open/write libsf libs.opt
    
    82
    -$ gosub check_create_vmslib
    
    79
    +$ write libsf "sys$library:libpng.olb/lib"
    
    80
    +$ write libsf "sys$library:libbz2.olb/lib"
    
    81
    +$ write libsf "sys$library:libz.olb/lib"
    
    82
    +$ close libsf
    
    83 83
     $!
    
    84 84
     $! Create objects
    
    85 85
     $!
    
    86
    +$ libdefs = "FT2_BUILD_LIBRARY,FT_CONFIG_OPTION_OLD_INTERNALS,FT_CONFIG_OPTION_USE_BZIP2=1,FT_CONFIG_OPTION_USE_PNG=1,FT_CONFIG_OPTION_SYSTEM_ZLIB=1"
    
    86 87
     $ if libdefs .nes. ""
    
    87 88
     $ then
    
    88 89
     $   ccopt = ccopt + "/define=(" + f$extract(0,f$length(libdefs)-1,libdefs) + ")"
    
    ... ... @@ -95,48 +96,38 @@ $!
    95 96
     $ 'Make' /macro=(comp_flags="''ccopt'")
    
    96 97
     $ purge/nolog [...]descrip.mms
    
    97 98
     $!
    
    98
    -$! Add them to options
    
    99
    -$!
    
    100
    -$FLOOP:
    
    101
    -$  file = f$edit(f$search("[...]*.obj"),"UPCASE")
    
    102
    -$  if (file .nes. "")
    
    103
    -$  then
    
    104
    -$    if f$locate("DEMOS",file) .eqs. f$length(file) then write optf file
    
    105
    -$    goto floop
    
    106
    -$  endif
    
    107
    -$!
    
    108
    -$ close optf
    
    109
    -$!
    
    110 99
     $!
    
    111
    -$! Alpha gets a shareable image
    
    100
    +$! Alpha & Itanium get a shareable image
    
    112 101
     $!
    
    113 102
     $ If f$getsyi("HW_MODEL") .gt. 1024
    
    114 103
     $ Then
    
    115 104
     $   write sys$output "Creating freetype2shr.exe"
    
    116
    -$   If f$getsyi("HW_MODEL") .le. 2048
    
    117
    -$   Then
    
    118
    -$     call anal_obj_axp 'optfile' _link.opt
    
    119
    -$   Else
    
    120
    -$     copy _link.opt_ia64 _link.opt
    
    121
    -$     close libsf
    
    122
    -$     copy libs.opt_ia64 libs.opt
    
    123
    -$   endif
    
    124
    -$   open/append  optf 'optfile'
    
    125
    -$   if s_case then WRITE optf "case_sensitive=YES"
    
    126
    -$   close optf
    
    127
    -$   LINK_/NODEB/SHARE=[.lib]freetype2shr.exe -
    
    128
    -                            'optfile'/opt,libs.opt/opt,_link.opt/opt
    
    105
    +$   library/extract=* [.lib]freetype.olb
    
    106
    +$   pipe link/nodeb/noshare/noexe/map=libfreetype.map/full freetype.obj | copy sys$input nl:
    
    107
    +$   set def [.src.tools]
    
    108
    +$   cc apinames.c
    
    109
    +$   link apinames
    
    110
    +$   set def [--]
    
    111
    +$   pur [.include.freetype]ftmac.h
    
    112
    +$   rename [.include.freetype]ftmac.h [.include.freetype]ftmac.h_tmp
    
    113
    +$   bash builds/vms/apinames_vms.bash
    
    114
    +$   rename [.include.freetype]ftmac.h_tmp [.include.freetype]ftmac.h
    
    115
    +$   open/write file  libfreetype.opt
    
    116
    +$   write file "!"
    
    117
    +$   write file "! libfreetype.opt generated by vms_make.com"
    
    118
    +$   write file "!"
    
    119
    +$   write file "IDENTIFICATION=""freetype2 2.0"""
    
    120
    +$   write file "GSMATCH=LEQUAL,2,0
    
    121
    +$   write file "freetype.obj"
    
    122
    +$   close file
    
    123
    +$   link/nodeb/share=[.lib]freetype2shr.exe/map=libfreetype.map/full -
    
    124
    +      libfreetype/opt,freetype_vms/opt,libs/opt
    
    125
    +$   delete freetype.obj;*
    
    129 126
     $ endif
    
    130 127
     $!
    
    131 128
     $ exit
    
    132 129
     $!
    
    133 130
     $
    
    134
    -$ERR_LIB:
    
    135
    -$ write sys$output "Error reading config file vmslib.dat"
    
    136
    -$ goto err_exit
    
    137
    -$FT2_ERR:
    
    138
    -$ write sys$output "Could not locate FreeType 2 include files"
    
    139
    -$ goto err_exit
    
    140 131
     $ERR_EXIT:
    
    141 132
     $ set message/facil/ident/sever/text
    
    142 133
     $ close/nolog optf
    
    ... ... @@ -237,6 +228,8 @@ all :
    237 228
             $(MMS)$(MMSQUALIFIERS)
    
    238 229
             set default [-.smooth]
    
    239 230
             $(MMS)$(MMSQUALIFIERS)
    
    231
    +        set default [-.svg]
    
    232
    +        $(MMS)$(MMSQUALIFIERS)
    
    240 233
             set default [-.truetype]
    
    241 234
             $(MMS)$(MMSQUALIFIERS)
    
    242 235
             set default [-.type1]
    
    ... ... @@ -245,6 +238,8 @@ all :
    245 238
             $(MMS)$(MMSQUALIFIERS)
    
    246 239
             set default [-.winfonts]
    
    247 240
             $(MMS)$(MMSQUALIFIERS)
    
    241
    +        set default [-.sdf]
    
    242
    +        $(MMS)$(MMSQUALIFIERS)
    
    248 243
             set default [--]
    
    249 244
     
    
    250 245
     # EOF
    
    ... ... @@ -272,10 +267,21 @@ $ deck
    272 267
     
    
    273 268
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/list/show=all/include=([],[--.include],[--.src.base])
    
    274 269
     
    
    270
    +.c.obj :
    
    271
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    272
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    273
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    274
    +	cc$(CFLAGS)/point=64/obj=$(MMS$TARGET_NAME)_64.obj\
    
    275
    +	$(MMS$TARGET_NAME)_64.c
    
    276
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    277
    +
    
    275 278
     OBJS=ftsystem.obj
    
    276 279
     
    
    280
    +OBJS64=ftsystem_64.obj
    
    281
    +
    
    277 282
     all : $(OBJS)
    
    278 283
             library/create [--.lib]freetype.olb $(OBJS)
    
    284
    +        library [--.lib]freetype.olb $(OBJS64)
    
    279 285
     
    
    280 286
     ftsystem.obj : ftsystem.c ftconfig.h
    
    281 287
     
    
    ... ... @@ -303,10 +309,21 @@ $ deck
    303 309
     
    
    304 310
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.autofit])
    
    305 311
     
    
    312
    +.c.obj :
    
    313
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    314
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    315
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    316
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    317
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    318
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    319
    +
    
    306 320
     OBJS=autofit.obj
    
    307 321
     
    
    322
    +OBJS64=autofit_64.obj
    
    323
    +
    
    308 324
     all : $(OBJS)
    
    309 325
             library [--.lib]freetype.olb $(OBJS)
    
    326
    +        library [--.lib]freetype.olb $(OBJS64)
    
    310 327
     
    
    311 328
     # EOF
    
    312 329
     $ eod
    
    ... ... @@ -333,6 +350,14 @@ $ deck
    333 350
     
    
    334 351
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.builds.vms],[--.include],[--.src.base])
    
    335 352
     
    
    353
    +.c.obj :
    
    354
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    355
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    356
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    357
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    358
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    359
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    360
    +
    
    336 361
     OBJS=ftbase.obj,\
    
    337 362
          ftbbox.obj,\
    
    338 363
          ftbdf.obj,\
    
    ... ... @@ -348,10 +373,33 @@ OBJS=ftbase.obj,\
    348 373
          ftstroke.obj,\
    
    349 374
          ftsynth.obj,\
    
    350 375
          fttype1.obj,\
    
    351
    -     ftwinfnt.obj
    
    376
    +     ftwinfnt.obj,ftpatent.obj,ftgxval.obj,ftotval.obj
    
    377
    +
    
    378
    +OBJS64=ftbase_64.obj,\
    
    379
    +     ftbbox_64.obj,\
    
    380
    +     ftbdf_64.obj,\
    
    381
    +     ftbitmap_64.obj,\
    
    382
    +     ftcid_64.obj,\
    
    383
    +     ftdebug_64.obj,\
    
    384
    +     ftfstype_64.obj,\
    
    385
    +     ftgasp_64.obj,\
    
    386
    +     ftglyph_64.obj,\
    
    387
    +     ftinit_64.obj,\
    
    388
    +     ftmm_64.obj,\
    
    389
    +     ftpfr_64.obj,\
    
    390
    +     ftstroke_64.obj,\
    
    391
    +     ftsynth_64.obj,\
    
    392
    +     fttype1_64.obj,\
    
    393
    +     ftwinfnt_64.obj,ftpatent_64.obj,ftgxval_64.obj,ftotval_64.obj
    
    352 394
     
    
    353 395
     all : $(OBJS)
    
    354 396
             library [--.lib]freetype.olb $(OBJS)
    
    397
    +        library [--.lib]freetype.olb $(OBJS64)
    
    398
    +
    
    399
    +ftbase.obj : ftbase.c ftadvanc.c ftcalc.c ftcolor.c ftdbgmem.c fterrors.c\
    
    400
    +	ftfntfmt.c ftgloadr.c fthash.c ftlcdfil.c ftmac.c ftobjs.c ftoutln.c\
    
    401
    +	ftpsprop.c ftrfork.c ftsnames.c ftstream.c fttrigon.c ftutil.c
    
    402
    +
    
    355 403
     
    
    356 404
     # EOF
    
    357 405
     $ eod
    
    ... ... @@ -378,10 +426,21 @@ $ deck
    378 426
     
    
    379 427
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.bdf])
    
    380 428
     
    
    429
    +.c.obj :
    
    430
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    431
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    432
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    433
    +	cc$(CFLAGS)/point=64/obj=$(MMS$TARGET_NAME)_64.obj\
    
    434
    +	$(MMS$TARGET_NAME)_64.c
    
    435
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    436
    +
    
    381 437
     OBJS=bdf.obj
    
    382 438
     
    
    439
    +OBJS64=bdf_64.obj
    
    440
    +
    
    383 441
     all : $(OBJS)
    
    384 442
             library [--.lib]freetype.olb $(OBJS)
    
    443
    +        library [--.lib]freetype.olb $(OBJS64)
    
    385 444
     
    
    386 445
     # EOF
    
    387 446
     $ eod
    
    ... ... @@ -408,10 +467,24 @@ $ deck
    408 467
     
    
    409 468
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cache])/nowarn
    
    410 469
     
    
    470
    +.c.obj :
    
    471
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    472
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    473
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    474
    +	cc$(CFLAGS)/point=64/obj=$(MMS$TARGET_NAME)_64.obj\
    
    475
    +	$(MMS$TARGET_NAME)_64.c
    
    476
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    477
    +
    
    411 478
     OBJS=ftcache.obj
    
    412 479
     
    
    480
    +OBJS64=ftcache_64.obj
    
    481
    +
    
    413 482
     all : $(OBJS)
    
    414 483
             library [--.lib]freetype.olb $(OBJS)
    
    484
    +        library [--.lib]freetype.olb $(OBJS64)
    
    485
    +
    
    486
    +ftcache.obj : ftcache.c ftcbasic.c ftccache.c ftccmap.c ftcglyph.c ftcimage.c \
    
    487
    +	ftcmanag.c ftcmru.c ftcsbits.c
    
    415 488
     
    
    416 489
     # EOF
    
    417 490
     $ eod
    
    ... ... @@ -438,10 +511,21 @@ $ deck
    438 511
     
    
    439 512
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cff])
    
    440 513
     
    
    514
    +.c.obj :
    
    515
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    516
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    517
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    518
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    519
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    520
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    521
    +
    
    441 522
     OBJS=cff.obj
    
    442 523
     
    
    524
    +OBJS64=cff_64.obj
    
    525
    +
    
    443 526
     all : $(OBJS)
    
    444 527
             library [--.lib]freetype.olb $(OBJS)
    
    528
    +        library [--.lib]freetype.olb $(OBJS64)
    
    445 529
     
    
    446 530
     # EOF
    
    447 531
     $ eod
    
    ... ... @@ -468,10 +552,21 @@ $ deck
    468 552
     
    
    469 553
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cid])
    
    470 554
     
    
    555
    +.c.obj :
    
    556
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    557
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    558
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    559
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    560
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    561
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    562
    +
    
    471 563
     OBJS=type1cid.obj
    
    472 564
     
    
    565
    +OBJS64=type1cid_64.obj
    
    566
    +
    
    473 567
     all : $(OBJS)
    
    474 568
             library [--.lib]freetype.olb $(OBJS)
    
    569
    +        library [--.lib]freetype.olb $(OBJS64)
    
    475 570
     
    
    476 571
     # EOF
    
    477 572
     $ eod
    
    ... ... @@ -498,10 +593,21 @@ $ deck
    498 593
     
    
    499 594
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.gxvalid])
    
    500 595
     
    
    596
    +.c.obj :
    
    597
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    598
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    599
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    600
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    601
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    602
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    603
    +
    
    501 604
     OBJS=gxvalid.obj
    
    502 605
     
    
    606
    +OBJS64=gxvalid_64.obj
    
    607
    +
    
    503 608
     all : $(OBJS)
    
    504 609
             library [--.lib]freetype.olb $(OBJS)
    
    610
    +        library [--.lib]freetype.olb $(OBJS64)
    
    505 611
     
    
    506 612
     # EOF
    
    507 613
     $ eod
    
    ... ... @@ -525,17 +631,27 @@ $ deck
    525 631
     # indicate that you have read the license and understand and accept it
    
    526 632
     # fully.
    
    527 633
     $EOD
    
    528
    -$ if libincs .nes. "" then write out "LIBINCS = ", libincs - ",", ","
    
    529 634
     $ write out "COMP_FLAGS = ", ccopt
    
    530 635
     $ copy sys$input: out
    
    531 636
     $ deck
    
    532 637
     
    
    533
    -CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=($(LIBINCS)[--.include],[--.src.gzip])
    
    638
    +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.gzip])
    
    639
    +
    
    640
    +.c.obj :
    
    641
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    642
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    643
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    644
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    645
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    646
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    534 647
     
    
    535 648
     OBJS=ftgzip.obj
    
    536 649
     
    
    650
    +OBJS64=ftgzip_64.obj
    
    651
    +
    
    537 652
     all : $(OBJS)
    
    538 653
             library [--.lib]freetype.olb $(OBJS)
    
    654
    +        library [--.lib]freetype.olb $(OBJS64)
    
    539 655
     
    
    540 656
     # EOF
    
    541 657
     $ eod
    
    ... ... @@ -561,17 +677,27 @@ $ deck
    561 677
     # indicate that you have read the license and understand and accept it
    
    562 678
     # fully.
    
    563 679
     $EOD
    
    564
    -$ if libincs .nes. "" then write out "LIBINCS = ", libincs - ",", ","
    
    565 680
     $ write out "COMP_FLAGS = ", ccopt
    
    566 681
     $ copy sys$input: out
    
    567 682
     $ deck
    
    568 683
     
    
    569 684
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.bzip2])
    
    570 685
     
    
    686
    +.c.obj :
    
    687
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    688
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    689
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    690
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    691
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    692
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    693
    +
    
    571 694
     OBJS=ftbzip2.obj
    
    572 695
     
    
    696
    +OBJS64=ftbzip2_64.obj
    
    697
    +
    
    573 698
     all : $(OBJS)
    
    574 699
             library [--.lib]freetype.olb $(OBJS)
    
    700
    +        library [--.lib]freetype.olb $(OBJS64)
    
    575 701
     
    
    576 702
     # EOF
    
    577 703
     $ eod
    
    ... ... @@ -595,17 +721,27 @@ $ deck
    595 721
     # indicate that you have read the license and understand and accept it
    
    596 722
     # fully.
    
    597 723
     $EOD
    
    598
    -$ if libincs .nes. "" then write out "LIBINCS = ", libincs - ",", ","
    
    599 724
     $ write out "COMP_FLAGS = ", ccopt
    
    600 725
     $ copy sys$input: out
    
    601 726
     $ deck
    
    602 727
     
    
    603
    -CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=($(LIBINCS)[--.include],[--.src.lzw])
    
    728
    +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.lzw])
    
    729
    +
    
    730
    +.c.obj :
    
    731
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    732
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    733
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    734
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    735
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    736
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    604 737
     
    
    605 738
     OBJS=ftlzw.obj
    
    606 739
     
    
    740
    +OBJS64=ftlzw_64.obj
    
    741
    +
    
    607 742
     all : $(OBJS)
    
    608 743
             library [--.lib]freetype.olb $(OBJS)
    
    744
    +        library [--.lib]freetype.olb $(OBJS64)
    
    609 745
     
    
    610 746
     # EOF
    
    611 747
     $ eod
    
    ... ... @@ -632,10 +768,21 @@ $ deck
    632 768
     
    
    633 769
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.otvalid])
    
    634 770
     
    
    771
    +.c.obj :
    
    772
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    773
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    774
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    775
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    776
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    777
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    778
    +
    
    635 779
     OBJS=otvalid.obj
    
    636 780
     
    
    781
    +OBJS64=otvalid_64.obj
    
    782
    +
    
    637 783
     all : $(OBJS)
    
    638 784
             library [--.lib]freetype.olb $(OBJS)
    
    785
    +        library [--.lib]freetype.olb $(OBJS64)
    
    639 786
     
    
    640 787
     # EOF
    
    641 788
     $ eod
    
    ... ... @@ -674,10 +821,21 @@ $ deck
    674 821
     
    
    675 822
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.pcf])
    
    676 823
     
    
    824
    +.c.obj :
    
    825
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    826
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    827
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    828
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    829
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    830
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    831
    +
    
    677 832
     OBJS=pcf.obj
    
    678 833
     
    
    834
    +OBJS64=pcf_64.obj
    
    835
    +
    
    679 836
     all : $(OBJS)
    
    680 837
             library [--.lib]freetype.olb $(OBJS)
    
    838
    +        library [--.lib]freetype.olb $(OBJS64)
    
    681 839
     
    
    682 840
     # EOF
    
    683 841
     $ eod
    
    ... ... @@ -704,10 +862,21 @@ $ deck
    704 862
     
    
    705 863
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.pfr])
    
    706 864
     
    
    865
    +.c.obj :
    
    866
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    867
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    868
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    869
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    870
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    871
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    872
    +
    
    707 873
     OBJS=pfr.obj
    
    708 874
     
    
    875
    +OBJS64=pfr_64.obj
    
    876
    +
    
    709 877
     all : $(OBJS)
    
    710 878
             library [--.lib]freetype.olb $(OBJS)
    
    879
    +        library [--.lib]freetype.olb $(OBJS64)
    
    711 880
     
    
    712 881
     # EOF
    
    713 882
     $ eod
    
    ... ... @@ -734,10 +903,21 @@ $ deck
    734 903
     
    
    735 904
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psaux])
    
    736 905
     
    
    906
    +.c.obj :
    
    907
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    908
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    909
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    910
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    911
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    912
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    913
    +
    
    737 914
     OBJS=psaux.obj
    
    738 915
     
    
    916
    +OBJS64=psaux_64.obj
    
    917
    +
    
    739 918
     all : $(OBJS)
    
    740 919
             library [--.lib]freetype.olb $(OBJS)
    
    920
    +        library [--.lib]freetype.olb $(OBJS64)
    
    741 921
     
    
    742 922
     # EOF
    
    743 923
     $ eod
    
    ... ... @@ -764,10 +944,21 @@ $ deck
    764 944
     
    
    765 945
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psnames])
    
    766 946
     
    
    947
    +.c.obj :
    
    948
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    949
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    950
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    951
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    952
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    953
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    954
    +
    
    767 955
     OBJS=pshinter.obj
    
    768 956
     
    
    957
    +OBJS64=pshinter_64.obj
    
    958
    +
    
    769 959
     all : $(OBJS)
    
    770 960
             library [--.lib]freetype.olb $(OBJS)
    
    961
    +        library [--.lib]freetype.olb $(OBJS64)
    
    771 962
     
    
    772 963
     # EOF
    
    773 964
     $ eod
    
    ... ... @@ -794,10 +985,21 @@ $ deck
    794 985
     
    
    795 986
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psnames])
    
    796 987
     
    
    988
    +.c.obj :
    
    989
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    990
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    991
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    992
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    993
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    994
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    995
    +
    
    797 996
     OBJS=psnames.obj
    
    798 997
     
    
    998
    +OBJS64=psnames_64.obj
    
    999
    +
    
    799 1000
     all : $(OBJS)
    
    800 1001
             library [--.lib]freetype.olb $(OBJS)
    
    1002
    +        library [--.lib]freetype.olb $(OBJS64)
    
    801 1003
     
    
    802 1004
     # EOF
    
    803 1005
     $ eod
    
    ... ... @@ -824,10 +1026,21 @@ $ deck
    824 1026
     
    
    825 1027
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.raster])
    
    826 1028
     
    
    1029
    +.c.obj :
    
    1030
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    1031
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    1032
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    1033
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    1034
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    1035
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    1036
    +
    
    827 1037
     OBJS=raster.obj
    
    828 1038
     
    
    1039
    +OBJS64=raster_64.obj
    
    1040
    +
    
    829 1041
     all : $(OBJS)
    
    830 1042
             library [--.lib]freetype.olb $(OBJS)
    
    1043
    +        library [--.lib]freetype.olb $(OBJS64)
    
    831 1044
     
    
    832 1045
     # EOF
    
    833 1046
     $ eod
    
    ... ... @@ -854,10 +1067,21 @@ $ deck
    854 1067
     
    
    855 1068
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.sfnt])
    
    856 1069
     
    
    1070
    +.c.obj :
    
    1071
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    1072
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    1073
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    1074
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    1075
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    1076
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    1077
    +
    
    857 1078
     OBJS=sfnt.obj
    
    858 1079
     
    
    1080
    +OBJS64=sfnt_64.obj
    
    1081
    +
    
    859 1082
     all : $(OBJS)
    
    860 1083
             library [--.lib]freetype.olb $(OBJS)
    
    1084
    +        library [--.lib]freetype.olb $(OBJS64)
    
    861 1085
     
    
    862 1086
     # EOF
    
    863 1087
     $ eod
    
    ... ... @@ -884,10 +1108,62 @@ $ deck
    884 1108
     
    
    885 1109
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.smooth])
    
    886 1110
     
    
    1111
    +.c.obj :
    
    1112
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    1113
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    1114
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    1115
    +	cc$(CFLAGS)/point=64/obj=$(MMS$TARGET_NAME)_64.obj\
    
    1116
    +	$(MMS$TARGET_NAME)_64.c
    
    1117
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    1118
    +
    
    887 1119
     OBJS=smooth.obj
    
    888 1120
     
    
    1121
    +OBJS64=smooth_64.obj
    
    1122
    +
    
    1123
    +all : $(OBJS)
    
    1124
    +        library [--.lib]freetype.olb $(OBJS)
    
    1125
    +        library [--.lib]freetype.olb $(OBJS64)
    
    1126
    +
    
    1127
    +# EOF
    
    1128
    +$ eod
    
    1129
    +$ close out
    
    1130
    +$ write sys$output "... [.src.svg] directory"
    
    1131
    +$ create [.src.svg]descrip.mms
    
    1132
    +$ open/append out [.src.svg]descrip.mms
    
    1133
    +$ copy sys$input: out
    
    1134
    +$ deck
    
    1135
    +#
    
    1136
    +# FreeType 2 smooth renderer module compilation rules for VMS
    
    1137
    +#
    
    1138
    +
    
    1139
    +
    
    1140
    +# Copyright 2001-2019 by
    
    1141
    +# David Turner, Robert Wilhelm, and Werner Lemberg.
    
    1142
    +#
    
    1143
    +# This file is part of the FreeType project, and may only be used, modified,
    
    1144
    +# and distributed under the terms of the FreeType project license,
    
    1145
    +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
    
    1146
    +# indicate that you have read the license and understand and accept it
    
    1147
    +# fully.
    
    1148
    +
    
    1149
    +
    
    1150
    +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.svg])
    
    1151
    +
    
    1152
    +.c.obj :
    
    1153
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    1154
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    1155
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    1156
    +	cc$(CFLAGS)/point=64/obj=$(MMS$TARGET_NAME)_64.obj\
    
    1157
    +	$(MMS$TARGET_NAME)_64.c
    
    1158
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    1159
    +
    
    1160
    +OBJS=svg.obj
    
    1161
    +
    
    1162
    +OBJS64=svg_64.obj
    
    1163
    +
    
    889 1164
     all : $(OBJS)
    
    890 1165
             library [--.lib]freetype.olb $(OBJS)
    
    1166
    +        library [--.lib]freetype.olb $(OBJS64)
    
    891 1167
     
    
    892 1168
     # EOF
    
    893 1169
     $ eod
    
    ... ... @@ -914,10 +1190,21 @@ $ deck
    914 1190
     
    
    915 1191
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.truetype])
    
    916 1192
     
    
    1193
    +.c.obj :
    
    1194
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    1195
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    1196
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    1197
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    1198
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    1199
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    1200
    +
    
    917 1201
     OBJS=truetype.obj
    
    918 1202
     
    
    1203
    +OBJS64=truetype_64.obj
    
    1204
    +
    
    919 1205
     all : $(OBJS)
    
    920 1206
             library [--.lib]freetype.olb $(OBJS)
    
    1207
    +        library [--.lib]freetype.olb $(OBJS64)
    
    921 1208
     
    
    922 1209
     # EOF
    
    923 1210
     $ eod
    
    ... ... @@ -944,10 +1231,66 @@ $ deck
    944 1231
     
    
    945 1232
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type1])
    
    946 1233
     
    
    1234
    +.c.obj :
    
    1235
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    1236
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    1237
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    1238
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    1239
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    1240
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    1241
    +
    
    947 1242
     OBJS=type1.obj
    
    948 1243
     
    
    1244
    +OBJS64=type1_64.obj
    
    1245
    +
    
    1246
    +all : $(OBJS)
    
    1247
    +        library [--.lib]freetype.olb $(OBJS)
    
    1248
    +        library [--.lib]freetype.olb $(OBJS64)
    
    1249
    +
    
    1250
    +type1.obj : type1.c t1parse.c t1load.c t1objs.c t1driver.c t1gload.c t1afm.c
    
    1251
    +
    
    1252
    +# EOF
    
    1253
    +$ eod
    
    1254
    +$ close out
    
    1255
    +$ write sys$output "... [.src.sdf] directory"
    
    1256
    +$ create [.src.sdf]descrip.mms
    
    1257
    +$ open/append out [.src.sdf]descrip.mms
    
    1258
    +$ copy sys$input: out
    
    1259
    +$ deck
    
    1260
    +#
    
    1261
    +# FreeType 2 sdf driver compilation rules for VMS
    
    1262
    +#
    
    1263
    +
    
    1264
    +
    
    1265
    +# Copyright 1996-2019 by
    
    1266
    +# David Turner, Robert Wilhelm, and Werner Lemberg.
    
    1267
    +#
    
    1268
    +# This file is part of the FreeType project, and may only be used, modified,
    
    1269
    +# and distributed under the terms of the FreeType project license,
    
    1270
    +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
    
    1271
    +# indicate that you have read the license and understand and accept it
    
    1272
    +# fully.
    
    1273
    +
    
    1274
    +
    
    1275
    +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type1])
    
    1276
    +
    
    1277
    +.c.obj :
    
    1278
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    1279
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    1280
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    1281
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    1282
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    1283
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    1284
    +
    
    1285
    +OBJS=sdf.obj
    
    1286
    +
    
    1287
    +OBJS64=sdf_64.obj
    
    1288
    +
    
    949 1289
     all : $(OBJS)
    
    950 1290
             library [--.lib]freetype.olb $(OBJS)
    
    1291
    +        library [--.lib]freetype.olb $(OBJS64)
    
    1292
    +
    
    1293
    +sdf.obj : sdf.c ftbsdf.c ftsdf.c ftsdfcommon.c ftsdfrend.c
    
    951 1294
     
    
    952 1295
     # EOF
    
    953 1296
     $ eod
    
    ... ... @@ -974,10 +1317,21 @@ $ deck
    974 1317
     
    
    975 1318
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type42])
    
    976 1319
     
    
    1320
    +.c.obj :
    
    1321
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    1322
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    1323
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    1324
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    1325
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    1326
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    1327
    +
    
    977 1328
     OBJS=type42.obj
    
    978 1329
     
    
    1330
    +OBJS64=type42_64.obj
    
    1331
    +
    
    979 1332
     all : $(OBJS)
    
    980 1333
             library [--.lib]freetype.olb $(OBJS)
    
    1334
    +        library [--.lib]freetype.olb $(OBJS64)
    
    981 1335
     
    
    982 1336
     # EOF
    
    983 1337
     $ eod
    
    ... ... @@ -1004,10 +1358,21 @@ $ deck
    1004 1358
     
    
    1005 1359
     CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.winfonts])
    
    1006 1360
     
    
    1361
    +.c.obj :
    
    1362
    +	cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
    
    1363
    +	pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
    
    1364
    +	mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
    
    1365
    +	cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
    
    1366
    +	/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
    
    1367
    +	delete $(MMS$TARGET_NAME)_64.c;*
    
    1368
    +
    
    1007 1369
     OBJS=winfnt.obj
    
    1008 1370
     
    
    1371
    +OBJS64=winfnt_64.obj
    
    1372
    +
    
    1009 1373
     all : $(OBJS)
    
    1010 1374
             library [--.lib]freetype.olb $(OBJS)
    
    1375
    +        library [--.lib]freetype.olb $(OBJS64)
    
    1011 1376
     
    
    1012 1377
     # EOF
    
    1013 1378
     $ eod
    
    ... ... @@ -1077,230 +1442,4 @@ $ endif
    1077 1442
     $ return
    
    1078 1443
     $!------------------------------------------------------------------------------
    
    1079 1444
     $!
    
    1080
    -$! Take care of driver file with information about external libraries
    
    1081
    -$!
    
    1082
    -$! Version history
    
    1083
    -$! 0.01 20040220 First version to receive a number
    
    1084
    -$! 0.02 20040229 Echo current procedure name; use general error exit handler
    
    1085
    -$!               Remove xpm hack -> Replaced by more general dnsrl handling
    
    1086
    -$CHECK_CREATE_VMSLIB:
    
    1087
    -$!
    
    1088
    -$ if f$search("VMSLIB.DAT") .eqs. ""
    
    1089
    -$ then
    
    1090
    -$   type/out=vmslib.dat sys$input
    
    1091
    -!
    
    1092
    -! This is a simple driver file with information used by vms_make.com to
    
    1093
    -! check if external libraries (like t1lib and FreeType) are available on
    
    1094
    -! the system.
    
    1095
    -!
    
    1096
    -! Layout of the file:
    
    1097
    -!
    
    1098
    -!    - Lines starting with ! are treated as comments
    
    1099
    -!    - Elements in a data line are separated by # signs
    
    1100
    -!    - The elements need to be listed in the following order
    
    1101
    -!      1.) Name of the Library (only used for informative messages
    
    1102
    -!                               from vms_make.com)
    
    1103
    -!      2.) Location where the object library can be found
    
    1104
    -!      3.) Location where the include files for the library can be found
    
    1105
    -!      4.) Include file used to verify library location
    
    1106
    -!      5.) CPP define to pass to the build to indicate availability of
    
    1107
    -!          the library
    
    1108
    -!
    
    1109
    -! Example: The following lines show how definitions
    
    1110
    -!          might look like. They are site specific and the locations of the
    
    1111
    -!          library and include files need almost certainly to be changed.
    
    1112
    -!
    
    1113
    -! Location: All of the libraries can be found at the following addresses
    
    1114
    -!
    
    1115
    -!   ZLIB:     http://zinser.no-ip.info/vms/sw/zlib.htmlx
    
    1116
    -!
    
    1117
    -ZLIB # sys$library:libz.olb # sys$library: # zlib.h # FT_CONFIG_OPTION_SYSTEM_ZLIB
    
    1118
    -$   write sys$output "New driver file vmslib.dat created."
    
    1119
    -$   write sys$output "Please customize library locations for your site"
    
    1120
    -$   write sys$output "and afterwards re-execute ''myproc'"
    
    1121
    -$   goto err_exit
    
    1122
    -$ endif
    
    1123
    -$!
    
    1124
    -$! Init symbols used to hold CPP definitions and include path
    
    1125
    -$!
    
    1126
    -$ libdefs = "FT2_BUILD_LIBRARY,FT_CONFIG_OPTION_OLD_INTERNALS,"
    
    1127
    -$ libincs = ""
    
    1128
    -$!
    
    1129
    -$! Open data file with location of libraries
    
    1130
    -$!
    
    1131
    -$ open/read/end=end_lib/err=err_lib libdata VMSLIB.DAT
    
    1132
    -$LIB_LOOP:
    
    1133
    -$ read/end=end_lib libdata libline
    
    1134
    -$ libline = f$edit(libline, "UNCOMMENT,COLLAPSE")
    
    1135
    -$ if libline .eqs. "" then goto LIB_LOOP ! Comment line
    
    1136
    -$ libname = f$edit(f$element(0,"#",libline),"UPCASE")
    
    1137
    -$ write sys$output "Processing ''libname' setup ..."
    
    1138
    -$ libloc  = f$element(1,"#",libline)
    
    1139
    -$ libsrc  = f$element(2,"#",libline)
    
    1140
    -$ testinc = f$element(3,"#",libline)
    
    1141
    -$ cppdef  = f$element(4,"#",libline)
    
    1142
    -$ old_cpp = f$locate("=1",cppdef)
    
    1143
    -$ if old_cpp.lt.f$length(cppdef) then cppdef = f$extract(0,old_cpp,cppdef)
    
    1144
    -$ if f$search("''libloc'").eqs. ""
    
    1145
    -$ then
    
    1146
    -$   write sys$output "Can not find library ''libloc' - Skipping ''libname'"
    
    1147
    -$   goto LIB_LOOP
    
    1148
    -$ endif
    
    1149
    -$ libsrc_elem = 0
    
    1150
    -$ libsrc_found = false
    
    1151
    -$LIBSRC_LOOP:
    
    1152
    -$ libsrcdir = f$element(libsrc_elem,",",libsrc)
    
    1153
    -$ if (libsrcdir .eqs. ",") then goto END_LIBSRC
    
    1154
    -$ if f$search("''libsrcdir'''testinc'") .nes. "" then libsrc_found = true
    
    1155
    -$ libsrc_elem = libsrc_elem + 1
    
    1156
    -$ goto LIBSRC_LOOP
    
    1157
    -$END_LIBSRC:
    
    1158
    -$ if .not. libsrc_found
    
    1159
    -$ then
    
    1160
    -$   write sys$output "Can not find includes at ''libsrc' - Skipping ''libname'"
    
    1161
    -$   goto LIB_LOOP
    
    1162
    -$ endif
    
    1163
    -$ if (cppdef .nes. "") then libdefs = libdefs +  cppdef + ","
    
    1164
    -$ libincs = libincs + "," + libsrc
    
    1165
    -$ lqual = "/lib"
    
    1166
    -$ libtype = f$edit(f$parse(libloc,,,"TYPE"),"UPCASE")
    
    1167
    -$ if f$locate("EXE",libtype) .lt. f$length(libtype) then lqual = "/share"
    
    1168
    -$ write optf libloc , lqual
    
    1169
    -$ if (f$trnlnm("topt") .nes. "") then write topt libloc , lqual
    
    1170
    -$!
    
    1171
    -$! Nasty hack to get the FreeType includes to work
    
    1172
    -$!
    
    1173
    -$ ft2def = false
    
    1174
    -$ if ((libname .eqs. "FREETYPE") .and. -
    
    1175
    -      (f$locate("FREETYPE2",cppdef) .lt. f$length(cppdef)))
    
    1176
    -$ then
    
    1177
    -$   if ((f$search("freetype:freetype.h") .nes. "") .and. -
    
    1178
    -        (f$search("freetype:[internal]ftobjs.h") .nes. ""))
    
    1179
    -$   then
    
    1180
    -$     write sys$output "Will use local definition of freetype logical"
    
    1181
    -$   else
    
    1182
    -$     ft2elem = 0
    
    1183
    -$FT2_LOOP:
    
    1184
    -$     ft2srcdir = f$element(ft2elem,",",libsrc)
    
    1185
    -$     if f$search("''ft2srcdir'''testinc'") .nes. ""
    
    1186
    -$     then
    
    1187
    -$        if f$search("''ft2srcdir'internal.dir") .nes. ""
    
    1188
    -$        then
    
    1189
    -$          ft2dev  = f$parse("''ft2srcdir'",,,"device","no_conceal")
    
    1190
    -$          ft2dir  = f$parse("''ft2srcdir'",,,"directory","no_conceal")
    
    1191
    -$          ft2conc = f$locate("][",ft2dir)
    
    1192
    -$          ft2len  = f$length(ft2dir)
    
    1193
    -$          if ft2conc .lt. ft2len
    
    1194
    -$          then
    
    1195
    -$             ft2dir = f$extract(0,ft2conc,ft2dir) + -
    
    1196
    -                       f$extract(ft2conc+2,ft2len-2,ft2dir)
    
    1197
    -$          endif
    
    1198
    -$          ft2dir = ft2dir - "]" + ".]"
    
    1199
    -$          define freetype 'ft2dev''ft2dir','ft2srcdir'
    
    1200
    -$          ft2def = true
    
    1201
    -$        else
    
    1202
    -$          goto ft2_err
    
    1203
    -$        endif
    
    1204
    -$     else
    
    1205
    -$       ft2elem = ft2elem + 1
    
    1206
    -$       goto ft2_loop
    
    1207
    -$     endif
    
    1208
    -$   endif
    
    1209
    -$ endif
    
    1210
    -$ goto LIB_LOOP
    
    1211
    -$END_LIB:
    
    1212
    -$ close libdata
    
    1213
    -$ return
    
    1214
    -$!------------------------------------------------------------------------------
    
    1215
    -$!
    
    1216
    -$! Analyze Object files for OpenVMS AXP to extract Procedure and Data
    
    1217
    -$! information to build a symbol vector for a shareable image
    
    1218
    -$! All the "brains" of this logic was suggested by Hartmut Becker
    
    1219
    -$! (Hartmut.Becker@compaq.com). All the bugs were introduced by me
    
    1220
    -$! (zinser@zinser.no-ip.info), so if you do have problem reports please do not
    
    1221
    -$! bother Hartmut/HP, but get in touch with me
    
    1222
    -$!
    
    1223
    -$! Version history
    
    1224
    -$! 0.01 20040006 Skip over shareable images in option file
    
    1225
    -$!
    
    1226
    -$ ANAL_OBJ_AXP: Subroutine
    
    1227
    -$ V = 'F$Verify(0)
    
    1228
    -$ SAY := "WRITE_ SYS$OUTPUT"
    
    1229
    -$
    
    1230
    -$ IF F$SEARCH("''P1'") .EQS. ""
    
    1231
    -$ THEN
    
    1232
    -$    SAY "ANAL_OBJ_AXP-E-NOSUCHFILE:  Error, inputfile ''p1' not available"
    
    1233
    -$    goto exit_aa
    
    1234
    -$ ENDIF
    
    1235
    -$ IF "''P2'" .EQS. ""
    
    1236
    -$ THEN
    
    1237
    -$    SAY "ANAL_OBJ_AXP:  Error, no output file provided"
    
    1238
    -$    goto exit_aa
    
    1239
    -$ ENDIF
    
    1240
    -$
    
    1241
    -$ open/read in 'p1
    
    1242
    -$ create a.tmp
    
    1243
    -$ open/append atmp a.tmp
    
    1244
    -$ loop:
    
    1245
    -$ read/end=end_loop in line
    
    1246
    -$ if f$locate("/SHARE",f$edit(line,"upcase")) .lt. f$length(line)
    
    1247
    -$ then
    
    1248
    -$   write sys$output "ANAL_SKP_SHR-i-skipshare, ''line'"
    
    1249
    -$   goto loop
    
    1250
    -$ endif
    
    1251
    -$ if f$locate("/LIB",f$edit(line,"upcase")) .lt. f$length(line)
    
    1252
    -$ then
    
    1253
    -$   write libsf line
    
    1254
    -$   write sys$output "ANAL_SKP_LIB-i-skiplib, ''line'"
    
    1255
    -$   goto loop
    
    1256
    -$ endif
    
    1257
    -$ f= f$search(line)
    
    1258
    -$ if f .eqs. ""
    
    1259
    -$ then
    
    1260
    -$	write sys$output "ANAL_OBJ_AXP-w-nosuchfile, ''line'"
    
    1261
    -$	goto loop
    
    1262
    -$ endif
    
    1263
    -$ def/user sys$output nl:
    
    1264
    -$ def/user sys$error nl:
    
    1265
    -$ anal/obj/gsd 'f /out=x.tmp
    
    1266
    -$ open/read xtmp x.tmp
    
    1267
    -$ XLOOP:
    
    1268
    -$ read/end=end_xloop xtmp xline
    
    1269
    -$ xline = f$edit(xline,"compress")
    
    1270
    -$ write atmp xline
    
    1271
    -$ goto xloop
    
    1272
    -$ END_XLOOP:
    
    1273
    -$ close xtmp
    
    1274
    -$ goto loop
    
    1275
    -$ end_loop:
    
    1276
    -$ close in
    
    1277
    -$ close atmp
    
    1278
    -$ if f$search("a.tmp") .eqs. "" -
    
    1279
    -	then $ exit
    
    1280
    -$ ! all global definitions
    
    1281
    -$ search a.tmp "symbol:","EGSY$V_DEF 1","EGSY$V_NORM 1"/out=b.tmp
    
    1282
    -$ ! all procedures
    
    1283
    -$ search b.tmp "EGSY$V_NORM 1"/wind=(0,1) /out=c.tmp
    
    1284
    -$ search c.tmp "symbol:"/out=d.tmp
    
    1285
    -$ def/user sys$output nl:
    
    1286
    -$ edito/edt/command=sys$input d.tmp
    
    1287
    -sub/symbol: "/symbol_vector=(/whole
    
    1288
    -sub/"/=PROCEDURE)/whole
    
    1289
    -exit
    
    1290
    -$ ! all data
    
    1291
    -$ search b.tmp "EGSY$V_DEF 1"/wind=(0,1) /out=e.tmp
    
    1292
    -$ search e.tmp "symbol:"/out=f.tmp
    
    1293
    -$ def/user sys$output nl:
    
    1294
    -$ edito/edt/command=sys$input f.tmp
    
    1295
    -sub/symbol: "/symbol_vector=(/whole
    
    1296
    -sub/"/=DATA)/whole
    
    1297
    -exit
    
    1298
    -$ sort/nodupl d.tmp,f.tmp 'p2'
    
    1299
    -$ delete a.tmp;*,b.tmp;*,c.tmp;*,d.tmp;*,e.tmp;*,f.tmp;*
    
    1300
    -$ if f$search("x.tmp") .nes. "" -
    
    1301
    -	then $ delete x.tmp;*
    
    1302
    -$!
    
    1303
    -$ close libsf
    
    1304
    -$ EXIT_AA:
    
    1305
    -$ if V then set verify
    
    1306 1445
     $ endsubroutine


  • reply via email to

    [Prev in Thread] Current Thread [Next in Thread]