Merged revisions 67862 via svnmerge from
[asterisk/asterisk.git] / Makefile.rules
index a82fc99..e847c3a 100644 (file)
 # 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
+
+ifeq ($(NOISY_BUILD),)
+   ECHO_PREFIX=@
+   CMD_PREFIX=@
+else
+   ECHO_PREFIX=@\# 
+   CMD_PREFIX=
+endif
+
+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
+ASTCFLAGS+=$(OPTIMIZE)
+endif
 
 %.o: %.c
-       $(CC) -c -o $@ $< $(CFLAGS)
+       $(ECHO_PREFIX) echo "   [CC] $< -> $@"
+ifeq ($(AST_DEVMODE),yes)
+       $(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP
+else
+       $(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS)
+endif
 
-$(foreach mod,$(SELECTED_MODS),$(eval $(call module_o_template,$(mod))))
+%.o: %.i
+       $(ECHO_PREFIX) echo "   [CC] $< -> $@"
+ifeq ($(AST_DEVMODE),yes)
+       $(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP
+else
+       $(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS)
+endif
 
-$(foreach mod,$(SELECTED_MODS),$(eval $(call module_so_template,$(mod))))
+%.i: %.c
+       $(ECHO_PREFIX) echo "   [CC] $< -> $@"
+ifeq ($(AST_DEVMODE),yes)
+       $(CMD_PREFIX) $(CC) -o $@ -E $< $(PTHREAD_CFLAGS) $(ASTCFLAGS) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP
+else
+       $(CMD_PREFIX) $(CC) -o $@ -E $< $(PTHREAD_CFLAGS) $(ASTCFLAGS)
+endif
 
-.PHONY: clean clean-depend depend uninstall _all
+%.o: %.s
+       $(ECHO_PREFIX) echo "   [AS] $< -> $@"
+ifeq ($(AST_DEVMODE),yes)
+       $(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP
+else
+       $(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS)
+endif
 
-_all: $(SELECTED_MODS:%=%.so)
+%.oo: %.cc
+       $(ECHO_PREFIX) echo "   [CXX] $< -> $@"
+ifeq ($(AST_DEVMODE),yes)
+       $(CMD_PREFIX) $(CXX) -o $@ -c $< $(PTHREAD_CFLAGS) $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations,$(ASTCFLAGS)) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP
+else
+       $(CMD_PREFIX) $(CXX) -o $@ -c $< $(PTHREAD_CFLAGS) $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations,$(ASTCFLAGS))
+endif
 
-clean-depend::
-       rm -f .depend
+%.c: %.y
+       $(ECHO_PREFIX) echo "   [BISON] $< -> $@"
+       $(CMD_PREFIX) bison -o $@ -d --name-prefix=ast_yy $<
 
-clean:: clean-depend
-       rm -f *.so *.o
+%.c: %.fl
+       $(ECHO_PREFIX) echo "   [FLEX] $< -> $@"
+       $(CMD_PREFIX) flex -o $@ --full $<
 
-install:: all
-       for x in $(SELECTED_MODS:%=%.so); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
+%.so: %.o
+       $(ECHO_PREFIX) echo "   [LD] $^ -> $@"
+       $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $^ $(PTHREAD_LIBS) $(LIBS)
 
-uninstall::
+%.so: %.oo
+       $(ECHO_PREFIX) echo "   [LDXX] $^ -> $@"
+       $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $^ $(PTHREAD_LIBS) $(LIBS)
 
-ifneq ($(wildcard .depend),)
- include .depend
-endif
+%.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
 
-depend: .depend
+%.eoo: %.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
 
-.depend:
-       ../build_tools/mkdep $(CFLAGS) `ls *.c`
+%: %.o
+       $(ECHO_PREFIX) echo "   [LD] $^ -> $@"
+       $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $^ $(PTHREAD_LIBS) $(LIBS)