mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-18 21:13:56 +01:00
rules.mk: Refactor entire file
- Re-sort bigtime - Most standard targets are now done by user function std_install_rules
This commit is contained in:
parent
8432b68a06
commit
9e5eff01ea
1 changed files with 293 additions and 234 deletions
527
make/rules.mk
527
make/rules.mk
|
|
@ -3,242 +3,18 @@
|
||||||
# contact@jannet.de
|
# contact@jannet.de
|
||||||
# $Id$
|
# $Id$
|
||||||
|
|
||||||
all: all.done
|
# -- standard targets
|
||||||
|
|
||||||
.PRECIOUS: $(LOCAL_H)
|
all: all.done
|
||||||
|
install: all
|
||||||
|
clean:
|
||||||
|
distclean: clean
|
||||||
|
|
||||||
|
# -- phony targets
|
||||||
|
|
||||||
echo_all:
|
echo_all:
|
||||||
@echo "$(ALL)"
|
@echo "$(ALL)"
|
||||||
|
|
||||||
all.done: $(PREREQ_DONE) $(LOCAL_TARGETS) $(ALL)
|
|
||||||
touch $@
|
|
||||||
|
|
||||||
strip.done: $(EXE_ALL)
|
|
||||||
$(STRIP) $^
|
|
||||||
touch $@
|
|
||||||
|
|
||||||
%.done:
|
|
||||||
make -$(MAKEFLAGS) -C $(shell dirname $@) `basename $@`
|
|
||||||
|
|
||||||
$(LIBDIR):
|
|
||||||
mkdir -p $@
|
|
||||||
|
|
||||||
#lib$(MOD)(%.o).a: %.c $(LIBDIR)
|
|
||||||
# $(CC) $(CFLAGS) -c $< -o $*.o
|
|
||||||
# $(AR) r $@ $*.o
|
|
||||||
# $(RM) $*.o
|
|
||||||
|
|
||||||
ifeq ($(QT_MAJOR_VERSION),3)
|
|
||||||
moc_%.cpp: %.h
|
|
||||||
$(MOC) -o $@ $<
|
|
||||||
else
|
|
||||||
moc_%.cpp: %.h
|
|
||||||
$(MOC) $(filter -D% -I%,$(strip $(CPPFLAGS))) -o $@ $<
|
|
||||||
endif
|
|
||||||
|
|
||||||
rcc_%.cpp: %.qrc
|
|
||||||
$(RCC) -o $@ $<
|
|
||||||
|
|
||||||
ifeq ($(QT_MAJOR_VERSION),4)
|
|
||||||
ui_%.h: %.ui
|
|
||||||
else
|
|
||||||
%.h: %.ui
|
|
||||||
endif
|
|
||||||
$(UIC) $< -o $@
|
|
||||||
|
|
||||||
ifeq ($(QT_MAJOR_VERSION),4)
|
|
||||||
uic_%.cpp: %.h
|
|
||||||
echo -e "#include <$<>\n" > $@
|
|
||||||
else
|
|
||||||
uic_%.cpp: %.h %.ui
|
|
||||||
$(UIC) $*.ui -i $< -o $@
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(LIBTYPE),shared)
|
|
||||||
lib%.so: %.o # $(LIB_SO)
|
|
||||||
$(LD) -shared $(LDFLAGS) $^ -o $@
|
|
||||||
else
|
|
||||||
lib%.so: %.o
|
|
||||||
$(LD) $(LDFLAGS) $^ -o $@
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(VERSION_SCRIPT):
|
|
||||||
$(MOD_SCRIPT_DIR)/make_version_script.sh $(BINARY_VERSION) > $@
|
|
||||||
|
|
||||||
ifneq ($(TARGET),mingw)
|
|
||||||
$(LIB_SO): $(VERSION_SCRIPT) $(LIB_A)
|
|
||||||
$(LD) -shared -Wl,--whole-archive,-soname=$(notdir $@) $(VERSION_SCRIPT) $(LIB_A) -Wl,--no-whole-archive \
|
|
||||||
$(filter-out -l$(LIBNAME),$(LDFLAGS)) -o $@
|
|
||||||
else
|
|
||||||
$(LIB_SO): $(VERSION_SCRIPT) $(LIB_A)
|
|
||||||
$(LD) -shared \
|
|
||||||
-Wl,--whole-archive,--out-implib,$(shell echo $(LIB_A) | sed 's/-static//'),--output-def,$(LIB_DEF) \
|
|
||||||
$(VERSION_SCRIPT) $(LIB_A) -Wl,--no-whole-archive $(filter-out -l$(LIBNAME),$(LDFLAGS)) -o $@
|
|
||||||
$(MSVCPP_IMPLIB): $(LIB_SO)
|
|
||||||
$(MS_LD) /machine:i386 /def:$(LIB_DEF)
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(TOPDIR)/include:
|
|
||||||
mkdir -p $@
|
|
||||||
|
|
||||||
$(TOPDIR)/include/%.h: %.h
|
|
||||||
mkdir -p $(dir $@); cp $< $@
|
|
||||||
|
|
||||||
$(TOPDIR)/bin/%.sh: %.sh
|
|
||||||
mkdir -p $(dir $@); install -m 755 $(@F) $@
|
|
||||||
|
|
||||||
%.o: %.cpp
|
|
||||||
$(CPP) $(CPPFLAGS) -c $<
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
$(CC) $(CFLAGS) -c $<
|
|
||||||
|
|
||||||
%.o: %.S
|
|
||||||
$(CC) $(CFLAGS) -c $<
|
|
||||||
|
|
||||||
timers_%.h: %.h $(GENERATE_FUNC_TIMERS)
|
|
||||||
sh $(GENERATE_FUNC_TIMERS) $< $@
|
|
||||||
|
|
||||||
ifneq ($(USE_QT),)
|
|
||||||
$(OBJ): $(UIC_H) $(MOC_H) $(UIC_CPP) $(MOC_CPP) $(RCC_CPP)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(USE_PROJECT_LIB),true)
|
|
||||||
ifeq ($(LIBTYPE),shared)
|
|
||||||
$(EXE) $(EXE_BIN): $(OBJ) $(LIB_SO)
|
|
||||||
else
|
|
||||||
$(EXE) $(EXE_BIN): $(OBJ) $(LIB_A)
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
$(EXE) $(EXE_BIN): $(OBJ)
|
|
||||||
endif
|
|
||||||
$(CPP) $(sort $(OBJ)) $(LDFLAGS) -o $@
|
|
||||||
|
|
||||||
$(BUILD_BINDIR)/%: %
|
|
||||||
mkdir -p $(BUILD_BINDIR)
|
|
||||||
install -m 755 $< $(BUILD_BINDIR)
|
|
||||||
|
|
||||||
ifeq ($(USE_PROJECT_LIB),true)
|
|
||||||
ifeq ($(LIBTYPE),shared)
|
|
||||||
$(PLUGIN) $(PLUGIN_LIB): $(OBJ) $(LIB_SO)
|
|
||||||
else
|
|
||||||
$(PLUGIN) $(PLUGIN_LIB): $(OBJ) $(LIB_A)
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
$(PLUGIN) $(PLUGIN_LIB): $(OBJ)
|
|
||||||
endif
|
|
||||||
$(CPP) -shared $(sort $(OBJ)) $(LDFLAGS) -o $@
|
|
||||||
mkdir -p $(LIBDIR)
|
|
||||||
install -m 755 $@ $(LIBDIR)
|
|
||||||
|
|
||||||
$(LIBS):
|
|
||||||
make -$(MAKEFLAGS) -C $(LIBDIR) all
|
|
||||||
|
|
||||||
$(INSTALL_LIBDIR):
|
|
||||||
$(INSTALL) -d -g $(LIBGROUP) -o $(LIBOWNER) -m 755 $@
|
|
||||||
|
|
||||||
$(INSTALL_HDRDIR):
|
|
||||||
$(INSTALL) -d -g $(HDRGROUP) -o $(HDROWNER) -m 755 $@
|
|
||||||
|
|
||||||
$(INSTALL_BINDIR):
|
|
||||||
$(INSTALL) -d -g $(EXEGROUP) -o $(EXEOWNER) -m 755 $@
|
|
||||||
|
|
||||||
$(INSTALL_MKDIR):
|
|
||||||
$(INSTALL) -d -g $(MAKEGROUP) -o $(MAKEOWNER) -m 755 $@
|
|
||||||
|
|
||||||
$(WORKING_DIR):
|
|
||||||
$(INSTALL) -d -g $(DAEMON_RUN_GROUP) -o $(DAEMON_RUN_USER) -m 700 $@
|
|
||||||
|
|
||||||
$(PREFIX):
|
|
||||||
$(INSTALL) -d -g $(PREFIXDIRGROUP) -o $(PREFIXDIROWNER) -m $(PREFIXDIRMODE) $@
|
|
||||||
|
|
||||||
#$(LOCK_DIR):
|
|
||||||
# $(INSTALL) -d -g $(DAEMON_RUN_GROUP) -o $(DAEMON_RUN_USER) -m 700 $@
|
|
||||||
|
|
||||||
$(INSTALLED_LIB_SO) $(INSTALLED_LIB_A): $(TOPDIR)/libdir.done
|
|
||||||
|
|
||||||
$(TOPDIR)/libdir.done:
|
|
||||||
if [ -n "$(INSTALL_LIBDIR)" ]; then mkdir -p $(INSTALL_LIBDIR); fi
|
|
||||||
touch $@
|
|
||||||
|
|
||||||
hdrdir.done:
|
|
||||||
if [ -n "$(INSTALL_HDRDIR)" ]; then mkdir -p $(INSTALL_HDRDIR); fi
|
|
||||||
touch $@
|
|
||||||
|
|
||||||
$(LINKS_SO):
|
|
||||||
cd $(dir $@); ln -sf $(shell echo $@ | sed -e 's/\.so$$\|\.so.*$$//').$(SO_SUFFIX) $(notdir $@)
|
|
||||||
|
|
||||||
#$(INSTALLED_LINKS_SO) $(LINKS_SO):
|
|
||||||
# $(LINK_LIB) $(shell echo $@ | sed -e 's/\.so$$\|\.so.*$$//').$(SO_SUFFIX) $@
|
|
||||||
|
|
||||||
#$(INSTALL_BINDIR)/%.bin: %.bin
|
|
||||||
# $(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
|
|
||||||
|
|
||||||
$(TOPDIR)/bindir.done:
|
|
||||||
mkdir -p $(INSTALL_BINDIR)
|
|
||||||
touch $@
|
|
||||||
|
|
||||||
ifneq ($(EXE),)
|
|
||||||
$(INSTALLED_EXE): $(EXE) $(TOPDIR)/bindir.done
|
|
||||||
$(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
|
|
||||||
endif
|
|
||||||
$(INSTALL_BINDIR)/%.sh: %.sh $(TOPDIR)/bindir.done
|
|
||||||
$(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
|
|
||||||
$(INSTALL_BINDIR)/%.bin: %.bin $(TOPDIR)/bindir.done
|
|
||||||
$(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
|
|
||||||
$(INSTALL_BINDIR)/%: % $(TOPDIR)/bindir.done
|
|
||||||
$(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
|
|
||||||
|
|
||||||
$(INSTALL_LIBDIR)/%.so: %.so
|
|
||||||
$(INSTALL) -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@
|
|
||||||
$(INSTALL_LIBDIR)/%.$(SO_SUFFIX): %.$(SO_SUFFIX)
|
|
||||||
$(INSTALL) -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@
|
|
||||||
$(INSTALL_LIBDIR)/%.a: %.a
|
|
||||||
$(INSTALL) -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@
|
|
||||||
|
|
||||||
$(INSTALL_HDRDIR)/%.h: %.h
|
|
||||||
$(INSTALL) -o $(HDROWNER) -g $(HDRGROUP) -m $(HDRMODE) $< $@
|
|
||||||
|
|
||||||
$(INSTALL_MKDIR)/%.mk: %.mk
|
|
||||||
$(INSTALL) -o $(HDROWNER) -g $(HDRGROUP) -m $(HDRMODE) $< $@
|
|
||||||
|
|
||||||
$(INSTALL_DOCDIR_DIST)/% $(INSTALL_DOCDIR_DEVEL)/%: %
|
|
||||||
mkdir -p $(dir $@)
|
|
||||||
$(INSTALL) -o $(DOCOWNER) -g $(DOCGROUP) -m $(DOCMODE) $< $@
|
|
||||||
|
|
||||||
$(INSTALLED_PROFILE_PATH_SCRIPT):
|
|
||||||
echo "if [ -z \"\$$PATH\" ]; then PATH=$(shell echo $(INSTALL_BINDIR) | sed -e s%^$(ENV_PREFIX)/%/%)" > path_script.sh
|
|
||||||
echo "else PATH=\$$PATH:$(shell echo $(INSTALL_BINDIR) | sed -e s%^$(ENV_PREFIX)/%/%); fi" >> path_script.sh
|
|
||||||
mkdir -p $(dir $@)
|
|
||||||
$(INSTALL) -o $(PROFILEOWNER) -g $(PROFILEGROUP) -m $(PROFILEMODE) path_script.sh $@
|
|
||||||
|
|
||||||
$(INSTALLED_VERSION_FILE):
|
|
||||||
$(INSTALL) -o $(DOCOWNER) -g $(DOCGROUP) -m $(DOCMODE) $(TOPDIR)/VERSION $@
|
|
||||||
echo $(DIST_VERSION) > $@
|
|
||||||
|
|
||||||
$(SYSCONFIG_DIR)/%: %
|
|
||||||
$(INSTALL) -o $(CFGOWNER) -g $(CFGGROUP) -m $(CFGMODE) $< $@
|
|
||||||
|
|
||||||
ifeq ($(DEVELOPMENT),true)
|
|
||||||
install_profile_path:
|
|
||||||
else
|
|
||||||
install_profile_path: $(INSTALLED_PROFILE_PATH_SCRIPT)
|
|
||||||
endif
|
|
||||||
|
|
||||||
#depend.mk: $(SRC_ALL_CPP)
|
|
||||||
# > $@ && makedepend -f depend.mk -- $(CPPFLAGS) $(DEPEND_CPPFLAGS) -- $(SRC_ALL_CPP) 2>&1 | sed '/non-portable whitespace/ d'
|
|
||||||
|
|
||||||
#depend.mk: $(filter-out %.h, $(SRC_ALL_CPP) $(PREREQ_DONE))
|
|
||||||
# > $@ && if [ "$(wildcard *.cpp *.c)" ]; then \
|
|
||||||
# gcc -M $(CPPFLAGS) $(DEPEND_CPPFLAGS) $(filter-out %.h,$(SRC_ALL_CPP)) -o $@; \
|
|
||||||
# fi
|
|
||||||
|
|
||||||
.%.o.dep.mk: %.cpp $(BUILD_H)
|
|
||||||
$(CC) -M $(CPPFLAGS) $(DEPEND_CPPFLAGS) $< -o $@
|
|
||||||
|
|
||||||
.%.o.dep.mk: %.c $(BUILD_H)
|
|
||||||
$(CC) -M $(CPPFLAGS) $(DEPEND_CPPFLAGS) $< -o $@
|
|
||||||
|
|
||||||
checkroot:
|
checkroot:
|
||||||
@if [ "$(CHECK_ROOT)" = true -o "$(CHECK_ROOT)" = TRUE ] ; then \
|
@if [ "$(CHECK_ROOT)" = true -o "$(CHECK_ROOT)" = TRUE ] ; then \
|
||||||
echo "Error: You can only do this if either" ;\
|
echo "Error: You can only do this if either" ;\
|
||||||
|
|
@ -250,7 +26,7 @@ installexe: all checkroot $(INSTALLED_EXE)
|
||||||
|
|
||||||
installso: all checkroot $(INSTALL_LIBDIR) $(INSTALLED_SHOBJS)
|
installso: all checkroot $(INSTALL_LIBDIR) $(INSTALLED_SHOBJS)
|
||||||
|
|
||||||
installsh: all checkroot $(INSTALL_BINDIR) $(INSTALLED_EXE_SH)
|
installsh: all checkroot $(INSTALL_EXEDIR) $(INSTALLED_EXE_SH)
|
||||||
|
|
||||||
pckgclean:
|
pckgclean:
|
||||||
rm -rf *.zip *.tar.gz *.rpm *.deb
|
rm -rf *.zip *.tar.gz *.rpm *.deb
|
||||||
|
|
@ -277,7 +53,7 @@ rccclean:
|
||||||
rm -rf $(RCC_CPP)
|
rm -rf $(RCC_CPP)
|
||||||
|
|
||||||
textclean: doneclean
|
textclean: doneclean
|
||||||
rm -rf $(TEXTCLEAN) \#*\# .kdbgrc.* .\#*
|
rm -rf *~ .*~ .*.swp *.rep \#*\# .kdbgrc.* .\#*
|
||||||
|
|
||||||
allclean:
|
allclean:
|
||||||
rm -rf $(ALL) $(LOCAL_TARGETS)
|
rm -rf $(ALL) $(LOCAL_TARGETS)
|
||||||
|
|
@ -312,7 +88,7 @@ varclean:
|
||||||
rm -rf $(CLEAN) $(DISTCLEAN) $(AC_FILES)
|
rm -rf $(CLEAN) $(DISTCLEAN) $(AC_FILES)
|
||||||
|
|
||||||
install_libdir: $(INSTALL_LIBDIR)
|
install_libdir: $(INSTALL_LIBDIR)
|
||||||
install_bindir: $(INSTALL_BINDIR)
|
install_bindir: $(INSTALL_EXEDIR)
|
||||||
install_hdrdir: $(INSTALL_HDRDIR)
|
install_hdrdir: $(INSTALL_HDRDIR)
|
||||||
|
|
||||||
love:
|
love:
|
||||||
|
|
@ -358,3 +134,286 @@ trace-marks:
|
||||||
sed 's/^{$$/{_/' $$f > $$f.rep ;\
|
sed 's/^{$$/{_/' $$f > $$f.rep ;\
|
||||||
cp $$f.rep $$f ;\
|
cp $$f.rep $$f ;\
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# -- special built-in targets
|
||||||
|
|
||||||
|
.PRECIOUS: $(LOCAL_H)
|
||||||
|
|
||||||
|
# -- rules
|
||||||
|
|
||||||
|
all.done: $(PREREQ_DONE) $(LOCAL_TARGETS) $(ALL)
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
strip.done: $(EXE_ALL)
|
||||||
|
$(STRIP) $^
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
%.done:
|
||||||
|
make -$(MAKEFLAGS) -C $(shell dirname $@) `basename $@`
|
||||||
|
|
||||||
|
#lib$(MOD)(%.o).a: %.c $(BUILD_LIBDIR)
|
||||||
|
# $(CC) $(CFLAGS) -c $< -o $*.o
|
||||||
|
# $(AR) r $@ $*.o
|
||||||
|
# $(RM) $*.o
|
||||||
|
|
||||||
|
ifeq ($(QT_MAJOR_VERSION),3)
|
||||||
|
moc_%.cpp: %.h
|
||||||
|
$(MOC) -o $@ $<
|
||||||
|
else
|
||||||
|
moc_%.cpp: %.h
|
||||||
|
$(MOC) $(filter -D% -I%,$(strip $(CPPFLAGS))) -o $@ $<
|
||||||
|
endif
|
||||||
|
|
||||||
|
rcc_%.cpp: %.qrc
|
||||||
|
$(RCC) -o $@ $<
|
||||||
|
|
||||||
|
ifeq ($(QT_MAJOR_VERSION),4)
|
||||||
|
ui_%.h: %.ui
|
||||||
|
else
|
||||||
|
%.h: %.ui
|
||||||
|
endif
|
||||||
|
$(UIC) $< -o $@
|
||||||
|
|
||||||
|
ifeq ($(QT_MAJOR_VERSION),4)
|
||||||
|
uic_%.cpp: %.h
|
||||||
|
echo -e "#include <$<>\n" > $@
|
||||||
|
else
|
||||||
|
uic_%.cpp: %.h %.ui
|
||||||
|
$(UIC) $*.ui -i $< -o $@
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(LIBTYPE),shared)
|
||||||
|
lib%.so: %.o # $(LIB_SO)
|
||||||
|
$(LD) -shared $(LDFLAGS) $^ -o $@
|
||||||
|
else
|
||||||
|
lib%.so: %.o
|
||||||
|
$(LD) $(LDFLAGS) $^ -o $@
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(VERSION_SCRIPT):
|
||||||
|
$(MOD_SCRIPT_DIR)/make_version_script.sh $(BINARY_VERSION) > $@
|
||||||
|
|
||||||
|
ifneq ($(TARGET),mingw)
|
||||||
|
$(LIB_SO): $(VERSION_SCRIPT) $(LIB_A) $(TOPDIR)/dir_build_LIB.done
|
||||||
|
$(LD) -shared -Wl,--whole-archive,-soname=$(notdir $@) $(VERSION_SCRIPT) $(LIB_A) -Wl,--no-whole-archive \
|
||||||
|
$(filter-out -l$(LIBNAME),$(LDFLAGS)) -o $@
|
||||||
|
else
|
||||||
|
$(LIB_SO): $(VERSION_SCRIPT) $(LIB_A) $(TOPDIR)/dir_build_LIB.done
|
||||||
|
$(LD) -shared -Wl,--whole-archive,--out-implib,$(shell echo $(LIB_A) | \
|
||||||
|
sed 's/-static//'),--output-def,$(LIB_DEF) $(VERSION_SCRIPT) $(LIB_A) \
|
||||||
|
-Wl,--no-whole-archive $(filter-out -l$(LIBNAME),$(LDFLAGS)) -o $@
|
||||||
|
$(MSVCPP_IMPLIB): $(LIB_SO)
|
||||||
|
$(MS_LD) /machine:i386 /def:$(LIB_DEF)
|
||||||
|
endif
|
||||||
|
|
||||||
|
#$(TOPDIR)/include:
|
||||||
|
# mkdir -p $@
|
||||||
|
#
|
||||||
|
#$(TOPDIR)/include/%.h: %.h
|
||||||
|
# mkdir -p $(dir $@); cp $< $@
|
||||||
|
#
|
||||||
|
#$(TOPDIR)/bin/%.sh: %.sh
|
||||||
|
# mkdir -p $(dir $@); install -m 755 $(@F) $@
|
||||||
|
|
||||||
|
%.o: %.cpp
|
||||||
|
$(CPP) $(CPPFLAGS) -c $<
|
||||||
|
|
||||||
|
%.o: %.c
|
||||||
|
$(CC) $(CFLAGS) -c $<
|
||||||
|
|
||||||
|
%.o: %.S
|
||||||
|
$(CC) $(CFLAGS) -c $<
|
||||||
|
|
||||||
|
timers_%.h: %.h $(GENERATE_FUNC_TIMERS)
|
||||||
|
sh $(GENERATE_FUNC_TIMERS) $< $@
|
||||||
|
|
||||||
|
ifneq ($(USE_QT),)
|
||||||
|
$(OBJ): $(UIC_H) $(MOC_H) $(UIC_CPP) $(MOC_CPP) $(RCC_CPP)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(USE_PROJECT_LIB),true)
|
||||||
|
ifeq ($(LIBTYPE),shared)
|
||||||
|
$(EXE) $(EXE_BIN): $(OBJ) $(LIB_SO)
|
||||||
|
else
|
||||||
|
$(EXE) $(EXE_BIN): $(OBJ) $(LIB_A)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
$(EXE) $(EXE_BIN): $(OBJ)
|
||||||
|
endif
|
||||||
|
$(CPP) $(sort $(OBJ)) $(LDFLAGS) -o $@
|
||||||
|
|
||||||
|
#$(BUILD_EXEDIR)/%: %
|
||||||
|
# mkdir -p $(BUILD_EXEDIR)
|
||||||
|
# install -m 755 $< $(BUILD_EXEDIR)
|
||||||
|
|
||||||
|
ifeq ($(USE_PROJECT_LIB),true)
|
||||||
|
ifeq ($(LIBTYPE),shared)
|
||||||
|
$(PLUGIN) $(PLUGIN_LIB): $(OBJ) $(LIB_SO)
|
||||||
|
else
|
||||||
|
$(PLUGIN) $(PLUGIN_LIB): $(OBJ) $(LIB_A)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
$(PLUGIN) $(PLUGIN_LIB): $(OBJ)
|
||||||
|
endif
|
||||||
|
$(CPP) -shared $(sort $(OBJ)) $(LDFLAGS) -o $@
|
||||||
|
mkdir -p $(BUILD_LIBDIR)
|
||||||
|
install -m 755 $@ $(BUILD_LIBDIR)
|
||||||
|
|
||||||
|
#$(LIBS):
|
||||||
|
# make -$(MAKEFLAGS) -C $(BUILD_LIBDIR) all
|
||||||
|
#
|
||||||
|
#$(INSTALL_LIBDIR):
|
||||||
|
# $(INSTALL) -d -g $(LIBGROUP) -o $(LIBOWNER) -m 755 $@
|
||||||
|
#
|
||||||
|
#$(INSTALL_HDRDIR):
|
||||||
|
# $(INSTALL) -d -g $(HDRGROUP) -o $(HDROWNER) -m 755 $@
|
||||||
|
#
|
||||||
|
#$(INSTALL_EXEDIR):
|
||||||
|
# $(INSTALL) -d -g $(EXEGROUP) -o $(EXEOWNER) -m 755 $@
|
||||||
|
#
|
||||||
|
#$(INSTALL_MKDIR):
|
||||||
|
# $(INSTALL) -d -g $(MAKEGROUP) -o $(MAKEOWNER) -m 755 $@
|
||||||
|
#
|
||||||
|
#$(WORKING_DIR):
|
||||||
|
# $(INSTALL) -d -g $(DAEMON_RUN_GROUP) -o $(DAEMON_RUN_USER) -m 700 $@
|
||||||
|
#
|
||||||
|
#$(PREFIX):
|
||||||
|
# $(INSTALL) -d -g $(PREFIXDIRGROUP) -o $(PREFIXDIROWNER) -m $(PREFIXDIRMODE) $@
|
||||||
|
|
||||||
|
#$(LOCK_DIR):
|
||||||
|
# $(INSTALL) -d -g $(DAEMON_RUN_GROUP) -o $(DAEMON_RUN_USER) -m 700 $@
|
||||||
|
|
||||||
|
#$(INSTALLED_LIB_SO) $(INSTALLED_LIB_A): $(TOPDIR)/libdir.done
|
||||||
|
|
||||||
|
define check_not_empty
|
||||||
|
check_not_empty_$(1):
|
||||||
|
@if [ -z "$($(1))" ]; then \
|
||||||
|
echo "$(1) is undefined" >&2 ;\
|
||||||
|
exit 1 ;\
|
||||||
|
fi
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(foreach attr,OWNER GROUP MODE,$(foreach type, $(INSTALLATION_FILE_TYPES), $(eval $(call std_install_rules,$(type)$(attr)))))
|
||||||
|
|
||||||
|
define std_install_rules
|
||||||
|
|
||||||
|
#build_dir_$(1): $$(TOPDIR)/dir_build_$(1).done
|
||||||
|
build_$(1): $$(TOPDIR)/dir_build_$(1).done $$(BUILD_$(1))
|
||||||
|
#install_dir_$(1): $$(TOPDIR)/dir_install_$(1).done
|
||||||
|
install_$(1): $$(TOPDIR)/dir_install_$(1).done $$(INSTALLED_$(1))
|
||||||
|
|
||||||
|
$(TOPDIR)/dir_build_$(1).done:
|
||||||
|
mkdir -p $$(BUILD_$(1)DIR)
|
||||||
|
touch $$@
|
||||||
|
|
||||||
|
#$$(BUILD_$(1)DIR)/%: % $$(TOPDIR)/dir_build_$(1).done check_not_empty_$(1)MODE
|
||||||
|
$$(BUILD_$(1)DIR)/%: % $$(TOPDIR)/dir_build_$(1).done
|
||||||
|
@if [ ! $$< -ef $$@ ]; then \
|
||||||
|
echo "+ installing $$< -> $$@" ;\
|
||||||
|
install -m $($(1)MODE) $$< $$@ ;\
|
||||||
|
fi
|
||||||
|
|
||||||
|
$(TOPDIR)/dir_install_$(1).done:
|
||||||
|
@if [ -n "$$(INSTALL_$(1)DIR)" ]; then \
|
||||||
|
$$(INSTALL) -d -o $$($(1)DIROWNER) -g $$($(1)DIRGROUP) -m $$($(1)DIRMODE) $$(INSTALL_$(1)DIR) ;\
|
||||||
|
echo + creating directory $$(INSTALL_$(1)DIR) ;\
|
||||||
|
fi
|
||||||
|
touch $$@
|
||||||
|
|
||||||
|
$$(INSTALL_$(1)DIR)/%: % $$(TOPDIR)/dir_install_$(1).done
|
||||||
|
$$(INSTALL) -o $$($(1)OWNER) -g $$($(1)GROUP) -m $$($(1)MODE) $$< $$@
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(foreach type, $(INSTALLATION_FILE_TYPES), $(eval $(call std_install_rules,$(type))))
|
||||||
|
|
||||||
|
#$(TOPDIR)/libdir.done:
|
||||||
|
# if [ -n "$(INSTALL_LIBDIR)" ]; then \
|
||||||
|
# $(INSTALL) -d -o $(EXEDIROWNER) -g $(EXEDIRGROUP) -m $(EXEDIRMODE) $(INSTALL_LIBDIR) ;\
|
||||||
|
# fi
|
||||||
|
# touch $@
|
||||||
|
|
||||||
|
#$(TOPDIR)/hdrdir.done:
|
||||||
|
# if [ -n "$(INSTALL_HDRDIR)" ]; then \
|
||||||
|
# $(INSTALL) -d -o $(HDRDIROWNER) -g $(HDRDIRGROUP) -m $(HDRDIRMODE) $(INSTALL_HDRDIR) ;\
|
||||||
|
# fi
|
||||||
|
# touch $@
|
||||||
|
#
|
||||||
|
#$(TOPDIR)/bindir.done:
|
||||||
|
# mkdir -p $(INSTALL_EXEDIR)
|
||||||
|
# touch $@
|
||||||
|
#
|
||||||
|
#$(TOPDIR)/profiledir.done:
|
||||||
|
# if [ -n "$(PROFILE_DIR)" ]; then \
|
||||||
|
# $(INSTALL) -d -o $(PROFILEDIROWNER) -g $(PROFILEDIRGROUP) -m $(PROFILEDIRMODE) $(PROFILE_DIR) ;\
|
||||||
|
# fi
|
||||||
|
# touch $@
|
||||||
|
|
||||||
|
$(LINKS_SO):
|
||||||
|
cd $(dir $@); ln -sf $(shell echo $@ | sed -e 's/\.so$$\|\.so.*$$//').$(SO_SUFFIX) $(notdir $@)
|
||||||
|
|
||||||
|
#$(INSTALLED_LINKS_SO) $(LINKS_SO):
|
||||||
|
# $(LINK_LIB) $(shell echo $@ | sed -e 's/\.so$$\|\.so.*$$//').$(SO_SUFFIX) $@
|
||||||
|
|
||||||
|
#$(INSTALL_EXEDIR)/%.bin: %.bin
|
||||||
|
# $(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
|
||||||
|
|
||||||
|
#$(INSTALLED_EXE): $(EXE) $(TOPDIR)/bindir.done
|
||||||
|
# $(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
|
||||||
|
#$(INSTALL_EXEDIR)/%.sh: %.sh $(TOPDIR)/bindir.done
|
||||||
|
# $(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
|
||||||
|
#$(INSTALL_EXEDIR)/%.bin: %.bin $(TOPDIR)/bindir.done
|
||||||
|
# $(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
|
||||||
|
#$(INSTALL_EXEDIR)/%: % $(TOPDIR)/bindir.done
|
||||||
|
# $(INSTALL) -o $(EXEOWNER) -g $(EXEGROUP) -m $(EXEMODE) $< $@
|
||||||
|
|
||||||
|
#$(INSTALL_LIBDIR)/%.so: %.so
|
||||||
|
# $(INSTALL) -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@
|
||||||
|
#$(INSTALL_LIBDIR)/%.$(SO_SUFFIX): %.$(SO_SUFFIX)
|
||||||
|
# $(INSTALL) -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@
|
||||||
|
#$(INSTALL_LIBDIR)/%.a: %.a
|
||||||
|
# $(INSTALL) -o $(LIBOWNER) -g $(LIBGROUP) -m $(LIBMODE) $< $@
|
||||||
|
|
||||||
|
#$(INSTALL_HDRDIR)/%.h: %.h
|
||||||
|
# $(INSTALL) -o $(HDROWNER) -g $(HDRGROUP) -m $(HDRMODE) $< $@
|
||||||
|
#
|
||||||
|
#$(INSTALL_MKDIR)/%.mk: %.mk
|
||||||
|
# $(INSTALL) -o $(HDROWNER) -g $(HDRGROUP) -m $(HDRMODE) $< $@
|
||||||
|
|
||||||
|
# TODO: make this depend on $(TOPDIR)/docdir.done
|
||||||
|
#$(INSTALL_DOCDIR_DIST)/% $(INSTALL_DOCDIR_DEVEL)/%: %
|
||||||
|
# mkdir -p $(dir $@)
|
||||||
|
# $(INSTALL) -o $(DOCOWNER) -g $(DOCGROUP) -m $(DOCMODE) $< $@
|
||||||
|
|
||||||
|
$(INSTALLED_PROFILE_PATH_SCRIPT): $(TOPDIR)/profiledir.done
|
||||||
|
echo "if [ -z \"\$$PATH\" ]; then PATH=$(shell echo $(INSTALL_EXEDIR) | sed -e s%^$(ENV_PREFIX)/%/%)" > path_script.sh
|
||||||
|
echo "else PATH=\$$PATH:$(shell echo $(INSTALL_EXEDIR) | sed -e s%^$(ENV_PREFIX)/%/%); fi" >> path_script.sh
|
||||||
|
$(INSTALL) -o $(PROFILEOWNER) -g $(PROFILEGROUP) -m $(PROFILEMODE) path_script.sh $@
|
||||||
|
|
||||||
|
$(INSTALLED_VERSION_FILE):
|
||||||
|
$(INSTALL) -o $(DOCOWNER) -g $(DOCGROUP) -m $(DOCMODE) $(TOPDIR)/VERSION $@
|
||||||
|
echo $(DIST_VERSION) > $@
|
||||||
|
|
||||||
|
$(SYSCONFIG_DIR)/%: %
|
||||||
|
$(INSTALL) -o $(CFGOWNER) -g $(CFGGROUP) -m $(CFGMODE) $< $@
|
||||||
|
|
||||||
|
ifeq ($(DEVELOPMENT),true)
|
||||||
|
install_profile_path:
|
||||||
|
else
|
||||||
|
install_profile_path: $(INSTALLED_PROFILE_PATH_SCRIPT)
|
||||||
|
endif
|
||||||
|
|
||||||
|
#depend.mk: $(SRC_ALL_CPP)
|
||||||
|
# > $@ && makedepend -f depend.mk -- $(CPPFLAGS) $(DEPEND_CPPFLAGS) -- $(SRC_ALL_CPP) 2>&1 | sed '/non-portable whitespace/ d'
|
||||||
|
|
||||||
|
#depend.mk: $(filter-out %.h, $(SRC_ALL_CPP) $(PREREQ_DONE))
|
||||||
|
# > $@ && if [ "$(wildcard *.cpp *.c)" ]; then \
|
||||||
|
# gcc -M $(CPPFLAGS) $(DEPEND_CPPFLAGS) $(filter-out %.h,$(SRC_ALL_CPP)) -o $@; \
|
||||||
|
# fi
|
||||||
|
|
||||||
|
.%.o.dep.mk: %.cpp $(BUILD_HDR)
|
||||||
|
$(CC) -M $(CPPFLAGS) $(DEPEND_CPPFLAGS) $< -o $@
|
||||||
|
|
||||||
|
.%.o.dep.mk: %.c $(BUILD_HDR)
|
||||||
|
$(CC) -M $(CPPFLAGS) $(DEPEND_CPPFLAGS) $< -o $@
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue