diff --git a/config/ansi/ftmodule.h b/config/ansi/ftmodule.h new file mode 100644 index 000000000..e87e49d27 --- /dev/null +++ b/config/ansi/ftmodule.h @@ -0,0 +1,3 @@ +FT_DRIVER(sfnt_driver_interface) +FT_DRIVER(tt_driver_interface) +FT_DRIVER(t1_driver_interface) diff --git a/config/dos/ftmodule.h b/config/dos/ftmodule.h new file mode 100644 index 000000000..e87e49d27 --- /dev/null +++ b/config/dos/ftmodule.h @@ -0,0 +1,3 @@ +FT_DRIVER(sfnt_driver_interface) +FT_DRIVER(tt_driver_interface) +FT_DRIVER(t1_driver_interface) diff --git a/config/freetype.mk b/config/freetype.mk index 4f78e08ab..711e0aecf 100644 --- a/config/freetype.mk +++ b/config/freetype.mk @@ -19,6 +19,10 @@ #**************************************************************************** +# include the 'modules' rules file +# +include $(TOP)/config/modules.mk + # The targets `objects', `library' and `multiple' are defined # at the end of this Makefile when all rules have been included.. # @@ -90,13 +94,6 @@ COMPONENTS_LIST := DRIVERS_LIST := OBJECTS_LIST := -# free the list of 'ftinit' variables -# -FTINIT_DRIVER_PATHS := -FTINIT_DRIVER_H := -FTINIT_DRIVER_MACROS := - - # System-specific component - this must be defined in this Makefile # for easy updates # @@ -152,7 +149,7 @@ include $(wildcard $(SRC)/*/rules.mk) FTINIT_SRC := $(BASE_DIR)$(SEP)ftinit.c FTINIT_OBJ := $(OBJ_)ftinit.$O -$(FTINIT_OBJ): $(FTINIT_SRC) $(BASE_H) $(FTINIT_DRIVER_H) +$(FTINIT_OBJ): $(FTINIT_SRC) $(BASE_H) $(FTINIT_DRIVER_H) $(FT_MODULE_LIST) $(FT_COMPILE) $(FTINIT_DRIVER_PATHS:%=$I%) \ $(FTINIT_DRIVER_MACROS:%=$D%) $T$@ $< diff --git a/config/modules.mk b/config/modules.mk new file mode 100644 index 000000000..0ad7db171 --- /dev/null +++ b/config/modules.mk @@ -0,0 +1,67 @@ +#**************************************************************************** +#* * +#* FreeType modules sub-Makefile * +#* * +#* Copyright 1996-1999 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. * +#* * +#* * +#* * +#* DO NOT INVOKE THIS MAKEFILE DIRECTLY. IT IS MEANT TO BE INCLUDED BY * +#* OTHER MAKEFILES. * +#* * +#* This file is in charge of handling the generation of the modules list * +#* file, normally located in `config//modules'. * +#* * +#**************************************************************************** + +.PHONY: make_module_list clean_module_list remake_module_list + +# MODULE_LIST, as it name suggests, indicate where the modules list +# reside. For now, it is in $(BUILD)/ftmodule.h +# +FT_MODULE_LIST := $(BUILD)$(SEP)ftmodule.h + +# To build the modules list, we invoke the `make_module_list' target +# +#$(FT_MODULE_LIST): make_module_list + +# Before the modules list file can be generated, we must remove the +# file in order to `clean' the list +# +clean_module_list: + @$(DELETE) $(FT_MODULE_LIST) + @echo Regenerating the font drivers list in '$(FT_MODULE_LIST)' + +make_module_list: clean_module_list + @echo -- done -- + +ifneq ($(findstring $(PLATFORM),dos win32 win16 os2),) +OPEN_MODULE := @echo +CLOSE_MODULE := >> $(FT_MODULE_LIST) +else +OPEN_MODULE := @echo " +CLOSE_MODULE := " >> $(FT_MODULE_LIST) +endif + +# OPEN_DRIVER & CLOSE_DRIVER are used to specify a given font driver +# in the `module.mk' rules file +# +OPEN_DRIVER := $(OPEN_MODULE)FT_DRIVER( +CLOSE_DRIVER := )$(CLOSE_MODULE) + +ECHO_DRIVER := @echo "* driver: +ECHO_DRIVER_DESC := ( +ECHO_DRIVER_DONE := )" + +# each `module.mk' in the `src' sub-dirs is used to add one rule to +# the target `make_module_list'. +# +include $(wildcard $(TOP)/src/*/module.mk) + diff --git a/config/os2/ftmodule.h b/config/os2/ftmodule.h new file mode 100644 index 000000000..e87e49d27 --- /dev/null +++ b/config/os2/ftmodule.h @@ -0,0 +1,3 @@ +FT_DRIVER(sfnt_driver_interface) +FT_DRIVER(tt_driver_interface) +FT_DRIVER(t1_driver_interface) diff --git a/config/unix/detect.mk b/config/unix/detect.mk index 3d39c64e9..0ec120bc4 100644 --- a/config/unix/detect.mk +++ b/config/unix/detect.mk @@ -17,7 +17,14 @@ PLATFORM := unix COPY := cp DELETE := rm -f +# if `devel' is the requested target, use the development Makefile +# +ifneq ($(findstring devel,$(MAKECMDGOALS)),) +CONFIG_RULES := $(BUILD)$(SEP)Makefile.devel +devel: ; +else CONFIG_RULES := $(BUILD)$(SEP)Makefile +endif setup: std_setup diff --git a/config/unix/ftmodule.h b/config/unix/ftmodule.h new file mode 100644 index 000000000..e87e49d27 --- /dev/null +++ b/config/unix/ftmodule.h @@ -0,0 +1,3 @@ +FT_DRIVER(sfnt_driver_interface) +FT_DRIVER(tt_driver_interface) +FT_DRIVER(t1_driver_interface) diff --git a/config/win32/ftmodule.h b/config/win32/ftmodule.h new file mode 100644 index 000000000..e87e49d27 --- /dev/null +++ b/config/win32/ftmodule.h @@ -0,0 +1,3 @@ +FT_DRIVER(sfnt_driver_interface) +FT_DRIVER(tt_driver_interface) +FT_DRIVER(t1_driver_interface)