summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/lang/lang.make10
1 files changed, 9 insertions, 1 deletions
diff --git a/apps/lang/lang.make b/apps/lang/lang.make
index 6465b426b7..cee2456b5d 100644
--- a/apps/lang/lang.make
+++ b/apps/lang/lang.make
@@ -31,11 +31,19 @@ $(BUILDDIR)/lang/max_language_size.h: $(LANGOBJ) $(BUILDDIR)/apps/lang/voicestri
31$(BUILDDIR)/lang/lang_core.o: $(BUILDDIR)/lang/lang.h $(BUILDDIR)/lang/lang_core.c 31$(BUILDDIR)/lang/lang_core.o: $(BUILDDIR)/lang/lang.h $(BUILDDIR)/lang/lang_core.c
32 $(call PRINTS,CC lang_core.c)$(CC) $(CFLAGS) -c $(BUILDDIR)/lang/lang_core.c -o $@ 32 $(call PRINTS,CC lang_core.c)$(CC) $(CFLAGS) -c $(BUILDDIR)/lang/lang_core.c -o $@
33 33
34$(BUILDDIR)/lang/lang.h $(BUILDDIR)/lang/lang_core.c: $(APPSDIR)/lang/$(LANGUAGE).lang $(BUILDDIR)/apps/features 34# genlang creates *both* lang.c and lang.h but in Make there is no wat to express this rule
35# (multiple target rules DO NOT express that, they are a simple shortcut for multiple rules)
36# instead we pretend that genlang create lang_core.c and that lang.c depends from lang.h
37# it will work fine as long as one never manually removes lang.c and not lang.h, and it will avoid
38# race conditions such as running genlang twice or worse in parallel with other things!
39$(BUILDDIR)/lang/lang.h: $(APPSDIR)/lang/$(LANGUAGE).lang $(BUILDDIR)/apps/features
35 $(call PRINTS,GEN lang.h) 40 $(call PRINTS,GEN lang.h)
36 $(SILENT)for f in `cat $(BUILDDIR)/apps/features`; do feat="$$feat:$$f" ; done; \ 41 $(SILENT)for f in `cat $(BUILDDIR)/apps/features`; do feat="$$feat:$$f" ; done; \
37 perl -s $(TOOLSDIR)/genlang -p=$(BUILDDIR)/lang -t=$(MODELNAME)$$feat $< 42 perl -s $(TOOLSDIR)/genlang -p=$(BUILDDIR)/lang -t=$(MODELNAME)$$feat $<
43$(BUILDDIR)/lang/lang_core.c: $(BUILDDIR)/lang/lang.h
38 44
45# NOTE: for some weird reasons in GNU make, multi targets rules WITH patterns actually express
46# the fact that the two files are created as the result of one invocation of the rule
39$(BUILDDIR)/%.lng $(BUILDDIR)/%.vstrings: $(ROOTDIR)/%.lang $(BUILDDIR)/apps/genlang-features 47$(BUILDDIR)/%.lng $(BUILDDIR)/%.vstrings: $(ROOTDIR)/%.lang $(BUILDDIR)/apps/genlang-features
40 $(call PRINTS,GENLANG $(subst $(ROOTDIR)/,,$<)) 48 $(call PRINTS,GENLANG $(subst $(ROOTDIR)/,,$<))
41 $(SILENT)mkdir -p $(dir $@) 49 $(SILENT)mkdir -p $(dir $@)