X-Git-Url: http://git.asterisk.org/gitweb/?p=asterisk%2Fasterisk.git;a=blobdiff_plain;f=Makefile.rules;h=b7560a87cd2d44d4a7f4f9233130552182d3a830;hp=a82fc99be2d61fe4da967739ea8c70bceaba9be7;hb=fd06f299456989a03f0f61fe9289f501846e1d54;hpb=9d6c30422be9b5fe4aef9a7d3cbe88ce0c078763 diff --git a/Makefile.rules b/Makefile.rules index a82fc99..b7560a8 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -11,43 +11,71 @@ # the GNU General Public License # -define module_o_template -$(1).o: $(1).c - $$(CC) -c -o $$@ $$< $$(CFLAGS) $$(MENUSELECT_OPTS_$(1):%=-D%) $(foreach dep,$(MENUSELECT_DEPENDS_$(1)),$$(value $(dep)_INCLUDE)) -endef +# 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. -define module_so_template -$(1).so: $(1).o - $$(CC) $$(SOLINK) -o $$@ $$^ $(foreach dep,$(MENUSELECT_DEPENDS_$(1)),$$(value $(dep)_LIB)) -endef +-include $(ASTTOPDIR)/makeopts -%.o: %.c - $(CC) -c -o $@ $< $(CFLAGS) - -$(foreach mod,$(SELECTED_MODS),$(eval $(call module_o_template,$(mod)))) +ifeq ($(NOISY_BUILD),) + ECHO_PREFIX=@ + CMD_PREFIX=@ +else + ECHO_PREFIX=@\# + CMD_PREFIX= +endif -$(foreach mod,$(SELECTED_MODS),$(eval $(call module_so_template,$(mod)))) +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 -.PHONY: clean clean-depend depend uninstall _all +OPTIMIZE?=-O6 +ASTCFLAGS+=$(OPTIMIZE) +endif -_all: $(SELECTED_MODS:%=%.so) +%.o: %.c + $(ECHO_PREFIX) echo " [CC] $< -> $@" +ifeq ($(AST_DEVMODE),yes) + $(CMD_PREFIX) $(CC) -o $@ -c $< $(ASTCFLAGS) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP +else + $(CMD_PREFIX) $(CC) -o $@ -c $< $(ASTCFLAGS) +endif -clean-depend:: - rm -f .depend +%.o: %.s + $(ECHO_PREFIX) echo " [AS] $< -> $@" +ifeq ($(AST_DEVMODE),yes) + $(CMD_PREFIX) $(CC) -o $@ -c $< $(ASTCFLAGS) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP +else + $(CMD_PREFIX) $(CC) -o $@ -c $< $(ASTCFLAGS) +endif -clean:: clean-depend - rm -f *.so *.o +%.oo: %.cc + $(ECHO_PREFIX) echo " [CXX] $< -> $@" +ifeq ($(AST_DEVMODE),yes) + $(CMD_PREFIX) $(CXX) -o $@ -c $< $(ASTCFLAGS) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP +else + $(CMD_PREFIX) $(CXX) -o $@ -c $< $(ASTCFLAGS) +endif -install:: all - for x in $(SELECTED_MODS:%=%.so); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done +%.c: %.y + $(ECHO_PREFIX) echo " [BISON] $< -> $@" + $(CMD_PREFIX) bison -o $@ -d --name-prefix=ast_yy $< -uninstall:: +%.c: %.fl + $(ECHO_PREFIX) echo " [FLEX] $< -> $@" + $(CMD_PREFIX) flex -o $@ --full $< -ifneq ($(wildcard .depend),) - include .depend -endif +%.so: %.o + $(ECHO_PREFIX) echo " [LD] $^ -> $@" + $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(ASTLDFLAGS) $(SOLINK) $^ $(LIBS) -depend: .depend +%.so: %.oo + $(ECHO_PREFIX) echo " [LDXX] $^ -> $@" + $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLDFLAGS) $(SOLINK) $^ $(LIBS) -.depend: - ../build_tools/mkdep $(CFLAGS) `ls *.c` +%: %.o + $(ECHO_PREFIX) echo " [LD] $^ -> $@" + $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLDFLAGS) $^ $(LIBS)