-.PHONY: all libs bins clean
+.PHONY: all libs bins rules clean
all: libs bins
bins: libs
+rules: rules.mk
+
include config.mk
rules.mk:
- ./genrules.sh $(OUTDIR)
+ ./mkrules $(OUTDIR)
include rules.mk
include bin/rules.mk
+++ /dev/null
-#!/bin/sh
-
-OUTDIR="$1"
-
-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"
- mkdir -p "$OUTDIR/$lib/"
- for f in "$lib"/*; do
- printf "%s\n" "\$(OUTDIR)/${f%.c}.o: $f config.mk"
- printf "\t\$(OBJECT)\n"
- printf "%s\n" "\$(OUTDIR)/$libdir/lib$libname.a: \$(OUTDIR)/${f%.c}.o"
- printf "%sinclude %s\n" '-' "\$(OUTDIR)/${f%.c}.d"
- done
- printf "%s\n" "\$(OUTDIR)/$libdir/lib$libname.a:"
- printf "\t\$(ARCHIVE)\n"
- printf "%s\n" "libs: \$(OUTDIR)/$libdir/lib$libname.a"
- done
- printf "libs = %s\n" "$libs"
-
- # Generate rules for simple binaries
- for bin in bin/*.c; do
- printf "%s\n" "\$(OUTDIR)/${bin%.c}.o: $bin"
- printf "\t\$(OBJECT)\n"
- printf "%s\n" "\$(OUTDIR)/${bin%.c}: \$(OUTDIR)/${bin%.c}.o \$(libs)"
- printf "\t\$(BINARY)\n"
- printf "%s\n" "bins: \$(OUTDIR)/${bin%.c}"
- done
-} >> rules.mk