From: Jean-Marc Pigeon Date: Mon, 3 Nov 2025 14:45:01 +0000 (-0500) Subject: Improving dependency management X-Git-Tag: tag-0.17~54 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=861f4e425285c49be1e718020b94b5c13cf24238;p=jmp%2Fmailleur Improving dependency management --- diff --git a/.gitignore b/.gitignore index 804ba00..a0a5224 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ data-sender/ data-sorter/ data-sorter2/ *.swp +*.d bin shared/ lib/numver.h diff --git a/Makefile b/Makefile index 69ac4af..c96d476 100644 --- a/Makefile +++ b/Makefile @@ -15,11 +15,11 @@ debug \ : @ for i in $(SUBDIR) ; \ do \ - $(MAKE) DB=$(DB) -s -C $$i $@ ; \ + $(MAKE) DB=$(DB) -C $$i $@ ; \ done - +allclean \ clean : cleanrpm @ for i in $(SUBDIR) ; \ do \ diff --git a/app/Makefile b/app/Makefile index 39d89d1..dcc84b1 100644 --- a/app/Makefile +++ b/app/Makefile @@ -17,6 +17,9 @@ clean : - rm -fr *.o $(EXE) - rm -fr ../bin-* +allclean: clean + - rm -fr *.d + #-------------------------------------------------------------------- #Equivalences #-------------------------------------------------------------------- @@ -140,8 +143,25 @@ toremake: Makefile @ - mkdir -p ../bin-utils @ - mkdir -p ../bin-posql @ - mkdir -p ../bin-mysql - - rm -f $(EXE) *.o + # - rm -f $(EXE) *.o #-------------------------------------------------------------------- -.PHONY: toremake +#to manage dependencies +%.d: %.c + @ set -e; rm -f $@; \ + $(CC) -I ../lib -M $(CPPFLAGS) $< > $@.$$$$; \ + sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ + rm -f $@.$$$$ + +sources = \ + chkspf.c \ + feeder.c \ + receiver.c \ + scanner.c \ + sender.c \ + sorter.c \ + +include $(sources:.c=.d) +#-------------------------------------------------------------------- +.PHONY: toremake clean allclean #-------------------------------------------------------------------- diff --git a/lib/Makefile b/lib/Makefile index 2dc97d8..9a857ab 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -15,6 +15,9 @@ prod : toremake clean : - rm -fr *.so.* *.o *.a *.tar.gz +allclean: clean + - rm -fr *.d + #-------------------------------------------------------------------- #Equivalences #-------------------------------------------------------------------- @@ -35,6 +38,7 @@ objs : $(OBJS) $(LIBS) #-------------------------------------------------------------------- #Dependances +modrec.d \ modrec.o: \ subrou.h \ uniprc.h \ @@ -43,22 +47,26 @@ modrec.o: \ gestcp.h \ modrec.h modrec.c +lvleml.d \ lvleml.o: \ subcnv.h subrou.h \ unidig.h unidns.h unieml.h uniprc.o \ gestcp.h gessql.h \ lvleml.h lvleml.c +gesspf.d \ gesspf.o: \ subrou.h \ gesspf.h gesspf.h +geseml.d \ geseml.o: \ subrou.h \ unidns.h unieml.h unipar.h unitls.h \ devsql.h \ geseml.h geseml.h +gestcp.d \ gestcp.o: \ subrou.h \ unieml.h \ @@ -66,6 +74,7 @@ gestcp.o: \ unisig.h \ gestcp.h gestcp.c +gessql.d \ gessql.o: \ unisql.h \ devsql.h \ @@ -191,13 +200,31 @@ libmar.a: unipos.o \ @ ar -cr libmar.a libmar.o unipos.o #-------------------------------------------------------------------- - toremake: Makefile touch toremake - rm -f $(OBJS) $(LIBMAIL) #-------------------------------------------------------------------- -.PHONY: clean +#to manage dependencies +%.d: %.c + @ set -e; rm -f $@; \ + $(CC) -M $(CPPFLAGS) $< > $@.$$$$; \ + sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ + rm -f $@.$$$$ + +sources = \ + modrec.c \ + lvleml.c \ + geseml.c gesspf.c gessql.c gestcp.c \ + devlog.c devsoc.c devsql.c \ + unidig.c unidns.c unieml.c unimar.c \ + unipar.c unipos.c uniprc.c unisig.c \ + unisql.c unitls.c \ + subafn.c subcnv.c subrou.c \ + +include $(sources:.c=.d) +#-------------------------------------------------------------------- +.PHONY: clean allclean #-------------------------------------------------------------------- CC = gcc LD = gcc diff --git a/sql/Makefile b/sql/Makefile index ed1208f..86d3b8f 100644 --- a/sql/Makefile +++ b/sql/Makefile @@ -5,6 +5,7 @@ prod \ debug \ : mailleur.postg mailleur.mysql +allclean \ clean : @ rm -fr mailleur.mysql mailleur.postg diff --git a/tools/Makefile b/tools/Makefile index ed16040..7662208 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -12,7 +12,7 @@ prod : exe : $(MAKE) $(EXE) - +allclean \ clean : - rm -fr *.o $(EXE) toremake - rm -fr ../bin/*