From cffe0f247659c6142ef2d4320fc01da07587b1ca Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" Date: Tue, 21 Jul 2009 13:48:38 +0000 Subject: [PATCH] Merged revisions 207680 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r207680 | kpfleming | 2009-07-21 08:28:04 -0500 (Tue, 21 Jul 2009) | 18 lines Merged revisions 207647 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r207647 | kpfleming | 2009-07-21 08:04:44 -0500 (Tue, 21 Jul 2009) | 12 lines Ensure that user-provided CFLAGS and LDFLAGS are honored. This commit changes the build system so that user-provided flags (in ASTCFLAGS and ASTLDFLAGS) are supplied to the compiler/linker *after* all flags provided by the build system itself, so that the user can effectively override the build system's flags if desired. In addition, ASTCFLAGS and ASTLDFLAGS can now be provided *either* in the environment before running 'make', or as variable assignments on the 'make' command line. As a result, the use of COPTS and LDOPTS is no longer necessary, so they are no longer documented, but are still supported so as not to break existing build systems that supply them when building Asterisk. ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@207684 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- Makefile | 76 +++++++++++++++++++------------------------ Makefile.moddir_rules | 10 +++--- Makefile.rules | 32 ++++++++---------- agi/Makefile | 7 +--- channels/Makefile | 6 ++-- codecs/Makefile | 2 +- codecs/gsm/Makefile | 2 +- codecs/lpc10/Makefile | 2 +- doc/video_console.txt | 2 +- funcs/Makefile | 7 +++- main/Makefile | 12 +++---- main/db1-ast/Makefile | 4 +-- pbx/Makefile | 4 +-- res/Makefile | 6 ++-- utils/Makefile | 35 +++++--------------- 15 files changed, 88 insertions(+), 119 deletions(-) diff --git a/Makefile b/Makefile index 044956a16d..d0ac052675 100644 --- a/Makefile +++ b/Makefile @@ -13,29 +13,23 @@ # All Makefiles use the following variables: # -# ASTCFLAGS - compiler options -# ASTLDFLAGS - linker flags (not libraries) +# ASTCFLAGS - compiler options provided by the user (if any) +# _ASTCFLAGS - compiler options provided by the build system +# ASTLDFLAGS - linker flags (not libraries) provided by the user (if any) +# _ASTLDFLAGS - linker flags (not libraries) provided by the build system # LIBS - additional libraries, at top-level for all links, # on a single object just for that object # SOLINK - linker flags used only for creating shared objects (.so files), # used for all .so links # -# Initial values for ASTCFLAGS and ASTLDFLAGS can be specified in the +# Values for ASTCFLAGS and ASTLDFLAGS can be specified in the # environment when running make, as follows: # # $ ASTCFLAGS="-Werror" make ... # -# note that this is different from +# or as a variable value on the make command line itself: # # $ make ASTCFLAGS="-Werror" ... -# -# If you need to pass compiler/linker flags as 'make' variables, please use -# -# $ make COPTS="..." LDOPTS="..." ... -# -# -# You can add the path of local module subdirs from the command line with -# make LOCAL_MOD_SUBDIRS= .... export ASTTOPDIR # Top level dir, used in subdirs' Makefiles export ASTERISKVERSION @@ -171,7 +165,7 @@ HTTP_DOCSDIR=/var/www/html HTTP_CGIDIR=/var/www/cgi-bin # Uncomment this to use the older DSP routines -#ASTCFLAGS+=-DOLD_DSP_ROUTINES +#_ASTCFLAGS+=-DOLD_DSP_ROUTINES # If the file .asterisk.makeopts is present in your home directory, you can # include all of your favorite menuselect options so that every time you download @@ -221,59 +215,59 @@ ifeq ($(OSARCH),linux-gnu) endif endif -ifeq ($(findstring -save-temps,$(ASTCFLAGS)),) - ifeq ($(findstring -pipe,$(ASTCFLAGS)),) - ASTCFLAGS+=-pipe +ifeq ($(findstring -save-temps,$(_ASTCFLAGS) $(ASTCFLAGS)),) + ifeq ($(findstring -pipe,$(_ASTCFLAGS) $(ASTCFLAGS)),) + _ASTCFLAGS+=-pipe endif endif -ifeq ($(findstring -Wall,$(ASTCFLAGS)),) - ASTCFLAGS+=-Wall +ifeq ($(findstring -Wall,$(_ASTCFLAGS) $(ASTCFLAGS)),) + _ASTCFLAGS+=-Wall endif -ASTCFLAGS+=-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) +_ASTCFLAGS+=-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) ifeq ($(AST_DEVMODE),yes) - ASTCFLAGS+=-Werror - ASTCFLAGS+=-Wunused - ASTCFLAGS+=$(AST_DECLARATION_AFTER_STATEMENT) - ASTCFLAGS+=$(AST_FORTIFY_SOURCE) - ASTCFLAGS+=-Wundef - ASTCFLAGS+=-Wmissing-format-attribute - ASTCFLAGS+=-Wformat=2 + _ASTCFLAGS+=-Werror + _ASTCFLAGS+=-Wunused + _ASTCFLAGS+=$(AST_DECLARATION_AFTER_STATEMENT) + _ASTCFLAGS+=$(AST_FORTIFY_SOURCE) + _ASTCFLAGS+=-Wundef + _ASTCFLAGS+=-Wmissing-format-attribute + _ASTCFLAGS+=-Wformat=2 endif ifneq ($(findstring BSD,$(OSARCH)),) - ASTCFLAGS+=-I/usr/local/include - ASTLDFLAGS+=-L/usr/local/lib + _ASTCFLAGS+=-I/usr/local/include + _ASTLDFLAGS+=-L/usr/local/lib endif -ifeq ($(findstring -march,$(ASTCFLAGS)),) +ifeq ($(findstring -march,$(_ASTCFLAGS) $(ASTCFLAGS)),) ifneq ($(PROC),ultrasparc) - ASTCFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi) + _ASTCFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi) endif endif ifeq ($(PROC),ppc) - ASTCFLAGS+=-fsigned-char + _ASTCFLAGS+=-fsigned-char endif ifeq ($(OSARCH),FreeBSD) # -V is understood by BSD Make, not by GNU make. BSDVERSION=$(shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk) - ASTCFLAGS+=$(shell if test $(BSDVERSION) -lt 500016 ; then echo "-D_THREAD_SAFE"; fi) + _ASTCFLAGS+=$(shell if test $(BSDVERSION) -lt 500016 ; then echo "-D_THREAD_SAFE"; fi) endif ifeq ($(OSARCH),NetBSD) - ASTCFLAGS+=-pthread -I/usr/pkg/include + _ASTCFLAGS+=-pthread -I/usr/pkg/include endif ifeq ($(OSARCH),OpenBSD) - ASTCFLAGS+=-pthread + _ASTCFLAGS+=-pthread endif ifeq ($(OSARCH),SunOS) - ASTCFLAGS+=-Wcast-align -DSOLARIS -I../include/solaris-compat -I/opt/ssl/include -I/usr/local/ssl/include -D_XPG4_2 + _ASTCFLAGS+=-Wcast-align -DSOLARIS -I../include/solaris-compat -I/opt/ssl/include -I/usr/local/ssl/include -D_XPG4_2 endif ASTERISKVERSION:=$(shell GREP=$(GREP) AWK=$(AWK) build_tools/make_version .) @@ -286,9 +280,7 @@ ifneq ($(wildcard .svn),) ASTERISKVERSIONNUM:=999999 endif -# XXX MALLOC_DEBUG is probably unused, Makefile.moddir_rules adds the -# value directly to ASTCFLAGS -ASTCFLAGS+=$(MALLOC_DEBUG)$(OPTIONS) +_ASTCFLAGS+=$(OPTIONS) MOD_SUBDIRS:=channels pbx apps codecs formats cdr funcs tests main res $(LOCAL_MOD_SUBDIRS) OTHER_SUBDIRS:=utils agi @@ -303,7 +295,7 @@ MOD_SUBDIRS_EMBED_LIBS:=$(MOD_SUBDIRS:%=%-embed-libs) MOD_SUBDIRS_MENUSELECT_TREE:=$(MOD_SUBDIRS:%=%-menuselect-tree) ifneq ($(findstring darwin,$(OSARCH)),) - ASTCFLAGS+=-D__Darwin__ + _ASTCFLAGS+=-D__Darwin__ SOLINK=-dynamic -bundle -undefined suppress -force_flat_namespace else # These are used for all but Darwin @@ -404,10 +396,10 @@ res: main endif $(MOD_SUBDIRS): - +@ASTCFLAGS="$(MOD_SUBDIR_CFLAGS) $(ASTCFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(SUBMAKE) --no-builtin-rules -C $@ SUBDIR=$@ all + @_ASTCFLAGS="$(MOD_SUBDIR_CFLAGS) $(_ASTCFLAGS)" $(SUBMAKE) --no-builtin-rules -C $@ SUBDIR=$@ all $(OTHER_SUBDIRS): - +@ASTCFLAGS="$(OTHER_SUBDIR_CFLAGS) $(ASTCFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(SUBMAKE) --no-builtin-rules -C $@ SUBDIR=$@ all + @_ASTCFLAGS="$(OTHER_SUBDIR_CFLAGS) $(_ASTCFLAGS)" $(SUBMAKE) --no-builtin-rules -C $@ SUBDIR=$@ all defaults.h: makeopts @build_tools/make_defaults_h > $@.tmp @@ -465,7 +457,7 @@ distclean: $(SUBDIRS_DIST_CLEAN) _clean rm -f build_tools/menuselect-deps datafiles: _all - if [ x`$(ID) -un` = xroot ]; then CFLAGS="$(ASTCFLAGS)" bash build_tools/mkpkgconfig $(DESTDIR)/usr/lib/pkgconfig; fi + if [ x`$(ID) -un` = xroot ]; then CFLAGS="$(_ASTCFLAGS) $(ASTCFLAGS)" bash build_tools/mkpkgconfig $(DESTDIR)/usr/lib/pkgconfig; fi # Should static HTTP be installed during make samples or even with its own target ala # webvoicemail? There are portions here that *could* be customized but might also be # improved a lot. I'll put it here for now. diff --git a/Makefile.moddir_rules b/Makefile.moddir_rules index 1db15ecb10..dab0c58818 100644 --- a/Makefile.moddir_rules +++ b/Makefile.moddir_rules @@ -19,7 +19,7 @@ # repeat the left hand side to set multiple variables. ifeq ($(findstring LOADABLE_MODULES,$(MENUSELECT_CFLAGS)),) - ASTCFLAGS+=${GC_CFLAGS} + _ASTCFLAGS+=${GC_CFLAGS} endif ifneq ($(findstring STATIC_BUILD,$(MENUSELECT_CFLAGS)),) @@ -58,18 +58,18 @@ endif # (they are stored in file 'makeopts') $(addsuffix .oo,$(CC_MODS)) $(addsuffix .o,$(C_MODS)): \ - ASTCFLAGS+= -DAST_MODULE=\"$*\" $(MENUSELECT_OPTS_$*:%=-D%) $(foreach dep,$(MENUSELECT_DEPENDS_$*),$(value $(dep)_INCLUDE)) + _ASTCFLAGS+= -DAST_MODULE=\"$*\" $(MENUSELECT_OPTS_$*:%=-D%) $(foreach dep,$(MENUSELECT_DEPENDS_$*),$(value $(dep)_INCLUDE)) ifeq ($(findstring $(OSARCH), mingw32 cygwin ),) # don't define -fPIC on mingw32 and cygwin, it is the default - $(LOADABLE_MODS:%=%.so): ASTCFLAGS+=-fPIC + $(LOADABLE_MODS:%=%.so): _ASTCFLAGS+=-fPIC endif # For loadable modules, pass _LIB and _LDFLAGS from menuselect. $(LOADABLE_MODS:%=%.so): LIBS+=$(foreach dep,$(MENUSELECT_DEPENDS_$*),$(value $(dep)_LIB)) -$(LOADABLE_MODS:%=%.so): ASTLDFLAGS+=$(foreach dep,$(MENUSELECT_DEPENDS_$*),$(value $(dep)_LDFLAGS)) +$(LOADABLE_MODS:%=%.so): _ASTLDFLAGS+=$(foreach dep,$(MENUSELECT_DEPENDS_$*),$(value $(dep)_LDFLAGS)) -$(EMBEDDED_MODS:%=%.o): ASTCFLAGS+=-DEMBEDDED_MODULE=$* +$(EMBEDDED_MODS:%=%.o): _ASTCFLAGS+=-DEMBEDDED_MODULE=$* $(addsuffix .so,$(filter $(LOADABLE_MODS),$(C_MODS))): %.so: %.o $(addsuffix .so,$(filter $(LOADABLE_MODS),$(CC_MODS))): %.so: %.oo diff --git a/Makefile.rules b/Makefile.rules index ee39858990..5e7799f006 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -38,21 +38,15 @@ endif OPTIMIZE?=-O6 ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS)),) - # More GSM codec optimization - # Uncomment to enable MMXTM optimizations for x86 architecture CPU's - # which support MMX instructions. This should be newer pentiums, - # ppro's, etc, as well as the AMD K6 and K7. - #K6OPT=-DK6OPT - - ASTCFLAGS+=$(OPTIMIZE) + _ASTCFLAGS+=$(OPTIMIZE) endif # shortcuts for common combinations of flags; these must be recursively expanded so that # per-target settings will be applied -CC_CFLAGS=$(PTHREAD_CFLAGS) $(ASTCFLAGS) -CXX_CFLAGS=$(PTHREAD_CFLAGS) $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(AST_DECLARATION_AFTER_STATEMENT),$(ASTCFLAGS)) -CC_LDFLAGS_SO=$(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) -CXX_LDFLAGS_SO=$(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) +CC_CFLAGS=$(PTHREAD_CFLAGS) $(_ASTCFLAGS) $(ASTCFLAGS) +CXX_CFLAGS=$(PTHREAD_CFLAGS) $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(AST_DECLARATION_AFTER_STATEMENT),$(_ASTCFLAGS) $(ASTCFLAGS)) +CC_LDFLAGS_SO=$(PTHREAD_CFLAGS) $(_ASTLDFLAGS) $(SOLINK) $(ASTLDFLAGS) +CXX_LDFLAGS_SO=$(PTHREAD_CFLAGS) $(_ASTLDFLAGS) $(SOLINK) $(ASTLDFLAGS) CC_LIBS=$(PTHREAD_LIBS) $(LIBS) CXX_LIBS=$(PTHREAD_LIBS) $(LIBS) @@ -68,43 +62,43 @@ endif %.o: %.s $(ECHO_PREFIX) echo " [AS] $< -> $@" ifeq ($(COMPILE_DOUBLE),yes) - $(CMD_PREFIX) $(CC) -o /dev/null -c $< $(CC_CFLAGS) $(OPTIMIZE) + $(CMD_PREFIX) $(CC) -o /dev/null -c $< $(OPTIMIZE) $(CC_CFLAGS) endif $(CMD_PREFIX) $(CC) -o $@ -c $< $(CC_CFLAGS) %.o: %.i $(ECHO_PREFIX) echo " [CCi] $< -> $@" ifeq ($(COMPILE_DOUBLE),yes) - $(CMD_PREFIX) $(CC) -o /dev/null -c $< $(CC_CFLAGS) $(OPTIMIZE) + $(CMD_PREFIX) $(CC) -o /dev/null -c $< $(OPTIMIZE) $(CC_CFLAGS) endif $(CMD_PREFIX) $(CC) -o $@ -c $< $(CC_CFLAGS) ifneq ($(COMPILE_DOUBLE),yes) %.o: %.c $(ECHO_PREFIX) echo " [CC] $< -> $@" - $(CMD_PREFIX) $(CC) -o $@ -c $< $(CC_CFLAGS) $(MAKE_DEPS) + $(CMD_PREFIX) $(CC) -o $@ -c $< $(MAKE_DEPS) $(CC_CFLAGS) endif %.i: %.c $(ECHO_PREFIX) echo " [CPP] $< -> $@" - $(CMD_PREFIX) $(CC) -o $@ -E $< $(CC_CFLAGS) $(MAKE_DEPS) + $(CMD_PREFIX) $(CC) -o $@ -E $< $(MAKE_DEPS) $(CC_CFLAGS) %.oo: %.ii $(ECHO_PREFIX) echo " [CXXi] $< -> $@" ifeq ($(COMPILE_DOUBLE),yes) - $(CMD_PREFIX) $(CXX) -o /dev/null -c $< $(CXX_CFLAGS) $(OPTIMIZE) + $(CMD_PREFIX) $(CXX) -o /dev/null -c $< $(OPTIMIZE) $(CXX_CFLAGS) endif $(CMD_PREFIX) $(CXX) -o $@ -c $< $(CXX_CFLAGS) ifneq ($(COMPILE_DOUBLE),yes) %.oo: %.cc $(ECHO_PREFIX) echo " [CXX] $< -> $@" - $(CMD_PREFIX) $(CXX) -o $@ -c $< $(CXX_CFLAGS) $(MAKE_DEPS) + $(CMD_PREFIX) $(CXX) -o $@ -c $< $(MAKE_DEPS) $(CXX_CFLAGS) endif %.ii: %.cc $(ECHO_PREFIX) echo " [CPP] $< -> $@" - $(CMD_PREFIX) $(CXX) -o $@ -E $< $(CXX_CFLAGS) $(MAKE_DEPS) + $(CMD_PREFIX) $(CXX) -o $@ -E $< $(MAKE_DEPS) $(CXX_CFLAGS) %.so: %.o $(ECHO_PREFIX) echo " [LD] $^ -> $@" @@ -128,6 +122,6 @@ endif %: %.o $(ECHO_PREFIX) echo " [LD] $^ -> $@" - $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $^ $(CXX_LIBS) + $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(_ASTLDFLAGS) $^ $(CXX_LIBS) $(ASTLDFLAGS) dist-clean:: clean diff --git a/agi/Makefile b/agi/Makefile index 89bf7bbece..46b7c3f39d 100644 --- a/agi/Makefile +++ b/agi/Makefile @@ -25,20 +25,15 @@ endif include $(ASTTOPDIR)/Makefile.rules -ASTCFLAGS+=-DSTANDALONE +_ASTCFLAGS+=-DSTANDALONE all: $(AGIS) strcompat.c: ../main/strcompat.c @cp $< $@ -strcompat.o: ASTCFLAGS+=-DSTANDALONE - -eagi-test.o: ASTCFLAGS+=-DSTANDALONE eagi-test: eagi-test.o strcompat.o -eagi-sphinx-test.o: ASTCFLAGS+=-DSTANDALONE - eagi-sphinx-test: eagi-sphinx-test.o install: all diff --git a/channels/Makefile b/channels/Makefile index 3b92822176..537ea3348e 100644 --- a/channels/Makefile +++ b/channels/Makefile @@ -84,11 +84,11 @@ chan_h323.so: chan_h323.o h323/libchanh323.a endif endif -chan_misdn.o: ASTCFLAGS+=-Imisdn +chan_misdn.o: _ASTCFLAGS+=-Imisdn -misdn_config.o: ASTCFLAGS+=-Imisdn +misdn_config.o: _ASTCFLAGS+=-Imisdn -misdn/isdn_lib.o: ASTCFLAGS+=-Wno-strict-aliasing +misdn/isdn_lib.o: _ASTCFLAGS+=-Wno-strict-aliasing $(if $(filter chan_misdn,$(EMBEDDED_MODS)),modules.link,chan_misdn.so): misdn_config.o misdn/isdn_lib.o misdn/isdn_msg_parser.o diff --git a/codecs/Makefile b/codecs/Makefile index cb90c6fe18..4d00591022 100644 --- a/codecs/Makefile +++ b/codecs/Makefile @@ -45,7 +45,7 @@ $(LIBLPC10): $(if $(filter codec_lpc10,$(EMBEDDED_MODS)),modules.link,codec_lpc10.so): $(LIBLPC10) $(LIBILBC): - @$(MAKE) -C ilbc all ASTCFLAGS="$(filter-out -Wmissing-prototypes -Wmissing-declarations -Wshadow,$(ASTCFLAGS)) $(AST_NO_STRICT_OVERFLOW)" + @$(MAKE) -C ilbc all _ASTCFLAGS="$(filter-out -Wmissing-prototypes -Wmissing-declarations -Wshadow,$(_ASTCFLAGS)) $(AST_NO_STRICT_OVERFLOW)" $(if $(filter codec_ilbc,$(EMBEDDED_MODS)),modules.link,codec_ilbc.so): $(LIBILBC) diff --git a/codecs/gsm/Makefile b/codecs/gsm/Makefile index 81071e98c9..831feaa5f3 100644 --- a/codecs/gsm/Makefile +++ b/codecs/gsm/Makefile @@ -154,7 +154,7 @@ INC = $(ROOT)/inc DEBUG = -DNDEBUG ######### Remove -DNDEBUG to enable assertions. -ASTCFLAGS += $(PG) $(CCFLAGS) $(SASR) $(DEBUG) $(MULHACK) $(FAST) \ +_ASTCFLAGS += $(PG) $(CCFLAGS) $(SASR) $(DEBUG) $(MULHACK) $(FAST) \ $(LTP_CUT) $(WAV49) $(K6OPT) $(CCINC) -I$(INC) ######### It's $(CC) $(CFLAGS) diff --git a/codecs/lpc10/Makefile b/codecs/lpc10/Makefile index c98131c26f..a85046d8c5 100644 --- a/codecs/lpc10/Makefile +++ b/codecs/lpc10/Makefile @@ -25,7 +25,7 @@ CFLAGS+= -fPIC -Wno-comment # The code here generates lots of warnings, so compiling with -Werror # fails miserably. Remove it for the time being. -ASTCFLAGS:= $(ASTCFLAGS:-Werror=) +_ASTCFLAGS:=$(_ASTCFLAGS:-Werror=) #fix for PPC processors and ALPHA, And UltraSparc too ifneq ($(OSARCH),Darwin) diff --git a/doc/video_console.txt b/doc/video_console.txt index 14ea0024a7..103af10a0d 100644 --- a/doc/video_console.txt +++ b/doc/video_console.txt @@ -8,7 +8,7 @@ working you need to perform the following steps: The simplest way to do it is add this one line to channels/Makefile: - chan_oss.so: ASTCFLAGS += -DHAVE_VIDEO_CONSOLE + chan_oss.so: _ASTCFLAGS+=-DHAVE_VIDEO_CONSOLE +++ Install prerequisite packages +++ diff --git a/funcs/Makefile b/funcs/Makefile index 5795f98376..28878650c0 100644 --- a/funcs/Makefile +++ b/funcs/Makefile @@ -19,4 +19,9 @@ all: _all include $(ASTTOPDIR)/Makefile.moddir_rules -func_strings.o: ASTCFLAGS+=-Wno-format-nonliteral +# the SPRINTF() function in func_strings accepts format specifiers +# and thus passes them to snprintf() as non-literal strings; the compiler +# can't check the string and arguments to ensure they match, so this +# warning must be disabled; for safety reasons, SPRINTF() is kept in +# a separate module so that as little code as possible is left unchecked +func_strings.o: _ASTCFLAGS+=-Wno-format-nonliteral diff --git a/main/Makefile b/main/Makefile index bf0cf49bb2..851ab7c563 100644 --- a/main/Makefile +++ b/main/Makefile @@ -104,11 +104,11 @@ endif CHECK_SUBDIR: # do nothing, just make sure that we recurse in the subdir/ editline/libedit.a: CHECK_SUBDIR - cd editline && test -f config.h || CFLAGS="$(PTHREAD_CFLAGS) $(subst $(ASTTOPDIR),../../,$(ASTCFLAGS:-Werror=))" LDFLAGS="$(ASTLDFLAGS)" ./configure --build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) --with-ncurses=$(NCURSES_DIR) --with-curses=$(CURSES_DIR) --with-termcap=$(TERMCAP_DIR) --with-tinfo=$(TINFO_DIR) + cd editline && test -f config.h || CFLAGS="$(PTHREAD_CFLAGS) $(subst $(ASTTOPDIR),../../,$(_ASTCFLAGS:-Werror=) $(ASTCFLAGS))" LDFLAGS="$(ASTLDFLAGS)" ./configure --build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) --with-ncurses=$(NCURSES_DIR) --with-curses=$(CURSES_DIR) --with-termcap=$(TERMCAP_DIR) --with-tinfo=$(TINFO_DIR) $(MAKE) -C editline libedit.a db1-ast/libdb1.a: CHECK_SUBDIR - CFLAGS="$(subst $(ASTTOPDIR),../../,$(ASTCFLAGS))" LDFLAGS="$(ASTLDFLAGS)" $(MAKE) -C db1-ast libdb1.a + CFLAGS="$(subst $(ASTTOPDIR),../../,$(_ASTCFLAGS) $(ASTCFLAGS))" LDFLAGS="$(ASTLDFLAGS)" $(MAKE) -C db1-ast libdb1.a ast_expr2.c ast_expr2.h: bison -o $@ -d --name-prefix=ast_yy ast_expr2.y @@ -121,7 +121,7 @@ ast_expr2f.c: cat $@.fix >> $@ rm $@.fix -ast_expr2f.o: ASTCFLAGS+=-Wno-unused +ast_expr2f.o: _ASTCFLAGS+=-Wno-unused testexpr2: ast_expr2f.c ast_expr2.c ast_expr2.h $(CC) -g -c -Iinclude -DSTANDALONE ast_expr2f.c @@ -130,10 +130,10 @@ testexpr2: ast_expr2f.c ast_expr2.c ast_expr2.h rm ast_expr2.o ast_expr2f.o ifneq ($(findstring ENABLE_UPLOADS,$(MENUSELECT_CFLAGS)),) -http.o: ASTCFLAGS+=$(GMIME_INCLUDE) +http.o: _ASTCFLAGS+=$(GMIME_INCLUDE) endif -stdtime/localtime.o: ASTCFLAGS+=$(AST_NO_STRICT_OVERFLOW) -Wno-format-nonliteral +stdtime/localtime.o: _ASTCFLAGS+=$(AST_NO_STRICT_OVERFLOW) -Wno-format-nonliteral AST_EMBED_LDSCRIPTS:=$(sort $(EMBED_LDSCRIPTS)) AST_EMBED_LDFLAGS:=$(foreach dep,$(EMBED_LDFLAGS),$(value $(dep))) @@ -162,7 +162,7 @@ GMIMELDFLAGS+=$(GMIME_LIB) endif $(MAIN_TGT): $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS) - @$(CC) -c -o buildinfo.o $(ASTCFLAGS) buildinfo.c + @$(CC) -c -o buildinfo.o $(_ASTCFLAGS) buildinfo.c $(ASTCFLAGS) $(ECHO_PREFIX) echo " [LD] $^ -> $@" ifneq ($(findstring chan_h323,$(MENUSELECT_CHANNELS)),) $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(GMIMELDFLAGS) diff --git a/main/db1-ast/Makefile b/main/db1-ast/Makefile index c9d29b3696..a0f12e1c46 100644 --- a/main/db1-ast/Makefile +++ b/main/db1-ast/Makefile @@ -48,11 +48,11 @@ clean-depend: clean: rm -f $(LIBDB) $(LIBDBSO) $(OBJS) $(SHOBJS) */*.s */*.i -ASTCFLAGS:=-Wall -D__DBINTERFACE_PRIVATE -I. -I.. -Iinclude -Ihash -Ibtree -Irecno $(ASTCFLAGS) +_ASTCFLAGS:=-Wall -D__DBINTERFACE_PRIVATE -I. -I.. -Iinclude -Ihash -Ibtree -Irecno $(_ASTCFLAGS) OSTYPE=$(shell uname -s) ifeq ($(OSTYPE),SunOS) -ASTCFLAGS+=-I../../include -I../../include/solaris-compat -DSOLARIS +_ASTCFLAGS+=-I../../include -I../../include/solaris-compat -DSOLARIS endif db_dump185.o: db_dump185.c diff --git a/pbx/Makefile b/pbx/Makefile index d161b1b18a..125b512edb 100644 --- a/pbx/Makefile +++ b/pbx/Makefile @@ -27,8 +27,8 @@ clean:: rm -f ael/*.o ael/*.i dundi-parser.o: dundi-parser.h -dundi-parser.o: ASTCFLAGS+=-I. +dundi-parser.o: _ASTCFLAGS+=-I. -pbx_gtkconsole.o: ASTCFLAGS+=-Wno-strict-prototypes +pbx_gtkconsole.o: _ASTCFLAGS+=-Wno-strict-prototypes $(if $(filter pbx_dundi,$(EMBEDDED_MODS)),modules.link,pbx_dundi.so): dundi-parser.o diff --git a/res/Makefile b/res/Makefile index 8084858eeb..298c6d4da7 100644 --- a/res/Makefile +++ b/res/Makefile @@ -30,12 +30,12 @@ ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) endif ael/ael_lex.o: ael/ael_lex.c ../include/asterisk/ael_structs.h ael/ael.tab.h -ael/ael_lex.o: ASTCFLAGS+=-I. -Iael -Wno-unused +ael/ael_lex.o: _ASTCFLAGS+=-I. -Iael -Wno-unused ael/ael.tab.o: ael/ael.tab.c ael/ael.tab.h ../include/asterisk/ael_structs.h -ael/ael.tab.o: ASTCFLAGS+=-I. -Iael -DYYENABLE_NLS=0 +ael/ael.tab.o: _ASTCFLAGS+=-I. -Iael -DYYENABLE_NLS=0 -ais/clm.o ais/evt.o: ASTCFLAGS+=${AIS_INCLUDE} +ais/clm.o ais/evt.o: _ASTCFLAGS+=${AIS_INCLUDE} $(if $(filter res_ais,$(EMBEDDED_MODS)),modules.link,res_ais.so): ais/clm.o ais/evt.o diff --git a/utils/Makefile b/utils/Makefile index 13eb8749b6..78aef22640 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -32,6 +32,8 @@ UTILS:=$(ALL_UTILS) LIBS += $(BKTR_LIB) # astobj2 with devmode uses backtrace +_ASTCFLAGS+=-DSTANDALONE + include $(ASTTOPDIR)/Makefile.rules ifeq ($(OSARCH),SunOS) @@ -90,30 +92,24 @@ clean: md5.c: $(ASTTOPDIR)/main/md5.c @cp $< $@ -md5.o: ASTCFLAGS+=-DSTANDALONE astman: astman.o md5.o astman: LIBS+=$(NEWT_LIB) -astman.o: ASTCFLAGS+=-DNO_MALLOC_DEBUG -DSTANDALONE +astman.o: _ASTCFLAGS+=-DNO_MALLOC_DEBUG stereorize: stereorize.o frame.o stereorize: LIBS+=-lm hashtab.c: $(ASTTOPDIR)/main/hashtab.c @cp "$<" "$@" -hashtab.o: ASTCFLAGS+=-DSTANDALONE - strcompat.c: $(ASTTOPDIR)/main/strcompat.c @cp "$<" "$@" -strcompat.o: ASTCFLAGS+=-DSTANDALONE pval.c: $(ASTTOPDIR)/res/ael/pval.c @cp "$<" "$@" -pval.o : ASTCFLAGS+=-DSTANDALONE ast_expr2.c: $(ASTTOPDIR)/main/ast_expr2.c @cp "$<" "$@" -ast_expr2.o: ASTCFLAGS+=-DSTANDALONE ast_expr2.h: $(ASTTOPDIR)/main/ast_expr2.h $(ECHO_PREFIX) echo " [CP] $(subst $(ASTTOPDIR)/,,$<) -> $@" @@ -121,25 +117,21 @@ ast_expr2.h: $(ASTTOPDIR)/main/ast_expr2.h ast_expr2f.c: $(ASTTOPDIR)/main/ast_expr2f.c @cp "$<" "$@" -ast_expr2f.o: ASTCFLAGS+=-DSTANDALONE -I$(ASTTOPDIR)/main -Wno-unused +ast_expr2f.o: _ASTCFLAGS+=-I$(ASTTOPDIR)/main -Wno-unused check_expr: check_expr.o ast_expr2.o ast_expr2f.o strcompat.o threadstorage.o clicompat.o -check_expr.o: ASTCFLAGS+=-DSTANDALONE aelbison.c: $(ASTTOPDIR)/res/ael/ael.tab.c @cp "$<" "$@" -aelbison.o: ASTCFLAGS+=-I$(ASTTOPDIR)/res/ael -DYYENABLE_NLS=0 -DSTANDALONE +aelbison.o: _ASTCFLAGS+=-I$(ASTTOPDIR)/res/ael -DYYENABLE_NLS=0 pbx_ael.c: $(ASTTOPDIR)/pbx/pbx_ael.c @cp "$<" "$@" -pbx_ael.o: ASTCFLAGS+=-DSTANDALONE aelparse.c: $(ASTTOPDIR)/res/ael/ael_lex.c @cp "$<" "$@" -ael_main.o: ASTCFLAGS+=-DSTANDALONE - -aelparse.o: ASTCFLAGS+=-I$(ASTTOPDIR)/res -DSTANDALONE -Wno-unused +aelparse.o: _ASTCFLAGS+=-I$(ASTTOPDIR)/res -Wno-unused aelparse: LIBS+=-lm aelparse: aelparse.o aelbison.o pbx_ael.o hashtab.o ael_main.o ast_expr2f.o ast_expr2.o strcompat.o pval.o extconf.o @@ -149,33 +141,26 @@ poll.o: ASTCFLAGS+=-DSTANDALONE astobj2.c: $(ASTTOPDIR)/main/astobj2.c @cp "$<" "$@" -astobj2.o: ASTCFLAGS+=-DSTANDALONE utils.c: $(ASTTOPDIR)/main/utils.c @cp "$<" "$@" -utils.o: ASTCFLAGS+=-DSTANDALONE sha1.c: $(ASTTOPDIR)/main/sha1.c @cp "$<" "$@" -sha1.o: ASTCFLAGS+=-DSTANDALONE threadstorage.c: $(ASTTOPDIR)/main/threadstorage.c @cp "$<" "$@" -threadstorage.o: ASTCFLAGS+=-DSTANDALONE -hashtest2.o: ASTCFLAGS+=-O0 -DSTANDALONE +hashtest2.o: _ASTCFLAGS+=-O0 hashtest2: hashtest2.o md5.o utils.o astobj2.o sha1.o strcompat.o threadstorage.o clicompat.o poll.o hashtest: hashtest.o md5.o hashtab.o utils.o sha1.o strcompat.o threadstorage.o clicompat.o poll.o -hashtest.o: ASTCFLAGS+=-O0 -DSTANDALONE +hashtest.o: _ASTCFLAGS+=-O0 refcounter: refcounter.o md5.o hashtab.o utils.o sha1.o strcompat.o threadstorage.o clicompat.o poll.o -refcounter.o: ASTCFLAGS+=-O0 -DSTANDALONE +refcounter.o: _ASTCFLAGS+=-O0 extconf.o: extconf.c -extconf.o: ASTCFLAGS+=-DSTANDALONE - -conf2ael.o: ASTCFLAGS+=-DSTANDALONE conf2ael: conf2ael.o ast_expr2f.o ast_expr2.o hashtab.o aelbison.o aelparse.o pbx_ael.o pval.o extconf.o strcompat.o @@ -190,8 +175,6 @@ check_expr2: $(ASTTOPDIR)/main/ast_expr2f.c $(ASTTOPDIR)/main/ast_expr2.c $(ASTT rm ast_expr2z.o ast_expr2fz.o ./check_expr2 expr2.testinput -smsq.o: ASTCFLAGS+=-DSTANDALONE - smsq: smsq.o strcompat.o smsq: LIBS+=$(POPT_LIB)