[builds] Necessary changes to make 'dlg' compile.
* autogen.sh (copy_submodule_files): New script to copy all the necessary source and include files from `submodules/dlg` to `src/dlg`. * src/dlg/dlgwrap.c: New wrapper file for `src/dlg.c`. It enables the build of 'dlg' if the `FT_LOGGING` macro is defined. * src/dlg/rules.mk: New sub-Makefile. * builds/freetype.mk (DLG_DIR): New variable to include the header files of the 'dlg' library. (INCLUDES): Add `DLG_DIR`. (FT_CFLAGS): Add `-std=c99' flag. Include `src/dlg/rules.mk` file to build 'dlg' library. (OBJ_S, OBJ_M): Add `DLG_OBJS_M` and `DLG_OBJS_S`. * builds/toplevel.mk: For builds directly from the git repository we need to copy files from `submodule/dlg` to `src/dlg`. * include/freetype/config/ftoption.h, devel/ftoption.h (FT_LOGGING): New macro to enable or disable the logging facility in FreeType.
This commit is contained in:
parent
8da4b437b4
commit
34b1c897c1
26
ChangeLog
26
ChangeLog
|
@ -1,3 +1,29 @@
|
||||||
|
2020-11-27 Priyesh Kumar <priyeshkkumar@gmail.com>
|
||||||
|
|
||||||
|
[builds] Necessary changes to make 'dlg' compile.
|
||||||
|
|
||||||
|
* autogen.sh (copy_submodule_files): New script to copy all the
|
||||||
|
necessary source and include files from `submodules/dlg` to
|
||||||
|
`src/dlg`.
|
||||||
|
|
||||||
|
* src/dlg/dlgwrap.c: New wrapper file for `src/dlg.c`. It enables
|
||||||
|
the build of 'dlg' if the `FT_LOGGING` macro is defined.
|
||||||
|
|
||||||
|
* src/dlg/rules.mk: New sub-Makefile.
|
||||||
|
|
||||||
|
* builds/freetype.mk (DLG_DIR): New variable to include the
|
||||||
|
header files of the 'dlg' library.
|
||||||
|
(INCLUDES): Add `DLG_DIR`.
|
||||||
|
(FT_CFLAGS): Add `-std=c99' flag.
|
||||||
|
Include `src/dlg/rules.mk` file to build 'dlg' library.
|
||||||
|
(OBJ_S, OBJ_M): Add `DLG_OBJS_M` and `DLG_OBJS_S`.
|
||||||
|
|
||||||
|
* builds/toplevel.mk: For builds directly from the git repository
|
||||||
|
we need to copy files from `submodule/dlg` to `src/dlg`.
|
||||||
|
|
||||||
|
* include/freetype/config/ftoption.h, devel/ftoption.h (FT_LOGGING):
|
||||||
|
New macro to enable or disable the logging facility in FreeType.
|
||||||
|
|
||||||
2020-11-27 Priyesh Kumar <priyeshkkumar@gmail.com>
|
2020-11-27 Priyesh Kumar <priyeshkkumar@gmail.com>
|
||||||
|
|
||||||
* .gitmodules: Add 'dlg' library's git repository as submodule.
|
* .gitmodules: Add 'dlg' library's git repository as submodule.
|
||||||
|
|
21
autogen.sh
21
autogen.sh
|
@ -162,4 +162,25 @@ cd ../..
|
||||||
|
|
||||||
chmod +x ./configure
|
chmod +x ./configure
|
||||||
|
|
||||||
|
# Copy all necessary 'dlg' files.
|
||||||
|
copy_submodule_files ()
|
||||||
|
{
|
||||||
|
echo "Copying files from \`submodules/dlg' to \`src/dlg'"
|
||||||
|
mkdir src/dlg/dlg
|
||||||
|
cp $DLG_INC_DIR/dlg.h src/dlg/dlg
|
||||||
|
cp $DLG_INC_DIR/output.h src/dlg/dlg
|
||||||
|
cp $DLG_SRC_DIR/* src/dlg
|
||||||
|
}
|
||||||
|
|
||||||
|
DLG_INC_DIR=submodules/dlg/include/dlg
|
||||||
|
DLG_SRC_DIR=submodules/dlg/src/dlg
|
||||||
|
|
||||||
|
if ! test -d "$DLG_INC_DIR"; then
|
||||||
|
echo "Checking out submodule in \`submodules/dlg':"
|
||||||
|
git submodule init
|
||||||
|
git submodule update
|
||||||
|
fi
|
||||||
|
|
||||||
|
copy_submodule_files
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -101,6 +101,7 @@ PUBLIC_DIR := $(TOP_DIR)/include/freetype
|
||||||
INTERNAL_DIR := $(PUBLIC_DIR)/internal
|
INTERNAL_DIR := $(PUBLIC_DIR)/internal
|
||||||
SERVICES_DIR := $(INTERNAL_DIR)/services
|
SERVICES_DIR := $(INTERNAL_DIR)/services
|
||||||
CONFIG_DIR := $(PUBLIC_DIR)/config
|
CONFIG_DIR := $(PUBLIC_DIR)/config
|
||||||
|
DLG_DIR := $(TOP_DIR)/src/dlg
|
||||||
|
|
||||||
# The documentation directory.
|
# The documentation directory.
|
||||||
#
|
#
|
||||||
|
@ -122,6 +123,7 @@ PROJECT_LIBRARY := $(LIB_DIR)/$(LIBRARY).$A
|
||||||
INCLUDES := $(subst /,$(COMPILER_SEP),$(OBJ_DIR) \
|
INCLUDES := $(subst /,$(COMPILER_SEP),$(OBJ_DIR) \
|
||||||
$(DEVEL_DIR) \
|
$(DEVEL_DIR) \
|
||||||
$(BUILD_DIR) \
|
$(BUILD_DIR) \
|
||||||
|
$(DLG_DIR) \
|
||||||
$(TOP_DIR)/include)
|
$(TOP_DIR)/include)
|
||||||
|
|
||||||
INCLUDE_FLAGS := $(INCLUDES:%=$I%)
|
INCLUDE_FLAGS := $(INCLUDES:%=$I%)
|
||||||
|
@ -150,9 +152,10 @@ endif
|
||||||
#
|
#
|
||||||
# `CPPFLAGS' might be specified by the user in the environment.
|
# `CPPFLAGS' might be specified by the user in the environment.
|
||||||
#
|
#
|
||||||
FT_CFLAGS = $(CPPFLAGS) \
|
FT_CFLAGS = $(CPPFLAGS) \
|
||||||
$(CFLAGS) \
|
$(CFLAGS) \
|
||||||
$DFT2_BUILD_LIBRARY
|
$DFT2_BUILD_LIBRARY \
|
||||||
|
-std=c99
|
||||||
|
|
||||||
FT_COMPILE := $(CC) $(ANSIFLAGS) $(INCLUDE_FLAGS) $(FT_CFLAGS)
|
FT_COMPILE := $(CC) $(ANSIFLAGS) $(INCLUDE_FLAGS) $(FT_CFLAGS)
|
||||||
|
|
||||||
|
@ -220,6 +223,7 @@ $(FTDEBUG_OBJ): $(FTDEBUG_SRC) $(FREETYPE_H)
|
||||||
#
|
#
|
||||||
include $(SRC_DIR)/base/rules.mk
|
include $(SRC_DIR)/base/rules.mk
|
||||||
include $(patsubst %,$(SRC_DIR)/%/rules.mk,$(MODULES))
|
include $(patsubst %,$(SRC_DIR)/%/rules.mk,$(MODULES))
|
||||||
|
include $(SRC_DIR)/dlg/rules.mk
|
||||||
|
|
||||||
|
|
||||||
# ftinit component
|
# ftinit component
|
||||||
|
@ -260,8 +264,8 @@ endif
|
||||||
|
|
||||||
# All FreeType library objects.
|
# All FreeType library objects.
|
||||||
#
|
#
|
||||||
OBJ_M := $(BASE_OBJ_M) $(BASE_EXT_OBJ) $(DRV_OBJS_M)
|
OBJ_M := $(BASE_OBJ_M) $(BASE_EXT_OBJ) $(DRV_OBJS_M) $(DLG_OBJS_M)
|
||||||
OBJ_S := $(BASE_OBJ_S) $(BASE_EXT_OBJ) $(DRV_OBJS_S)
|
OBJ_S := $(BASE_OBJ_S) $(BASE_EXT_OBJ) $(DRV_OBJS_S) $(DLG_OBJS_S)
|
||||||
|
|
||||||
|
|
||||||
# The target `multi' on the Make command line indicates that we want to
|
# The target `multi' on the Make command line indicates that we want to
|
||||||
|
|
|
@ -103,6 +103,23 @@ ifneq ($(findstring setup,$(MAKECMDGOALS)),)
|
||||||
check_platform := 1
|
check_platform := 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# For builds directly from the git repository we need to copy files
|
||||||
|
# from `submodule/dlg' to `src/dlg'.
|
||||||
|
#
|
||||||
|
ifeq ($(wildcard src/dlg/dlg.*),)
|
||||||
|
ifeq ($(wildcard submodules/dlg/dlg.*),)
|
||||||
|
$(info Checking out submodule in `submodules/dlg')
|
||||||
|
$(shell git submodule init)
|
||||||
|
$(shell git submodule update)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(info Copying files from `submodules/dlg' to `src/dlg')
|
||||||
|
$(shell mkdir src/dlg/dlg)
|
||||||
|
$(shell cp submodules/dlg/include/dlg/dlg.h src/dlg/dlg)
|
||||||
|
$(shell cp submodules/dlg/include/dlg/output.h src/dlg/dlg)
|
||||||
|
$(shell cp submodules/dlg/src/dlg/dlg.c src/dlg/)
|
||||||
|
endif
|
||||||
|
|
||||||
# Include the automatic host platform detection rules when we need to
|
# Include the automatic host platform detection rules when we need to
|
||||||
# check the platform.
|
# check the platform.
|
||||||
#
|
#
|
||||||
|
|
|
@ -431,6 +431,21 @@ FT_BEGIN_HEADER
|
||||||
#define FT_DEBUG_LEVEL_TRACE
|
#define FT_DEBUG_LEVEL_TRACE
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Logging
|
||||||
|
*
|
||||||
|
* Compiling FreeType in debug or trace mode makes FreeType write error
|
||||||
|
* and trace log messages to `stderr`. Enabling this macro
|
||||||
|
* automatically forces the `FT_DEBUG_LEVEL_ERROR` and
|
||||||
|
* `FT_DEBUG_LEVEL_TRACE` macros and allows FreeType to write error and
|
||||||
|
* trace log messages to a file instead of `stderr`. For writing logs
|
||||||
|
* to a file, FreeType uses an the external `dlg` library (the source
|
||||||
|
* code is in `src/dlg`).
|
||||||
|
*/
|
||||||
|
#define FT_LOGGING
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
*
|
*
|
||||||
* Autofitter debugging
|
* Autofitter debugging
|
||||||
|
|
|
@ -431,6 +431,21 @@ FT_BEGIN_HEADER
|
||||||
/* #define FT_DEBUG_LEVEL_TRACE */
|
/* #define FT_DEBUG_LEVEL_TRACE */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Logging
|
||||||
|
*
|
||||||
|
* Compiling FreeType in debug or trace mode makes FreeType write error
|
||||||
|
* and trace log messages to `stderr`. Enabling this macro
|
||||||
|
* automatically forces the `FT_DEBUG_LEVEL_ERROR` and
|
||||||
|
* `FT_DEBUG_LEVEL_TRACE` macros and allows FreeType to write error and
|
||||||
|
* trace log messages to a file instead of `stderr`. For writing logs
|
||||||
|
* to a file, FreeType uses an the external `dlg` library (the source
|
||||||
|
* code is in `src/dlg`).
|
||||||
|
*/
|
||||||
|
/* #define FT_LOGGING */
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
*
|
*
|
||||||
* Autofitter debugging
|
* Autofitter debugging
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* dlgwrap.c
|
||||||
|
*
|
||||||
|
* Wrapper file for the 'dlg' library (body only)
|
||||||
|
*
|
||||||
|
* Copyright (C) 2020 by
|
||||||
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
*
|
||||||
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
* modified, and distributed under the terms of the FreeType project
|
||||||
|
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
|
* this file you indicate that you have read the license and
|
||||||
|
* understand and accept it fully.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <freetype/freetype.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FT_LOGGING
|
||||||
|
#include "dlg.c"
|
||||||
|
#else
|
||||||
|
/* ANSI C doesn't like empty source files */
|
||||||
|
typedef int _dlg_dummy;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
|
@ -0,0 +1,70 @@
|
||||||
|
#
|
||||||
|
# FreeType 2 dlg logging library configuration rules
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# Copyright (C) 2020 by
|
||||||
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
#
|
||||||
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
|
# and distributed under the terms of the FreeType project license,
|
||||||
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
|
# indicate that you have read the license and understand and accept it
|
||||||
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
|
# dlg logging library directory
|
||||||
|
#
|
||||||
|
DLG_DIR := $(SRC_DIR)/dlg
|
||||||
|
|
||||||
|
|
||||||
|
# compilation flags for the library
|
||||||
|
#
|
||||||
|
DLG_COMPILE := $(CC) $(ANSIFLAGS) \
|
||||||
|
$I$(subst /,$(COMPILER_SEP),$(DLG_DIR)) \
|
||||||
|
$(INCLUDE_FLAGS) \
|
||||||
|
$(FT_CFLAGS)
|
||||||
|
|
||||||
|
|
||||||
|
# dlg logging library sources (i.e., C files)
|
||||||
|
#
|
||||||
|
DLG_SRC := $(DLG_DIR)/dlgwrap.c
|
||||||
|
|
||||||
|
# dlg logging library headers
|
||||||
|
#
|
||||||
|
DLG_H := $(DLG_DIR)/dlg/dlg.h \
|
||||||
|
$(DLG_DIR)/dlg/output.h
|
||||||
|
|
||||||
|
|
||||||
|
# dlg logging library object(s)
|
||||||
|
#
|
||||||
|
# DLG_OBJ_M is used during `multi' builds
|
||||||
|
# DLG_OBJ_S is used during `single' builds
|
||||||
|
#
|
||||||
|
DLG_OBJ_M := $(DLG_SRC:$(DLG_DIR)/%.c=$(OBJ_DIR)/%.$O)
|
||||||
|
DLG_OBJ_S := $(OBJ_DIR)/dlg.$O
|
||||||
|
|
||||||
|
# dlg logging library source file for single build
|
||||||
|
#
|
||||||
|
DLG_SRC_S := $(DLG_DIR)/dlgwrap.c
|
||||||
|
|
||||||
|
|
||||||
|
# dlg logging library - single object
|
||||||
|
#
|
||||||
|
$(DLG_OBJ_S): $(DLG_SRC_S) $(DLG_SRC) $(FREETYPE_H) $(DLG_H)
|
||||||
|
$(DLG_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(DLG_SRC_S))
|
||||||
|
|
||||||
|
|
||||||
|
# dlg logging library - multiple objects
|
||||||
|
#
|
||||||
|
$(OBJ_DIR)/%.$O: $(DLG_DIR)/%.c $(FREETYPE_H) $(DLG_H)
|
||||||
|
$(DLG_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
|
||||||
|
|
||||||
|
|
||||||
|
# update main object lists
|
||||||
|
#
|
||||||
|
DLG_OBJS_S += $(DLG_OBJ_S)
|
||||||
|
DLG_OBJS_M += $(DLG_OBJ_M)
|
||||||
|
|
||||||
|
|
||||||
|
# EOF
|
Loading…
Reference in New Issue