Commit f8bf6e2bc95e6458d5f6eec561a982df4e571e54

David Turner 1999-12-29T00:19:37

Added the file `config/modules.mk' used to generate the file `config/<platform>/ftmodule.h' which contains the list of available font drivers. The list can be re-generated with "make modules" from the top directory

diff --git a/config/ansi/ftmodule.h b/config/ansi/ftmodule.h
new file mode 100644
index 0000000..e87e49d
--- /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 0000000..e87e49d
--- /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 4f78e08..711e0ae 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 0000000..0ad7db1
--- /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/<platform>/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 0000000..e87e49d
--- /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 3d39c64..0ec120b 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 0000000..e87e49d
--- /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 0000000..e87e49d
--- /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)