use fetch to obtain and patch the freetype2 code.
[AROS.git] / workbench / libs / freetype / mmakefile.src
blobb1c9dc4d9c9573fe3818a57bae7631f35c0c73d8
1 # $Id$
3 include $(SRCDIR)/config/aros.cfg
5 #MM- workbench-libs-freetype-complete : \
6 #MM     workbench-libs-freetype-linklib \
7 #MM     workbench-libs-freetype-module
8 #MM workbench-libs-freetype-linklib : freetype2-fetch
9 #MM workbench-libs-freetype-module : freetype2-fetch
11 FT2NAME         := freetype
12 FT2VERS         := 2.9.1
13 ARCHBASE        := $(FT2NAME)-$(FT2VERS)
15 FT2SRCDIR       := $(PORTSDIR)/$(FT2NAME)2/$(ARCHBASE)
16 FT2AROSBUILDDIR := $(FT2SRCDIR)/builds/aros/src
18 PATCHSPEC       := $(ARCHBASE)-aros.diff:$(ARCHBASE):-p1
19 REPOSITORIES    := https://download.savannah.gnu.org/releases/freetype
21 %fetch mmake=freetype2-fetch archive=$(ARCHBASE) destination=$(PORTSDIR)/$(FT2NAME)2 \
22     location=$(PORTSSOURCEDIR) archive_origins=$(REPOSITORIES) suffixes="tar.gz" \
23     patches_specs=$(PATCHSPEC)
25 %create_patch mmake=freetype2-create-patch \
26     archive=$(ARCHBASE) suffixes="tar.gz" \
27     destination=$(PORTSDIR)/$(FT2NAME)2
29 FT2AUXFILES := \
30     cache/ftcache \
31     gzip/ftgzip \
32     lzw/ftlzw \
33     psaux/psaux \
34     psnames/psnames
36 FT2RASTFILES := \
37     raster/raster \
38     smooth/smooth
40 FT2FONTFILES := \
41     cff/cff \
42     sfnt/sfnt \
43     truetype/truetype \
44     type1/type1 \
45     cid/type1cid \
46     type42/type42 \
47     pcf/pcf \
48     pfr/pfr \
49     winfonts/winfnt \
50     bdf/bdf
52 FT2HINTFILES := \
53     autofit/autofit
54 FT2HINTFILES += \
55     pshinter/pshinter
57 FT2BASEFILES := \
58     base/ftapi \
59     base/ftbase \
60     base/ftinit \
61     base/ftdebug \
62     base/ftsystem
64 FT2BASEEXTFILES := \
65     base/ftbbox \
66     base/ftbdf \
67     base/ftbitmap \
68     base/ftcid \
69     base/ftfstype \
70     base/ftgasp \
71     base/ftglyph \
72     base/ftgxval \
73     base/ftmm \
74     base/ftotval \
75     base/ftpatent \
76     base/ftpfr \
77     base/ftstroke \
78     base/ftsynth \
79     base/fttype1 \
80     base/ftwinfnt
82 # Substitute BASEFILES with the AROS specific versions
83 FT2BASEARCHFILES  := $(patsubst $(FT2AROSBUILDDIR)/%,%,$(basename $(wildcard $(FT2AROSBUILDDIR)/base/*.c)))
84 FT2BASENARCHFILES := $(addprefix $(FT2SRCDIR)/src/,$(filter-out $(FT2BASEARCHFILES),$(FT2BASEFILES) $(FT2BASEEXTFILES)))
86 SHFILES := \
87     ftglyphengine \
88     kerning \
89     glyph \
90     openengine \
91     closeengine \
92     setinfoa \
93     obtaininfoa \
94     releaseinfoa
96 NOWARN_FLAGS := $(NOWARN_ERROR)
97 USER_CFLAGS := $(NOWARN_FLAGS)
98 USER_CPPFLAGS := -DFT2_BUILD_LIBRARY
99 USER_INCLUDES := -I$(SRCDIR)/$(CURDIR)/src $(addprefix -I,$(DIRS))
101 #MM- workbench-libs : workbench-libs-freetype-module
102 #MM workbench-libs-freetype-linklib : workbench-libs-freetype-includes workbench-libs-freetype-pkgconfig
103 #MM workbench-libs-freetype-module : workbench-libs-freetype-includes
104 #MM- workbench-libs-freetype-linklibs : workbench-libs-freetype-linklib workbench-libs-freetype-module-linklib
106 FT2FILES := $(addprefix $(FT2AROSBUILDDIR)/,$(FT2BASEARCHFILES)) $(addprefix $(FT2SRCDIR)/src/,$(FT2AUXFILES) $(FT2RASTFILES) $(FT2FONTFILES) $(FT2HINTFILES)) $(FT2BASENARCHFILES)
108 %build_linklib mmake=workbench-libs-freetype-linklib libname=freetype2.static \
109     files=$(FT2FILES) objdir=$(OBJDIR)/freetype2_static
111 %build_module mmake=workbench-libs-freetype-module modname=freetype2 \
112     modtype=library files="$(SHFILES) $(FT2FILES)" uselibs="stdc" conffile=freetype2.conf
115 # Rules for generated files and Includes...
119 workbench-libs-freetype-pkgconfig : $(AROS_LIB)/pkgconfig/freetype2.pc
121 $(AROS_LIB)/pkgconfig/freetype2.pc : $(FT2SRCDIR)/builds/unix/freetype2.in
122         %mkdir_q dir=$(AROS_LIB)/pkgconfig
123         @$(SED) -e 's|%FT2_EXTRA_LIBS%||' \
124                -e 's|%LIBBZ2%||' \
125                -e 's|%LIBZ%|-L $(AROS_LIB) -lz|' \
126                -e 's|%exec_prefix%|$${prefix}|' \
127                -e 's|%ft_version%|2.5.0|' \
128                -e 's|%includedir%|$${prefix}/include|' \
129                -e 's|%libdir%|$(AROS_LIB)|' \
130                -e 's|%prefix%|/Developer|' \
131                $< >$@
133 FT2_INCLUDE_FILES := $(notdir $(call WILDCARD, $(FT2SRCDIR)/include/*.h))
134 %copy_includes dir=$(FT2SRCDIR)/include includes=$(FT2_INCLUDE_FILES)
136 FT2I_INCLUDE_FILES := $(notdir $(call WILDCARD, $(FT2SRCDIR)/include/freetype/*.h))
137 %copy_includes path=freetype dir=$(FT2SRCDIR)/include/freetype includes=$(FT2I_INCLUDE_FILES)
139 #MM- includes-copy : workbench-libs-freetype-genincludes
141 FT2OPTIONFILE := ftoption.h
142 FT2CONFIG_INCLUDE_FILES := $(filter-out $(FT2OPTIONFILE),$(notdir $(call WILDCARD, $(FT2SRCDIR)/include/freetype/config/*.h)))
143 %copy_includes path=freetype/config  dir=$(FT2SRCDIR)/include/freetype/config includes=$(FT2CONFIG_INCLUDE_FILES)
145 $(AROS_INCLUDES)/freetype/config/$(FT2OPTIONFILE) : $(FT2SRCDIR)/include/freetype/config/$(FT2OPTIONFILE)
146         @$(ECHO) "Generating Freetype2 build options ..."
147         %mkdir_q dir=$(AROS_INCLUDES)/freetype/config
148         @$(SED) "s|.*FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES.*|/*define FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES*/\\n|g" $< > $@
151 workbench-libs-freetype-genincludes : $(AROS_INCLUDES)/freetype/config/$(FT2OPTIONFILE)
152         $(NOP)
154 FT2INT_INCLUDE_FILES := $(notdir $(call WILDCARD, $(FT2SRCDIR)/include/freetype/internal/*.h))
155 %copy_includes path=freetype/internal dir=$(FT2SRCDIR)/include/freetype/internal includes=$(FT2INT_INCLUDE_FILES)
157 FT2SVC_INCLUDE_FILES := $(notdir $(call WILDCARD, $(FT2SRCDIR)/include/freetype/internal/services/*.h))
158 %copy_includes path=freetype/internal/services dir=$(FT2SRCDIR)/include/freetype/internal/services includes=$(FT2SVC_INCLUDE_FILES)