]> git.mdlowis.com Git - proto/aos.git/commitdiff
Merge branch 'master' of mdlowis.com:~/git/proto/aos
authorMichael D. Lowis <mike@mdlowis.com>
Thu, 23 Feb 2023 02:58:40 +0000 (21:58 -0500)
committerMichael D. Lowis <mike@mdlowis.com>
Thu, 23 Feb 2023 02:58:40 +0000 (21:58 -0500)
1  2 
config.mk
inc/liba.h
rules.mk

diff --cc config.mk
index 109d8ea944535d2fef6cc040b1862ee214423e83,f5e81735025e25d812603f6bbb2789ad3dc1b026..2eadbd5334c13f79e7579f684ac2921f53361c70
+++ b/config.mk
@@@ -3,7 -3,7 +3,7 @@@ OUTDIR = buil
  BINDIR = $(OUTDIR)/bin
  
  CC = cc
- CFLAGS = -O2 --std=c99 -pedantic -Wall -Wextra -Werror -Wno-unused-result -Wno-sign-compare -Wno-type-limits -Wno-unused-parameter
 -CFLAGS = -O2 --std=c11 -pedantic -Wall -Wextra -Werror
++CFLAGS = -O2 --std=c11 -pedantic -Wall -Wextra -Werror -Wno-unused-result -Wno-sign-compare -Wno-type-limits -Wno-unused-parameter
  CPPFLAGS = -Iinc/ -I/usr/include/freetype2
  
  AR = ar
