all: $(OBJS) $(LIBS) $(BINS) clean: rm -f *.o *.d *.d.* $(OBIN)/*.d $(OLIB)/*.d core* *~ include $(SWROOT)/Makefile.common -include $(OBJS:.o=.d) -include $(LIBS:%=$(OLIB)/%.d) -include $(BINS:%=$(OBIN)/%.d) $(OBJS): %.o: %.c $(CC) $(CFLAGS) $($(@:%=%.cflags)) -o $@ -c $< $(LIBS:%=$(OLIB)/lib%.d): @set -e; rm -f $@; \ echo $(@:.d=): $($(@:$(OLIB)/%.d=%.ldfiles)) > $@ $(LIBS:%=$(OLIB)/lib%.so): %.so: %.d $(LD) -shared $(LDFLAGS) $($(@:%=%.ldflags)) \ -o $(OLIB)/$(@:$(OLIB)/%=%) $($(@:$(OLIB)/lib%.so=%.ldfiles)) $(LIBS:%=$(OLIB)/lib%.a): %.a: %.d $(AR) rcs $(OLIB)/$(@:$(OLIB)/%=%) $($(@:$(OLIB)/lib%.a=%.ldfiles)) $(LIBS): %: $(OLIB)/lib%.so $(OLIB)/lib%.a $(BINS:%=$(OBIN)/%.d): @set -e; rm -f $@; \ echo $(@:.d=): $($(@:$(OBIN)/%.d=%.ldfiles)) > $@ $(BINS:%=$(OBIN)/%): %: %.d $(LD) -o $@ $($(@:$(OBIN)/%=%.ldfiles)) $($(@:$(OBIN)/%=%.ldflags)) $(LDFLAGS) $(BINS): %: $(OBIN)/%