1# Makefile for the Vim message translations for MSVC
2# (based on make_ming.mak)
3#
4# Mike Williams <mrw@eandem.co.uk>
5#
6# Please read README_mvc.txt before using this file.
7#
8
9!ifndef VIMRUNTIME
10VIMRUNTIME = ..\..\runtime
11!endif
12
13# get LANGUAGES, MOFILES and MOCONVERTED
14!include Make_all.mak
15
16PACKAGE = vim
17VIM = ..\vim
18
19# Correct the following line for the directory where gettext et al is installed
20GETTEXT_PATH = H:\gettext.0.14.4\bin
21
22MSGFMT = $(GETTEXT_PATH)\msgfmt -v
23XGETTEXT = $(GETTEXT_PATH)\xgettext
24MSGMERGE = $(GETTEXT_PATH)\msgmerge
25
26MV = move
27CP = copy
28RM = del
29MKD = mkdir
30LS = dir
31
32LSFLAGS = /b /on /l /s
33
34INSTALLDIR = $(VIMRUNTIME)\lang\$(LANGUAGE)\LC_MESSAGES
35
36.SUFFIXES:
37.SUFFIXES: .po .mo .pot
38
39.po.mo:
40	set OLD_PO_FILE_INPUT=yes
41	$(MSGFMT) -o $@ $<
42
43all: $(MOFILES) $(MOCONVERTED)
44
45PO_INPUTLIST = \
46	..\*.c \
47	..\if_perl.xs \
48	..\GvimExt\gvimext.cpp \
49	..\errors.h \
50	..\globals.h \
51	..\if_py_both.h \
52	..\vim.h \
53	gvim.desktop.in \
54	vim.desktop.in
55
56PO_VIM_INPUTLIST = \
57	..\..\runtime\optwin.vim
58
59PO_VIM_JSLIST = \
60	optwin.js
61
62files: $(PO_INPUTLIST) $(PO_VIM_INPUTLIST)
63	$(LS) $(LSFLAGS) $(PO_INPUTLIST) > .\files
64	echo $(PO_VIM_JSLIST)>> .\files
65
66first_time: files
67	$(VIM) -u NONE --not-a-term -S tojavascript.vim $(LANGUAGE).pot $(PO_VIM_INPUTLIST)
68	set OLD_PO_FILE_INPUT=yes
69	set OLD_PO_FILE_OUTPUT=yes
70	$(XGETTEXT) --default-domain=$(LANGUAGE) --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 --files-from=.\files
71	$(VIM) -u NONE --not-a-term -S fixfilenames.vim $(LANGUAGE).pot $(PO_VIM_INPUTLIST)
72	$(RM) *.js
73
74$(PACKAGE).pot: files
75	$(VIM) -u NONE --not-a-term -S tojavascript.vim $(PACKAGE).pot $(PO_VIM_INPUTLIST)
76	set OLD_PO_FILE_INPUT=yes
77	set OLD_PO_FILE_OUTPUT=yes
78	$(XGETTEXT) --default-domain=$(PACKAGE) --add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 --files-from=.\files
79	$(MV) $(PACKAGE).po $(PACKAGE).pot
80	$(VIM) -u NONE --not-a-term -S fixfilenames.vim $(PACKAGE).pot $(PO_VIM_INPUTLIST)
81	$(RM) *.js
82
83# Don't add a dependency here, we only want to update the .po files manually
84$(LANGUAGES):
85	@$(MAKE) -nologo -f Make_mvc.mak $(PACKAGE).pot GETTEXT_PATH=$(GETTEXT_PATH)
86	$(CP) $@.po $@.po.orig
87	$(MV) $@.po $@.po.old
88	$(MSGMERGE) $@.po.old $(PACKAGE).pot -o $@.po
89	$(RM) $@.po.old
90
91install:
92	if not exist $(INSTALLDIR) $(MKD) $(INSTALLDIR)
93	$(CP) $(LANGUAGE).mo $(INSTALLDIR)\$(PACKAGE).mo
94
95install-all: all
96	FOR %%l IN ($(LANGUAGES)) DO @IF NOT EXIST $(VIMRUNTIME)\lang\%%l\LC_MESSAGES $(MKD) $(VIMRUNTIME)\lang\%%l\LC_MESSAGES
97	FOR %%l IN ($(LANGUAGES)) DO @$(CP) %%l.mo $(VIMRUNTIME)\lang\%%l\LC_MESSAGES\$(PACKAGE).mo
98
99clean:
100	$(RM) *.mo
101	$(RM) *.pot
102	$(RM) files
103