Simplify CFLAGS/DEFINES in Makefile

I think the original intention was to make CFLAGS overridable
from the make command line, but somehow we ended up accumulating
conditional makefile sections that wrongly appends values to
CFLAGs.  These assignments do not work when the user actually
override them from the make command line!

DEFINES are handled the same way; it was seemingly overridable,
but the makefile sections had assignments, which meant
overriding it from the command line broke things.

This simplifies things by limiting the internal futzing to
ALL_CFLAGS, and by removing DEFINES altogether.  Overriding
CFLAGS from the command line should start working with this
change.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano 2005-11-04 23:50:09 -08:00
parent 9e5d2b4096
commit 12aa7456c9

View File

@ -37,25 +37,21 @@
# 1461501637330902918203684832716283019655932542976 hashes do not give you # 1461501637330902918203684832716283019655932542976 hashes do not give you
# sufficient guarantee that no collisions between objects will ever happen. # sufficient guarantee that no collisions between objects will ever happen.
# DEFINES += -DCOLLISION_CHECK
# Define USE_NSEC below if you want git to care about sub-second file mtimes # Define USE_NSEC below if you want git to care about sub-second file mtimes
# and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and # and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and
# it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely # it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely
# randomly break unless your underlying filesystem supports those sub-second # randomly break unless your underlying filesystem supports those sub-second
# times (my ext3 doesn't). # times (my ext3 doesn't).
# DEFINES += -DUSE_NSEC
# Define USE_STDEV below if you want git to care about the underlying device # Define USE_STDEV below if you want git to care about the underlying device
# change being considered an inode change from the update-cache perspective. # change being considered an inode change from the update-cache perspective.
# DEFINES += -DUSE_STDEV
GIT_VERSION = 0.99.9.GIT GIT_VERSION = 0.99.9.GIT
# CFLAGS is for the users to override from the command line.
CFLAGS = -g -O2 -Wall CFLAGS = -g -O2 -Wall
ALL_CFLAGS = $(CFLAGS) $(PLATFORM_DEFINES) $(DEFINES) ALL_CFLAGS = $(CFLAGS)
prefix = $(HOME) prefix = $(HOME)
bindir = $(prefix)/bin bindir = $(prefix)/bin
@ -194,19 +190,19 @@ ifeq ($(uname_S),SunOS)
NO_STRCASESTR = YesPlease NO_STRCASESTR = YesPlease
INSTALL = ginstall INSTALL = ginstall
TAR = gtar TAR = gtar
PLATFORM_DEFINES += -D__EXTENSIONS__ ALL_CFLAGS += -D__EXTENSIONS__
endif endif
ifeq ($(uname_O),Cygwin) ifeq ($(uname_O),Cygwin)
NO_STRCASESTR = YesPlease NO_STRCASESTR = YesPlease
NEEDS_LIBICONV = YesPlease NEEDS_LIBICONV = YesPlease
NO_IPV6 = YesPlease NO_IPV6 = YesPlease
X = .exe X = .exe
PLATFORM_DEFINES += -DUSE_SYMLINK_HEAD=0 ALL_CFLAGS += -DUSE_SYMLINK_HEAD=0
endif endif
ifeq ($(uname_S),OpenBSD) ifeq ($(uname_S),OpenBSD)
NO_STRCASESTR = YesPlease NO_STRCASESTR = YesPlease
NEEDS_LIBICONV = YesPlease NEEDS_LIBICONV = YesPlease
PLATFORM_DEFINES += -I/usr/local/include -L/usr/local/lib ALL_CFLAGS += -I/usr/local/include -L/usr/local/lib
endif endif
ifneq (,$(findstring arm,$(uname_M))) ifneq (,$(findstring arm,$(uname_M)))
ARM_SHA1 = YesPlease ARM_SHA1 = YesPlease
@ -217,7 +213,7 @@ endif
ifndef NO_CURL ifndef NO_CURL
ifdef CURLDIR ifdef CURLDIR
# This is still problematic -- gcc does not want -R. # This is still problematic -- gcc does not want -R.
CFLAGS += -I$(CURLDIR)/include ALL_CFLAGS += -I$(CURLDIR)/include
CURL_LIBCURL = -L$(CURLDIR)/lib -R$(CURLDIR)/lib -lcurl CURL_LIBCURL = -L$(CURLDIR)/lib -R$(CURLDIR)/lib -lcurl
else else
CURL_LIBCURL = -lcurl CURL_LIBCURL = -lcurl
@ -240,13 +236,13 @@ ifndef NO_OPENSSL
OPENSSL_LIBSSL = -lssl OPENSSL_LIBSSL = -lssl
ifdef OPENSSLDIR ifdef OPENSSLDIR
# Again this may be problematic -- gcc does not always want -R. # Again this may be problematic -- gcc does not always want -R.
CFLAGS += -I$(OPENSSLDIR)/include ALL_CFLAGS += -I$(OPENSSLDIR)/include
OPENSSL_LINK = -L$(OPENSSLDIR)/lib -R$(OPENSSLDIR)/lib OPENSSL_LINK = -L$(OPENSSLDIR)/lib -R$(OPENSSLDIR)/lib
else else
OPENSSL_LINK = OPENSSL_LINK =
endif endif
else else
DEFINES += -DNO_OPENSSL ALL_CFLAGS += -DNO_OPENSSL
MOZILLA_SHA1 = 1 MOZILLA_SHA1 = 1
OPENSSL_LIBSSL = OPENSSL_LIBSSL =
endif endif
@ -258,7 +254,7 @@ endif
ifdef NEEDS_LIBICONV ifdef NEEDS_LIBICONV
ifdef ICONVDIR ifdef ICONVDIR
# Again this may be problematic -- gcc does not always want -R. # Again this may be problematic -- gcc does not always want -R.
CFLAGS += -I$(ICONVDIR)/include ALL_CFLAGS += -I$(ICONVDIR)/include
ICONV_LINK = -L$(ICONVDIR)/lib -R$(ICONVDIR)/lib ICONV_LINK = -L$(ICONVDIR)/lib -R$(ICONVDIR)/lib
else else
ICONV_LINK = ICONV_LINK =
@ -276,15 +272,15 @@ ifdef NEEDS_NSL
SIMPLE_LIB += -lnsl SIMPLE_LIB += -lnsl
endif endif
ifdef NO_STRCASESTR ifdef NO_STRCASESTR
DEFINES += -Dstrcasestr=gitstrcasestr -DNO_STRCASESTR=1 ALL_CFLAGS += -Dstrcasestr=gitstrcasestr -DNO_STRCASESTR=1
LIB_OBJS += compat/strcasestr.o LIB_OBJS += compat/strcasestr.o
endif endif
ifdef NO_MMAP ifdef NO_MMAP
DEFINES += -Dmmap=gitfakemmap -Dmunmap=gitfakemunmap -DNO_MMAP ALL_CFLAGS += -Dmmap=gitfakemmap -Dmunmap=gitfakemunmap -DNO_MMAP
LIB_OBJS += compat/mmap.o LIB_OBJS += compat/mmap.o
endif endif
ifdef NO_IPV6 ifdef NO_IPV6
DEFINES += -DNO_IPV6 -Dsockaddr_storage=sockaddr_in ALL_CFLAGS += -DNO_IPV6 -Dsockaddr_storage=sockaddr_in
endif endif
ifdef PPC_SHA1 ifdef PPC_SHA1
@ -305,7 +301,7 @@ endif
endif endif
endif endif
DEFINES += -DSHA1_HEADER=$(call shellquote,$(SHA1_HEADER)) ALL_CFLAGS += -DSHA1_HEADER=$(call shellquote,$(SHA1_HEADER))
SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \ SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
$(patsubst %.perl,%,$(SCRIPT_PERL)) \ $(patsubst %.perl,%,$(SCRIPT_PERL)) \