180 lines
3.5 KiB
Makefile
180 lines
3.5 KiB
Makefile
|
|
NAME=qasim
|
|
DESTDIR=
|
|
DEV_DESTDIR=tmp
|
|
CONFDIR=$(DESTDIR)/etc
|
|
BINDIR=$(DESTDIR)/usr/bin
|
|
MANDIR=$(DESTDIR)/usr/share/man
|
|
DOCDIR=$(DESTDIR)/usr/share/doc
|
|
SHAREDIR=$(DESTDIR)/usr/share
|
|
|
|
RUBYVERSION=2.0
|
|
RDOC=rdoc$(RUBYVERSION)
|
|
|
|
all: \
|
|
build \
|
|
install
|
|
|
|
clean: \
|
|
clean-ui \
|
|
clean-qrc \
|
|
clean-bin \
|
|
clean-lib \
|
|
clean-data \
|
|
clean-doc
|
|
|
|
build: \
|
|
build-ui \
|
|
build-qrc \
|
|
build-bin \
|
|
build-lib \
|
|
build-data
|
|
|
|
doc: build-doc
|
|
|
|
install: \
|
|
install-ui \
|
|
install-qrc \
|
|
install-bin \
|
|
install-lib \
|
|
install-data
|
|
|
|
## DOC SECTION
|
|
|
|
.PHONY: build-doc
|
|
|
|
clean-doc:
|
|
rm -fr doc
|
|
|
|
build-doc: clean-doc
|
|
$(RDOC) \
|
|
--promiscuous \
|
|
--inline-source \
|
|
--line-numbers \
|
|
-o doc lib/$(NAME)/ \
|
|
bin/
|
|
# --diagram
|
|
|
|
install-doc:
|
|
# # install documentation
|
|
rm -fr $(DOCDIR)/$(NAME)
|
|
mkdir -p $(DOCDIR)/$(NAME)
|
|
cp -a doc $(DOCDIR)/$(NAME)
|
|
|
|
|
|
## QRC -> QRC_RB SECTION
|
|
|
|
QRC_FILES=$(wildcard lib/$(NAME)/*.qrc)
|
|
RBQRC_FILES=$(patsubst %.qrc,%_qrc.rb,$(QRC_FILES))
|
|
|
|
clean-qrc:
|
|
rm -f $(RBQRC_FILES)
|
|
|
|
build-qrc: $(RBQRC_FILES)
|
|
echo $(RBQRC_FILES)
|
|
|
|
install-qrc: $(RBQRC_FILES)
|
|
# FIXME install qrc
|
|
|
|
%_qrc.rb: %.qrc
|
|
rbrcc $< -o $@
|
|
|
|
## UI -> UI_RB SECTION
|
|
|
|
UI_FILES=$(wildcard lib/$(NAME)/ui/*.ui)
|
|
RBUI_FILES=$(patsubst %.ui,%_ui.rb,$(UI_FILES))
|
|
|
|
clean-ui:
|
|
rm -f $(RBUI_FILES)
|
|
|
|
build-ui: $(RBUI_FILES)
|
|
echo $(RBUI_FILES)
|
|
|
|
install-ui: $(RBUI_FILES)
|
|
# FIXME install
|
|
|
|
%_ui.rb: %.ui
|
|
rbuic4 $< -o $@
|
|
sed -e '/^module Ui/,/^end # module Ui/d' \
|
|
-i $@
|
|
|
|
|
|
## BINARY SECTION
|
|
|
|
clean-bin:
|
|
# remove external packages
|
|
rm -fr vendor/bundle
|
|
|
|
build-bin:
|
|
|
|
install-bin:
|
|
env |sort
|
|
mkdir -p $(BINDIR)
|
|
for binfile in bin/*.rb ; do \
|
|
BINFILE=`basename $$binfile |sed -e 's/.rb$$//'`; \
|
|
install -D -o root -g root -m 755 $$binfile $(BINDIR)/$$BINFILE; \
|
|
sed -i -e 's|^QASIM_INCLUDE_DIR.*|QASIM_INCLUDE_DIR = "$(SHAREDIR)/$(NAME)/lib"|' $(BINDIR)/$$BINFILE; \
|
|
sed -i -e 's|^QASIM_DATA_DIR.*|QASIM_DATA_DIR = "$(SHAREDIR)/$(NAME)"|' $(BINDIR)/$$BINFILE; \
|
|
done
|
|
#install -D -o root -g root -m 755 $(CURDIR)/bin/$(NAME)-gui.rb $(BINDIR)/$(NAME)-gui
|
|
|
|
## LIB SECTION
|
|
|
|
clean-lib:
|
|
|
|
build-lib:
|
|
|
|
install-lib:
|
|
IFS="" find lib -name '*.rb' | while read libfile ; do \
|
|
install -D -o root -g root -m 644 $$libfile $(SHAREDIR)/$(NAME)/$$libfile; \
|
|
done
|
|
|
|
|
|
## DATA SECTION
|
|
|
|
clean-data:
|
|
|
|
build-data:
|
|
|
|
install-data:
|
|
## Install man pages
|
|
mkdir -p $(MANDIR)/man1
|
|
for binfile in bin/*.rb ; do \
|
|
BINFILE=`basename $$binfile |sed -e 's/.rb$$//'`; \
|
|
cat man/$${BINFILE}.1 | gzip > $(MANDIR)/man1/$${BINFILE}.1.gz ; \
|
|
done
|
|
#
|
|
## Install icons
|
|
mkdir -p $(SHAREDIR)/$(NAME)/icons
|
|
install -D -o root -g root -m 644 $(CURDIR)/data/icons/$(NAME).svg \
|
|
$(SHAREDIR)/$(NAME)/icons/$(NAME).svg
|
|
#
|
|
## Install completion file
|
|
# install -D -o root -g root -m 644 $(CURDIR)/$(NAME).completion $(DESTDIR)/etc/bash_completion.d/$(NAME)
|
|
#
|
|
## Install configuration files
|
|
mkdir -p $(CONFDIR)/xdg/autostart
|
|
install -D -o root -g root -m 644 $(CURDIR)/conf/$(NAME).desktop \
|
|
$(CONFDIR)/xdg/autostart/$(NAME).desktop
|
|
install -D -o root -g root -m 644 $(CURDIR)/conf/$(NAME).desktop \
|
|
$(SHAREDIR)/applications/$(NAME).desktop
|
|
mkdir -p $(CONFDIR)/$(NAME)
|
|
install -D -o root -g root -m 644 $(CURDIR)/conf/config \
|
|
$(CONFDIR)/$(NAME)/config
|
|
install -D -o root -g root -m 644 $(CURDIR)/conf/default.map \
|
|
$(CONFDIR)/$(NAME)/default.map
|
|
#
|
|
# Install examples
|
|
mkdir -p $(DOCDIR)/$(NAME)/examples
|
|
for f in `ls examples`; do \
|
|
cat examples/$$f | gzip -f9 > $(DOCDIR)/$(NAME)/examples/$$f.gz ; \
|
|
done
|
|
|
|
|
|
## OTHER
|
|
|
|
.PHONY: destdir
|
|
dev-install:
|
|
rm -fr $(DEV_DESTDIR)
|
|
fakeroot $(MAKE) install DESTDIR=$(DEV_DESTDIR)
|
|
|