60 lines
1 KiB
Plaintext
60 lines
1 KiB
Plaintext
![]() |
#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)
|