This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] implicit Unicode data tables generation


Am 12.03.2018 um 15:21 schrieb Corinna Vinschen:
On Mar 12 08:41, Yaakov Selkowitz wrote:
On 2018-03-12 08:35, Corinna Vinschen wrote:
On Mar  9 08:46, Thomas Wolff wrote:
diff --git a/newlib/libc/ctype/Makefile.am b/newlib/libc/ctype/Makefile.am
index fa6a70d..714b333 100644
--- a/newlib/libc/ctype/Makefile.am
+++ b/newlib/libc/ctype/Makefile.am
@@ -135,3 +135,23 @@ CHEWOUT_FILES= \
  CHAPTERS = ctype.tex
$(lpfx)ctype_.$(oext): ctype_.c ctype_iso.h ctype_cp.h
+
+#############################################################################
+# Unicode data
+
+$(srcdir)/%.txt:
+	cd $(srcdir); test -r $(notdir $@) || ln -s /usr/share/unicode/ucd/$(notdir $@) .
This is a no-no.  Do not create links into the OS tree.  You don't
even know if the file exists.

+$(srcdir)/categories.t:	$(srcdir)/UnicodeData.txt
+	cd $(srcdir); sh ./mkcategories
+
+$(srcdir)/caseconv.t:	$(srcdir)/UnicodeData.txt
+	cd $(srcdir); sh ./mkcaseconv
+
Consequently, these rules are broken.   Consider that somebody might
build from git without manually installing UnicodeData.txt.  In that
case the above rules lead to a build error, along the lines of

   UnicodeData.txt not found
   Error 1
   ...

It would be helpful to create rules which just skip the dependency
if UnicodeData.txt doesn't exist in the source tree.  Unfortunately,
the only way to do that off the top of my head is to make the *.t files
depend on a phony target which then does everything in shell.  Better
ideas highly appreciated.
That's why I would have appreciated to go with the explicit generation only, as you had previously requested.

I think either unicode-ucd is a required build dependency, or otherwise
these rules would have to be explicit only and keep the generated files
in git for the benefit of those without it.
Yes, I forgot to suggest that unicode-ucd should be listed at https://cygwin.com/[faq/]faq.html#faq.programming.building-cygwin.
If that's not desired, on the other hand...
A build dependency to unicode-ucd should not be required.  Why not have
automatic build rules which are simply skipped if the file doesn't
exist?  So somebody can download the file and the rules do the rest?
It's not *that* important, but a nice feature.
The easiest way would be that the mkunidata scripts just ignore the missing files, like in the patch attached. On the other hand, in my original scripts I had the additional fallback option to download them from unicode.org on demand.
If that's acceptable in a build process, I could add that back in.
Or just drop those rules and stay explicit?
Thomas

Attachment: 0001-drop-strict-dependency-on-Unicode-data-in-unicode-uc.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]