Improve setup for 'dlg' library. * autogen.sh (copy_submodule_file), builds/toplevel.mk: Redirect stderr to `/dev/null`. * builds/toplevel.mk: Move code block to handle 'dlg' stuff into `check_platform` conditional. Also fix wildcard expressions for guarding `git submodule` commands. Also make file copying work with non-Unix platforms (untested).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
diff --git a/ChangeLog b/ChangeLog
index a4231f4..3f17cf0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2020-12-02 Werner Lemberg <wl@gnu.org>
+
+ Improve setup for 'dlg' library.
+
+ * autogen.sh (copy_submodule_file), builds/toplevel.mk: Redirect
+ stderr to `/dev/null`.
+
+ * builds/toplevel.mk: Move code block to handle 'dlg' stuff into
+ `check_platform` conditional.
+ Also fix wildcard expressions for guarding `git submodule` commands.
+ Also make file copying work with non-Unix platforms (untested).
+
2020-12-01 Werner Lemberg <wl@gnu.org>
[build] Use gcc (and clang) in C99 mode.
diff --git a/autogen.sh b/autogen.sh
index 5608040..fd5fa1f 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -166,7 +166,7 @@ chmod +x ./configure
copy_submodule_files ()
{
echo "Copying files from \`submodules/dlg' to \`src/dlg'"
- mkdir src/dlg/dlg
+ mkdir src/dlg/dlg 2> /dev/null
cp $DLG_INC_DIR/dlg.h src/dlg/dlg
cp $DLG_INC_DIR/output.h src/dlg/dlg
cp $DLG_SRC_DIR/* src/dlg
diff --git a/builds/toplevel.mk b/builds/toplevel.mk
index c08c9f4..8379beb 100644
--- a/builds/toplevel.mk
+++ b/builds/toplevel.mk
@@ -103,23 +103,6 @@ ifneq ($(findstring setup,$(MAKECMDGOALS)),)
check_platform := 1
endif
-# For builds directly from the git repository we need to copy files
-# from `submodule/dlg' to `src/dlg'.
-#
-ifeq ($(wildcard src/dlg/dlg.*),)
- ifeq ($(wildcard submodules/dlg/dlg.*),)
- $(info Checking out submodule in `submodules/dlg')
- $(shell git submodule init)
- $(shell git submodule update)
- endif
-
- $(info Copying files from `submodules/dlg' to `src/dlg')
- $(shell mkdir src/dlg/dlg)
- $(shell cp submodules/dlg/include/dlg/dlg.h src/dlg/dlg)
- $(shell cp submodules/dlg/include/dlg/output.h src/dlg/dlg)
- $(shell cp submodules/dlg/src/dlg/dlg.c src/dlg/)
-endif
-
# Include the automatic host platform detection rules when we need to
# check the platform.
#
@@ -129,6 +112,26 @@ ifdef check_platform
include $(TOP_DIR)/builds/detect.mk
+ # For builds directly from the git repository we need to copy files
+ # from `submodule/dlg' to `src/dlg'.
+ #
+ ifeq ($(wildcard src/dlg/dlg.*),)
+ ifeq ($(wildcard submodules/dlg/*),)
+ $(info Checking out submodule in `submodules/dlg')
+ $(shell git submodule init)
+ $(shell git submodule update)
+ endif
+
+ $(info Copying files from `submodules/dlg' to `src/dlg')
+ $(shell mkdir $(subst /,$(SEP),src/dlg/dlg) $(NO_OUTPUT))
+ $(shell $(COPY) \
+ $(subst /,$(SEP),submodules/dlg/include/dlg/dlg.h src/dlg/dlg))
+ $(shell $(COPY) \
+ $(subst /,$(SEP),submodules/dlg/include/dlg/output.h src/dlg/dlg))
+ $(shell $(COPY) \
+ $(subst /,$(SEP),submodules/dlg/src/dlg/dlg.c src/dlg))
+ endif
+
# This rule makes sense for Unix only to remove files created by a run of
# the configure script which hasn't been successful (so that no
# `config.mk' has been created). It uses the built-in $(RM) command of