From 9a6db28c140641ceb262385588aaa3cd4793a987 Mon Sep 17 00:00:00 2001 From: mike lowis Date: Mon, 5 Apr 2021 23:15:07 -0400 Subject: [PATCH] added lib dependencies to binaries --- Makefile | 3 ++- config.mk | 2 ++ genrules.sh | 14 ++++++++------ rules.mk | 17 +++++++++-------- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 96e64a2..58addd3 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,7 @@ clean: rules: ./genrules.sh +bins: libs + include config.mk include rules.mk - diff --git a/config.mk b/config.mk index cb39484..9f5b5a5 100644 --- a/config.mk +++ b/config.mk @@ -1,3 +1,5 @@ +MAKEFLAGS = -j8 + CC = cc CFLAGS = -g -Wall -Wextra -Werror CPPFLAGS = -Iinc/ -I/usr/include/freetype2 diff --git a/genrules.sh b/genrules.sh index 2c1f3c6..28e91f6 100755 --- a/genrules.sh +++ b/genrules.sh @@ -2,12 +2,13 @@ rm -rf build/ printf "" > rules.mk - +libs="" { # Generate rules for all libraries for lib in lib/*; do libdir="$(dirname "$lib")" libname="$(basename "$lib")" + libs="$libs build/$libdir/lib$libname.a" for f in "$lib"/*; do mkdir -p "build/$(dirname "$f")" printf "%s\n" "build/${f%.c}.o: $f config.mk" @@ -15,18 +16,19 @@ printf "" > rules.mk printf "%s\n" "build/$libdir/lib$libname.a: build/${f%.c}.o" printf "%sinclude %s\n" '-' "build/${f%.c}.d" done - printf "%s\n" "build/$libdir/lib$libname.a:" - printf "\t\$(ARCHIVE)\n" - printf "%s\n" "libs: build/$libdir/lib$libname.a" + printf "%s\n" "build/$libdir/lib$libname.a:" + printf "\t\$(ARCHIVE)\n" + printf "%s\n" "libs: build/$libdir/lib$libname.a" mkdir -p "build/$libdir/" done - + printf "libs = %s\n" "$libs" + # Generate rules for simple binaries for bin in bin/*.c; do mkdir -p "build/bin/" printf "%s\n" "build/${bin%.c}.o: $bin" printf "\t\$(OBJECT)\n" - printf "%s\n" "build/${bin%.c}: build/${bin%.c}.o" + printf "%s\n" "build/${bin%.c}: build/${bin%.c}.o \$(libs)" printf "\t\$(BINARY)\n" printf "%s\n" "bins: build/${bin%.c}" done diff --git a/rules.mk b/rules.mk index 92e6b1b..d8c04e8 100644 --- a/rules.mk +++ b/rules.mk @@ -147,43 +147,44 @@ build/lib/libui.a: build/lib/ui/window_show.o build/lib/libui.a: $(ARCHIVE) libs: build/lib/libui.a +libs = build/lib/liba.a build/lib/libnet.a build/lib/libui.a build/bin/dial.o: bin/dial.c $(OBJECT) -build/bin/dial: build/bin/dial.o +build/bin/dial: build/bin/dial.o $(libs) $(BINARY) bins: build/bin/dial build/bin/edit.o: bin/edit.c $(OBJECT) -build/bin/edit: build/bin/edit.o +build/bin/edit: build/bin/edit.o $(libs) $(BINARY) bins: build/bin/edit build/bin/init.o: bin/init.c $(OBJECT) -build/bin/init: build/bin/init.o +build/bin/init: build/bin/init.o $(libs) $(BINARY) bins: build/bin/init build/bin/listen.o: bin/listen.c $(OBJECT) -build/bin/listen: build/bin/listen.o +build/bin/listen: build/bin/listen.o $(libs) $(BINARY) bins: build/bin/listen build/bin/pick.o: bin/pick.c $(OBJECT) -build/bin/pick: build/bin/pick.o +build/bin/pick: build/bin/pick.o $(libs) $(BINARY) bins: build/bin/pick build/bin/screenlock.o: bin/screenlock.c $(OBJECT) -build/bin/screenlock: build/bin/screenlock.o +build/bin/screenlock: build/bin/screenlock.o $(libs) $(BINARY) bins: build/bin/screenlock build/bin/shell.o: bin/shell.c $(OBJECT) -build/bin/shell: build/bin/shell.o +build/bin/shell: build/bin/shell.o $(libs) $(BINARY) bins: build/bin/shell build/bin/winmgr.o: bin/winmgr.c $(OBJECT) -build/bin/winmgr: build/bin/winmgr.o +build/bin/winmgr: build/bin/winmgr.o $(libs) $(BINARY) bins: build/bin/winmgr -- 2.52.0