blob: c0a64e4ea9ac7c97013d7154a80f717c4e1803b1 [file] [log] [blame]
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This file contains definitions which control the C compiler.
ifndef CC
$(warning CC not defined; assuming gcc.)
CC = $(GCC)
endif
CFLAGS ?= \
-g \
-O2
# # Compiler is too old to support
# #
# # -Wframe-larger-than=256
# # -Wlarger-than=4096
# # -Wsync-nand
# # Enable GC on unused functions and data
# CGC = \
# -ffunction-sections \
# -fdata-sections
# Also need to link with '-Xlinker --library=pthread'.
PTHREAD = \
-pthread
# LDGC = \
# -Xlinker --gc-sections
# TBD: These need code changes to enable.
# -Wconversion \
# -Wmissing-noreturn \
# -Wsign-conversion \
# -Wtraditional-conversion \
# The host 'c-$(HDCTOOLS_OS_NAME).mk' file can define the following
# variables.
#
# HOSTOS_CWARN : A set of compiler flags which turn on the desired
# warnings.
#
# HOSTOS_INCLUDE : A set of compiler flags which add directories to the
# standard #include search path.
#
# HOSTOS_LD_LIB : A set of host-os specific values for 'LD_LIB'.
#
# HOSTOS_LIB_EXT : A set of host-os specific values for 'LIB_EXT'
#
# HOSTOS_CFLAGS : A set of host-os specific compiler flags
#
# HOSTOS_CPPFLAGS: A set of host-os specific preprocessor defines.
#
include $(HDCTOOLS_DIR)/defs/c-$(HDCTOOLS_OS_NAME).mk
CWARN = \
$(HOSTOS_CWARN)
INCLUDES = \
$(HOSTOS_INCLUDE) \
-I$(HDCTOOLS_DIR)/include \
-I$(HDCTOOLS_SOURCE_DIR)
LD_LIB = $(HOSTOS_LD_LIB)
LIB_EXT = $(HOSTOS_LIB_EXT)
ifeq ($(DEBUG),1)
CDEBUG = -DDEBUG
endif
CPPFLAGS += \
$(HOSTOS_CPPFLAGS) \
-D_GNU_SOURCE=1 \
$(INCLUDES)
CFLAGS += \
-std=gnu99 \
-MMD \
$(PTHREAD) \
$(CWARN) \
$(CGC) \
$(LDGC) \
$(CDEBUG) \
$(HOSTOS_CFLAGS)
COMPILE.c = \
$(MESSAGE) "Compiling $(notdir $<)" ; \
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
LINK.c = \
$(MESSAGE) "Linking $(notdir $@)" ; \
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
FTDIVERSION = $(shell $(PKG_CONFIG) --modversion libftdi1 2>/dev/null)
ifneq ($(FTDIVERSION),)
LIBFTDI_NAME = ftdi1
else
LIBFTDI_NAME = ftdi
endif
LIBFTDI_CFLAGS := $(shell $(PKG_CONFIG) --cflags lib${LIBFTDI_NAME})
LIBFTDI_LDLIBS := $(shell $(PKG_CONFIG) --libs lib${LIBFTDI_NAME})
SERIAL_IP = gpio uart i2c
SERIAL_LIBS = $(foreach v,${SERIAL_IP},-lftdi$(v))