dxx-rebirth/makefile.lib
2006-03-20 16:43:15 +00:00

60 lines
1 KiB
Plaintext
Executable file

#default makefile for libraries
CPPFLAGS= $(CFLAGS)
all: $(SUBDIRS) $(OUTPUT)
include $(TOPDIR)/makefile.rules
$(filter %.a,$(OUTPUT)): depend
make make_a
$(filter %.lib,$(OUTPUT)): depend
make make_lib
make_a: $(LIBDIR) $(OBJDIR) $(OBJECTS_TARGETS) $(OBJECTS_DONT_LINK_TARGETS)
ar rcs $(OUTPUT) $(OBJECTS_TARGETS)
make_lib: $(LIBDIR) $(OBJDIR) $(OBJECTS_TARGETS) $(OBJECTS_DONT_LINK_TARGETS)
lib -nologo -out:$(OUTPUT) $(OBJECTS_TARGETS)
$(LIBDIR):
mkdir $(LIBDIR) -p
ifneq ($(OBJECTS),)
$(OBJDIR):
mkdir $(OBJDIR) -p
endif
#dependancy generation
ALLOBJECTS = $(OBJECTS_TARGETS)
DEPOBJ=$(ALLOBJECTS:.$(OBJ)=.d)
$(OBJDIR)%.d: %.c
$(CC) $(CFLAGS) $(E_CFLAGS) -MM $< >> $@
$(OBJDIR)%.d: %.cpp
$(CC) $(CFLAGS) $(E_CFLAGS) -MM $< >> $@
depend: $(OBJDIR) $(subst .o,.d,$(OBJECTS_TARGETS))
$(DEPSUBS)
ifneq ($(wildcard $(OBJDIR)*.d),)
include $(wildcard $(OBJDIR)*.d)
endif
#rules for cleaning
ifdef OBJECTS
CLEANOBJ=rm -r -f $(OBJDIR)
endif
ifdef OUTPUT
CLEANOUT=rm -f $(OUTPUT)
endif
clean:
$(CLEANOBJ)
$(CLEANOUT)
$(CLEANSUBS)