Makefile: Add simple compilation rule for C
We only use C as an interface (e.g. to POSIX). Thus, we keep the rules
simple and don't do any dependency tracking.
Change-Id: I62b4b4e4d3ae83d5e1f1811f783b559b225746e6
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/18778
Reviewed-by: Philippe Mathieu-Daudé <philippe.mathieu.daude@gmail.com>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
diff --git a/Makefile b/Makefile
index 2365713..554558a 100644
--- a/Makefile
+++ b/Makefile
@@ -28,13 +28,15 @@
CC = $(CROSS_COMPILE)gcc
GNATBIND = $(CROSS_COMPILE)gnatbind
+CFLAGS += -Wuninitialized -Wall -Werror
+CFLAGS += -pipe -g
+CFLAGS += -Wstrict-aliasing -Wshadow
+CFLAGS += -fno-common -fomit-frame-pointer
+CFLAGS += -ffunction-sections -fdata-sections
+
ADAFLAGS += -gnatA -gnatec=$(libhw-dir)/gnat.adc
ADAFLAGS += -gnatg -gnatp
-ADAFLAGS += -Wuninitialized -Wall -Werror
-ADAFLAGS += -pipe -g
-ADAFLAGS += -Wstrict-aliasing -Wshadow
-ADAFLAGS += -fno-common -fomit-frame-pointer
-ADAFLAGS += -ffunction-sections -fdata-sections
+ADAFLAGS += $(CFLAGS)
# Ada warning options:
#
# a Activate most optional warnings.
@@ -97,9 +99,10 @@
src-to-obj = \
$(addprefix $(obj)/,\
$(patsubst $(obj)/%,%, \
+ $(patsubst %.c,%.o,\
$(patsubst %.ads,%.o,\
$(patsubst %.adb,%.o,\
- $(2)))))
+ $(2))))))
# Converts one or more source file paths to the corresponding build/ paths
# of their Ada library information (.ali) files.
@@ -194,7 +197,7 @@
$(call src-to-obj,,$(1)): $(1) \
$(call create_ada_deps,$(call src-to-ali,,$(1)))
-# Writes a compilation rule for a source type
+# Writes a compilation rule for Ada sources
# $1 source type (ads, adb)
# $2 source files (including the colon)
# $3 obj path prefix (including the trailing slash)
@@ -235,6 +238,11 @@
$(eval $(call add_ada_rule,adb,$(obj)/b__lib$(name).o:,))
$(name)-objs += $(obj)/b__lib$(name).o
+# Compilation rule for C sources
+$(call src-to-obj,,$(filter %.c,$($(name)-srcs))): $(obj)/%.o: %.c
+ @printf " COMPILE $(subst $(obj)/,,$@)\n"
+ $(CC) $(CFLAGS) -c -o $@ $<
+
$(shell mkdir -p $(alldirs))
$(name)-install-srcs = $(sort \