| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- #
- # $Id$
- #
- # utils Makefile
- #(to be included from each util/ subdirectory)
- #
- # History:
- # --------
- # 2009-04-23 initial version derived from Makefile.modules (andrei)
- #
- # Variables that should be defined in the util Makefiles, prior to including
- # this makefile:
- #
- # NAME - util binary name, with no path (MUST).
- #
- # COREPATH - path to the main/core directory (OPTIONAL, default ../..)
- #
- # DEFS - local extra defines (OPTIONAL)
- #
- # LIBS - local extra libs (OPTIONAL)
- #
- # SER_LIBS - ser/sr libs that should be compiled, linked against and installed
- # along the binary. The format is: <path>/<shortname>, e.g.
- # SER_LIBS=../../lib/srdb2/srdb2 for libsrdb2 with the sources
- # in ../../lib/srdb2. (OPTIONAL)
- #
- UTIL_NAME=$(NAME)
- # default path to the core makefiles
- COREPATH ?=../..
- ALLDEP=Makefile $(COREPATH)/Makefile.sources $(COREPATH)/Makefile.rules \
- $(COREPATH)/Makefile.utils $(COREPATH)/Makefile.dirs $(COREPATH)/config.mak
- #override modules value, an util cannot have submodules
- override modules=
- override static_modules=
- override static_modules_path=
- # temporary def (visible only in the util makefile, not exported)
- DEFS += -DMOD_NAME="utils/$(UTIL_NAME)"
- ifneq ($(makefile_defs_included),1)
- $(error "the local makefile does not include Makefile.defs!")
- endif
- ifeq ($(MAKELEVEL), 0)
- # make called directly in the module dir!
- else
- # called by the main Makefile
- ALLDEP+=$(COREPATH)/Makefile
- endif
- include $(COREPATH)/Makefile.sources
- # if config was not loaded (makefile_defs!=1) ignore
- # the rest of makefile and try only to remake the config
- ifeq ($(makefile_defs),1)
- # set CFLAGS & LDFLAGS
- CFLAGS:=$(UTILS_CFLAGS)
- LDFLAGS:=$(UTILS_LDFLAGS)
- err_fail?=1
- include $(COREPATH)/Makefile.dirs
- include $(COREPATH)/Makefile.targets
- include $(COREPATH)/Makefile.rules
- include $(COREPATH)/Makefile.shared
- # default: if not overwritten by the main Makefile, install in bin_dir
- util_dst=$(bin_prefix)/$(bin_dir)
- $(util_dst):
- mkdir -p $(util_dst)
- modules:
- .PHONY: install
- .PHONY: install-libs
- install: $(NAME) $(util_dst) install-libs install-util-man
- $(INSTALL_TOUCH) $(util_dst)/$(NAME)
- $(INSTALL_BIN) $(NAME) $(util_dst)
- ifneq (,$(SER_LIBS))
- install-libs:
- @for lib in $(dir $(SER_LIBS)); do \
- $(call try_err, $(MAKE) -C "$${lib}" install-if-newer ) ;\
- done; true
- else
- install-libs:
- endif # $(SER_LIBS)
- .PHONY: install-if-newer
- install-if-newer: $(util_dst)/$(NAME)
- $(util_dst)/$(NAME): $(NAME)
- @$(MAKE) install
- # README build rules
- ifneq (,$(wildcard doc/Makefile))
- #doc/Makefile present => we can generate README
- README: doc/*.xml
- $(MAKE) -C doc $(UTIL_NAME).txt
- mv doc/$(UTIL_NAME).txt $@
- else
- # do nothing
- README:
- endif
- #man page build rules
- ifneq (,$(wildcard $(UTIL_NAME).xml))
- $(UTIL_NAME).7: $(UTIL_NAME).xml
- $(DOCBOOK) -s ../../doc/stylesheets/serdoc2man.xsl $<
- man: $(UTIL_NAME).7
- else
- man:
- endif
- $(man_prefix)/$(man_dir)/man8:
- mkdir -p $(man_prefix)/$(man_dir)/man8
- .PHONY: install-util-man
- #src-name man page install rules
- ifneq (,$(wildcard $(UTIL_SRC_NAME).8))
- install-util-man: $(man_prefix)/$(man_dir)/man8
- sed -e "s#$(UTIL_SRC_NAME)#$(UTIL_NAME)#g" \
- -e "s#$(SRC_NAME)#$(MAIN_NAME)#g" \
- < $(UTIL_SRC_NAME).8 > $(man_prefix)/$(man_dir)/man8/$(UTIL_NAME).8
- chmod 644 $(man_prefix)/$(man_dir)/man8/$(UTIL_NAME).8
- else
- install-util-man:
- endif
- endif # ifeq($(makefile_defs),1)
- include $(COREPATH)/Makefile.cfg
|