mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
make, scripts: Re-add files necessary for building ytools
Re-add everthing needed for building and packaging ytools. This is a big commit, 2002 lines of code. It mostly consists of C/C++ machinery, plus some documentation-related stuff. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
0a9340af49
commit
bf16c6714b
27 changed files with 1975 additions and 0 deletions
72
make/lo.mk
Normal file
72
make/lo.mk
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
# === pre-define these >
|
||||
TOOLS_DIR ?= $(TOPDIR)/tools
|
||||
TOOLS_INCLUDE_DIR ?= $(TOOLS_DIR)
|
||||
CPP_PREFIX ?= YLo
|
||||
CPP_SUFFIX ?=
|
||||
SO_PREFIX ?= lo_
|
||||
LOADABLE_OBJ_HOOK ?= LOADABLE_OBJECT_HOOK
|
||||
LOADABLE_OBJ_IGNORE ?=
|
||||
# === pre-define these <
|
||||
|
||||
include $(JWBDIR)/make/defs.mk
|
||||
include $(JWBDIR)/make/defs-cpp.mk
|
||||
include $(JWBDIR)/make/profiler-defs.mk
|
||||
include $(JWBDIR)/make/dev-utils.mk
|
||||
|
||||
.PRECIOUS: %.cpp %.o
|
||||
LOADABLE_OBJS_HEADER ?= $(wildcard $(TOOLS_INCLUDE_DIR)/$(CPP_PREFIX)*$(CPP_SUFFIX).h)
|
||||
LOADABLE_OBJS_BASE ?= $(patsubst %$(CPP_SUFFIX),%,$(patsubst $(CPP_PREFIX)%,%,$(basename $(notdir $(LOADABLE_OBJS_HEADER)))))
|
||||
LOADABLE_OBJS = $(filter-out $(LOADABLE_OBJ_IGNORE),$(LOADABLE_OBJS_BASE))
|
||||
LOADABLE_OBJ_CPP = $(patsubst %,%.cpp,$(LOADABLE_OBJS))
|
||||
LOADABLE_OBJS_O = $(patsubst %,%.o,$(LOADABLE_OBJS))
|
||||
|
||||
OTHER_CPP_IGNORE += $(patsubst %,$(CPP_PREFIX)%.cpp,$(LOADABLE_OBJ_IGNORE)) $(patsubst %,%.cpp,$(LOADABLE_OBJ_IGNORE))
|
||||
SRC_ALL_CPP_IGNORE += $(OTHER_CPP_IGNORE)
|
||||
OTHER_CPP ?= $(filter-out $(LOADABLE_OBJ_CPP) $(OTHER_CPP_IGNORE),$(wildcard *.cpp))
|
||||
ifneq ($(OTHER_CPP),)
|
||||
OTHER_O = $(patsubst %.cpp,%.o,$(OTHER_CPP))
|
||||
OTHER_LIB = liblocal.a
|
||||
OTHER_LIB_LDFLAGS = -L. -llocal
|
||||
OTHER_MEMBERS_O = $(OTHER_LIB)($(OTHER_O))
|
||||
endif
|
||||
|
||||
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
|
||||
BUILD_LOADABLE_OBJ_LIBS = $(addprefix $(BUILD_LIBDIR)/,$(LOADABLE_OBJ_LIBS))
|
||||
INSTALLED_LOADABLE_OBJ_LIBS = $(addprefix $(INSTALL_LIBDIR)/,$(LOADABLE_OBJ_LIBS))
|
||||
|
||||
all: $(LOADABLE_OBJ_LIBS) $(BUILD_LOADABLE_OBJ_LIBS)
|
||||
install: $(INSTALLED_LOADABLE_OBJ_LIBS)
|
||||
clean: clean.lo
|
||||
|
||||
clean.generated:
|
||||
$(RM) -f $(patsubst $(CPP_PREFIX)%$(CPP_SUFFIX),%,$(notdir $(patsubst %.h,%.cpp,$(LOADABLE_OBJS_HEADER))))
|
||||
|
||||
clean.lo: profclean clean.generated
|
||||
$(RM) -f $(wildcard *.o *.so *.done *.dll $(OTHER_LIB))
|
||||
|
||||
$(SO_PREFIX)%.so $(SO_PREFIX)%.dll: %.o $(CPP_PREFIX)%.o $(OTHER_LIB)
|
||||
$(CXX) $^ -L. $(OTHER_LIB_LDFLAGS) -shared $(FINAL_LDFLAGS) -o $@
|
||||
|
||||
%.cpp: $(TOOLS_INCLUDE_DIR)/$(CPP_PREFIX)%$(CPP_SUFFIX).h
|
||||
echo "#include \"$<\"" > $@.tmp
|
||||
if [ "$(LO_NAMESPACE)" ]; then echo "using namespace $(LO_NAMESPACE);" >> $@.tmp; fi
|
||||
echo "$(LOADABLE_OBJ_HOOK)($(CPP_PREFIX)$*$(CPP_SUFFIX));" >> $@.tmp
|
||||
mv $@.tmp $@
|
||||
|
||||
$(OTHER_LIB)(%.o): %.o
|
||||
$(AR) rU $(OTHER_LIB) $<
|
||||
$(RANLIB) $(OTHER_LIB)
|
||||
|
||||
$(OTHER_LIB): $(OTHER_MEMBERS_O)
|
||||
|
||||
$(BUILD_LIBDIR)/%.so: %.so
|
||||
install -m 755 $< $@
|
||||
$(BUILD_LIBDIR)/%.dll: %.dll
|
||||
install -m 755 $< $@
|
||||
|
||||
include $(JWBDIR)/make/rules.mk
|
||||
include $(JWBDIR)/make/depend.mk
|
||||
Loading…
Add table
Add a link
Reference in a new issue