]> git.mdlowis.com Git - proto/aos.git/commitdiff
fixed up the build and got anvil building with new setup
authorMichael D. Lowis <mike@mdlowis.com>
Fri, 17 Dec 2021 01:45:46 +0000 (20:45 -0500)
committerMichael D. Lowis <mike@mdlowis.com>
Fri, 17 Dec 2021 01:45:46 +0000 (20:45 -0500)
bin/rules.mk
bin/winmgr/main.c [deleted file]
config.mk
mkrules [new file with mode: 0755]

index a4af44e72078a5fb9eb5cbdac846568f18887512..99f74074e9870ed5361aa2ba4988dba8915c13cc 100644 (file)
@@ -1,3 +1,4 @@
 $(BINDIR)/dial:       LIBS += -lnet
 $(BINDIR)/listen:     LIBS += -lnet
 $(BINDIR)/screenlock: LIBS += -lnet -lui -lX11 -lXft -lfontconfig
+$(BINDIR)/winmgr:     LIBS += -lX11 -lXft -lfontconfig -lXinerama
diff --git a/bin/winmgr/main.c b/bin/winmgr/main.c
deleted file mode 100644 (file)
index c1c7cea..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "revised.h"
-
-XConf X;
-Monitor Monitors[MAX_MONITORS] = {0};
-Client Clients[MAX_CLIENTS];
-size_t FreeClients[MAX_CLIENTS / (sizeof(size_t) * 8u)] = 0;
-
-int main(int argc, char** argv)
-{
-    printf("%d\n", MAX_CLIENTS);
-    printf("%f mb\n", (float)sizeof(Clients) / 1024.0 / 1024.0);
-    printf("%f mb\n", (float)sizeof(FreeClients) / 1024.0 / 1024.0);
-    printf("%lu + %lu = %lu (%f mb)\n",
-        sizeof(X),
-        sizeof(Monitors),
-        sizeof(X) + sizeof(Monitors),
-        ((float)sizeof(X) + (float)sizeof(Monitors)) / 1024.0 / 1024.0
-    );
-    return 0;
-}
index fa55ed3b198b7c9a0c4ba9f71b87c3f83475aa92..b5ffc66c9b11affea30cf4bec2eaeccbf7a3ca59 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -3,7 +3,7 @@ OUTDIR = build
 BINDIR = $(OUTDIR)/bin
 
 CC = cc
-CFLAGS = -O2 -g -Wall -Wextra -Werror
+CFLAGS = -O2 -g --std=c99 -pedantic -Wall -Wextra -Werror
 CPPFLAGS = -Iinc/ -I/usr/include/freetype2
 
 AR = ar
@@ -11,8 +11,7 @@ ARFLAGS = rs
 
 LDFLAGS = -Lbuild/lib/ $(LIBS)
 LIBS = -la
-#LIBS = -la -lnet -lui -lX11 -lXft -lfontconfig
 
 ARCHIVE = $(AR) $(ARFLAGS) $@ $^
-BINARY  = $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $< $(LDFLAGS)
+BINARY  = $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS)
 OBJECT  = $(CC) $(CFLAGS) $(CPPFLAGS) -MMD -c -o $@ $<
diff --git a/mkrules b/mkrules
new file mode 100755 (executable)
index 0000000..7deccff
--- /dev/null
+++ b/mkrules
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+OUTDIR="$1"
+
+puts(){
+    printf "%s\n" "$@"
+}
+
+ObjectRules(){
+    target="$1"
+    while read -r source;
+    do
+        mkdir -p "$(dirname "$OUTDIR/obj/$source")"
+        puts "\$(OUTDIR)/obj/${source%.c}.o: $source config.mk"
+        printf "\t\$(OBJECT)\n"
+        puts "$target: \$(OUTDIR)/obj/${source%.c}.o"
+        printf "%sinclude %s\n" '-' "\$(OUTDIR)/obj/${source%.c}.d"
+    done
+}
+
+printf "" > rules.mk
+libs=""
+{
+    mkdir -p "$OUTDIR/bin/"
+    mkdir -p "$OUTDIR/lib/"
+
+    # Generate rules for all libraries
+    for lib in lib/*; do
+        libdir="$(dirname "$lib")"
+        libname="$(basename "$lib")"
+        libs="$libs \$(OUTDIR)/$libdir/lib$libname.a"
+
+       find "$lib" -name '*.c' | ObjectRules "\$(OUTDIR)/$libdir/lib$libname.a"
+        puts "\$(OUTDIR)/$libdir/lib$libname.a:"
+        printf "\t\$(ARCHIVE)\n"
+        puts "libs: \$(OUTDIR)/$libdir/lib$libname.a"
+    done
+    puts "libs = $libs"
+
+    # Generate rules for simple binaries
+    for bin in bin/*.c; do
+        puts "\$(OUTDIR)/${bin%.c}.o: $bin"
+        printf "\t\$(OBJECT)\n"
+        puts "\$(OUTDIR)/${bin%.c}: | \$(libs)"
+        puts "\$(OUTDIR)/${bin%.c}: \$(OUTDIR)/${bin%.c}.o"
+        printf "\t\$(BINARY)\n"
+        puts "bins: \$(OUTDIR)/${bin%.c}"
+    done
+
+    # Generate rules for complex binaries
+    for bin in bin/*/ ; do
+       find "${bin%/}" -name '*.c' | ObjectRules "\$(OUTDIR)/${bin%/}"
+        puts "\$(OUTDIR)/${bin%/}: | \$(libs)"
+        printf "\t\$(BINARY)\n"
+        puts "bins: \$(OUTDIR)/${bin%/}"
+    done
+} >> rules.mk