From 36d03c9f583f4c4b2ad2870784e2fe50814820c9 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Mon, 12 Jan 2015 11:26:30 +0100 Subject: [PATCH] Fix Savannah bug #43976. Assure that FreeType's internal include directories are found before `CPPFLAGS' (which might be set by the user in the environment), and `CPPFLAGS' before `CFLAGS'. * builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'. (FT_COMPILE): Make this a special variable for compiling only the files handled in `freetype.mk'. (.c.$O): Removed, unused. * src/*/rules.mk (*_COMPILE): Fix order of include directories. --- ChangeLog | 15 +++++++++++++++ builds/freetype.mk | 9 +++------ src/autofit/rules.mk | 5 ++++- src/base/rules.mk | 5 ++++- src/bdf/rules.mk | 5 ++++- src/bzip2/rules.mk | 4 +++- src/cache/rules.mk | 7 ++++++- src/cff/rules.mk | 5 ++++- src/cid/rules.mk | 5 ++++- src/gxvalid/rules.mk | 5 ++++- src/gzip/rules.mk | 9 +++++++-- src/lzw/rules.mk | 5 ++++- src/otvalid/rules.mk | 5 ++++- src/pcf/rules.mk | 5 ++++- src/pfr/rules.mk | 5 ++++- src/psaux/rules.mk | 5 ++++- src/pshinter/rules.mk | 5 ++++- src/psnames/rules.mk | 5 ++++- src/raster/rules.mk | 5 ++++- src/sfnt/rules.mk | 5 ++++- src/smooth/rules.mk | 6 +++++- src/truetype/rules.mk | 5 ++++- src/type1/rules.mk | 5 ++++- src/type42/rules.mk | 5 ++++- src/winfonts/rules.mk | 5 ++++- 25 files changed, 115 insertions(+), 30 deletions(-) diff --git a/ChangeLog b/ChangeLog index 084f67d09..027a29311 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2015-01-12 Werner Lemberg + + Fix Savannah bug #43976. + + Assure that FreeType's internal include directories are found before + `CPPFLAGS' (which might be set by the user in the environment), and + `CPPFLAGS' before `CFLAGS'. + + * builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'. + (FT_COMPILE): Make this a special variable for compiling only the + files handled in `freetype.mk'. + (.c.$O): Removed, unused. + + * src/*/rules.mk (*_COMPILE): Fix order of include directories. + 2015-01-11 Werner Lemberg [truetype] Prettyfing. diff --git a/builds/freetype.mk b/builds/freetype.mk index 8b2e2eace..5e874ac09 100644 --- a/builds/freetype.mk +++ b/builds/freetype.mk @@ -155,15 +155,13 @@ ifneq ($(wildcard $(OBJ_DIR)/ftoption.h),) FTOPTION_FLAG := $DFT_CONFIG_OPTIONS_H="" endif -# Note that a build with the `configure' script uses $(CFLAGS) only. +# `CPPFLAGS' might be specified by the user in the environment. # FT_CFLAGS = $(CPPFLAGS) \ - $(INCLUDE_FLAGS) \ $(CFLAGS) \ $DFT2_BUILD_LIBRARY \ $DFT_CONFIG_MODULES_H="" \ $(FTOPTION_FLAG) -FT_COMPILE = $(CC) $(ANSIFLAGS) $(FT_CFLAGS) # Include the `exports' rules file. @@ -195,6 +193,8 @@ DEVEL_H := $(wildcard $(TOP_DIR)/devel/*.h) FREETYPE_H := $(PUBLIC_H) $(INTERNAL_H) $(CONFIG_H) $(DEVEL_H) +FT_COMPILE := $(CC) $(ANSIFLAGS) $(INCLUDE_FLAGS) $(FT_CFLAGS) + # ftsystem component # FTSYS_SRC ?= $(BASE_DIR)/ftsystem.c @@ -270,9 +270,6 @@ objects: $(OBJECTS_LIST) library: $(PROJECT_LIBRARY) -.c.$O: - $(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<) - ifneq ($(findstring refdoc,$(MAKECMDGOALS)),) # poor man's `sed' emulation with make's built-in string functions diff --git a/src/autofit/rules.mk b/src/autofit/rules.mk index 658f04ea5..5849cbe4f 100644 --- a/src/autofit/rules.mk +++ b/src/autofit/rules.mk @@ -20,7 +20,10 @@ AUTOF_DIR := $(SRC_DIR)/autofit # compilation flags for the driver # -AUTOF_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(AUTOF_DIR)) +AUTOF_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(AUTOF_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # AUTOF driver sources (i.e., C files) diff --git a/src/base/rules.mk b/src/base/rules.mk index cbd810732..640ab6db9 100644 --- a/src/base/rules.mk +++ b/src/base/rules.mk @@ -23,7 +23,10 @@ # layer proper. -BASE_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(SRC_DIR)/base) +BASE_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(BASE_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # Base layer sources diff --git a/src/bdf/rules.mk b/src/bdf/rules.mk index 6ff1614dd..d1dd76b1c 100644 --- a/src/bdf/rules.mk +++ b/src/bdf/rules.mk @@ -32,7 +32,10 @@ BDF_DIR := $(SRC_DIR)/bdf -BDF_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(BDF_DIR)) +BDF_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(BDF_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # bdf driver sources (i.e., C files) diff --git a/src/bzip2/rules.mk b/src/bzip2/rules.mk index 0ff2628b4..845066d4c 100644 --- a/src/bzip2/rules.mk +++ b/src/bzip2/rules.mk @@ -22,7 +22,9 @@ BZIP2_DIR := $(SRC_DIR)/bzip2 # compilation flags for the driver # -BZIP2_COMPILE := $(FT_COMPILE) +BZIP2_COMPILE := $(CC) $(ANSIFLAGS) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # BZIP2 support sources (i.e., C files) diff --git a/src/cache/rules.mk b/src/cache/rules.mk index ed75a6a91..d64d9bcf3 100644 --- a/src/cache/rules.mk +++ b/src/cache/rules.mk @@ -17,9 +17,13 @@ # CACHE_DIR := $(SRC_DIR)/cache + # compilation flags for the driver # -CACHE_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(CACHE_DIR)) +CACHE_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(CACHE_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # Cache driver sources (i.e., C files) @@ -33,6 +37,7 @@ CACHE_DRV_SRC := $(CACHE_DIR)/ftcbasic.c \ $(CACHE_DIR)/ftcmru.c \ $(CACHE_DIR)/ftcsbits.c + # Cache driver headers # CACHE_DRV_H := $(CACHE_DIR)/ftccache.h \ diff --git a/src/cff/rules.mk b/src/cff/rules.mk index 13115c255..23b4730ee 100644 --- a/src/cff/rules.mk +++ b/src/cff/rules.mk @@ -18,7 +18,10 @@ CFF_DIR := $(SRC_DIR)/cff -CFF_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(CFF_DIR)) +CFF_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(CFF_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # CFF driver sources (i.e., C files) diff --git a/src/cid/rules.mk b/src/cid/rules.mk index f36274461..9926c8a88 100644 --- a/src/cid/rules.mk +++ b/src/cid/rules.mk @@ -18,7 +18,10 @@ CID_DIR := $(SRC_DIR)/cid -CID_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(CID_DIR)) +CID_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(CID_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # CID driver sources (i.e., C files) diff --git a/src/gxvalid/rules.mk b/src/gxvalid/rules.mk index 57bc0823d..c4bd4c8e5 100644 --- a/src/gxvalid/rules.mk +++ b/src/gxvalid/rules.mk @@ -20,7 +20,10 @@ GXV_DIR := $(SRC_DIR)/gxvalid # compilation flags for the driver # -GXV_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(GXV_DIR)) +GXV_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(GXV_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # GXV driver sources (i.e., C files) diff --git a/src/gzip/rules.mk b/src/gzip/rules.mk index 37cd99176..23222a16b 100644 --- a/src/gzip/rules.mk +++ b/src/gzip/rules.mk @@ -21,9 +21,14 @@ GZIP_DIR := $(SRC_DIR)/gzip # compilation flags for the driver # ifeq ($(SYSTEM_ZLIB),) - GZIP_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(GZIP_DIR)) + GZIP_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(GZIP_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) else - GZIP_COMPILE := $(FT_COMPILE) + GZIP_COMPILE := $(CC) $(ANSIFLAGS) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) endif diff --git a/src/lzw/rules.mk b/src/lzw/rules.mk index 5550a48d6..436293993 100644 --- a/src/lzw/rules.mk +++ b/src/lzw/rules.mk @@ -23,7 +23,10 @@ LZW_DIR := $(SRC_DIR)/lzw # compilation flags for the driver # -LZW_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(LZW_DIR)) +LZW_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(LZW_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # LZW support sources (i.e., C files) diff --git a/src/otvalid/rules.mk b/src/otvalid/rules.mk index 53bd41e5e..745433580 100644 --- a/src/otvalid/rules.mk +++ b/src/otvalid/rules.mk @@ -20,7 +20,10 @@ OTV_DIR := $(SRC_DIR)/otvalid # compilation flags for the driver # -OTV_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(OTV_DIR)) +OTV_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(OTV_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # OTV driver sources (i.e., C files) diff --git a/src/pcf/rules.mk b/src/pcf/rules.mk index 78641528f..1b55daf4f 100644 --- a/src/pcf/rules.mk +++ b/src/pcf/rules.mk @@ -30,7 +30,10 @@ PCF_DIR := $(SRC_DIR)/pcf -PCF_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(PCF_DIR)) +PCF_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(PCF_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # pcf driver sources (i.e., C files) diff --git a/src/pfr/rules.mk b/src/pfr/rules.mk index 60b96c741..01f44f14c 100644 --- a/src/pfr/rules.mk +++ b/src/pfr/rules.mk @@ -20,7 +20,10 @@ PFR_DIR := $(SRC_DIR)/pfr # compilation flags for the driver # -PFR_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(PFR_DIR)) +PFR_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(PFR_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # pfr driver sources (i.e., C files) diff --git a/src/psaux/rules.mk b/src/psaux/rules.mk index 7a1be37b6..788d813cb 100644 --- a/src/psaux/rules.mk +++ b/src/psaux/rules.mk @@ -20,7 +20,10 @@ PSAUX_DIR := $(SRC_DIR)/psaux # compilation flags for the driver # -PSAUX_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(PSAUX_DIR)) +PSAUX_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(PSAUX_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # PSAUX driver sources (i.e., C files) diff --git a/src/pshinter/rules.mk b/src/pshinter/rules.mk index 888ece105..afc4a403a 100644 --- a/src/pshinter/rules.mk +++ b/src/pshinter/rules.mk @@ -20,7 +20,10 @@ PSHINTER_DIR := $(SRC_DIR)/pshinter # compilation flags for the driver # -PSHINTER_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(PSHINTER_DIR)) +PSHINTER_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(PSHINTER_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # PSHINTER driver sources (i.e., C files) diff --git a/src/psnames/rules.mk b/src/psnames/rules.mk index f321de2d6..278f6596d 100644 --- a/src/psnames/rules.mk +++ b/src/psnames/rules.mk @@ -20,7 +20,10 @@ PSNAMES_DIR := $(SRC_DIR)/psnames # compilation flags for the driver # -PSNAMES_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(PSNAMES_DIR)) +PSNAMES_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(PSNAMES_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # PSNames driver sources (i.e., C files) diff --git a/src/raster/rules.mk b/src/raster/rules.mk index 0e0b5e4eb..6683ed743 100644 --- a/src/raster/rules.mk +++ b/src/raster/rules.mk @@ -19,7 +19,10 @@ RASTER_DIR := $(SRC_DIR)/raster # compilation flags for the driver # -RASTER_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(RASTER_DIR)) +RASTER_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(RASTER_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # raster driver sources (i.e., C files) diff --git a/src/sfnt/rules.mk b/src/sfnt/rules.mk index a6c956ab6..b6e5aa077 100644 --- a/src/sfnt/rules.mk +++ b/src/sfnt/rules.mk @@ -20,7 +20,10 @@ SFNT_DIR := $(SRC_DIR)/sfnt # compilation flags for the driver # -SFNT_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(SFNT_DIR)) +SFNT_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(SFNT_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # SFNT driver sources (i.e., C files) diff --git a/src/smooth/rules.mk b/src/smooth/rules.mk index 88d0aa53a..c8ac81ca9 100644 --- a/src/smooth/rules.mk +++ b/src/smooth/rules.mk @@ -17,9 +17,13 @@ # SMOOTH_DIR := $(SRC_DIR)/smooth + # compilation flags for the driver # -SMOOTH_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(SMOOTH_DIR)) +SMOOTH_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(SMOOTH_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # smooth driver sources (i.e., C files) diff --git a/src/truetype/rules.mk b/src/truetype/rules.mk index d4b69f578..e39235be5 100644 --- a/src/truetype/rules.mk +++ b/src/truetype/rules.mk @@ -20,7 +20,10 @@ TT_DIR := $(SRC_DIR)/truetype # compilation flags for the driver # -TT_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(TT_DIR)) +TT_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(TT_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # TrueType driver sources (i.e., C files) diff --git a/src/type1/rules.mk b/src/type1/rules.mk index 15087b030..160946a2e 100644 --- a/src/type1/rules.mk +++ b/src/type1/rules.mk @@ -20,7 +20,10 @@ T1_DIR := $(SRC_DIR)/type1 # compilation flags for the driver # -T1_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(T1_DIR)) +T1_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(T1_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # Type1 driver sources (i.e., C files) diff --git a/src/type42/rules.mk b/src/type42/rules.mk index eac1081eb..34a31e87f 100644 --- a/src/type42/rules.mk +++ b/src/type42/rules.mk @@ -20,7 +20,10 @@ T42_DIR := $(SRC_DIR)/type42 # compilation flags for the driver # -T42_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(T42_DIR)) +T42_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(T42_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # Type42 driver source diff --git a/src/winfonts/rules.mk b/src/winfonts/rules.mk index 71a7df2d8..1a7817152 100644 --- a/src/winfonts/rules.mk +++ b/src/winfonts/rules.mk @@ -18,7 +18,10 @@ FNT_DIR := $(SRC_DIR)/winfonts -FNT_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(FNT_DIR)) +FNT_COMPILE := $(CC) $(ANSIFLAGS) \ + $I$(subst /,$(COMPILER_SEP),$(FNT_DIR)) \ + $(INCLUDE_FLAGS) \ + $(FT_CFLAGS) # Windows driver sources (i.e., C files)