2000-09-16 00:42:06 +02:00
|
|
|
#
|
2000-10-17 05:38:43 +02:00
|
|
|
# FreeType 2 gcc-specific with NO OPTIMIZATIONS + DEBUGGING
|
2000-09-16 00:42:06 +02:00
|
|
|
#
|
|
|
|
|
2000-10-17 05:38:43 +02:00
|
|
|
|
* builds/amiga/makefile.os4 (WARNINGS), builds/compiler/gcc-dev.mk
(CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove
-fno-strict-aliasing.
Say you have `(Foo*)x' and want to assign, pass, or return it as
`(Bar*)'. If you simply say `x' or `(Bar*)x', then the C compiler
would warn you that type casting incompatible pointer types breaks
strict-aliasing. The solution is to cast to `(void*)' instead which
is the generic pointer type, so the compiler knows that it should
make no strict-aliasing assumption on `x'. But the problem with
`(void*)x' is that seems like in C++, unlike C, `void*' is not a
generic pointer type and assigning `void*' to `Bar*' without a cast
causes an error. The solution is to cast to `Bar*' too, with
`(Bar*)(void*)x' as the result -- this is what the patch does.
* include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP),
include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove
cast on lvalue, use a temporary pointer instead.
Cast temporarily to (void*) to not break strict aliasing.
* include/freetype/internal/ftmemory.h (FT_MEM_ALLOC,
FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE),
src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to (void*)
to not break strict aliasing.
* src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information.
* builds/unix/configure.ac (XX_CFLAGS): Remove -fno-strict-aliasing.
* src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c --
it is currently loaded from ttsbit.c.
Other formatting.
2005-05-23 23:33:02 +02:00
|
|
|
# Copyright 1996-2000, 2003, 2004, 2005 by
|
2000-10-17 05:38:43 +02:00
|
|
|
# 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.
|
|
|
|
|
|
|
|
|
2000-09-16 00:42:06 +02:00
|
|
|
# Compiler command line name
|
2000-09-22 23:23:29 +02:00
|
|
|
#
|
2003-06-09 06:46:30 +02:00
|
|
|
CC := gcc
|
|
|
|
COMPILER_SEP := /
|
|
|
|
|
2000-09-16 00:42:06 +02:00
|
|
|
|
|
|
|
# The object file extension (for standard and static libraries). This can be
|
|
|
|
# .o, .tco, .obj, etc., depending on the platform.
|
|
|
|
#
|
|
|
|
O := o
|
|
|
|
SO := o
|
|
|
|
|
|
|
|
# The library file extension (for standard and static libraries). This can
|
|
|
|
# be .a, .lib, etc., depending on the platform.
|
|
|
|
#
|
|
|
|
A := a
|
|
|
|
SA := a
|
|
|
|
|
|
|
|
|
|
|
|
# Path inclusion flag. Some compilers use a different flag than `-I' to
|
|
|
|
# specify an additional include path. Examples are `/i=' or `-J'.
|
|
|
|
#
|
|
|
|
I := -I
|
|
|
|
|
|
|
|
|
|
|
|
# C flag used to define a macro before the compilation of a given source
|
2000-09-22 23:23:29 +02:00
|
|
|
# object. Usually it is `-D' like in `-DDEBUG'.
|
2000-09-16 00:42:06 +02:00
|
|
|
#
|
|
|
|
D := -D
|
|
|
|
|
|
|
|
|
|
|
|
# The link flag used to specify a given library file on link. Note that
|
|
|
|
# this is only used to compile the demo programs, not the library itself.
|
|
|
|
#
|
|
|
|
L := -l
|
|
|
|
|
|
|
|
|
|
|
|
# Target flag.
|
|
|
|
#
|
2000-11-05 00:41:02 +01:00
|
|
|
T := -o$(space)
|
2000-09-16 00:42:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
# C flags
|
|
|
|
#
|
|
|
|
# These should concern: debug output, optimization & warnings.
|
|
|
|
#
|
|
|
|
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
|
|
|
|
# ANSI compliance.
|
|
|
|
#
|
|
|
|
ifndef CFLAGS
|
2004-08-29 18:50:09 +02:00
|
|
|
ifeq ($(findstring g++,$(CC)),)
|
|
|
|
nested_externs := -Wnested-externs
|
|
|
|
endif
|
|
|
|
|
2000-11-06 00:41:08 +01:00
|
|
|
CFLAGS := -c -g -O0 \
|
|
|
|
-Wall \
|
|
|
|
-W \
|
|
|
|
-Wundef \
|
|
|
|
-Wshadow \
|
|
|
|
-Wpointer-arith \
|
|
|
|
-Wwrite-strings \
|
|
|
|
-Wstrict-prototypes \
|
|
|
|
-Wredundant-decls \
|
2004-08-29 18:50:09 +02:00
|
|
|
-Wno-long-long \
|
|
|
|
$(nested_externs)
|
2000-09-16 00:42:06 +02:00
|
|
|
endif
|
|
|
|
|
|
|
|
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
|
|
|
|
#
|
|
|
|
ANSIFLAGS := -ansi -pedantic
|
|
|
|
|
|
|
|
|
|
|
|
# Library linking
|
|
|
|
#
|
2000-09-16 01:47:42 +02:00
|
|
|
ifndef CLEAN_LIBRARY
|
2003-06-09 06:46:30 +02:00
|
|
|
CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
|
2000-09-16 00:42:06 +02:00
|
|
|
endif
|
2000-09-22 23:23:29 +02:00
|
|
|
LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST)
|
2000-09-16 00:42:06 +02:00
|
|
|
|
2003-06-09 06:46:30 +02:00
|
|
|
|
2000-09-16 00:42:06 +02:00
|
|
|
# EOF
|