Skip to content
Snippets Groups Projects
Makefile.rules 2.37 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
    #
    
    
    # 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
    
    
    ifeq ($(NOISY_BUILD),)
       ECHO_PREFIX=@
       CMD_PREFIX=@
    else
       ECHO_PREFIX=@\# 
       CMD_PREFIX=
    endif
    
    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
    
    OPTIMIZE?=-O6
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    define ast_make_o_c
    $(1): $(2)
    
    	$(ECHO_PREFIX) echo "   [CC] $$< -> $$@"
    
    	$(CMD_PREFIX) $$(CC) -o $$@ -c $$< $$(ASTCFLAGS)
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    endef
    
    define ast_make_oo_cc
    $(1): $(2)
    
    	$(ECHO_PREFIX) echo "   [CXX] $$< -> $$@"
    
    	$(CMD_PREFIX) $$(CXX) -o $$@ -c $$< $$(ASTCFLAGS)
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    endef
    
    define ast_make_c_y
    $(1): $(2)
    
    	$(ECHO_PREFIX) echo "   [BISON] $$< -> $$@"
    	$(CMD_PREFIX) bison -o $$@ -d --name-prefix=ast_yy $$<
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    endef
    
    define ast_make_c_fl
    $(1): $(2)
    
    	$(ECHO_PREFIX) echo "   [FLEX] $$< -> $$@"
    	$(CMD_PREFIX) flex -o $$@ --full $$<
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    endef
    
    define ast_make_so_o
    $(1): $(2)
    
    	$(ECHO_PREFIX) echo "   [LD] $$^ -> $$@"
    
    	$(CMD_PREFIX) $$(CC) $$(STATIC_BUILD) -o $$@ $$(ASTLDFLAGS) $$(SOLINK) $$^ $$(LIBS)
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    endef
    
    define ast_make_so_oo
    $(1): $(2)
    
    	$(ECHO_PREFIX) echo "   [LDXX] $$^ -> $$@"
    
    	$(CMD_PREFIX) $$(CXX) $$(STATIC_BUILD) -o $$@ $$(ASTLDFLAGS) $$(SOLINK) $$^ $$(LIBS)
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    endef
    
    define ast_make_a_o
    $(1): $(2)
    
    	$(ECHO_PREFIX) echo "   [AR] $$^ -> $$@"
    	$(CMD_PREFIX) $$(AR) cr $$@ $$^
    	$(CMD_PREFIX) $$(RANLIB) $$@
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    endef
    
    define ast_make_final
    $(1): $(2)
    
    	$(ECHO_PREFIX) echo "   [LD] $$^ -> $$@"
    
    	$(CMD_PREFIX) $$(CXX) $$(STATIC_BUILD) -o $$@ $$(ASTLDFLAGS) $$^ $$(LIBS)
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    endef
    
    define ast_make_final_host
    $(1): $(2)
    
    	$(ECHO_PREFIX) echo "   [LD] $$^ -> $$@"
    
    	$(CMD_PREFIX) $$(HOST_CC) $$(STATIC_BUILD) -o $$@ $$(HOST_CFLAGS) $$(HOST_LDFLAGS) $$^ $$(LIBS)
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    endef
    
    $(eval $(call ast_make_o_c,%.o,%.c))
    
    $(eval $(call ast_make_oo_cc,%.oo,%.cc))
    
    $(eval $(call ast_make_so_o,%.so,%.o))
    
    $(eval $(call ast_make_final,%,%.o))