summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Horman <horms@verge.net.au>2006-10-06 12:27:58 +0900
committerSimon Horman <horms@verge.net.au>2006-10-06 12:46:16 +0900
commitba686313d496ee25db69803ef7e5bfb1e07eb841 (patch)
tree91ba8a16a03ed3710c16a01c9cf413d57983c371
parent103c946e39eb9dd57ccbda20ac12ccb01f883c17 (diff)
build-cpp-and-ld-flags
[BUILD] CPPFLAGS, CFLAGS and LDFLAGS fixes * Set internal CPPFLAGS as EXTRA_CPPFLAGS, CFLAGS as EXTRA_CFLAGS, and LDFLAGS as EXTRA_LDFLAGS - Don't overwrite CPPFLAGS, LDLFAGS or CFLAGS from the environment - They are irrelevant for BUILD_CC - When cross-compiling for a ppc64 host on a non-ppc64 host, EXTRA_CFLAGS, which is included in BUILD_CPPFLAGS contains -mcall-aixdesc, which does not work on i386 at least * Use LDFLAGS when linking kexec - Append rather than overwrite in purgatory/Makefile The purpose of these changes is three-fold. * CPPFLAGS, CFLAGS and LDFLAGS from the environment really ought to be honoured. For one thing; * Without these changes, the confgiure taget in the toplevel makefile can't work * Without these changes, cross compiling does not work - well, I can't work out how to get it to work anyway. Signed-Off-By: Simon Horman <horms@verge.net.au>
-rw-r--r--Makefile7
-rw-r--r--configure.ac9
-rw-r--r--kdump/Makefile6
-rw-r--r--kexec/Makefile5
-rw-r--r--kexec_test/Makefile4
-rw-r--r--purgatory/Makefile6
-rw-r--r--util_lib/Makefile4
7 files changed, 20 insertions, 21 deletions
diff --git a/Makefile b/Makefile
index efa8799..db72776 100644
--- a/Makefile
+++ b/Makefile
@@ -13,7 +13,7 @@ pkgincludedir = $(includedir)/$(PACKAGE)
# Useful for building binary packages
DESTDIR =
-CPPFLAGS:= -I./include -I./util_lib/include \
+EXTRA_CPPFLAGS:= -I./include -I./util_lib/include \
-DVERSION='"$(VERSION)"' -DRELEASE_DATE='"$(DATE)"' \
$(DEFS) $(EXTRA_CFLAGS)
@@ -54,8 +54,9 @@ all: $(TARGETS)
# cc-option
# Usage: cflags-y += $(call cc-option, -march=winchip-c6, -march=i586)
-cc-option = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
- > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
+cc-option = $(shell if $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(1) -S -o /dev/null \
+ -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else \
+ echo "$(2)"; fi ;)
# Utility function library
#
diff --git a/configure.ac b/configure.ac
index af8d9c7..7c72845 100644
--- a/configure.ac
+++ b/configure.ac
@@ -50,7 +50,9 @@ OBJDIR=`pwd`/objdir
if test "${host_alias}" ; then
OBJDIR="$OBJDIR-${host_alias}"
fi
-EXTRA_CFLAGS=""
+
+EXTRA_CFLAGS='-Wall -g -fno-strict-aliasing $(CPPFLAGS) $(EXTRA_CPPFLAGS)'
+BUILD_CFLAGS='-O2 -Wall $(CPPFLAGS)'
# Check whether ppc64. Add -m64 for building 64-bit binary
# Add -mcall-aixdesc to generate dot-symbols as in gcc 3.3.3
@@ -104,11 +106,6 @@ if test "$with_zlib" = yes ; then
AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, inflateInit_, [AC_DEFINE(HAVE_ZLIB_H, 1) LIBS="$LIBS -lz"]))
fi
-dnl ---Hard codes
-
-CFLAGS='-Wall -g -fno-strict-aliasing $(CPPFLAGS)'
-BUILD_CFLAGS='-O2 -Wall $(CPPFLAGS)'
-
dnl ---Sanity checks
if test "$CC" = "no"; then AC_MSG_ERROR([cc not found]) fi
if test "$CPP" = "no"; then AC_MSG_ERROR([cpp not found]) fi
diff --git a/kdump/Makefile b/kdump/Makefile
index af33dc3..456c2fc 100644
--- a/kdump/Makefile
+++ b/kdump/Makefile
@@ -16,15 +16,15 @@ include $(KDUMP_DEPS)
$(KDUMP_C_DEPS): $(OBJDIR)/%.d: %.c
mkdir -p $(@D)
- $(CC) $(CFLAGS) -M $< | sed -e 's|$(patsubst %.d,%.o,$(@F))|$(patsubst %.d,%.o,$(@))|' > $@
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -M $< | sed -e 's|$(patsubst %.d,%.o,$(@F))|$(patsubst %.d,%.o,$(@))|' > $@
$(KDUMP_C_OBJS): $(OBJDIR)/%.o: %.c $(OBJDIR)/%.d
mkdir -p $(@D)
- $(CC) $(CFLAGS) -o $@ -c $<
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ -c $<
$(KDUMP): $(KDUMP_OBJS)
mkdir -p $(@D)
- $(CC) $(CFLAGS) -o $@ $(KDUMP_OBJS)
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ $(KDUMP_OBJS)
$(KDUMP_MANPAGE): kdump/kdump.8
$(MKDIR) -p $(MANDIR)/man8
diff --git a/kexec/Makefile b/kexec/Makefile
index 3d906a6..000c1bb 100644
--- a/kexec/Makefile
+++ b/kexec/Makefile
@@ -7,7 +7,7 @@ $(PURGATORY_HEX_C): $(PURGATORY) $(BIN_TO_HEX)
$(MKDIR) -p $(@D)
$(BIN_TO_HEX) purgatory < $(PURGATORY) > $@
-KCFLAGS:= $(CFLAGS) -Ikexec/arch/$(ARCH)/include
+KCFLAGS:= $(CFLAGS) $(EXTRA_CFLAGS) -Ikexec/arch/$(ARCH)/include
KEXEC_C_SRCS:= kexec/kexec.c
KEXEC_C_SRCS+= kexec/ifdown.c
@@ -68,7 +68,8 @@ $(KEXEC_S_OBJS): $(OBJDIR)/%.o: %.S $(OBJDIR)/%.d
$(KEXEC): $(KEXEC_OBJS) $(UTIL_LIB)
mkdir -p $(@D)
- $(CC) $(KCFLAGS) -o $@ $(KEXEC_OBJS) $(UTIL_LIB) $(LIBS)
+ $(CC) $(LDFLAGS) $(EXTRA_LDFLAGS) $(KCFLAGS) -o $@ \
+ $(KEXEC_OBJS) $(UTIL_LIB) $(LIBS)
$(KEXEC_MANPAGE): kexec/kexec.8
$(MKDIR) -p $(MANDIR)/man8
diff --git a/kexec_test/Makefile b/kexec_test/Makefile
index 3e932d5..70542de 100644
--- a/kexec_test/Makefile
+++ b/kexec_test/Makefile
@@ -15,11 +15,11 @@ include $(KEXEC_TEST_DEPS)
$(KEXEC_TEST_S_DEPS): $(OBJDIR)/%.d: %.S
mkdir -p $(@D)
- $(CC) -m32 $(CFLAGS) -M $< | sed -e 's|$(patsubst %.d,%.o,$(@F))|$(patsubst %.d,%.o,$(@))|' > $@
+ $(CC) -m32 $(CFLAGS) $(EXTRA_CFLAGS) -M $< | sed -e 's|$(patsubst %.d,%.o,$(@F))|$(patsubst %.d,%.o,$(@))|' > $@
$(KEXEC_TEST_S_TEMPS): $(OBJDIR)/%.s: %.S
mkdir -p $(@D)
- $(CPP) $(CPPFLAGS) -DRELOC=$(RELOC) $< > $@
+ $(CPP) $(CPPFLAGS) $(EXTRA_CPPFLAGS) -DRELOC=$(RELOC) $< > $@
$(KEXEC_TEST_S_OBJS): $(OBJDIR)/%.o: $(OBJDIR)/%.s
mkdir -p $(@D)
diff --git a/purgatory/Makefile b/purgatory/Makefile
index 50ce99f..adbd814 100644
--- a/purgatory/Makefile
+++ b/purgatory/Makefile
@@ -8,13 +8,13 @@
# or headers.
ifeq ($(ARCH),ppc64)
-LDFLAGS = -melf64ppc
+EXTRA_LDFLAGS = -melf64ppc
endif
PCFLAGS:=-Wall -Os \
-I$(shell $(CC) -print-file-name=include) \
-Ipurgatory/include -Ipurgatory/arch/$(ARCH)/include \
- $(CPPFLAGS)
+ $(CPPFLAGS) $(EXTRA_CPPFLAGS)
PCFLAGS += $(call cc-option, -ffreestanding)
PCFLAGS += $(call cc-option, -fnobuiltin)
@@ -59,7 +59,7 @@ $(PURGATORY_S_OBJS): $(OBJDIR)/%.o: %.S $(OBJDIR)/%.d
$(PURGATORY): $(PURGATORY_OBJS) $(UTIL_LIB)
$(MKDIR) -p $(@D)
- $(LD) $(LDFLAGS) --no-undefined -e purgatory_start -r -o $@ $(PURGATORY_OBJS) $(UTIL_LIB)
+ $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) --no-undefined -e purgatory_start -r -o $@ $(PURGATORY_OBJS) $(UTIL_LIB)
echo::
@echo "PURGATORY_C_SRCS $(PURGATORY_C_SRCS)"
diff --git a/util_lib/Makefile b/util_lib/Makefile
index 4e1a01d..84679a1 100644
--- a/util_lib/Makefile
+++ b/util_lib/Makefile
@@ -11,11 +11,11 @@ include $(UTIL_LIB_DEPS)
$(UTIL_LIB_DEPS): $(OBJDIR)/%.d: %.c
$(MKDIR) -p $(@D)
- $(CC) $(CFLAGS) -M $< | sed -e 's|$(patsubst %.d,%.o,$(@F))|$(patsubst %.d,%.o,$(@))|' > $@
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -M $< | sed -e 's|$(patsubst %.d,%.o,$(@F))|$(patsubst %.d,%.o,$(@))|' > $@
$(UTIL_LIB_OBJS): $(OBJDIR)/%.o: %.c $(OBJDIR)/%.d
$(MKDIR) -p $(@D)
- $(CC) $(CFLAGS) -c -o $@ $<
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
$(UTIL_LIB): $(UTIL_LIB_OBJS)
$(MKDIR) -p $(@D)