jw-pkg/make/lo.mk

45 lines
1.8 KiB
Makefile
Raw Normal View History

2007-07-02 13:28:06 +00:00
include $(MODDIR)/make/defs.mk
include $(MODDIR)/make/rules.mk
include $(MODDIR)/make/depend.mk
# === change this >
TOOLS_DIR ?= $(TOPDIR)/tools
2007-07-02 13:28:06 +00:00
CPP_PREFIX ?= YLo
SO_PREFIX ?= lo_
2007-08-17 10:41:30 +00:00
#SO_PREFIX ?= \
# $(shell sed '/const char \*YAbstractLoadableObject::_soPrefix/ !d; s/[^"]*"//; s/".*//' \
# $(YTOOLS_DIR)/YLoadableObject/YAbstractLoadableObject.cpp)
LOADABLE_OBJ_HOOK ?= LOADABLE_OBJECT_HOOK
2007-07-02 13:28:06 +00:00
# === change this <
.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)))
ifneq ($(TARGET),mingw)
LOADABLE_OBJ_LIBS = $(addprefix $(SO_PREFIX), $(addsuffix .so, $(LOADABLE_OBJS)))
else
LOADABLE_OBJ_LIBS = $(addprefix $(SO_PREFIX), $(addsuffix .dll, $(LOADABLE_OBJS)))
endif
2007-08-21 16:20:19 +00:00
BUILD_LOADABLE_OBJ_LIBS = $(addprefix $(BUILD_LIBDIR)/, $(LOADABLE_OBJ_LIBS))
INSTALLED_LOADABLE_OBJ_LIBS = $(addprefix $(INSTALL_LIBDIR)/, $(LOADABLE_OBJ_LIBS))
2007-07-02 13:28:06 +00:00
all: $(LOADABLE_OBJ_LIBS) $(BUILD_LOADABLE_OBJ_LIBS)
install: $(INSTALLED_LOADABLE_OBJ_LIBS)
clean: clean.lo
2007-12-01 22:43:17 +00:00
clean.lo: profclean
rm -f $(filter-out $(CPP_PREFIX)%.cpp,$(wildcard *.o *.cpp *.so *.done *.dll))
2007-07-02 13:28:06 +00:00
$(SO_PREFIX)%.so $(SO_PREFIX)%.dll: %.o $(LOADABLE_OBJS_O)
$(CPP) $< $(filter $(CPP_PREFIX)$*%, $(LOADABLE_OBJS_O)) -shared $(LDFLAGS) -o $@
2007-07-02 13:28:06 +00:00
%.cpp: $(TOOLS_DIR)/$(CPP_PREFIX)%.h
echo -e "#include \"$<\"\n$(LOADABLE_OBJ_HOOK)($(CPP_PREFIX)$*);\n" > $@
2007-08-21 16:20:19 +00:00
$(BUILD_LIBDIR)/%.so: %.so
2007-07-02 13:28:06 +00:00
install -m 755 $< $@
2007-08-21 16:20:19 +00:00
$(BUILD_LIBDIR)/%.dll: %.dll
install -m 755 $< $@