Makefile
changeset 41 8f1dc5d77f3d
parent 28 6bab39ff1663
child 46 86c0184efac7
--- a/Makefile	Fri Sep 02 01:01:11 2011 +0300
+++ b/Makefile	Fri Sep 02 01:29:08 2011 +0300
@@ -8,87 +8,58 @@
 #   install-local-symlink create symlink from installed dir to user HOME dir, so dictionaries been available in stardict
 #   uninstall-local-symlink remove symlink from user HOME directory
 
-
-# On Debian Etch 'stardict-tools' package not placed tools in any system bin dir.
-export PATH := $(PATH):/usr/lib/stardict-tools
+DICTNAME_PREFIX = gadict
 
-DICSETNAME = gavenkoa-dicts
-
-prefix = /usr/local
+ifeq '$(origin prefix)' 'undefined'
+  ifeq '$(shell id -u)' '0'
+    prefix = /usr/local
+  else
+    prefix = $(HOME)/usr
+  endif
+endif
 datarootdir = $(prefix)/share
-datadir = $(datarootdir)/stardict
-dicdir = $(datadir)/dic/$(DICSETNAME)
-
-# Per user dictionaries hold in user HOME directory.
-dicdir-local = $(HOME)/.stardict/dic/$(DICSETNAME)
+datadir = $(datarootdir)/dictd
 
-F_TAB_ = $(wildcard *.tab_)
+C5_FILES := $(wildcard *.c5)
+DICT_FILES := $(C5_FILES:.c5=.dict)
+DICTDZ_FILES := $(C5_FILES:.c5=.dict.dz)
+INDEX_FILES := $(C5_FILES:.c5=.index)
 
-F_TAB = $(patsubst %.tab_,%.tab,$(F_TAB_))
-FNAME = $(patsubst %.tab,%,$(F_TAB))
-F_DICT = $(patsubst %.tab,%.dict.dz,$(F_TAB))
-F_IFO = $(patsubst %.tab,%.ifo,$(F_TAB))
 
 .PHONY: all
 all: dist
 
-.PHONY: verify
-verify: dist
-	@echo
-	@for dic in $(F_IFO); do \
-		stardict_verify $$dic; \
-	done
+.PHONY: dist
+dist: $(DICTDZ_FILES) $(INDEX_FILES)
 
-.PHONY: dist
-dist: $(F_DICT)
+#  --case-sensitive
+%.dict %.index: %.c5
+	dictfmt  -c5 \
+	--headword-separator '; ' --break-headwords \
+	--utf8 --allchars \
+	-u "`sed -n '\|http://[[:print:]]\+/|{s=^.*\(http://\)=\1=;p;q;}' $<`" \
+	-s "`sed -n '/^ABOUT: /{s=ABOUT: ==;p;q;}' $<`" \
+	$* <$<
 
-%.tab: %.tab_
-	sed -e '/^#/d' -e 's_\\n _\\n_g' > $@ < $<
-
-%.dict.dz: %.tab %.descr
-	tabfile $<
-	/bin/sh update-ifo.sh $*.ifo
+%.dict.dz: %.dict
+	dictzip -c $< >$@
 
 .PHONY: install
 install: dist
-	mkdir -p $(dicdir)
-	for dic in $(FNAME); do \
-		install -m 644 $$dic.dict.dz $(dicdir); \
-		install -m 644 $$dic.idx $(dicdir); \
-		install -m 644 $$dic.ifo $(dicdir); \
+	mkdir -p $(datadir)
+	for f in $(DICTDZ_FILES) $(INDEX_FILES); do \
+		install -m 644 $$f $(datadir); \
 	done
 
 .PHONY: uninstall
 uninstall:
-	rm -r -f $(dicdir)
-
-.PHONY: install-local-symlink
-install-local-symlink: # Assume use run "make install" before.
-	mkdir -p $(HOME)/.stardict/dic
-	ln -s $(dicdir) $(HOME)/.stardict/dic/$(DICSETNAME)
-
-.PHONY: uninstall-local-symlink
-uninstall-local-symlink: # Assume use run "make uninstall" before.
-	rm -f $(HOME)/.stardict/dic/$(DICSETNAME)
-
-.PHONY: install-local
-install-local: dist
-	mkdir -p $(dicdir-local)
-	for dic in $(FNAME); do \
-		install -m 644 $$dic.dict.dz $(dicdir-local); \
-		install -m 644 $$dic.idx $(dicdir-local); \
-		install -m 644 $$dic.ifo $(dicdir-local); \
-	done
-
-.PHONY: uninstall-local
-uninstall-local:
-	rm -f -r $(HOME)/.stardict/dic/$(DICSETNAME)
-
-.PHONY: clean
-clean:
-	for dic in $(FNAME); do \
-		rm -f $$dic.dict.dz $$dic.idx $$dic.ifo $$dic.tab; \
+	for f in $(DICTDZ_FILES) $(INDEX_FILES); do \
+		rm -f $(datadir)/$$f; \
 	done
 
 .PHONY: distclean
 distclean: clean
+
+.PHONY: clean
+clean:
+	rm -f $(DICTDZ_FILES) $(INDEX_FILES);