Created global Makefile for modules; renamed Makefile for lib

This commit is contained in:
lucic71 2020-06-24 09:19:06 +03:00
parent 5f9d8ed977
commit 9abecaa070
4 changed files with 24 additions and 9 deletions

View File

@ -3,6 +3,8 @@
SO_DIR := so/
INC_DIR := include/
# Upper directories
ROOT_DIR := ../
SCRIPTS_DIR = $(ROOT_DIR)/scripts/
@ -25,6 +27,10 @@ SO := libklib.a
AR = ar
ARFLAGS = rcs
# Makefile for each library
MAKEFILE = $(SCRIPTS_DIR)/Makefile.Library
all: rbuild
$(AR) $(ARFLAGS) $(SO_DIR)/$(SO) $(LIB_OBJ)
@ -33,7 +39,7 @@ all: rbuild
rbuild:
@echo
@$(foreach LIB, $(LIB_DIR), \
cp $(SCRIPTS_DIR)/MakefileLib $(LIB)/Makefile; \
cp $(MAKEFILE) $(LIB)/Makefile; \
$(MAKE) -C $(LIB); \
$(RM) $(LIB)/Makefile; \
echo; \
@ -44,7 +50,7 @@ rbuild:
clean:
@echo
@$(foreach LIB, $(LIB_DIR), \
cp $(SCRIPTS_DIR)/MakefileLib $(LIB)/Makefile; \
cp $(MAKEFILE) $(LIB)/Makefile; \
$(MAKE) -C $(LIB) clean; \
$(RM) $(LIB)/Makefile; \
echo; \

View File

@ -1,3 +1,8 @@
# Upper directories
ROOT_DIR := ../
SCRIPTS_DIR = $(ROOT_DIR)/scripts/
# Directories containing modules
MODULE_DIR = $(wildcard */)
@ -5,17 +10,25 @@ MODULE_INC_DIR = include/
MODULE_DIR := $(filter-out $(MODULE_INC_DIR), $(MODULE_DIR))
# Makefile for each module
MAKEFILE = $(SCRIPTS_DIR)/Makefile.Module
all:
@echo
@$(foreach MODULE, $(MODULE_DIR), \
cp $(MAKEFILE) $(MODULE)/Makefile; \
$(MAKE) -C $(MODULE); \
echo ""; \
$(RM) $(MODULE)/Makefile; \
echo; \
)
clean:
@echo
@$(foreach MODULE, $(MODULE_DIR), \
cp $(MAKEFILE) $(MODULE)/Makefile; \
$(MAKE) -C $(MODULE) clean; \
echo ""; \
$(RM) $(MODULE)/Makefile; \
echo; \
)

View File

@ -37,17 +37,13 @@ HFLAGS = -MMD
LD = ld
LDFLAGS = -relocatable -m elf_i386
# INCFLAGS - include directories for each dependency. These dependencies
# include module dependencies and the include directory inside the current
# module
# Include directories
INCFLAGS = $(foreach TMP, $(LIB_INC_DIR), -I$(TMP))
INCFLAGS += $(foreach TMP, $(INC_DIR), -I$(TMP))
.PHONY: all clean
# all - Default rule for building the module object.
all: $(MOD_OBJ)
$(MOD_OBJ): $(OBJ) | $(MOBJ_DIR)