about summary refs log tree commit diff homepage
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Makefile49
1 files changed, 30 insertions, 19 deletions
diff --git a/Makefile b/Makefile
index 8df5425..9199a7b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,17 +1,31 @@
-USER = torus
-BINS = server client help meta merge
+CHROOT_USER = torus
+CHROOT_GROUP = $(CHROOT_USER)
+
 CFLAGS += -Wall -Wextra -Wpedantic
-LDLIBS = -lm -lcurses
+LDLIBS = -lcursesw
+BINS = server client meta merge
+OBJS = $(BINS:%=%.o)
 
 all: tags $(BINS)
 
-$(BINS): torus.h
+.o:
+	$(CC) $(LDFLAGS) $< $(LDLIBS) -o $@
+
+$(OBJS): torus.h
+
+client.o: help.h
 
-# Only necessary so GNU make doesn't try to use torus.h as a source.
-.c:
-	$(CC) $(CFLAGS) $(LDFLAGS) $< $(LDLIBS) -o $@
+help.h:
+	head -c 4096 torus.dat \
+		| file2c -s -x 'static const uint8_t HELP_DATA[] = {' '};' \
+		> help.h
+	echo 'static const struct Tile *HELP = (const struct Tile *)HELP_DATA;' \
+		>> help.h
 
-chroot.tar: server client help
+tags: *.h *.c
+	ctags -w *.h *.c
+
+chroot.tar: server client
 	mkdir -p root
 	install -d -o root -g wheel \
 	    root/bin \
@@ -21,22 +35,19 @@ chroot.tar: server client help
 	    root/usr \
 	    root/usr/share \
 	    root/usr/share/misc
-	install -d -o $(USER) -g $(USER) root/home/$(USER)
-	install -o root -g wheel -m 555 /libexec/ld-elf.so.1 root/libexec
-	install -o root -g wheel -m 444 \
+	install -d -o $(CHROOT_USER) -g $(CHROOT_GROUP) root/home/$(CHROOT_USER)
+	cp -p -f /libexec/ld-elf.so.1 root/libexec
+	cp -p -f \
 	    /lib/libc.so.7 \
-		/lib/libm.so.5 \
 	    /lib/libedit.so.7 \
 	    /lib/libncurses.so.8 \
 	    /lib/libncursesw.so.8 \
 	    root/lib
-	install -o root -g wheel -m 444 /usr/share/misc/termcap.db root/usr/share/misc
-	install -o root -g wheel -m 555 /bin/sh root/bin
-	install -o root -g wheel -m 555 server client help root/bin
+	cp -a -f /usr/share/locale root/usr/share
+	cp -p -f /usr/share/misc/termcap.db root/usr/share/misc
+	cp -p -f /bin/sh root/bin
+	install -o root -g wheel -m 555 server client root/bin
 	tar -c -f chroot.tar -C root bin home lib libexec usr
 
-tags: *.h *.c
-	ctags -w *.h *.c
-
 clean:
-	rm -f tags $(BINS) chroot.tar
+	rm -f tags $(OBJS) $(BINS) chroot.tar
/td>June McEnroe Fixes mistaken highlight of: pngWrite(file, (uint8_t []) { 0, 0, 0 }, 3); 2019-02-18Match whitespace between * [] {}June McEnroe 2019-02-18Fix function-like #define regexJune McEnroe A define like #define FOO (1) is not function-like. 2019-02-18Match Tag in RustJune McEnroe 2019-02-18Match sh functions as TagJune McEnroe 2019-02-18Match Sh and Ss as Tag in mdocJune McEnroe 2019-02-18Match statics and typedefs as TagJune McEnroe 2019-02-18Clean up htmlHeaderJune McEnroe 2019-02-18Remove hi line numberingJune McEnroe Tags are much better for referring to specific parts of a file and line numbering is better done by a post-processing tool such as cat -n or producing a two-column HTML <table>. 2019-02-18Add Tag class to hiJune McEnroe 2019-02-17Generate HTML with hi -n -f html -o anchorJune McEnroe Running hi twice to insert stuff between the head and the content is a bit of a hack but oh well. 2019-02-17Add hi -f html -o anchor for line number linksJune McEnroe 2019-02-17Simplify temp trap in upJune McEnroe 2019-02-17Add line numbers to hiJune McEnroe Renames previous -n option to -m to stay consistent with cat -n. Prefixing lines with line numbers affects where the first tab indent ends up relative to the text above it. Not sure if it's worth fixing somehow. 2019-02-17Always split spans after newlinesJune McEnroe Simplifies ANSI and IRC output code, and prepares for line numbered output. 2019-02-15Color format specifiers light cyan in vimJune McEnroe 2019-02-15Highlight Interp as yellowJune McEnroe 2019-02-15Highlight strings in sh command substitutionsJune McEnroe 2019-02-15Add nmap gpJune McEnroe 2019-02-14Avoid newline when copying URL to pasteboardJune McEnroe 2019-02-13Add forgotten "sixth" book of H2G2June McEnroe