All pastes #93736 Raw Edit

Something

public text v1 · immutable
#93736 ·published 2006-07-20 18:35 UTC
rendered paste body
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)/%