diff --cc inc/liba.h
index de49b2783176753159e110455a8fae5650bf470f,50fee0a16fd95cb6f610576b542247ccc6b53203..43737f4d52fd32c2a6ed1ab5bd943d97f51c65f0
@@@ -51,51 -60,17 +60,37 @@@ Int Options_Parse(Int argc, char** argv
  void Options_PrintHelp(void);
  
  /*
-     Standard Library Helpers
+     UTF8 Encoding and Decoding
  */
- void fatal(const char* fmt, ...);
- void warn(const char* fmt, ...);
- void esignal(int sig, void (*func)(int));
- int eraise(int sig);
- void* ecalloc(size_t num, size_t size);
- void* emalloc(size_t size);
- void* erealloc(void* ptr, size_t size);
- char* smprintf(const char* fmt, ...);
- FILE* efopen(const char* filename, const char* mode);
- char* efreadline(FILE* input);
- char* estrdup(const char *s);
- int forkexec(char** cmd);
- char* strmcat(char* first, ...);
+ #define UTF_MAX   6u
+ #define RUNE_SELF ((Rune)0x80)
+ #define RUNE_ERR  ((Rune)0xFFFD)
+ #define RUNE_MAX  ((Rune)0x10FFFF)
+ #define RUNE_EOF  ((Rune)EOF)
  
- /*
-     Networking
- */
- int Net_Announce(char* dialstr);
- int Net_Listen(int fd, int backlog);
- int Net_Accept(int fd);
- int Net_Dial(char* dialstr);
- void Net_Serve(char* dialstr, void (*on_client)(int cfd));
+ Int UTF8_Encode(Byte str[UTF_MAX], Rune rune);
+ Bool UTF8_Decode(Rune* rune, Int* length, Int byte);
  
- typedef uint16_t MBusIdentifier;
- typedef uint16_t MBusTopic;
 +/*
 +    Message Bus Interface
 +*/
 +typedef struct MBusConnection MBusConnection;
 +typedef struct MBusMessage MBusMessage;
- void MBus_PutBool(MBusMessage* msg, bool val);
- void MBus_PutInt(MBusMessage* msg, int64_t val);
- void MBus_PutFloat(MBusMessage* msg, double val);
- void MBus_PutString(MBusMessage* msg, double val);
++typedef Uint MBusIdentifier;
++typedef Uint MBusTopic;
 +
 +MBusConnection* MBus_Connect(char* dialstr);
 +void MBus_Disconnect(MBusConnection* conn);
 +void MBus_Subscribe(MBusConnection* conn, MBusTopic topic);
 +void MBus_Unsubscribe(MBusConnection* conn, MBusTopic topic);
 +void MBus_MsgSend(MBusConnection* conn, MBusMessage* msg);
 +
 +MBusMessage* MBus_CreateMessage(MBusIdentifier dest);
++void MBus_PutBool(MBusMessage* msg, Bool val);
++void MBus_PutInt(MBusMessage* msg, Int val);
++void MBus_PutFloat(MBusMessage* msg, Real val);
++void MBus_PutString(MBusMessage* msg, Real val);
 +
  /*
      Basic Runtime Facilities
  */
diff --cc rules.mk
index 0000000000000000000000000000000000000000,cd6fb9eca54cc56db504dffd1e55eb430b65b704..db6ed8e8718d21b9f41d5b7a576fcab1b0c37442
mode 000000,100644..100644
--- /dev/null
+++ b/rules.mk
@@@ -1,0 -1,218 +1,347 @@@
 -$(OUTDIR)/obj/lib/a/stdlib/erealloc.o: lib/a/stdlib/erealloc.c config.mk
++$(OUTDIR)/obj/lib/MBus.o: lib/MBus.c config.mk
++      $(OBJECT)
++$(OUTDIR)/lib/libMBus.c.a: $(OUTDIR)/obj/lib/MBus.o
++-include $(OUTDIR)/obj/lib/MBus.d
++$(OUTDIR)/lib/libMBus.c.a:
++      $(ARCHIVE)
++libs: $(OUTDIR)/lib/libMBus.c.a
++$(OUTDIR)/obj/lib/a/Options.o: lib/a/Options.c config.mk
++      $(OBJECT)
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/Options.o
++-include $(OUTDIR)/obj/lib/a/Options.d
+ $(OUTDIR)/obj/lib/a/UTF8.o: lib/a/UTF8.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/UTF8.o
+ -include $(OUTDIR)/obj/lib/a/UTF8.d
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/erealloc.o
 --include $(OUTDIR)/obj/lib/a/stdlib/erealloc.d
 -$(OUTDIR)/obj/lib/a/stdlib/forkexec.o: lib/a/stdlib/forkexec.c config.mk
++$(OUTDIR)/obj/lib/a/defaults/options.o: lib/a/defaults/options.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/forkexec.o
 --include $(OUTDIR)/obj/lib/a/stdlib/forkexec.d
 -$(OUTDIR)/obj/lib/a/stdlib/efreadline.o: lib/a/stdlib/efreadline.c config.mk
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/defaults/options.o
++-include $(OUTDIR)/obj/lib/a/defaults/options.d
++$(OUTDIR)/obj/lib/a/defaults/usage.o: lib/a/defaults/usage.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/efreadline.o
 --include $(OUTDIR)/obj/lib/a/stdlib/efreadline.d
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/defaults/usage.o
++-include $(OUTDIR)/obj/lib/a/defaults/usage.d
++$(OUTDIR)/obj/lib/a/defaults/set_option.o: lib/a/defaults/set_option.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/obj/lib/a/stdlib/efopen.o: lib/a/stdlib/efopen.c config.mk
 -      $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/efopen.o
 --include $(OUTDIR)/obj/lib/a/stdlib/efopen.d
 -$(OUTDIR)/obj/lib/a/stdlib/ecalloc.o: lib/a/stdlib/ecalloc.c config.mk
 -      $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/ecalloc.o
 --include $(OUTDIR)/obj/lib/a/stdlib/ecalloc.d
 -$(OUTDIR)/obj/lib/a/stdlib/smprintf.o: lib/a/stdlib/smprintf.c config.mk
 -      $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/smprintf.o
 --include $(OUTDIR)/obj/lib/a/stdlib/smprintf.d
 -$(OUTDIR)/obj/lib/a/stdlib/warn.o: lib/a/stdlib/warn.c config.mk
 -      $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/warn.o
 --include $(OUTDIR)/obj/lib/a/stdlib/warn.d
 -$(OUTDIR)/obj/lib/a/stdlib/emalloc.o: lib/a/stdlib/emalloc.c config.mk
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/defaults/set_option.o
++-include $(OUTDIR)/obj/lib/a/defaults/set_option.d
++$(OUTDIR)/obj/lib/a/defaults/argv0.o: lib/a/defaults/argv0.c config.mk
++      $(OBJECT)
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/defaults/argv0.o
++-include $(OUTDIR)/obj/lib/a/defaults/argv0.d
++$(OUTDIR)/obj/lib/a/Mutex.o: lib/a/Mutex.c config.mk
++      $(OBJECT)
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/Mutex.o
++-include $(OUTDIR)/obj/lib/a/Mutex.d
++$(OUTDIR)/obj/lib/a/Thread.o: lib/a/Thread.c config.mk
++      $(OBJECT)
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/Thread.o
++-include $(OUTDIR)/obj/lib/a/Thread.d
++$(OUTDIR)/obj/lib/a/Net.o: lib/a/Net.c config.mk
++      $(OBJECT)
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/Net.o
++-include $(OUTDIR)/obj/lib/a/Net.d
+ $(OUTDIR)/obj/lib/a/stdlib/esignal.o: lib/a/stdlib/esignal.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/esignal.o
+ -include $(OUTDIR)/obj/lib/a/stdlib/esignal.d
++$(OUTDIR)/obj/lib/a/stdlib/emalloc.o: lib/a/stdlib/emalloc.c config.mk
++      $(OBJECT)
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/emalloc.o
++-include $(OUTDIR)/obj/lib/a/stdlib/emalloc.d
++$(OUTDIR)/obj/lib/a/stdlib/warn.o: lib/a/stdlib/warn.c config.mk
++      $(OBJECT)
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/warn.o
++-include $(OUTDIR)/obj/lib/a/stdlib/warn.d
+ $(OUTDIR)/obj/lib/a/stdlib/estrdup.o: lib/a/stdlib/estrdup.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/estrdup.o
+ -include $(OUTDIR)/obj/lib/a/stdlib/estrdup.d
++$(OUTDIR)/obj/lib/a/stdlib/forkexec.o: lib/a/stdlib/forkexec.c config.mk
++      $(OBJECT)
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/forkexec.o
++-include $(OUTDIR)/obj/lib/a/stdlib/forkexec.d
++$(OUTDIR)/obj/lib/a/stdlib/efreadline.o: lib/a/stdlib/efreadline.c config.mk
++      $(OBJECT)
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/efreadline.o
++-include $(OUTDIR)/obj/lib/a/stdlib/efreadline.d
+ $(OUTDIR)/obj/lib/a/stdlib/eraise.o: lib/a/stdlib/eraise.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/eraise.o
+ -include $(OUTDIR)/obj/lib/a/stdlib/eraise.d
+ $(OUTDIR)/obj/lib/a/stdlib/strmcat.o: lib/a/stdlib/strmcat.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/strmcat.o
+ -include $(OUTDIR)/obj/lib/a/stdlib/strmcat.d
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/emalloc.o
 --include $(OUTDIR)/obj/lib/a/stdlib/emalloc.d
++$(OUTDIR)/obj/lib/a/stdlib/erealloc.o: lib/a/stdlib/erealloc.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/obj/lib/a/Mutex.o: lib/a/Mutex.c config.mk
 -      $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/Mutex.o
 --include $(OUTDIR)/obj/lib/a/Mutex.d
 -$(OUTDIR)/obj/lib/a/Thread.o: lib/a/Thread.c config.mk
 -      $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/Thread.o
 --include $(OUTDIR)/obj/lib/a/Thread.d
 -$(OUTDIR)/obj/lib/a/defaults/argv0.o: lib/a/defaults/argv0.c config.mk
 -      $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/defaults/argv0.o
 --include $(OUTDIR)/obj/lib/a/defaults/argv0.d
 -$(OUTDIR)/obj/lib/a/defaults/set_option.o: lib/a/defaults/set_option.c config.mk
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/erealloc.o
++-include $(OUTDIR)/obj/lib/a/stdlib/erealloc.d
+ $(OUTDIR)/obj/lib/a/stdlib/fatal.o: lib/a/stdlib/fatal.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/fatal.o
+ -include $(OUTDIR)/obj/lib/a/stdlib/fatal.d
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/defaults/set_option.o
 --include $(OUTDIR)/obj/lib/a/defaults/set_option.d
 -$(OUTDIR)/obj/lib/a/defaults/options.o: lib/a/defaults/options.c config.mk
++$(OUTDIR)/obj/lib/a/stdlib/smprintf.o: lib/a/stdlib/smprintf.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/defaults/options.o
 --include $(OUTDIR)/obj/lib/a/defaults/options.d
 -$(OUTDIR)/obj/lib/a/defaults/usage.o: lib/a/defaults/usage.c config.mk
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/smprintf.o
++-include $(OUTDIR)/obj/lib/a/stdlib/smprintf.d
++$(OUTDIR)/obj/lib/a/stdlib/efopen.o: lib/a/stdlib/efopen.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/defaults/usage.o
 --include $(OUTDIR)/obj/lib/a/defaults/usage.d
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/efopen.o
++-include $(OUTDIR)/obj/lib/a/stdlib/efopen.d
++$(OUTDIR)/obj/lib/a/stdlib/ecalloc.o: lib/a/stdlib/ecalloc.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/obj/lib/a/Net.o: lib/a/Net.c config.mk
 -      $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/Net.o
 --include $(OUTDIR)/obj/lib/a/Net.d
 -$(OUTDIR)/obj/lib/a/Options.o: lib/a/Options.c config.mk
 -      $(OBJECT)
 -$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/Options.o
 --include $(OUTDIR)/obj/lib/a/Options.d
++$(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/stdlib/ecalloc.o
++-include $(OUTDIR)/obj/lib/a/stdlib/ecalloc.d
+ $(OUTDIR)/obj/lib/a/GC.o: lib/a/GC.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/lib/liba.a: $(OUTDIR)/obj/lib/a/GC.o
+ -include $(OUTDIR)/obj/lib/a/GC.d
 -$(OUTDIR)/obj/lib/ui/window_hide.o: lib/ui/window_hide.c config.mk
+ $(OUTDIR)/lib/liba.a:
+       $(ARCHIVE)
+ libs: $(OUTDIR)/lib/liba.a
 -$(OUTDIR)/lib/libui.a: $(OUTDIR)/obj/lib/ui/window_hide.o
 --include $(OUTDIR)/obj/lib/ui/window_hide.d
 -$(OUTDIR)/obj/lib/ui/window_show.o: lib/ui/window_show.c config.mk
++$(OUTDIR)/obj/lib/ui/window_create.o: lib/ui/window_create.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/lib/libui.a: $(OUTDIR)/obj/lib/ui/window_show.o
 --include $(OUTDIR)/obj/lib/ui/window_show.d
++$(OUTDIR)/lib/libui.a: $(OUTDIR)/obj/lib/ui/window_create.o
++-include $(OUTDIR)/obj/lib/ui/window_create.d
++$(OUTDIR)/obj/lib/ui/ui_begin.o: lib/ui/ui_begin.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/obj/lib/ui/window_create.o: lib/ui/window_create.c config.mk
 -      $(OBJECT)
 -$(OUTDIR)/lib/libui.a: $(OUTDIR)/obj/lib/ui/window_create.o
 --include $(OUTDIR)/obj/lib/ui/window_create.d
 -$(OUTDIR)/obj/lib/ui/ui_begin.o: lib/ui/ui_begin.c config.mk
 -      $(OBJECT)
 -$(OUTDIR)/lib/libui.a: $(OUTDIR)/obj/lib/ui/ui_begin.o
 --include $(OUTDIR)/obj/lib/ui/ui_begin.d
++$(OUTDIR)/lib/libui.a: $(OUTDIR)/obj/lib/ui/ui_begin.o
++-include $(OUTDIR)/obj/lib/ui/ui_begin.d
+ $(OUTDIR)/obj/lib/ui/font_close.o: lib/ui/font_close.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/lib/libui.a: $(OUTDIR)/obj/lib/ui/font_close.o
+ -include $(OUTDIR)/obj/lib/ui/font_close.d
++$(OUTDIR)/obj/lib/ui/window_hide.o: lib/ui/window_hide.c config.mk
++      $(OBJECT)
++$(OUTDIR)/lib/libui.a: $(OUTDIR)/obj/lib/ui/window_hide.o
++-include $(OUTDIR)/obj/lib/ui/window_hide.d
+ $(OUTDIR)/obj/lib/ui/font_load.o: lib/ui/font_load.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/lib/libui.a: $(OUTDIR)/obj/lib/ui/font_load.o
+ -include $(OUTDIR)/obj/lib/ui/font_load.d
 -libs =  $(OUTDIR)/lib/liba.a $(OUTDIR)/lib/libui.a
+ $(OUTDIR)/obj/lib/ui/window_delete.o: lib/ui/window_delete.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/lib/libui.a: $(OUTDIR)/obj/lib/ui/window_delete.o
+ -include $(OUTDIR)/obj/lib/ui/window_delete.d
++$(OUTDIR)/obj/lib/ui/window_show.o: lib/ui/window_show.c config.mk
++      $(OBJECT)
++$(OUTDIR)/lib/libui.a: $(OUTDIR)/obj/lib/ui/window_show.o
++-include $(OUTDIR)/obj/lib/ui/window_show.d
+ $(OUTDIR)/obj/lib/ui/ui_end.o: lib/ui/ui_end.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/lib/libui.a: $(OUTDIR)/obj/lib/ui/ui_end.o
+ -include $(OUTDIR)/obj/lib/ui/ui_end.d
+ $(OUTDIR)/lib/libui.a:
+       $(ARCHIVE)
+ libs: $(OUTDIR)/lib/libui.a
 -$(OUTDIR)/obj/bin/pick.o: bin/pick.c
++libs =  $(OUTDIR)/lib/libMBus.c.a $(OUTDIR)/lib/liba.a $(OUTDIR)/lib/libui.a
+ $(OUTDIR)/obj/bin/dial.o: bin/dial.c
+       $(OBJECT)
+ $(OUTDIR)/bin/dial: | $(libs)
+ $(OUTDIR)/bin/dial: $(OUTDIR)/obj/bin/dial.o
+       $(BINARY)
+ bins: $(OUTDIR)/bin/dial
+ $(OUTDIR)/obj/bin/edit.o: bin/edit.c
+       $(OBJECT)
+ $(OUTDIR)/bin/edit: | $(libs)
+ $(OUTDIR)/bin/edit: $(OUTDIR)/obj/bin/edit.o
+       $(BINARY)
+ bins: $(OUTDIR)/bin/edit
+ $(OUTDIR)/obj/bin/init.o: bin/init.c
+       $(OBJECT)
+ $(OUTDIR)/bin/init: | $(libs)
+ $(OUTDIR)/bin/init: $(OUTDIR)/obj/bin/init.o
+       $(BINARY)
+ bins: $(OUTDIR)/bin/init
+ $(OUTDIR)/obj/bin/listen.o: bin/listen.c
+       $(OBJECT)
+ $(OUTDIR)/bin/listen: | $(libs)
+ $(OUTDIR)/bin/listen: $(OUTDIR)/obj/bin/listen.o
+       $(BINARY)
+ bins: $(OUTDIR)/bin/listen
+ $(OUTDIR)/obj/bin/mbusd.o: bin/mbusd.c
+       $(OBJECT)
+ $(OUTDIR)/bin/mbusd: | $(libs)
+ $(OUTDIR)/bin/mbusd: $(OUTDIR)/obj/bin/mbusd.o
+       $(BINARY)
+ bins: $(OUTDIR)/bin/mbusd
 -$(OUTDIR)/bin/pick: $(OUTDIR)/obj/bin/pick.o
++$(OUTDIR)/obj/bin/editor/dbc.o: bin/editor/dbc.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/dbc.o
++-include $(OUTDIR)/obj/bin/editor/dbc.d
++$(OUTDIR)/obj/bin/editor/range.o: bin/editor/range.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/range.o
++-include $(OUTDIR)/obj/bin/editor/range.d
++$(OUTDIR)/obj/bin/editor/x11_gc.o: bin/editor/x11_gc.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/x11_gc.o
++-include $(OUTDIR)/obj/bin/editor/x11_gc.d
++$(OUTDIR)/obj/bin/editor/job.o: bin/editor/job.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/job.o
++-include $(OUTDIR)/obj/bin/editor/job.d
++$(OUTDIR)/obj/bin/editor/buf.o: bin/editor/buf.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/buf.o
++-include $(OUTDIR)/obj/bin/editor/buf.d
++$(OUTDIR)/obj/bin/editor/telem.o: bin/editor/telem.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/telem.o
++-include $(OUTDIR)/obj/bin/editor/telem.d
++$(OUTDIR)/obj/bin/editor/readfd.o: bin/editor/readfd.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/readfd.o
++-include $(OUTDIR)/obj/bin/editor/readfd.d
++$(OUTDIR)/obj/bin/editor/mouse.o: bin/editor/mouse.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/mouse.o
++-include $(OUTDIR)/obj/bin/editor/mouse.d
++$(OUTDIR)/obj/bin/editor/exec.o: bin/editor/exec.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/exec.o
++-include $(OUTDIR)/obj/bin/editor/exec.d
++$(OUTDIR)/obj/bin/editor/editlog.o: bin/editor/editlog.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/editlog.o
++-include $(OUTDIR)/obj/bin/editor/editlog.d
++$(OUTDIR)/obj/bin/editor/gapbuf.o: bin/editor/gapbuf.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/gapbuf.o
++-include $(OUTDIR)/obj/bin/editor/gapbuf.d
++$(OUTDIR)/obj/bin/editor/x11.o: bin/editor/x11.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/x11.o
++-include $(OUTDIR)/obj/bin/editor/x11.d
++$(OUTDIR)/obj/bin/editor/view.o: bin/editor/view.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/view.o
++-include $(OUTDIR)/obj/bin/editor/view.d
++$(OUTDIR)/obj/bin/editor/writefd.o: bin/editor/writefd.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/writefd.o
++-include $(OUTDIR)/obj/bin/editor/writefd.d
++$(OUTDIR)/obj/bin/editor/xpty.o: bin/editor/xpty.c config.mk
+       $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/xpty.o
++-include $(OUTDIR)/obj/bin/editor/xpty.d
++$(OUTDIR)/obj/bin/editor/shortcuts.o: bin/editor/shortcuts.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/shortcuts.o
++-include $(OUTDIR)/obj/bin/editor/shortcuts.d
++$(OUTDIR)/obj/bin/editor/readfile.o: bin/editor/readfile.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/readfile.o
++-include $(OUTDIR)/obj/bin/editor/readfile.d
++$(OUTDIR)/obj/bin/editor/draw.o: bin/editor/draw.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/draw.o
++-include $(OUTDIR)/obj/bin/editor/draw.d
++$(OUTDIR)/obj/bin/editor/utf8.o: bin/editor/utf8.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/utf8.o
++-include $(OUTDIR)/obj/bin/editor/utf8.d
++$(OUTDIR)/obj/bin/editor/abspath.o: bin/editor/abspath.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/abspath.o
++-include $(OUTDIR)/obj/bin/editor/abspath.d
++$(OUTDIR)/obj/bin/editor/main.o: bin/editor/main.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/main.o
++-include $(OUTDIR)/obj/bin/editor/main.d
++$(OUTDIR)/obj/bin/editor/x11_sel.o: bin/editor/x11_sel.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/editor: $(OUTDIR)/obj/bin/editor/x11_sel.o
++-include $(OUTDIR)/obj/bin/editor/x11_sel.d
++$(OUTDIR)/bin/editor: | $(libs)
++      $(BINARY)
++bins: $(OUTDIR)/bin/editor
++$(OUTDIR)/obj/bin/pick/x11_gc.o: bin/pick/x11_gc.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/pick: $(OUTDIR)/obj/bin/pick/x11_gc.o
++-include $(OUTDIR)/obj/bin/pick/x11_gc.d
++$(OUTDIR)/obj/bin/pick/telem.o: bin/pick/telem.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/pick: $(OUTDIR)/obj/bin/pick/telem.o
++-include $(OUTDIR)/obj/bin/pick/telem.d
++$(OUTDIR)/obj/bin/pick/x11.o: bin/pick/x11.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/pick: $(OUTDIR)/obj/bin/pick/x11.o
++-include $(OUTDIR)/obj/bin/pick/x11.d
++$(OUTDIR)/obj/bin/pick/writefd.o: bin/pick/writefd.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/pick: $(OUTDIR)/obj/bin/pick/writefd.o
++-include $(OUTDIR)/obj/bin/pick/writefd.d
++$(OUTDIR)/obj/bin/pick/pick.o: bin/pick/pick.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/pick: $(OUTDIR)/obj/bin/pick/pick.o
++-include $(OUTDIR)/obj/bin/pick/pick.d
++$(OUTDIR)/obj/bin/pick/utf8.o: bin/pick/utf8.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/pick: $(OUTDIR)/obj/bin/pick/utf8.o
++-include $(OUTDIR)/obj/bin/pick/utf8.d
++$(OUTDIR)/obj/bin/pick/x11_sel.o: bin/pick/x11_sel.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/pick: $(OUTDIR)/obj/bin/pick/x11_sel.o
++-include $(OUTDIR)/obj/bin/pick/x11_sel.d
+ $(OUTDIR)/bin/pick: | $(libs)
 -$(OUTDIR)/obj/bin/screenlock.o: bin/screenlock.c
+       $(BINARY)
+ bins: $(OUTDIR)/bin/pick
 -$(OUTDIR)/bin/screenlock: $(OUTDIR)/obj/bin/screenlock.o
++$(OUTDIR)/obj/bin/screenlock/slock.o: bin/screenlock/slock.c config.mk
+       $(OBJECT)
++$(OUTDIR)/bin/screenlock: $(OUTDIR)/obj/bin/screenlock/slock.o
++-include $(OUTDIR)/obj/bin/screenlock/slock.d
++$(OUTDIR)/obj/bin/screenlock/explicit_bzero.o: bin/screenlock/explicit_bzero.c config.mk
++      $(OBJECT)
++$(OUTDIR)/bin/screenlock: $(OUTDIR)/obj/bin/screenlock/explicit_bzero.o
++-include $(OUTDIR)/obj/bin/screenlock/explicit_bzero.d
+ $(OUTDIR)/bin/screenlock: | $(libs)
 -$(OUTDIR)/obj/bin/shell.o: bin/shell.c
+       $(BINARY)
+ bins: $(OUTDIR)/bin/screenlock
 -$(OUTDIR)/bin/shell: | $(libs)
 -$(OUTDIR)/bin/shell: $(OUTDIR)/obj/bin/shell.o
++$(OUTDIR)/obj/bin/terminal/st.o: bin/terminal/st.c config.mk
+       $(OBJECT)
 -bins: $(OUTDIR)/bin/shell
 -$(OUTDIR)/obj/bin/winmgr/keys.o: bin/winmgr/keys.c config.mk
++$(OUTDIR)/bin/terminal: $(OUTDIR)/obj/bin/terminal/st.o
++-include $(OUTDIR)/obj/bin/terminal/st.d
++$(OUTDIR)/bin/terminal: | $(libs)
+       $(BINARY)
 -$(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/keys.o
 --include $(OUTDIR)/obj/bin/winmgr/keys.d
++bins: $(OUTDIR)/bin/terminal
++$(OUTDIR)/obj/bin/winmgr/error.o: bin/winmgr/error.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/obj/bin/winmgr/tile.o: bin/winmgr/tile.c config.mk
++$(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/error.o
++-include $(OUTDIR)/obj/bin/winmgr/error.d
+ $(OUTDIR)/obj/bin/winmgr/mons.o: bin/winmgr/mons.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/mons.o
+ -include $(OUTDIR)/obj/bin/winmgr/mons.d
 -$(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/tile.o
 --include $(OUTDIR)/obj/bin/winmgr/tile.d
 -$(OUTDIR)/obj/bin/winmgr/error.o: bin/winmgr/error.c config.mk
++$(OUTDIR)/obj/bin/winmgr/keys.o: bin/winmgr/keys.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/error.o
 --include $(OUTDIR)/obj/bin/winmgr/error.d
 -$(OUTDIR)/obj/bin/winmgr/client.o: bin/winmgr/client.c config.mk
++$(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/keys.o
++-include $(OUTDIR)/obj/bin/winmgr/keys.d
++$(OUTDIR)/obj/bin/winmgr/mouse.o: bin/winmgr/mouse.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/client.o
 --include $(OUTDIR)/obj/bin/winmgr/client.d
++$(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/mouse.o
++-include $(OUTDIR)/obj/bin/winmgr/mouse.d
++$(OUTDIR)/obj/bin/winmgr/list.o: bin/winmgr/list.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/obj/bin/winmgr/mouse.o: bin/winmgr/mouse.c config.mk
++$(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/list.o
++-include $(OUTDIR)/obj/bin/winmgr/list.d
+ $(OUTDIR)/obj/bin/winmgr/winmgr.o: bin/winmgr/winmgr.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/winmgr.o
+ -include $(OUTDIR)/obj/bin/winmgr/winmgr.d
 -$(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/mouse.o
 --include $(OUTDIR)/obj/bin/winmgr/mouse.d
++$(OUTDIR)/obj/bin/winmgr/tile.o: bin/winmgr/tile.c config.mk
+       $(OBJECT)
 -$(OUTDIR)/obj/bin/winmgr/list.o: bin/winmgr/list.c config.mk
++$(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/tile.o
++-include $(OUTDIR)/obj/bin/winmgr/tile.d
+ $(OUTDIR)/obj/bin/winmgr/util.o: bin/winmgr/util.c config.mk
+       $(OBJECT)
+ $(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/util.o
+ -include $(OUTDIR)/obj/bin/winmgr/util.d
 -$(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/list.o
 --include $(OUTDIR)/obj/bin/winmgr/list.d
++$(OUTDIR)/obj/bin/winmgr/client.o: bin/winmgr/client.c config.mk
+       $(OBJECT)
++$(OUTDIR)/bin/winmgr: $(OUTDIR)/obj/bin/winmgr/client.o
++-include $(OUTDIR)/obj/bin/winmgr/client.d
+ $(OUTDIR)/bin/winmgr: | $(libs)
+       $(BINARY)
+ bins: $(OUTDIR)/bin/winmgr