Merged revisions 73316 via svnmerge from
[asterisk/asterisk.git] / Makefile.rules
index 0c2b97d..e847c3a 100644 (file)
@@ -15,7 +15,7 @@
 # Prefixing one or the other with @\# or @ or nothing makes the desired
 # behaviour. ECHO_PREFIX prefixes the comment, CMD_PREFIX prefixes the command.
 
 # 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
+-include $(ASTTOPDIR)/makeopts
 
 ifeq ($(NOISY_BUILD),)
    ECHO_PREFIX=@
 
 ifeq ($(NOISY_BUILD),)
    ECHO_PREFIX=@
@@ -33,72 +33,77 @@ ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS)),)
 #K6OPT=-DK6OPT
 
 OPTIMIZE?=-O6
 #K6OPT=-DK6OPT
 
 OPTIMIZE?=-O6
-CFLAGS+=$(OPTIMIZE)
+ASTCFLAGS+=$(OPTIMIZE)
 endif
 
 endif
 
-define ast_make_o_c
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [CC] $$< -> $$@"
-       $(CMD_PREFIX) $$(CC) -o $$@ -c $$< $$(CFLAGS)
-endef
-
-define ast_make_oo_cc
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [CXX] $$< -> $$@"
-       $(CMD_PREFIX) $$(CXX) -o $$@ -c $$< $$(CFLAGS)
-endef
-
-define ast_make_c_y
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [BISON] $$< -> $$@"
-       $(CMD_PREFIX) bison -o $$@ -d --name-prefix=ast_yy $$<
-endef
-
-define ast_make_c_fl
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [FLEX] $$< -> $$@"
-       $(CMD_PREFIX) flex -o $$@ --full $$<
-endef
-
-define ast_make_so_o
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [LD] $$^ -> $$@"
-       $(CMD_PREFIX) $$(CC) $$(STATIC_BUILD) -o $$@ $$(LDFLAGS) $$(SOLINK) $$^ $$(LIBS)
-endef
-
-define ast_make_so_oo
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [LDXX] $$^ -> $$@"
-       $(CMD_PREFIX) $$(CXX) $$(STATIC_BUILD) -o $$@ $$(LDFLAGS) $$(SOLINK) $$^ $$(LIBS)
-endef
-
-define ast_make_a_o
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [AR] $$^ -> $$@"
-       $(CMD_PREFIX) $$(AR) cr $$@ $$^
-       $(CMD_PREFIX) $$(RANLIB) $$@
-endef
-
-define ast_make_final
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [LD] $$^ -> $$@"
-       $(CMD_PREFIX) $$(CXX) $$(STATIC_BUILD) -o $$@ $$(LDFLAGS) $$^ $$(LIBS)
-endef
-
-define ast_make_final_host
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [LD] $$^ -> $$@"
-       $(CMD_PREFIX) $$(HOST_CC) $$(STATIC_BUILD) -o $$@ $$(CFLAGS) $$(LDFLAGS) $$^ $$(LIBS)
-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))
-
-$(eval $(call ast_make_c_y,%.c,%.y))
-
-$(eval $(call ast_make_c_fl,%.c,%.fl))
+%.o: %.c
+       $(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
+
+%.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
+
+%.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
+
+%.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
+
+%.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
+
+%.c: %.y
+       $(ECHO_PREFIX) echo "   [BISON] $< -> $@"
+       $(CMD_PREFIX) bison -o $@ -d --name-prefix=ast_yy $<
+
+%.c: %.fl
+       $(ECHO_PREFIX) echo "   [FLEX] $< -> $@"
+       $(CMD_PREFIX) flex -o $@ --full $<
+
+%.so: %.o
+       $(ECHO_PREFIX) echo "   [LD] $^ -> $@"
+       $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $^ $(PTHREAD_LIBS) $(LIBS)
+
+%.so: %.oo
+       $(ECHO_PREFIX) echo "   [LDXX] $^ -> $@"
+       $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $^ $(PTHREAD_LIBS) $(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
+
+%.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
+
+%: %.o
+       $(ECHO_PREFIX) echo "   [LD] $^ -> $@"
+       $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $^ $(PTHREAD_LIBS) $(LIBS)