[hackers] [libgrapheme] Refactor Makefile, add dist-target and add test-util || Laslo Hunhold

From: <git_AT_suckless.org>
Date: Wed, 15 Dec 2021 12:56:40 +0100 (CET)

commit 74c77bfd9932535d4b7a0a7d7cc7447164ead0d5
Author: Laslo Hunhold <dev_AT_frign.de>
AuthorDate: Wed Dec 15 12:53:48 2021 +0100
Commit: Laslo Hunhold <dev_AT_frign.de>
CommitDate: Wed Dec 15 12:53:48 2021 +0100

    Refactor Makefile, add dist-target and add test-util
    
    All targets were checked and amended, if necessary. A new dist-target
    was added to quickly create a tarball.
    
    For the test-programs, given code-duplication, util.h and util.c
    were added.
    
    Signed-off-by: Laslo Hunhold <dev_AT_frign.de>

diff --git a/Makefile b/Makefile
index d166e34..fb8969a 100644
--- a/Makefile
+++ b/Makefile
_AT_@ -8,11 +8,21 @@ DATA =\
         data/emoji-data.txt\
         data/GraphemeBreakProperty.txt\
         data/GraphemeBreakTest.txt
-GEN = gen/grapheme gen/grapheme-test
-LIB = src/grapheme src/utf8 src/util
-TEST = test/grapheme test/grapheme-performance test/utf8-decode test/utf8-encode
-
-MAN3 = man/lg_grapheme_isbreak.3 man/lg_grapheme_nextbreak.3
+GEN =\
+ gen/grapheme\
+ gen/grapheme-test
+SRC =\
+ src/grapheme\
+ src/utf8\
+ src/util
+TEST =\
+ test/grapheme\
+ test/grapheme-performance\
+ test/utf8-decode\
+ test/utf8-encode
+MAN3 =\
+ man/lg_grapheme_isbreak.3\
+ man/lg_grapheme_nextbreak.3
 MAN7 = man/libgrapheme.7
 
 all: libgrapheme.a libgrapheme.so
_AT_@ -20,20 +30,21 @@ all: libgrapheme.a libgrapheme.so
 gen/grapheme.o: gen/grapheme.c config.mk gen/util.h
 gen/grapheme-test.o: gen/grapheme-test.c config.mk gen/util.h
 gen/util.o: gen/util.c config.mk gen/util.h
-src/utf8.o: src/utf8.c config.mk grapheme.h
 src/grapheme.o: src/grapheme.c config.mk gen/grapheme.h grapheme.h src/util.h
-src/util.o: src/util.c config.mk src/util.h
-test/grapheme.o: test/grapheme.c config.mk gen/grapheme-test.h grapheme.h
-test/grapheme-performance.o: test/grapheme-performance.c config.mk gen/grapheme-test.h grapheme.h
-test/utf8-encode.o: test/utf8-encode.c config.mk grapheme.h
-test/utf8-decode.o: test/utf8-decode.c config.mk grapheme.h
+src/utf8.o: src/utf8.c config.mk grapheme.h
+src/util.o: src/util.c config.mk grapheme.h src/util.h
+test/grapheme.o: test/grapheme.c config.mk gen/grapheme-test.h grapheme.h test/util.h
+test/grapheme-performance.o: test/grapheme-performance.c config.mk gen/grapheme-test.h grapheme.h test/util.h
+test/utf8-encode.o: test/utf8-encode.c config.mk grapheme.h test/util.h
+test/utf8-decode.o: test/utf8-decode.c config.mk grapheme.h test/util.h
+test/util.o: test/util.c config.mk test/util.h
 
 gen/grapheme: gen/grapheme.o gen/util.o
 gen/grapheme-test: gen/grapheme-test.o gen/util.o
-test/grapheme: test/grapheme.o libgrapheme.a
-test/grapheme-performance: test/grapheme-performance.o libgrapheme.a
-test/utf8-encode: test/utf8-encode.o libgrapheme.a
-test/utf8-decode: test/utf8-decode.o libgrapheme.a
+test/grapheme: test/grapheme.o test/util.o libgrapheme.a
+test/grapheme-performance: test/grapheme-performance.o test/util.o libgrapheme.a
+test/utf8-encode: test/utf8-encode.o test/util.o libgrapheme.a
+test/utf8-decode: test/utf8-decode.o test/util.o libgrapheme.a
 
 gen/grapheme.h: data/emoji-data.txt data/GraphemeBreakProperty.txt gen/grapheme
 gen/grapheme-test.h: data/GraphemeBreakTest.txt gen/grapheme-test
_AT_@ -54,16 +65,16 @@ $(GEN:=.h):
         $(_AT_:.h=) > $@
 
 $(TEST):
- $(CC) -o $_AT_ $(LDFLAGS) $@.o libgrapheme.a
+ $(CC) -o $_AT_ $(LDFLAGS) $@.o test/util.o libgrapheme.a
 
 .c.o:
         $(CC) -c -o $_AT_ $(CPPFLAGS) $(CFLAGS) $<
 
-libgrapheme.a: $(LIB:=.o)
+libgrapheme.a: $(SRC:=.o)
         $(AR) rc $_AT_ $?
         $(RANLIB) $_AT_
 
