diff --git a/make/lo.mk b/make/lo.mk index ea6d049d..7b0938b5 100644 --- a/make/lo.mk +++ b/make/lo.mk @@ -1,22 +1,20 @@ # === change this > TOOLS_DIR ?= $(TOPDIR)/tools - CPP_PREFIX ?= YLo SO_PREFIX ?= lo_ -#SO_PREFIX ?= \ -# $(shell sed '/const char \*YAbstractLoadableObject::_soPrefix/ !d; s/[^"]*"//; s/".*//' \ -# $(YTOOLS_DIR)/YLoadableObject/YAbstractLoadableObject.cpp) LOADABLE_OBJ_HOOK ?= LOADABLE_OBJECT_HOOK # === change this < include $(MODDIR)/make/defs.mk -include $(MODDIR)/make/rules.mk -include $(MODDIR)/make/depend.mk .PRECIOUS: %.cpp LOADABLE_OBJS_BASE = $(patsubst $(CPP_PREFIX)%,%,$(basename $(notdir $(wildcard $(TOOLS_DIR)/$(CPP_PREFIX)*.h)))) LOADABLE_OBJS = $(filter-out $(LOADABLE_OBJ_IGNORE),$(LOADABLE_OBJS_BASE)) -LOADABLE_OBJS_O = $(patsubst %.cpp,%.o,$(foreach f,$(LOADABLE_OBJS),$(wildcard $(CPP_PREFIX)$(f).cpp))) +LOADABLE_OBJS_CPP = $(patsubst %,%.cpp,$(LOADABLE_OBJS)) +LOADABLE_OBJS_O = $(patsubst %,%.o,$(LOADABLE_OBJS)) +OTHER_CPP = $(filter-out $(LOADABLE_OBJS_CPP),$(wildcard *.cpp)) +OTHER_O = $(patsubst %.cpp,%.o,$(OTHER_CPP)) +OTHER_MEMBERS_O = liblocal.a($(OTHER_O)) ifneq ($(TARGET),mingw) LOADABLE_OBJ_LIBS = $(addprefix $(SO_PREFIX), $(addsuffix .so, $(LOADABLE_OBJS))) else @@ -30,10 +28,10 @@ install: $(INSTALLED_LOADABLE_OBJ_LIBS) clean: clean.lo clean.lo: profclean - rm -f $(filter-out $(CPP_PREFIX)%.cpp,$(wildcard *.o *.cpp *.so *.done *.dll)) + rm -f $(filter-out $(CPP_PREFIX)%.cpp,$(wildcard *.o *.cpp *.so *.done *.dll liblocal.a)) -$(SO_PREFIX)%.so $(SO_PREFIX)%.dll: %.o $(LOADABLE_OBJS_O) - $(CPP) $< $(filter $(CPP_PREFIX)$*%, $(LOADABLE_OBJS_O)) -shared $(LDFLAGS) -o $@ +$(SO_PREFIX)%.so $(SO_PREFIX)%.dll: %.o liblocal.a + $(CPP) $< -L. -llocal -shared $(LDFLAGS) -o $@ %.cpp: $(TOOLS_DIR)/$(CPP_PREFIX)%.h echo "#include \"$<\"" > $@.tmp @@ -41,8 +39,14 @@ $(SO_PREFIX)%.so $(SO_PREFIX)%.dll: %.o $(LOADABLE_OBJS_O) echo "$(LOADABLE_OBJ_HOOK)($(CPP_PREFIX)$*);" >> $@.tmp mv $@.tmp $@ +liblocal.a(%.o): %.o + ar cr liblocal.a $< +liblocal.a: $(OTHER_MEMBERS_O) + $(BUILD_LIBDIR)/%.so: %.so install -m 755 $< $@ $(BUILD_LIBDIR)/%.dll: %.dll install -m 755 $< $@ +include $(MODDIR)/make/rules.mk +include $(MODDIR)/make/depend.mk