Freetype in Mountain Lion and higher
Henri Gomez
henri.gomez at gmail.com
Sat Oct 13 14:29:27 PDT 2012
Back on this old thread, FreeType and OSX.
In jdk/make/common/Defs.gmk, I see :
ifdef ALT_FREETYPE_LIB_PATH
FREETYPE_LIB_PATH = $(ALT_FREETYPE_LIB_PATH)
ifeq ($(PLATFORM), macosx)
USING_SYSTEM_FT_LIB=true
endif
else
Why USING_SYSTEM_FT_LIB is set to true when ALT_FREETYPE_LIB_PATH is defined ?
ALT_FREETYPE_LIB_PATH is used when a non system lib is provided and
should be copied/embedded in OpenJDK.
Bug ?
2012/5/2 Phil Race <philip.race at oracle.com>:
> I think .6 probably was to ensure we are getting a version was expect.
> If it was something else it might be a red flag to check all worked as
> expected.
>
> There's also the infamous freetype_check program which ensured the
> actual freetype version, not the library version, was what we expected.
> At the time we did the work platforms which had fonts with embedded
> bitmaps were *dead* with freetype. Expect an infinite loop on start up.
>
> The plan was to have pre-built freetype libs which would be imported
> and delivered along with JDK, but *allow* Linux distros to set a variable
> USING_SYSTEM_FT_LIB to say not to do that ..
>
> I am not sure I see why we need another variable (EMBEDDING_EXTERNAL_FT_LIB)
> to say not to not do that ...
>
> For OS X including a copy is absolutely the way to go, and I blocked on
> this a few months ago because I didn't have the cycles to go figure out
> how to fix the freetype build for OS X, which hardwires into itself the
> dylib
> path where it expects to be installed and that code linked against it must
> use, to be standard location.
>
> That seemed to me to be the only issue that seemed to require anything
> except perhaps very, very minor makefile tweaking.
>
> -phil.
>
>
> On 5/2/2012 9:01 AM, Henri Gomez wrote:
>>>>
>>>> ifeq ($(USING_SYSTEM_FT_LIB), false)
>>>> FREETYPE_LIB =
>>>> $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX).6
>>>> endif
>>>
>>>
>>> I'd defer the answer to 2D folks. I can only speculate that this must be
>>> a
>>> minimum required version. Perhaps the makefiles logic might be enhanced
>>> in
>>> this area.
>>
>> Yep, I spent some time on this makefile and it seems incomplete.
>> ie :
>>
>>
>> $(FREETYPE_LIB):
>> $(CP)
>> $(FREETYPE_LIB_PATH)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX) $@
>> endif
>>
>> This goal make me think copy of Freetype library was planned, but need
>> some more tweaking.
>>
>> ifeq ($(PLATFORM), windows)
>> FREETYPE_LIB =
>> $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX)
>> OTHER_LDLIBS += $(FREETYPE_LIB_PATH)/freetype.lib
>> else
>> ifeq ($(USING_SYSTEM_FT_LIB), false)
>> FREETYPE_LIB =
>> $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX).6
>> endif
>> OTHER_LDLIBS += -L$(FREETYPE_LIB_PATH) -lfreetype
>> endif
>>
>> ...
>>
>> #
>> # Libraries to link, and other C flags.
>> #
>>
>> ifeq ($(PLATFORM), macosx))
>> OTHER_INCLUDES += -I$(X11_PATH)/include
>> OTHER_LDLIBS += -lawt $(LIBM) $(LIBCXX)
>> ifeq ($(OS_VENDOR),Apple)
>> # XXXDARWIN Match BSD/Linux behavior -- the mawt.dylib symbols will
>> # be available at runtime.
>> OTHER_LDLIBS += -undefined dynamic_lookup
>> endif
>> else
>> ifeq ($(PLATFORM), solaris)
>> # Note that on Solaris, fontmanager is built against the headless
>> library.
>> LDFLAGS += -L$(LIBDIR)/$(LIBARCH)/headless
>> OTHER_LDLIBS += -lawt -L$(LIBDIR)/$(LIBARCH)/xawt -lmawt -lc $(LIBM)
>> $(LIBCXX)
>> else # PLATFORM is linux
>> OTHER_LDLIBS += -lawt $(LIBM) $(LIBCXX)
>> ifeq ("$(CC_VER_MAJOR)", "3")
>> OTHER_LDLIBS += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic
>> endif
>> endif
>> endif
>>
>> Makefile may need some cleanup to split it between using system FT lib
>> and copying (embedding) provided external FT LIB (via
>> ALT_FREETYPE_HEADERS_PATH and ALT_FREETYPE_LIB_PATH)
>>
>> It will be clearer by using 2 vars.
>>
>> One exist, USING_SYSTEM_FT_LIB, new one could be
>> EMBEDDING_EXTERNAL_FT_LIB.
>>
>> My 0.01$
>
>
More information about the macosx-port-dev
mailing list