]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/libxo/tests/gettext/Makefile.am
MFC r316904: 7729 libzfs_core`lzc_rollback() leaks result nvl
[FreeBSD/FreeBSD.git] / contrib / libxo / tests / gettext / Makefile.am
1 #
2 # $Id$
3 #
4 # Copyright 2014, Juniper Networks, Inc.
5 # All rights reserved.
6 # This SOFTWARE is licensed under the LICENSE provided in the
7 # ../Copyright file. By downloading, installing, copying, or otherwise
8 # using the SOFTWARE, you agree to be bound by the terms of that
9 # LICENSE.
10
11 AM_CFLAGS = \
12     -I${top_srcdir} \
13     -I${top_srcdir}/libxo \
14     ${GETTEXT_CFLAGS}
15
16 # Ick: maintained by hand!
17 TEST_CASES = \
18 gt_01.c
19
20 gt_01_test_SOURCES = gt_01.c
21
22 # TEST_CASES := $(shell cd ${srcdir} ; echo *.c )
23
24 noinst_PROGRAMS = ${TEST_CASES:.c=.test}
25
26 LDADD = \
27     ${top_builddir}/libxo/libxo.la
28
29 if HAVE_HUMANIZE_NUMBER
30 LDADD += -lutil
31 endif
32
33 EXTRA_DIST = \
34     ${TEST_CASES} \
35     ${addprefix saved/, ${TEST_CASES:.c=.T.err}} \
36     ${addprefix saved/, ${TEST_CASES:.c=.T.out}} \
37     ${addprefix saved/, ${TEST_CASES:.c=.XP.err}} \
38     ${addprefix saved/, ${TEST_CASES:.c=.XP.out}} \
39     ${addprefix saved/, ${TEST_CASES:.c=.JP.err}} \
40     ${addprefix saved/, ${TEST_CASES:.c=.JP.out}} \
41     ${addprefix saved/, ${TEST_CASES:.c=.HP.err}} \
42     ${addprefix saved/, ${TEST_CASES:.c=.HP.out}} \
43     ${addprefix saved/, ${TEST_CASES:.c=.X.err}} \
44     ${addprefix saved/, ${TEST_CASES:.c=.X.out}} \
45     ${addprefix saved/, ${TEST_CASES:.c=.J.err}} \
46     ${addprefix saved/, ${TEST_CASES:.c=.J.out}} \
47     ${addprefix saved/, ${TEST_CASES:.c=.H.err}} \
48     ${addprefix saved/, ${TEST_CASES:.c=.H.out}} \
49     ${addprefix saved/, ${TEST_CASES:.c=.HIPx.err}} \
50     ${addprefix saved/, ${TEST_CASES:.c=.HIPx.out}}
51
52 POT_FILES = \
53     gt_01.pot \
54     ldns.pot \
55     strerror.pot
56
57 PO_FILES = \
58     po/pig_latin/gt_01.po \
59     po/pig_latin/ldns.po \
60     po/pig_latin/strerror.po
61
62 EXTRA_DIST += ${POT_FILES} ${PO_FILES}
63
64 S2O = | ${SED} '1,/@@/d'
65
66 all:
67
68 valgrind:
69         @echo '## Running the regression tests under Valgrind'
70         ${MAKE} CHECKER='valgrind -q' tests
71
72 #TEST_TRACE = set -x ; 
73
74 TEST_ONE = \
75   LIBXO_OPTIONS=:W$$fmt \
76       ${CHECKER} ./$$base.test ${TEST_OPTS} \
77       > out/$$base.$$fmt.out 2> out/$$base.$$fmt.err ; \
78  ${DIFF} -Nu ${srcdir}/saved/$$base.$$fmt.out out/$$base.$$fmt.out ${S2O} ; \
79  ${DIFF} -Nu ${srcdir}/saved/$$base.$$fmt.err out/$$base.$$fmt.err ${S2O}
80
81 TEST_FORMATS = T XP JP HP X J H HIPx
82
83 test tests: ${bin_PROGRAMS} build-mo-files
84         @${MKDIR} -p out
85         -@ ${TEST_TRACE} (for test in ${TEST_CASES} ; do \
86             base=`${BASENAME} $$test .c` ; \
87             (for fmt in ${TEST_FORMATS}; do \
88                 echo "... $$test ... $$fmt ..."; \
89                 ${TEST_ONE}; \
90                 true; \
91             done) \
92         done)
93
94 one:
95         -@(test=${TEST_CASE}; data=${TEST_DATA}; ${TEST_ONE} ; true)
96
97 accept:
98         -@(for test in ${TEST_CASES} ; do \
99             base=`${BASENAME} $$test .c` ; \
100             (for fmt in ${TEST_FORMATS}; do \
101                 echo "... $$test ... $$fmt ..."; \
102                 ${CP} out/$$base.$$fmt.out ${srcdir}/saved/$$base.$$fmt.out ; \
103                 ${CP} out/$$base.$$fmt.err ${srcdir}/saved/$$base.$$fmt.err ; \
104             done) \
105         done)
106
107 .c.test:
108         $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -o $@ $<
109
110 CLEANFILES = ${TEST_CASES:.c=.test}
111 CLEANDIRS = out
112
113 clean-local:
114         rm -rf ${CLEANDIRS}
115
116 XGETTEXT = ${GETTEXT_BINDIR}/xgettext
117 MSGFMT = ${GETTEXT_BINDIR}/msgfmt -v
118 MSGMERGE = ${GETTEXT_BINDIR}/msgmerge
119 ECHO = echo
120 DB=set -x;
121 XOMSGMERGE = ${MSGMERGE} --no-wrap
122 XODIFF = ${DIFF} -bu
123
124 LANGUAGES = \
125         es \
126         fr \
127         pig_latin
128
129 # ldns is fake; used only for a gettext domain
130 FAKE_FILES = ldns strerror
131 MO_BASE_FILES = ${TEST_CASES:.c=} ${FAKE_FILES}
132
133 build-pot-files:
134         for file in ${TEST_CASES} ; do set -x ;\
135             base=`${BASENAME} $$file .c` ; \
136             ${XGETTEXT} --default-domain=$$base \
137             --directory=${srcdir} --no-wrap \
138             --add-comments --keyword=xo_emit --keyword=xo_emit_h \
139             --keyword=xo_emit_warn \
140             -C -E -n --foreign-user \
141             -o $$base.pot.new $$base.c ; \
142         done
143
144 accept-pot-files:
145         for base in ${MO_BASE_FILES} ; do set -x ;\
146             ${CP} $$base.pot.new ${srcdir}/$$base.pot ; \
147         done
148
149 merge-po-files:
150         for base in ${MO_BASE_FILES} ; do set -x ;\
151             for lang in ${LANGUAGES} ; do \
152                 if [ -f po/$$lang/$$base.po ]; then \
153                     ${ECHO} "merging $$base.pot into po/$$lang/$$base.po ..." ; \
154                     if ${XOMSGMERGE} po/$$lang/$$base.po \
155                                 ${srcdir}/$$base.pot \
156                                 -o po/$$lang/$$base.new.po; then \
157                         ${MV} po/$$lang/$$base.po \
158                                 po/$$lang/$$base.po.old ; \
159                         ${MV} po/$$lang/$$base.new.po \
160                                 po/$$lang/$$base.po ; \
161                     else \
162                       echo "error: msgmerge for $$base failed"; \
163                     fi ; \
164                 elif [ -f ${srcdir}/po/$$lang/$$base.po ]; then \
165                     ${ECHO} "merging (srcdir) $$base.pot into po/$$lang/$$base.po ..." ; \
166                     if ${XOMSGMERGE} ${srcdir}/po/$$lang/$$base.po \
167                                 ${srcdir}/$$base.pot \
168                                 -o po/$$lang/$$base.new.po; then \
169                         ${MV} po/$$lang/$$base.po \
170                                 po/$$lang/$$base.po.old ; \
171                         ${MV} po/$$lang/$$base.new.po \
172                                 po/$$lang/$$base.po ; \
173                     else \
174                       echo "error: msgmerge for $$base failed"; \
175                     fi ; \
176                 fi ; \
177             done ; \
178         done
179
180 accept-po-files:
181         @(for base in ${MO_BASE_FILES} ; do \
182             for lang in ${LANGUAGES} ; do \
183                 if [ -f po/$$lang/$$base.po ]; then \
184                     ${MKDIR} -p ${srcdir}/po/$$lang ; \
185                     (${DB} ${CP} po/$$lang/$$base.po ${srcdir}/po/$$lang/$$base.po ); \
186                 fi ; \
187             done ; \
188         done)
189
190 new-po-file:
191         @(for base in ${MO_BASE_FILES} ; do set -x ;\
192             for lang in ${LANGUAGES} ; do \
193                 if [ ! -f po/$$lang/$$base.po ]; then \
194                     ${MKDIR} -p po/$$lang ; \
195                     (${DB} ${CP} $$base.pot po/$$lang/$$base.po ); \
196                 fi ; \
197             done ; \
198         done)
199
200 diff:
201         @(for base in ${MO_BASE_FILES} ; do \
202             if [ -f $$base.pot.new ] ; then \
203                 ${XODIFF} ${srcdir}/$$base.pot $$base.pot.new ; \
204             fi ; \
205             for lang in ${LANGUAGES} ; do \
206                 if [ -f po/$$lang/$$base.po ] ; then \
207                     ${XODIFF} ${srcdir}/po/$$lang/$$base.po po/$$lang/$$base.po ; \
208                 fi ; \
209             done ; \
210         done)
211
212 mo build-mo-files:
213         @(for base in ${MO_BASE_FILES} ; do \
214             for lang in ${LANGUAGES} ; do \
215                 ${MKDIR} -p po/$$lang/LC_MESSAGES ; \
216                 if [ -f po/$$lang/$$base.po ] ; then \
217                     (${DB} ${MSGFMT} -o po/$$lang/LC_MESSAGES/$$base.mo \
218                                 po/$$lang/$$base.po ); \
219                 elif [ -f ${srcdir}/po/$$lang/$$base.po ]; then \
220                     (${DB} ${MSGFMT} -o po/$$lang/LC_MESSAGES/$$base.mo \
221                         ${srcdir}/po/$$lang/$$base.po ;) \
222                 fi ; \
223             done ; \
224         done)