-libgrapheme.so: $(LIB:=.o)
+libgrapheme.so: $(SRC:=.o)
         $(CC) -o $_AT_ -shared $?
 
 test: $(TEST)
_AT_@ -88,7 +99,23 @@ uninstall:
         rm -f "$(DESTDIR)$(INCPREFIX)/grapheme.h"
 
 clean:
- rm -f $(GEN:=.h) $(GEN:=.o) $(GEN) gen/util.o $(LIB:=.o) $(TEST:=.o) $(TEST) libgrapheme.a libgrapheme.so
+ rm -f $(GEN:=.h) $(GEN:=.o) $(GEN) gen/util.o $(SRC:=.o) src/util.o \
+ $(TEST:=.o) test/util.o $(TEST) libgrapheme.a libgrapheme.so
 
 clean-data:
         rm -f $(DATA)
+
+dist:
+ mkdir libgrapheme-$(VERSION) libgrapheme-$(VERSION)/data\
+ libgrapheme-$(VERSION)/gen libgrapheme-$(VERSION)/man\
+ libgrapheme-$(VERSION)/src libgrapheme-$(VERSION)/test
+ cp config.mk grapheme.h LICENSE Makefile libgrapheme-$(VERSION)
+ cp $(DATA) libgrapheme-$(VERSION)/data
+ cp $(GEN:=.c) gen/util.c gen/util.h libgrapheme-$(VERSION)/gen
+ cp $(MAN3) $(MAN7) libgrapheme-$(VERSION)/man
+ cp $(SRC:=.c) src/util.h libgrapheme-$(VERSION)/src
+ cp $(TEST:=.c) test/util.c test/util.h libgrapheme-$(VERSION)/test
+ tar -cf libgrapheme-$(VERSION).tar libgrapheme-$(VERSION)
+ rm -rf libgrapheme-$(VERSION)
+
+.PHONY: all test install uninstall clean dist
diff --git a/test/grapheme-performance.c b/test/grapheme-performance.c
index 05035bd..4bfd429 100644
--- a/test/grapheme-performance.c
+++ b/test/grapheme-performance.c
_AT_@ -7,17 +7,10 @@
 
 #include "../grapheme.h"
 #include "../gen/grapheme-test.h"
+#include "util.h"
 
-#define LEN(x) (sizeof(x) / sizeof(*(x)))
 #define NUM_ITERATIONS 1000
 
-static double
-time_diff(struct timespec *a, struct timespec *b)
-{
- return (double)(b->tv_sec - a->tv_sec) +
- (double)(b->tv_nsec - a->tv_nsec) * 1E-9;
-}
-
 int
 main(int argc, char *argv[])
 {
diff --git a/test/grapheme.c b/test/grapheme.c
index 9e16952..5af2c46 100644
--- a/test/grapheme.c
+++ b/test/grapheme.c
_AT_@ -6,8 +6,7 @@
 
 #include "../grapheme.h"
 #include "../gen/grapheme-test.h"
-
-#define LEN(x) (sizeof(x) / sizeof(*(x)))
+#include "util.h"
 
 int
 main(int argc, char *argv[])
diff --git a/test/utf8-decode.c b/test/utf8-decode.c
index 58adbb9..0fd6f77 100644
--- a/test/utf8-decode.c
+++ b/test/utf8-decode.c
_AT_@ -5,8 +5,7 @@
 #include <string.h>
 
 #include "../grapheme.h"
-
-#define LEN(x) (sizeof(x) / sizeof(*(x)))
+#include "util.h"
 
 static const struct {
         uint8_t *arr; /* UTF-8 byte sequence */
diff --git a/test/utf8-encode.c b/test/utf8-encode.c
index ef0ed6d..99f5d48 100644
--- a/test/utf8-encode.c
+++ b/test/utf8-encode.c
_AT_@ -5,8 +5,7 @@
 #include <string.h>
 
 #include "../grapheme.h"
-
-#define LEN(x) (sizeof(x) / sizeof(*(x)))
+#include "util.h"
 
 static const struct {
         uint_least32_t cp; /* input code point */
diff --git a/test/util.c b/test/util.c
new file mode 100644
index 0000000..5937468
--- /dev/null
+++ b/test/util.c
_AT_@ -0,0 +1,11 @@
+/* See LICENSE file for copyright and license details. */
+#include <time.h>
+
+#include "util.h"
+
+double
+time_diff(struct timespec *a, struct timespec *b)
+{
+ return (double)(b->tv_sec - a->tv_sec) +
+ (double)(b->tv_nsec - a->tv_nsec) * 1E-9;
+}
diff --git a/test/util.h b/test/util.h
new file mode 100644
index 0000000..d89e25d
--- /dev/null
+++ b/test/util.h
_AT_@ -0,0 +1,11 @@
+/* See LICENSE file for copyright and license details. */
+#ifndef UTIL_H
+#define UTIL_H
+
+#include <time.h>
+
+#define LEN(x) (sizeof(x) / sizeof(*(x)))
+
+double time_diff(struct timespec *, struct timespec *);
+
+#endif /* UTIL_H */
Received on Wed Dec 15 2021 - 12:56:40 CET

This archive was generated by hypermail 2.3.0 : Wed Dec 15 2021 - 13:00:32 CET