#-----[ Directory ]---------------------------------------- DIR_LIB = ./lib DIR_CACHE = ./Cache DIR_DATA = ./Data DIR_ENDIANNESS = ./Endianness DIR_QUEUE = ./Queue DIR_RAMLOCK = ./RamLock DIR_SIM2OS = ./Sim2OS DIR_TTY = ./TTY #-----[ Variable ]----------------------------------------- ENTITY ?= Environment LIBRARY_NAME = Environment LIBRARY_FILE = $(DIR_LIB)/lib$(LIBRARY_NAME).a OBJECTS_DEPS = $(patsubst $(DIR_CACHE)/$(DIR_SRC)/%.cpp,$(DIR_CACHE)/$(DIR_OBJ)/%.o,$(wildcard $(DIR_CACHE)/$(DIR_SRC)/*.cpp)) \ $(patsubst $(DIR_DATA)/$(DIR_SRC)/%.cpp,$(DIR_DATA)/$(DIR_OBJ)/%.o,$(wildcard $(DIR_DATA)/$(DIR_SRC)/*.cpp)) \ $(patsubst $(DIR_DATA)/$(DIR_SRC)/%.c,$(DIR_DATA)/$(DIR_OBJ)/%.o,$(wildcard $(DIR_DATA)/$(DIR_SRC)/*.c)) \ $(patsubst $(DIR_ENDIANNESS)/$(DIR_SRC)/%.cpp,$(DIR_ENDIANNESS)/$(DIR_OBJ)/%.o,$(wildcard $(DIR_ENDIANNESS)/$(DIR_SRC)/*.cpp)) \ $(patsubst $(DIR_QUEUE)/$(DIR_SRC)/%.cpp,$(DIR_QUEUE)/$(DIR_OBJ)/%.o,$(wildcard $(DIR_QUEUE)/$(DIR_SRC)/*.cpp)) \ $(patsubst $(DIR_RAMLOCK)/$(DIR_SRC)/%.cpp,$(DIR_RAMLOCK)/$(DIR_OBJ)/%.o,$(wildcard $(DIR_RAMLOCK)/$(DIR_SRC)/*.cpp)) \ $(patsubst $(DIR_SIM2OS)/$(DIR_SRC)/%.cpp,$(DIR_SIM2OS)/$(DIR_OBJ)/%.o,$(wildcard $(DIR_SIM2OS)/$(DIR_SRC)/*.cpp)) \ $(patsubst $(DIR_TTY)/$(DIR_SRC)/%.cpp,$(DIR_TTY)/$(DIR_OBJ)/%.o,$(wildcard $(DIR_TTY)/$(DIR_SRC)/*.cpp)) #-----[ Rules ]-------------------------------------------- all : a b c d e f g @\ $(MAKE) all_environment; \ $(MAKE) $(LIBRARY_FILE); a : @\ $(MAKE) --directory=$(DIR_CACHE) all; b : @\ $(MAKE) --directory=$(DIR_DATA) all; c : @\ $(MAKE) --directory=$(DIR_ENDIANNESS) all; d : @\ $(MAKE) --directory=$(DIR_QUEUE) all; e : @\ $(MAKE) --directory=$(DIR_RAMLOCK) all; f : @\ $(MAKE) --directory=$(DIR_SIM2OS) all; g : @\ $(MAKE) --directory=$(DIR_TTY) all; $(LIBRARY_FILE) : $(OBJECTS_DEPS) $(OBJECTS) $(DIR_LIB) @\ $(ECHO) "Archive : $@";\ $(AR) -r $@ $(OBJECTS_DEPS) $(OBJECTS);\ $(RANLIB) $@; $(DIR_LIB) : @\ $(ECHO) "Create directory : $@";\ $(MKDIR) $@; exe_all : @\ $(MAKE) --directory=$(DIR_CACHE) exe; \ $(MAKE) --directory=$(DIR_DATA) exe; \ $(MAKE) --directory=$(DIR_ENDIANNESS) exe; \ $(MAKE) --directory=$(DIR_QUEUE) exe; \ $(MAKE) --directory=$(DIR_RAMLOCK) exe; \ $(MAKE) --directory=$(DIR_SIM2OS) exe; \ $(MAKE) --directory=$(DIR_TTY) exe; \ $(MAKE) exe; \ clean : @\ $(MAKE) --directory=$(DIR_CACHE) clean; \ $(MAKE) --directory=$(DIR_DATA) clean; \ $(MAKE) --directory=$(DIR_ENDIANNESS) clean; \ $(MAKE) --directory=$(DIR_QUEUE) clean; \ $(MAKE) --directory=$(DIR_RAMLOCK) clean; \ $(MAKE) --directory=$(DIR_SIM2OS) clean; \ $(MAKE) --directory=$(DIR_TTY) clean; \ $(MAKE) environment_clean; \ $(RM) tty_*; clean_all : clean @\ $(RM) $(DIR_LIB); help : @$(MAKE) environment_help include Makefile.Environment