1# Makefile for the Vim message translations for mingw32
2#
3# Eduardo F. Amatria <eferna1@platea.pntic.mec.es>
4#
5# Read the README_ming.txt file before using it.
6#
7# Use at your own risk but with care, it could even kill your canary.
8#
9# Previous to all you must have the environment variable LANGUAGE set to your
10# language (xx) and add it to the next three lines.
11#
12
13ifndef VIMRUNTIME
14ifeq (sh.exe, $(SHELL))
15VIMRUNTIME = ..\..\runtime
16else
17VIMRUNTIME = ../../runtime
18endif
19endif
20
21# get LANGUAGES, MOFILES and MOCONVERTED
22include Make_all.mak
23
24PACKAGE = vim
25ifeq (sh.exe, $(SHELL))
26VIM = ..\vim
27else
28VIM = ../vim
29endif
30
31# Uncomment one of the lines below or modify it to put the path to your
32# gettex binaries; I use the first
33#GETTEXT_PATH = C:/gettext.win32/bin/
34#GETTEXT_PATH = C:/gettext-0.10.35-w32/win32/Release/
35#GETTEXT_PATH = C:/cygwin/bin/
36
37ifeq (sh.exe, $(SHELL))
38MSGFMT = set OLD_PO_FILE_INPUT=yes && $(GETTEXT_PATH)msgfmt -v
39XGETTEXT = set OLD_PO_FILE_INPUT=yes && set OLD_PO_FILE_OUTPUT=yes && $(GETTEXT_PATH)xgettext
40MSGMERGE = set OLD_PO_FILE_INPUT=yes && set OLD_PO_FILE_OUTPUT=yes && $(GETTEXT_PATH)msgmerge
41else
42MSGFMT = LANG=C OLD_PO_FILE_INPUT=yes $(GETTEXT_PATH)msgfmt -v
43XGETTEXT = LANG=C OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes $(GETTEXT_PATH)xgettext
44MSGMERGE = LANG=C OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes $(GETTEXT_PATH)msgmerge
45endif
46
47ifeq (sh.exe, $(SHELL))
48MV = move
49CP = copy
50RM = del
51MKD = mkdir
52else
53MV = mv -f
54CP = cp -f
55RM = rm -f
56MKD = mkdir -p
57endif
58
59.SUFFIXES:
60.SUFFIXES: .po .mo .pot
61.PHONY: first_time all install install-all clean $(LANGUAGES)
62
63.po.mo:
64	$(MSGFMT) -o $@ $<
65
66all: $(MOFILES) $(MOCONVERTED)
67
68PO_INPUTLIST = \
69	$(wildcard ../*.c) \
70	../if_perl.xs \
71	../GvimExt/gvimext.cpp \
72	../errors.h \
73	../globals.h \
74	../if_py_both.h \
75	../vim.h \
76	gvim.desktop.in \
77	vim.desktop.in
78
79PO_VIM_INPUTLIST = \
80	../../runtime/optwin.vim
81
82PO_VIM_JSLIST = \
83	optwin.js
84
85first_time: $(PO_INPUTLIST) $(PO_VIM_INPUTLIST)
86	$(VIM) -u NONE --not-a-term -S tojavascript.vim $(LANGUAGE).pot $(PO_VIM_INPUTLIST)
87	$(XGETTEXT) --default-domain=$(LANGUAGE) \
88		--add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(PO_INPUTLIST) $(PO_VIM_JSLIST)
89	$(VIM) -u NONE --not-a-term -S fixfilenames.vim $(LANGUAGE).pot $(PO_VIM_INPUTLIST)
90	$(RM) *.js
91
92$(PACKAGE).pot: $(PO_INPUTLIST) $(PO_VIM_INPUTLIST)
93	$(VIM) -u NONE --not-a-term -S tojavascript.vim $(PACKAGE).pot $(PO_VIM_INPUTLIST)
94	$(XGETTEXT) --default-domain=$(PACKAGE) \
95		--add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(PO_INPUTLIST) $(PO_VIM_JSLIST)
96	$(MV) $(PACKAGE).po $(PACKAGE).pot
97	$(VIM) -u NONE --not-a-term -S fixfilenames.vim $(PACKAGE).pot $(PO_VIM_INPUTLIST)
98	$(RM) *.js
99
100# Don't add a dependency here, we only want to update the .po files manually
101$(LANGUAGES):
102	@$(MAKE) -f Make_ming.mak $(PACKAGE).pot GETTEXT_PATH=$(GETTEXT_PATH)
103	$(CP) $@.po $@.po.orig
104	$(MV) $@.po $@.po.old
105	$(MSGMERGE) $@.po.old $(PACKAGE).pot -o $@.po
106	$(RM) $@.po.old
107
108install:
109	$(MKD) $(VIMRUNTIME)\lang\$(LANGUAGE)
110	$(MKD) $(VIMRUNTIME)\lang\$(LANGUAGE)\LC_MESSAGES
111	$(CP) $(LANGUAGE).mo $(VIMRUNTIME)\lang\$(LANGUAGE)\LC_MESSAGES\$(PACKAGE).mo
112
113ifeq (sh.exe, $(SHELL))
114install-all: all
115	FOR %%l IN ($(LANGUAGES)) DO @IF NOT EXIST $(VIMRUNTIME)\lang\%%l $(MKD) $(VIMRUNTIME)\lang\%%l
116	FOR %%l IN ($(LANGUAGES)) DO @IF NOT EXIST $(VIMRUNTIME)\lang\%%l\LC_MESSAGES $(MKD) $(VIMRUNTIME)\lang\%%l\LC_MESSAGES
117	FOR %%l IN ($(LANGUAGES)) DO @$(CP) %%l.mo $(VIMRUNTIME)\lang\%%l\LC_MESSAGES\$(PACKAGE).mo
118else
119install-all: all
120	for TARGET in $(LANGUAGES); do \
121		$(MKD) $(VIMRUNTIME)/lang/$$TARGET/LC_MESSAGES ; \
122		$(CP) $$TARGET.mo $(VIMRUNTIME)/lang/$$TARGET/LC_MESSAGES/$(PACKAGE).mo ; \
123	done
124endif
125
126clean:
127	$(RM) *.mo
128	$(RM) *.pot
129