Skip to content
Snippets Groups Projects
Makefile.rules 2.93 KiB
Newer Older
  • Learn to ignore specific revisions
  • Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    #
    # Asterisk -- A telephony toolkit for Linux.
    # 
    # Makefile rules
    #
    # Copyright (C) 2006, Digium, Inc.
    #
    # Kevin P. Fleming <kpfleming@digium.com>
    #
    # This program is free software, distributed under the terms of
    # the GNU General Public License
    #
    
    
    # Rules for various build phases.
    
    # 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.
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    
    
    .PHONY: dist-clean
    
    
    # extra cflags to build dependencies. Recursively expanded.
    
    MAKE_DEPS= -MD -MT $@ -MF .$(subst /,_,$@).d -MP
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    
    
    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
    
    # build rules for various targets
    
    %.o: %.c
    	$(ECHO_PREFIX) echo "   [CC] $< -> $@"
    
    	$(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS) $(MAKE_DEPS)
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    
    
    	$(ECHO_PREFIX) echo "   [CCi] $< -> $@"
    
    	$(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS) $(MAKE_DEPS)
    
    	$(ECHO_PREFIX) echo "   [CPP] $< -> $@"
    
    	$(CMD_PREFIX) $(CC) -o $@ -E $< $(PTHREAD_CFLAGS) $(ASTCFLAGS) $(MAKE_DEPS)
    
    %.o: %.s
    	$(ECHO_PREFIX) echo "   [AS] $< -> $@"
    
    	$(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS) $(MAKE_DEPS)
    
    %.oo: %.cc
    	$(ECHO_PREFIX) echo "   [CXX] $< -> $@"
    
    	$(CMD_PREFIX) $(CXX) -o $@ -c $< $(PTHREAD_CFLAGS) $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(AST_DECLARATION_AFTER_STATEMENT),$(ASTCFLAGS)) $(MAKE_DEPS)
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    
    
    %.c: %.y
    	$(ECHO_PREFIX) echo "   [BISON] $< -> $@"
    	$(CMD_PREFIX) bison -o $@ -d --name-prefix=ast_yy $<
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    
    
    %.c: %.fl
    	$(ECHO_PREFIX) echo "   [FLEX] $< -> $@"
    	$(CMD_PREFIX) flex -o $@ --full $<
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    
    
    %.so: %.o
    	$(ECHO_PREFIX) echo "   [LD] $^ -> $@"
    
    	$(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $^ $(PTHREAD_LIBS) $(LIBS)
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    
    
    	$(ECHO_PREFIX) echo "   [LDXX] $^ -> $@"
    
    	$(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $^ $(PTHREAD_LIBS) $(LIBS)
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    
    
    %.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
    
    
    	$(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) $^ $(PTHREAD_LIBS) $(LIBS)