🛠️🐜 Antkeeper superbuild with dependencies included https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
4.6 KiB

  1. README for the builds/amiga subdirectory.
  2. Copyright (C) 2005-2021 by
  3. Werner Lemberg and Detlef W�rkner.
  4. This file is part of the FreeType project, and may only be used, modified,
  5. and distributed under the terms of the FreeType project license,
  6. LICENSE.TXT. By continuing to use, modify, or distribute this file you
  7. indicate that you have read the license and understand and accept it
  8. fully.
  9. The makefile.os4 is for the AmigaOS4 SDK. To use it, type
  10. "make -f makefile.os4", it produces a link library libft2_ppc.a.
  11. The makefile is for ppc-morphos-gcc-2.95.3-bin.tgz (gcc 2.95.3 hosted on
  12. 68k-Amiga producing MorphOS-PPC-binaries from http://www.morphos.de).
  13. To use it, type "make assign", then "make"; it produces a link library
  14. libft2_ppc.a.
  15. The smakefile is a makefile for Amiga SAS/C 6.58 (no longer available,
  16. latest sold version was 6.50, updates can be found in Aminet). It is
  17. based on the version found in the sourcecode of ttf.library 0.83b for
  18. FreeType 1.3.1 from Richard Griffith (ragriffi@sprynet.com,
  19. http://ragriffi.home.sprynet.com).
  20. You will also need the latest include files and amiga.lib from the
  21. Amiga web site (https://os.amigaworld.de/download.php?id=3) for
  22. AmigaOS 3.9; the generated code should work under AmigaOS 2.04 and up.
  23. To use it, call "smake assign" and then "smake" from the builds/amiga
  24. directory. The results are:
  25. - A link library "ft2_680x0.lib" (where x depends on the setting of
  26. the CPU entry in the smakefile) containing all FreeType2 parts
  27. except of the init code, debugging code, and the system interface
  28. code.
  29. - ftsystem.o, an object module containing the standard version of the
  30. system interface code which uses fopen() fclose() fread() fseek()
  31. ftell() malloc() realloc() and free() from lib:sc.lib (not pure).
  32. - ftsystempure.o, an object module containing the pure version of the
  33. system interface code which uses Open() Close() Read() Seek()
  34. ExamineFH() AsmAllocPooled() AsmFreePooled() etc. This version can
  35. be used in both normal programs and in Amiga run-time shared system
  36. librarys (can be linked with lib:libinit.o, no copying of DATA and
  37. BSS hunks for each OpenLibrary() necessary). Source code is in
  38. src/base/ftsystem.c.
  39. - ftdebug.o, an object module containing the standard version of the
  40. debugging code which uses vprintf() and exit() (not pure).
  41. Debugging can be turned on in FT:include/freetype/config/ftoption.h
  42. and with FT_SetTraceLevel().
  43. - ftdebugpure.o, an object module containing the pure version of the
  44. debugging code which uses KVPrintf() from lib:debug.lib and no
  45. exit(). For debugging of Amiga run-time shared system libraries.
  46. Source code is in src/base/ftdebug.c.
  47. - NO ftinit.o. Because linking with a link library should result in
  48. linking only the needed object modules in it, but standard
  49. ftsystem.o would force ALL FreeType2 modules to be linked to your
  50. program, I decided to use a different scheme: You must #include
  51. FT:src/base/ftinit.c in your sourcecode and specify with #define
  52. statements which modules you need. See
  53. include/freetype/config/ftmodule.h.
  54. To use in your own programs:
  55. - Insert the #define and #include statements from top of
  56. include/freetype/config/ftmodule.h in your source code and
  57. uncomment the #define statements for the FreeType2 modules you need.
  58. - You can use either PARAMETERS=REGISTER or PARAMETERS=STACK for
  59. calling the FreeType2 functions, because the link library and the
  60. object files are compiled with PARAMETERS=BOTH.
  61. - "smake assign" (assign "FT:" to the FreeType2 main directory).
  62. - Compile your program.
  63. - Link with either ftsystem.o or ftsystempure.o, if debugging enabled
  64. with either ftdebug.o or (ftdebugpure.o and lib:debug.lib), and with
  65. ft2_680x0.lib as link library.
  66. To adapt to other compilers:
  67. - The standard ANSI C maximum length of 31 significant characters in
  68. identifiers is not enough for FreeType2. Check if your compiler has
  69. a minimum length of 40 significant characters or can be switched to
  70. it. "idlen=40" is the option for SAS/C. Setting #define
  71. HAVE_LIMIT_ON_IDENTS in an include file may also work (not tested).
  72. - Make sure that the include directory in builds/amiga is searched
  73. before the normal FreeType2 include directory, so you are able to
  74. replace problematic include files with your own version (same may be
  75. useful for the src directory).
  76. - An example of how to replace/workaround a problematic include file
  77. is include/freetype/config/ftconfig.h; it changes a #define that
  78. would prevent SAS/C from generating XDEF's where it should do that and
  79. then includes the standard FreeType2 include file.
  80. Local Variables:
  81. coding: latin-1
  82. End: