mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	https://origsvn.digium.com/svn/asterisk/trunk ........ r190861 | kpfleming | 2009-04-28 09:12:09 -0500 (Tue, 28 Apr 2009) | 5 lines Remove Makefile rules for bison and flex sources We never, ever want these files to processed automatically, because we store the output files in Subversion and users should never need to rebuild them. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@190863 65c4cc65-6c06-0410-ace0-fbb531ad65f3
		
			
				
	
	
		
			134 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| #
 | |
| # Asterisk -- A telephony toolkit for Linux.
 | |
| # 
 | |
| # Makefile rules
 | |
| #
 | |
| # Copyright (C) 2006-2008, Digium, Inc.
 | |
| #
 | |
| # Kevin P. Fleming <kpfleming@digium.com>
 | |
| #
 | |
| # This program is free software, distributed under the terms of
 | |
| # the GNU General Public License
 | |
| #
 | |
| 
 | |
| # Each command is preceded by a short comment on what to do.
 | |
| # Prefixing one or the other with @\# or @ or nothing makes the desired
 | |
| # behaviour. ECHO_PREFIX prefixes the comment, CMD_PREFIX prefixes the command.
 | |
| 
 | |
| -include $(ASTTOPDIR)/makeopts
 | |
| 
 | |
| .PHONY: dist-clean
 | |
| 
 | |
| # If 'make' decides to create intermediate files to satisfy a build requirement
 | |
| # (like producing a .i from a .c), we want to keep them, so tell make to keep
 | |
| # all intermediate files
 | |
| .SECONDARY:
 | |
| 
 | |
| # extra cflags to build dependencies. Recursively expanded.
 | |
| MAKE_DEPS=-MD -MT $@ -MF .$(subst /,_,$@).d -MP
 | |
| 
 | |
| ifeq ($(NOISY_BUILD),)
 | |
|     ECHO_PREFIX=@
 | |
|     CMD_PREFIX=@
 | |
| else
 | |
|     ECHO_PREFIX=@\# 
 | |
|     CMD_PREFIX=
 | |
| 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)
 | |
| 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_LIBS=$(PTHREAD_LIBS) $(LIBS)
 | |
| CXX_LIBS=$(PTHREAD_LIBS) $(LIBS)
 | |
| 
 | |
| # determine whether to double-compile so that the optimizer can report code path problems
 | |
| # this is only done when developer mode and DONT_OPTIMIZE are both enabled
 | |
| # in that case, we run the preprocessor to produce a .i or .ii file from the source
 | |
| # code, then compile once with optimizer enabled (and the output to /dev/null),
 | |
| # and if that doesn't fail then compile again with optimizer disabled
 | |
| ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS))$(AST_DEVMODE),DONT_OPTIMIZEyes)
 | |
| COMPILE_DOUBLE=yes
 | |
| endif
 | |
| 
 | |
| %.o: %.s
 | |
| 	$(ECHO_PREFIX) echo "   [AS] $< -> $@"
 | |
| ifeq ($(COMPILE_DOUBLE),yes)
 | |
| 	$(CMD_PREFIX) $(CC) -o /dev/null -c $< $(CC_CFLAGS) $(OPTIMIZE)
 | |
| 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)
 | |
| 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)
 | |
| endif
 | |
| 
 | |
| %.i: %.c
 | |
| 	$(ECHO_PREFIX) echo "   [CPP] $< -> $@"
 | |
| 	$(CMD_PREFIX) $(CC) -o $@ -E $< $(CC_CFLAGS) $(MAKE_DEPS)
 | |
| 
 | |
| %.oo: %.ii
 | |
| 	$(ECHO_PREFIX) echo "   [CXXi] $< -> $@"
 | |
| ifeq ($(COMPILE_DOUBLE),yes)
 | |
| 	$(CMD_PREFIX) $(CXX) -o /dev/null -c $< $(CXX_CFLAGS) $(OPTIMIZE)
 | |
| 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)
 | |
| endif
 | |
| 
 | |
| %.ii: %.cc
 | |
| 	$(ECHO_PREFIX) echo "   [CPP] $< -> $@"
 | |
| 	$(CMD_PREFIX) $(CXX) -o $@ -E $< $(CXX_CFLAGS) $(MAKE_DEPS)
 | |
| 
 | |
| %.so: %.o
 | |
| 	$(ECHO_PREFIX) echo "   [LD] $^ -> $@"
 | |
| 	$(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(CC_LDFLAGS_SO) $^ $(CC_LIBS)
 | |
| 
 | |
| %.so: %.oo
 | |
| 	$(ECHO_PREFIX) echo "   [LDXX] $^ -> $@"
 | |
| 	$(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(CXX_LDFLAGS_SO) $^ $(CXX_LIBS)
 | |
| 
 | |
| %.eo: %.o
 | |
| 	$(ECHO_PREFIX) echo "   [EMBED] $< -> $@"
 | |
| 	$(CMD_PREFIX) $(ASTTOPDIR)/build_tools/make_linker_eo_script $* > .$@.ld
 | |
| 	$(CMD_PREFIX) $(LD) -r -T .$@.ld -o $@ $<
 | |
| 	$(CMD_PREFIX) rm -f .$@.ld
 | |
| 
 | |
| %.eo: %.oo
 | |
| 	$(ECHO_PREFIX) echo "   [EMBED] $< -> $@"
 | |
| 	$(CMD_PREFIX) $(ASTTOPDIR)/build_tools/make_linker_eo_script $* > .$@.ld
 | |
| 	$(CMD_PREFIX) $(LD) -r -T .$@.ld -o $@ $<
 | |
| 	$(CMD_PREFIX) rm -f .$@.ld
 | |
| 
 | |
| %: %.o
 | |
| 	$(ECHO_PREFIX) echo "   [LD] $^ -> $@"
 | |
| 	$(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $^ $(CXX_LIBS)
 | |
| 
 | |
| dist-clean:: clean
 |