utt/Makefile

152 lines
3.9 KiB
Makefile
Raw Normal View History

include config.mak
CUR_DIR=$(shell pwd)
SRC_DIR=$(CUR_DIR)/src
TARGETS = components configuration share libraries
ifeq ($(BUILD_DOC), yes)
TARGETS += documentation
endif
.PHONY: all
all: $(TARGETS)
# ------------------------------------------------------------------
# main section
# ------------------------------------------------------------------
.PHONY: components
components:
cd $(SRC_DIR)/lib && make; cd $(CUR_DIR)
@for cmp in $(COMPONENTS); do\
cd $(SRC_DIR)/$$cmp && make; cd $(CUR_DIR); \
done
.PHONY: documentation
documentation:
cd $(CUR_DIR)/doc && make; cd $(CUR_DIR)
.PHONY: configuration
configuration:
cd $(CUR_DIR)/conf && make; cd $(CUR_DIR)
.PHONY: libraries
libraries:
.PHONY: share
share:
@for lang in $(LANGUAGES); do\
cd $(CUR_DIR)/share/$$lang && make; cd $(CUR_DIR); \
done
cd $(CUR_DIR)/share && make; cd $(CUR_DIR)
# ------------------------------------------------------------------
# cleanup section
# ------------------------------------------------------------------
.PHONY: clean
clean: clean_components clean_share clean_documentation clean_config clean_config_mak
@echo "All files cleaned successfully!"
.PHONY: clean_components
clean_components:
@for cmp in $(COMPONENTS); do \
cd $(SRC_DIR)/$$cmp && make clean; cd $(CUR_DIR); \
done
cd $(SRC_DIR)/lib && make clean; cd $(CUR_DIR);
.PHONY: clean_documentation
clean_documentation:
cd $(CUR_DIR)/doc && make clean; cd $(CUR_DIR)
.PHONY: clean_share
clean_share:
@for lang in $(LANGUAGES); do\
cd $(CUR_DIR)/share/$$lang && make clean; cd $(CUR_DIR); \
done
cd $(CUR_DIR)/share && make clean; cd $(CUR_DIR)
.PHONY: clean_config
clean_config:
cd $(CUR_DIR)/conf && make clean; cd $(CUR_DIR)
.PHONY: clean_config_mak
clean_config_mak:
rm config.mak || true
# ------------------------------------------------------------------
# install section
# ------------------------------------------------------------------
.PHONY: install
install: all install_dirs install_components install_configuration install_libraries install_documentation install_share
.PHONY: install_dirs
install_dirs:
install -d $(PREFIX) \
$(BIN_DIR) \
$(CONF_DIR) \
$(LANG_DIR) \
$(LIB_DIR) \
$(DOC_DIR) \
$(SHARE_DIR)/info
.PHONY: install_components
install_components: components
@for cmp in $(COMPONENTS); do \
cd $(SRC_DIR)/$$cmp && make install; cd $(CUR_DIR); \
done
.PHONY: install_configuration
install_configuration: configuration
cd $(CUR_DIR)/conf && make install; cd $(CUR_DIR)
.PHONY: install_libraries
install_libraries: libraries
cd $(CUR_DIR)/lib && make install; cd $(CUR_DIR)
.PHONY: install_documentation
install_documentation: documentation
cd $(CUR_DIR)/doc && make install; cd $(CUR_DIR)
.PHONY: install_share
install_share: share
cd $(CUR_DIR)/share && make install; cd $(CUR_DIR)
#dictionaries compilation...
#compdic
#grammar compilation...
# ------------------------------------------------------------------
# uninstall section
# ------------------------------------------------------------------
.PHONY: uninstall
uninstall: uninstall_share uninstall_documentation uninstall_libraries uninstall_configuration uninstall_components uninstall_dirs
.PHONY: uninstall_components
uninstall_components:
@for cmp in $(COMPONENTS); do \
cd $(SRC_DIR)/$$cmp && make uninstall; cd $(CUR_DIR); \
done
.PHONY: uninstall_configuration
uninstall_configuration:
cd $(CUR_DIR)/conf && make uninstall; cd $(CUR_DIR)
.PHONY: uninstall_libraries
uninstall_libraries:
cd $(CUR_DIR)/lib && make uninstall; cd $(CUR_DIR)
.PHONY: uninstall_documentation
uninstall_documentation:
cd $(CUR_DIR)/doc && make uninstall; cd $(CUR_DIR)
.PHONY: uninstall_share
uninstall_share:
cd $(CUR_DIR)/share && make uninstall; cd $(CUR_DIR)
.PHONY: uninstall_dirs
uninstall_dirs: uninstall_configuration uninstall_documentation uninstall_share uninstall_libraries
rmdir $(CONF_DIR)
rmdir $(DOC_DIR)
rmdir $(LANG_DIR)
rmdir $(LIB_DIR)