changeset 2113:ba637aa555ec

Improved setup for newer compilers (which have problems with some options)
author gthomas
date Mon, 12 Dec 2005 21:58:11 +0000
parents 44d250ab3b3a
children e126375ffab7
files examples/build_Make.params examples/build_Makefile
diffstat 2 files changed, 32 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/examples/build_Make.params
+++ b/examples/build_Make.params
@@ -40,5 +40,35 @@ EOF
 
 cat ${ECOS_INSTALL_DIR}/include/pkgconf/ecos.mak >>Make.params
 
+#
+# Add CFLAGS manipulation - this should match <ecos>/packages/pkgconf/rules.mak
+#
 
+cat <<EOF >>Make.params
 
+#
+# Modify CFLAGS to match newer compilers
+#
+ACTUAL_CFLAGS = \$(ECOS_GLOBAL_CFLAGS)
+ACTUAL_CXXFLAGS = \$(ECOS_GLOBAL_CFLAGS)
+ACTUAL_LDFLAGS = \$(ECOS_GLOBAL_LDFLAGS)
+
+# GCC since 2.95 does -finit-priority by default so remove it from old HALs
+ACTUAL_CFLAGS := \$(subst -finit-priority,,\$(ACTUAL_CFLAGS))
+
+# -fvtable-gc is known to be broken in all recent GCC.
+ACTUAL_CFLAGS := \$(subst -fvtable-gc,,\$(ACTUAL_CFLAGS))
+
+# Expand inline functions
+ACTUAL_CFLAGS := -finline-limit=7000 \$(ACTUAL_CFLAGS)
+
+# Separate C++ flags out from C flags.
+ACTUAL_CFLAGS := \$(subst -fno-rtti,,\$(ACTUAL_CFLAGS))
+ACTUAL_CFLAGS := \$(subst -frtti,,\$(ACTUAL_CFLAGS))
+ACTUAL_CFLAGS := \$(subst -Woverloaded-virtual,,\$(ACTUAL_CFLAGS))
+ACTUAL_CFLAGS := \$(subst -fvtable-gc,,\$(ACTUAL_CFLAGS))
+
+ACTUAL_CXXFLAGS := \$(subst -Wstrict-prototypes,,\$(ACTUAL_CXXFLAGS))
+
+EOF
+
--- a/examples/build_Makefile
+++ b/examples/build_Makefile
@@ -19,10 +19,10 @@ include Make.params
 # Simple build rules
 
 .c.o:
-	\$(CC) -c \$(ECOS_GLOBAL_CFLAGS) -I\$(PREFIX)/include \$*.c
+	\$(CC) -c \$(ACTUAL_CFLAGS) -I\$(PREFIX)/include \$*.c
 
 .o:
-	\$(CC) \$(ECOS_GLOBAL_LDFLAGS) -L\$(PREFIX)/lib -Ttarget.ld \$*.o -o \$@
+	\$(CC) \$(ACTUAL_LDFLAGS) -L\$(PREFIX)/lib -Ttarget.ld \$*.o -o \$@
 
 SRCS=${SRCS-source_file.c}
 OBJS=\${SRCS:%.c=%.o}