makefiles
authorNiki Roo <niki@nikiroo.be>
Thu, 27 Jun 2024 14:59:43 +0000 (16:59 +0200)
committerNiki Roo <niki@nikiroo.be>
Thu, 27 Jun 2024 14:59:43 +0000 (16:59 +0200)
Makefile
makefile.d

index a71c67aca2d7d88cc9be08733869853c970e9e5c..d3398f0cea3c9c0f812a7a17f57c5b07846d4272 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,10 @@
 # Simply pass everything to makefile.d, but calling from "../"
 
-.PHONY: MK all install uninstall clean mrpropre mrpropre \
+.PHONY: all build install uninstall clean mrpropre mrpropre \
+       run test run-test run-test-more default \
        utils check net
 
-$(MAKECMDGOALS): MK
-MK:
+default $(MAKECMDGOALS):
        @$(MAKE) --no-print-directory -C ../ -f $(CURDIR)/makefile.d \
        $(MAKECMDGOALS)
 
index 566d1b75f9e61d46fd1db311a2d7bb02c47dd562..4231fce8339e754db28371570e89839a909e281e 100644 (file)
@@ -2,11 +2,13 @@
 # Note: gnu99 (instead of c99) required for libcutils-net
 
 NAME   = cutils
+NAMES  = $(NAME) check net
 srcdir = cutils
 dstdir = ../bin
 
 CFLAGS   += -Wall -pedantic -I./ -std=gnu99
 CXXFLAGS += -Wall -pedantic -I./
+# LDFLAGS  += -lcheck
 PREFIX   =  /usr/local
 
 ifdef DEBUG
@@ -14,23 +16,32 @@ CFLAGS   += -ggdb -O0
 CXXFLAGS += -ggdb -O0
 endif
 
-.PHONY: all install uninstall clean mrpropre mrpropre \
-       utils check net
+.PHONY: all build install uninstall clean mrpropre mrpropre \
+       $(NAMES)
 
-all: utils check net
+SOURCES=$(wildcard $(srcdir)/*.c)
+HEADERS=$(wildcard $(srcdir)/*.h)
+OBJECTS=$(SOURCES:%.c=%.o)
 
-utils: $(dstdir)/libcutils.o
+# Main targets
 
-check: $(dstdir)/libcutils-check.o
+all: build
 
-net: $(dstdir)/libcutils-net.o
+build: $(NAMES)
 
-SOURCES=$(wildcard $(srcdir)/*.c)
-HEADERS=$(wildcard $(srcdir)/*.h)
-OBJECTS=$(SOURCES:%.c=%.o)
+cutils: $(dstdir)/libcutils.o
+check: $(dstdir)/libcutils-check.o
+net: $(dstdir)/libcutils-net.o
 
+################
+# Dependencies #
+################
+# OBJECTS+=$(dstdir)/libcutils.o
+# $(dstdir)/libcutils.o:
+#      $(MAKE) --no-print-directory -C cutils/ cutils
 $(srcdir)/array.o:   $(srcdir)/array.[ch]
 $(srcdir)/desktop.o: $(srcdir)/desktop.[ch] $(srcdir)/array.h
+################
 
 $(dstdir)/libcutils.o: $(OBJECTS)
        mkdir -p $(dstdir)
@@ -51,7 +62,7 @@ debug:
        $(MAKE) -f $(srcdir)/makefile.d DEBUG=1
 
 clean:
-       rm -f $(srcdir)/*.o $(srcdir)/check/*.o $(srcdir)/net/*.o
+       rm -f $(srcdir)/*.o $(srcdir)/*/*.o
 
 mrproper: mrpropre
 
@@ -62,6 +73,7 @@ mrpropre: clean
        rmdir $(dstdir) 2>/dev/null || true
 
 install: 
+       mkdir -p "$(PREFIX)/lib"
        cp $(dstdir)/libcutils.o       "$(PREFIX)/lib/libcutils.a"
        cp $(dstdir)/libcutils-check.o "$(PREFIX)/lib/libcutils-check.a"
        cp $(dstdir)/libcutils-net.o   "$(PREFIX)/lib/libcutils-net.a"
@@ -75,10 +87,12 @@ uninstall:
        rm "$(PREFIX)/lib/libcutils.a"
        rm "$(PREFIX)/lib/libcutils-check.a"
        rm "$(PREFIX)/lib/libcutils-net.a"
+       rmdir "$(PREFIX)/lib/"                    2>/dev/null
        rm "$(PREFIX)/include/$(srcdir)/net/"*.h
        rm "$(PREFIX)/include/$(srcdir)/check/"*.h
        rm "$(PREFIX)/include/$(srcdir)/"*.h
        rmdir "$(PREFIX)/include/$(srcdir)/net"   2>/dev/null
        rmdir "$(PREFIX)/include/$(srcdir)/check" 2>/dev/null
        rmdir "$(PREFIX)/include/$(srcdir)"       2>/dev/null
+       rmdir "$(PREFIX)/include/"                2>/dev/null