speakup: Fix building as extmod
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Fri, 18 Nov 2022 01:22:06 +0000 (02:22 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 23 Nov 2022 18:55:03 +0000 (19:55 +0100)
spk_priv_keyinfo.h should be opened from the speakup directory. When
building as extmod we should thus open it from the module directory
rather than the main Linux source.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Link: https://lore.kernel.org/r/20221118012206.j6hq6b6nfx2jhqg6@begin
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/accessibility/speakup/Makefile
drivers/accessibility/speakup/makemapdata.c

index ba69b0803d4285b00039290ee5b22614807cfb1c..6f6a83565c0ded227260a93a16243e5ae240fe7a 100644 (file)
@@ -40,7 +40,9 @@ hostprogs += makemapdata
 makemapdata-objs := makemapdata.o
 
 quiet_cmd_mkmap = MKMAP   $@
-      cmd_mkmap = TOPDIR=$(srctree) $(obj)/makemapdata > $@
+      cmd_mkmap = TOPDIR=$(srctree) \
+                 SPKDIR=$(if $(KBUILD_EXTMOD),$(KBUILD_EXTMOD),$(srctree)/drivers/accessibility/speakup) \
+                 $(obj)/makemapdata > $@
 
 $(obj)/mapdata.h: $(obj)/makemapdata
        $(call cmd,mkmap)
index 81db9ebf1fff8a28448c4529e0129117ff45a787..d7d41bb9b05fbb590c436aba29e6a94b2b9af3d0 100644 (file)
@@ -51,12 +51,15 @@ main(int argc, char *argv[])
 {
        int value, i;
        struct st_key *this;
-       const char *dir_name;
+       const char *dir_name, *spk_dir_name;
        char *cp;
 
        dir_name = getenv("TOPDIR");
        if (!dir_name)
                dir_name = ".";
+       spk_dir_name = getenv("SPKDIR");
+       if (!spk_dir_name)
+               spk_dir_name = "drivers/accessibility/speakup";
        bzero(key_table, sizeof(key_table));
        add_key("shift",        1, is_shift);
        add_key("altgr",        2, is_shift);
@@ -83,7 +86,7 @@ main(int argc, char *argv[])
                        add_key(def_name, value, is_input);
        }
 
-       open_input(dir_name, "drivers/accessibility/speakup/spk_priv_keyinfo.h");
+       open_input(spk_dir_name, "spk_priv_keyinfo.h");
        while (get_define()) {
                if (strlen(def_val) > 5) {
                        //if (def_val[0] == '(')