crystal-ameba / ameba

A static code analysis tool for Crystal
https://crystal-ameba.github.io
MIT License
514 stars 35 forks source link

Enhance `Makefile` #445

Closed straight-shoota closed 7 months ago

straight-shoota commented 7 months ago

I figured the Makefile could use some love after it failed me in some capacities.

Based on template https://gist.github.com/straight-shoota/275685fcb8187062208c0871318c4a23

Sija commented 7 months ago

@straight-shoota This PR broke my local setup (macOS 12.7) :(

make -> make: Nothing to be done for 'all'. make build -> make: Nothing to be done for 'build'.

straight-shoota commented 7 months ago

Are you sure any of the source files changed since you last ran make? This patch added the entire source tree as a dependency of the build recipe. So it won't rebuild if the source hasn't changed. You can force a rebuild with make -B.

You could also try make -d to get some debug information on which dependencies were considered and what lead to not building.

Sija commented 7 months ago

Are you sure any of the source files changed since you last ran make? This patch added the entire source tree as a dependency of the build recipe. So it won't rebuild if the source hasn't changed. You can force a rebuild with make -B.

Yeah, I'm sure. Also, make -B didn't change a thing, it's the same story: make: Nothing to be done for 'all'.

make -d ``` GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program built for i386-apple-darwin11.3.0 Reading makefiles... Reading makefile `Makefile'... Reading makefile `Makefile.local' (search path) (don't care) (no ~ expansion)... Updating makefiles.... Considering target file `Makefile.local'. File `Makefile.local' does not exist. Looking for an implicit rule for `Makefile.local'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.o'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.c'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.cc'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.C'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.cpp'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.p'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.f'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.F'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.m'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.r'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.s'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.S'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.mod'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.sh'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local,v'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `RCS/Makefile.local,v'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `RCS/Makefile.local'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `s.Makefile.local'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `SCCS/s.Makefile.local'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.o'. Looking for a rule with intermediate file `Makefile.local.o'. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.c'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.cc'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.C'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.cpp'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.p'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.f'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.F'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.m'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.r'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.s'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.S'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.mod'. Trying pattern rule with stem `Makefile.local.o'. Trying implicit prerequisite `Makefile.local.o,v'. Trying pattern rule with stem `Makefile.local.o'. Trying implicit prerequisite `RCS/Makefile.local.o,v'. Trying pattern rule with stem `Makefile.local.o'. Trying implicit prerequisite `RCS/Makefile.local.o'. Trying pattern rule with stem `Makefile.local.o'. Trying implicit prerequisite `s.Makefile.local.o'. Trying pattern rule with stem `Makefile.local.o'. Trying implicit prerequisite `SCCS/s.Makefile.local.o'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.c'. Looking for a rule with intermediate file `Makefile.local.c'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.y'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.l'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.w'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.w'. Trying pattern rule with stem `Makefile.local.c'. Trying implicit prerequisite `Makefile.local.c,v'. Trying pattern rule with stem `Makefile.local.c'. Trying implicit prerequisite `RCS/Makefile.local.c,v'. Trying pattern rule with stem `Makefile.local.c'. Trying implicit prerequisite `RCS/Makefile.local.c'. Trying pattern rule with stem `Makefile.local.c'. Trying implicit prerequisite `s.Makefile.local.c'. Trying pattern rule with stem `Makefile.local.c'. Trying implicit prerequisite `SCCS/s.Makefile.local.c'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.y'. Looking for a rule with intermediate file `Makefile.local.y'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.y'. Trying implicit prerequisite `Makefile.local.y,v'. Trying pattern rule with stem `Makefile.local.y'. Trying implicit prerequisite `RCS/Makefile.local.y,v'. Trying pattern rule with stem `Makefile.local.y'. Trying implicit prerequisite `RCS/Makefile.local.y'. Trying pattern rule with stem `Makefile.local.y'. Trying implicit prerequisite `s.Makefile.local.y'. Trying pattern rule with stem `Makefile.local.y'. Trying implicit prerequisite `SCCS/s.Makefile.local.y'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.l'. Looking for a rule with intermediate file `Makefile.local.l'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.l'. Trying implicit prerequisite `Makefile.local.l,v'. Trying pattern rule with stem `Makefile.local.l'. Trying implicit prerequisite `RCS/Makefile.local.l,v'. Trying pattern rule with stem `Makefile.local.l'. Trying implicit prerequisite `RCS/Makefile.local.l'. Trying pattern rule with stem `Makefile.local.l'. Trying implicit prerequisite `s.Makefile.local.l'. Trying pattern rule with stem `Makefile.local.l'. Trying implicit prerequisite `SCCS/s.Makefile.local.l'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.w'. Looking for a rule with intermediate file `Makefile.local.w'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.w'. Trying implicit prerequisite `Makefile.local.w,v'. Trying pattern rule with stem `Makefile.local.w'. Trying implicit prerequisite `RCS/Makefile.local.w,v'. Trying pattern rule with stem `Makefile.local.w'. Trying implicit prerequisite `RCS/Makefile.local.w'. Trying pattern rule with stem `Makefile.local.w'. Trying implicit prerequisite `s.Makefile.local.w'. Trying pattern rule with stem `Makefile.local.w'. Trying implicit prerequisite `SCCS/s.Makefile.local.w'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.w'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.cc'. Looking for a rule with intermediate file `Makefile.local.cc'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.cc'. Trying implicit prerequisite `Makefile.local.cc,v'. Trying pattern rule with stem `Makefile.local.cc'. Trying implicit prerequisite `RCS/Makefile.local.cc,v'. Trying pattern rule with stem `Makefile.local.cc'. Trying implicit prerequisite `RCS/Makefile.local.cc'. Trying pattern rule with stem `Makefile.local.cc'. Trying implicit prerequisite `s.Makefile.local.cc'. Trying pattern rule with stem `Makefile.local.cc'. Trying implicit prerequisite `SCCS/s.Makefile.local.cc'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.C'. Looking for a rule with intermediate file `Makefile.local.C'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.C'. Trying implicit prerequisite `Makefile.local.C,v'. Trying pattern rule with stem `Makefile.local.C'. Trying implicit prerequisite `RCS/Makefile.local.C,v'. Trying pattern rule with stem `Makefile.local.C'. Trying implicit prerequisite `RCS/Makefile.local.C'. Trying pattern rule with stem `Makefile.local.C'. Trying implicit prerequisite `s.Makefile.local.C'. Trying pattern rule with stem `Makefile.local.C'. Trying implicit prerequisite `SCCS/s.Makefile.local.C'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.cpp'. Looking for a rule with intermediate file `Makefile.local.cpp'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.cpp'. Trying implicit prerequisite `Makefile.local.cpp,v'. Trying pattern rule with stem `Makefile.local.cpp'. Trying implicit prerequisite `RCS/Makefile.local.cpp,v'. Trying pattern rule with stem `Makefile.local.cpp'. Trying implicit prerequisite `RCS/Makefile.local.cpp'. Trying pattern rule with stem `Makefile.local.cpp'. Trying implicit prerequisite `s.Makefile.local.cpp'. Trying pattern rule with stem `Makefile.local.cpp'. Trying implicit prerequisite `SCCS/s.Makefile.local.cpp'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.p'. Looking for a rule with intermediate file `Makefile.local.p'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.web'. Trying pattern rule with stem `Makefile.local.p'. Trying implicit prerequisite `Makefile.local.p,v'. Trying pattern rule with stem `Makefile.local.p'. Trying implicit prerequisite `RCS/Makefile.local.p,v'. Trying pattern rule with stem `Makefile.local.p'. Trying implicit prerequisite `RCS/Makefile.local.p'. Trying pattern rule with stem `Makefile.local.p'. Trying implicit prerequisite `s.Makefile.local.p'. Trying pattern rule with stem `Makefile.local.p'. Trying implicit prerequisite `SCCS/s.Makefile.local.p'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.web'. Looking for a rule with intermediate file `Makefile.local.web'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.web'. Trying implicit prerequisite `Makefile.local.web,v'. Trying pattern rule with stem `Makefile.local.web'. Trying implicit prerequisite `RCS/Makefile.local.web,v'. Trying pattern rule with stem `Makefile.local.web'. Trying implicit prerequisite `RCS/Makefile.local.web'. Trying pattern rule with stem `Makefile.local.web'. Trying implicit prerequisite `s.Makefile.local.web'. Trying pattern rule with stem `Makefile.local.web'. Trying implicit prerequisite `SCCS/s.Makefile.local.web'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.f'. Looking for a rule with intermediate file `Makefile.local.f'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.F'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.r'. Trying pattern rule with stem `Makefile.local.f'. Trying implicit prerequisite `Makefile.local.f,v'. Trying pattern rule with stem `Makefile.local.f'. Trying implicit prerequisite `RCS/Makefile.local.f,v'. Trying pattern rule with stem `Makefile.local.f'. Trying implicit prerequisite `RCS/Makefile.local.f'. Trying pattern rule with stem `Makefile.local.f'. Trying implicit prerequisite `s.Makefile.local.f'. Trying pattern rule with stem `Makefile.local.f'. Trying implicit prerequisite `SCCS/s.Makefile.local.f'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.F'. Looking for a rule with intermediate file `Makefile.local.F'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.F'. Trying implicit prerequisite `Makefile.local.F,v'. Trying pattern rule with stem `Makefile.local.F'. Trying implicit prerequisite `RCS/Makefile.local.F,v'. Trying pattern rule with stem `Makefile.local.F'. Trying implicit prerequisite `RCS/Makefile.local.F'. Trying pattern rule with stem `Makefile.local.F'. Trying implicit prerequisite `s.Makefile.local.F'. Trying pattern rule with stem `Makefile.local.F'. Trying implicit prerequisite `SCCS/s.Makefile.local.F'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.r'. Looking for a rule with intermediate file `Makefile.local.r'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.l'. Trying pattern rule with stem `Makefile.local.r'. Trying implicit prerequisite `Makefile.local.r,v'. Trying pattern rule with stem `Makefile.local.r'. Trying implicit prerequisite `RCS/Makefile.local.r,v'. Trying pattern rule with stem `Makefile.local.r'. Trying implicit prerequisite `RCS/Makefile.local.r'. Trying pattern rule with stem `Makefile.local.r'. Trying implicit prerequisite `s.Makefile.local.r'. Trying pattern rule with stem `Makefile.local.r'. Trying implicit prerequisite `SCCS/s.Makefile.local.r'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.F'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.m'. Looking for a rule with intermediate file `Makefile.local.m'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.ym'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.lm'. Trying pattern rule with stem `Makefile.local.m'. Trying implicit prerequisite `Makefile.local.m,v'. Trying pattern rule with stem `Makefile.local.m'. Trying implicit prerequisite `RCS/Makefile.local.m,v'. Trying pattern rule with stem `Makefile.local.m'. Trying implicit prerequisite `RCS/Makefile.local.m'. Trying pattern rule with stem `Makefile.local.m'. Trying implicit prerequisite `s.Makefile.local.m'. Trying pattern rule with stem `Makefile.local.m'. Trying implicit prerequisite `SCCS/s.Makefile.local.m'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.ym'. Looking for a rule with intermediate file `Makefile.local.ym'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.ym'. Trying implicit prerequisite `Makefile.local.ym,v'. Trying pattern rule with stem `Makefile.local.ym'. Trying implicit prerequisite `RCS/Makefile.local.ym,v'. Trying pattern rule with stem `Makefile.local.ym'. Trying implicit prerequisite `RCS/Makefile.local.ym'. Trying pattern rule with stem `Makefile.local.ym'. Trying implicit prerequisite `s.Makefile.local.ym'. Trying pattern rule with stem `Makefile.local.ym'. Trying implicit prerequisite `SCCS/s.Makefile.local.ym'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.lm'. Looking for a rule with intermediate file `Makefile.local.lm'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.lm'. Trying implicit prerequisite `Makefile.local.lm,v'. Trying pattern rule with stem `Makefile.local.lm'. Trying implicit prerequisite `RCS/Makefile.local.lm,v'. Trying pattern rule with stem `Makefile.local.lm'. Trying implicit prerequisite `RCS/Makefile.local.lm'. Trying pattern rule with stem `Makefile.local.lm'. Trying implicit prerequisite `s.Makefile.local.lm'. Trying pattern rule with stem `Makefile.local.lm'. Trying implicit prerequisite `SCCS/s.Makefile.local.lm'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.r'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.s'. Looking for a rule with intermediate file `Makefile.local.s'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.S'. Trying pattern rule with stem `Makefile.local.s'. Trying implicit prerequisite `Makefile.local.s,v'. Trying pattern rule with stem `Makefile.local.s'. Trying implicit prerequisite `RCS/Makefile.local.s,v'. Trying pattern rule with stem `Makefile.local.s'. Trying implicit prerequisite `RCS/Makefile.local.s'. Trying pattern rule with stem `Makefile.local.s'. Trying implicit prerequisite `s.Makefile.local.s'. Trying pattern rule with stem `Makefile.local.s'. Trying implicit prerequisite `SCCS/s.Makefile.local.s'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.S'. Looking for a rule with intermediate file `Makefile.local.S'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.S'. Trying implicit prerequisite `Makefile.local.S,v'. Trying pattern rule with stem `Makefile.local.S'. Trying implicit prerequisite `RCS/Makefile.local.S,v'. Trying pattern rule with stem `Makefile.local.S'. Trying implicit prerequisite `RCS/Makefile.local.S'. Trying pattern rule with stem `Makefile.local.S'. Trying implicit prerequisite `s.Makefile.local.S'. Trying pattern rule with stem `Makefile.local.S'. Trying implicit prerequisite `SCCS/s.Makefile.local.S'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.S'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.mod'. Looking for a rule with intermediate file `Makefile.local.mod'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.mod'. Trying implicit prerequisite `Makefile.local.mod,v'. Trying pattern rule with stem `Makefile.local.mod'. Trying implicit prerequisite `RCS/Makefile.local.mod,v'. Trying pattern rule with stem `Makefile.local.mod'. Trying implicit prerequisite `RCS/Makefile.local.mod'. Trying pattern rule with stem `Makefile.local.mod'. Trying implicit prerequisite `s.Makefile.local.mod'. Trying pattern rule with stem `Makefile.local.mod'. Trying implicit prerequisite `SCCS/s.Makefile.local.mod'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.c'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.cc'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.C'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.cpp'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.p'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.f'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.F'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.m'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.r'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.s'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.S'. Trying pattern rule with stem `Makefile.local'. Rejecting impossible implicit prerequisite `Makefile.local.mod'. Trying pattern rule with stem `Makefile.local'. Trying implicit prerequisite `Makefile.local.sh'. Looking for a rule with intermediate file `Makefile.local.sh'. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.local.sh'. Trying implicit prerequisite `Makefile.local.sh,v'. Trying pattern rule with stem `Makefile.local.sh'. Trying implicit prerequisite `RCS/Makefile.local.sh,v'. Trying pattern rule with stem `Makefile.local.sh'. Trying implicit prerequisite `RCS/Makefile.local.sh'. Trying pattern rule with stem `Makefile.local.sh'. Trying implicit prerequisite `s.Makefile.local.sh'. Trying pattern rule with stem `Makefile.local.sh'. Trying implicit prerequisite `SCCS/s.Makefile.local.sh'. No implicit rule found for `Makefile.local'. Finished prerequisites of target file `Makefile.local'. Must remake target `Makefile.local'. Failed to remake target file `Makefile.local'. Considering target file `Makefile'. Looking for an implicit rule for `Makefile'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.o'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.c'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.cc'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.C'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.cpp'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.p'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.f'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.F'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.m'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.r'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.s'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.S'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.mod'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.sh'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile,v'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `RCS/Makefile,v'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `RCS/Makefile'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `s.Makefile'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `SCCS/s.Makefile'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.o'. Looking for a rule with intermediate file `Makefile.o'. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.c'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.cc'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.C'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.cpp'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.p'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.f'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.F'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.m'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.r'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.s'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.S'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.mod'. Trying pattern rule with stem `Makefile.o'. Trying implicit prerequisite `Makefile.o,v'. Trying pattern rule with stem `Makefile.o'. Trying implicit prerequisite `RCS/Makefile.o,v'. Trying pattern rule with stem `Makefile.o'. Trying implicit prerequisite `RCS/Makefile.o'. Trying pattern rule with stem `Makefile.o'. Trying implicit prerequisite `s.Makefile.o'. Trying pattern rule with stem `Makefile.o'. Trying implicit prerequisite `SCCS/s.Makefile.o'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.c'. Looking for a rule with intermediate file `Makefile.c'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.y'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.l'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.w'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.w'. Trying pattern rule with stem `Makefile.c'. Trying implicit prerequisite `Makefile.c,v'. Trying pattern rule with stem `Makefile.c'. Trying implicit prerequisite `RCS/Makefile.c,v'. Trying pattern rule with stem `Makefile.c'. Trying implicit prerequisite `RCS/Makefile.c'. Trying pattern rule with stem `Makefile.c'. Trying implicit prerequisite `s.Makefile.c'. Trying pattern rule with stem `Makefile.c'. Trying implicit prerequisite `SCCS/s.Makefile.c'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.y'. Looking for a rule with intermediate file `Makefile.y'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.y'. Trying implicit prerequisite `Makefile.y,v'. Trying pattern rule with stem `Makefile.y'. Trying implicit prerequisite `RCS/Makefile.y,v'. Trying pattern rule with stem `Makefile.y'. Trying implicit prerequisite `RCS/Makefile.y'. Trying pattern rule with stem `Makefile.y'. Trying implicit prerequisite `s.Makefile.y'. Trying pattern rule with stem `Makefile.y'. Trying implicit prerequisite `SCCS/s.Makefile.y'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.l'. Looking for a rule with intermediate file `Makefile.l'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.l'. Trying implicit prerequisite `Makefile.l,v'. Trying pattern rule with stem `Makefile.l'. Trying implicit prerequisite `RCS/Makefile.l,v'. Trying pattern rule with stem `Makefile.l'. Trying implicit prerequisite `RCS/Makefile.l'. Trying pattern rule with stem `Makefile.l'. Trying implicit prerequisite `s.Makefile.l'. Trying pattern rule with stem `Makefile.l'. Trying implicit prerequisite `SCCS/s.Makefile.l'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.w'. Looking for a rule with intermediate file `Makefile.w'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.w'. Trying implicit prerequisite `Makefile.w,v'. Trying pattern rule with stem `Makefile.w'. Trying implicit prerequisite `RCS/Makefile.w,v'. Trying pattern rule with stem `Makefile.w'. Trying implicit prerequisite `RCS/Makefile.w'. Trying pattern rule with stem `Makefile.w'. Trying implicit prerequisite `s.Makefile.w'. Trying pattern rule with stem `Makefile.w'. Trying implicit prerequisite `SCCS/s.Makefile.w'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.w'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.cc'. Looking for a rule with intermediate file `Makefile.cc'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.cc'. Trying implicit prerequisite `Makefile.cc,v'. Trying pattern rule with stem `Makefile.cc'. Trying implicit prerequisite `RCS/Makefile.cc,v'. Trying pattern rule with stem `Makefile.cc'. Trying implicit prerequisite `RCS/Makefile.cc'. Trying pattern rule with stem `Makefile.cc'. Trying implicit prerequisite `s.Makefile.cc'. Trying pattern rule with stem `Makefile.cc'. Trying implicit prerequisite `SCCS/s.Makefile.cc'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.C'. Looking for a rule with intermediate file `Makefile.C'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.C'. Trying implicit prerequisite `Makefile.C,v'. Trying pattern rule with stem `Makefile.C'. Trying implicit prerequisite `RCS/Makefile.C,v'. Trying pattern rule with stem `Makefile.C'. Trying implicit prerequisite `RCS/Makefile.C'. Trying pattern rule with stem `Makefile.C'. Trying implicit prerequisite `s.Makefile.C'. Trying pattern rule with stem `Makefile.C'. Trying implicit prerequisite `SCCS/s.Makefile.C'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.cpp'. Looking for a rule with intermediate file `Makefile.cpp'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.cpp'. Trying implicit prerequisite `Makefile.cpp,v'. Trying pattern rule with stem `Makefile.cpp'. Trying implicit prerequisite `RCS/Makefile.cpp,v'. Trying pattern rule with stem `Makefile.cpp'. Trying implicit prerequisite `RCS/Makefile.cpp'. Trying pattern rule with stem `Makefile.cpp'. Trying implicit prerequisite `s.Makefile.cpp'. Trying pattern rule with stem `Makefile.cpp'. Trying implicit prerequisite `SCCS/s.Makefile.cpp'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.p'. Looking for a rule with intermediate file `Makefile.p'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.web'. Trying pattern rule with stem `Makefile.p'. Trying implicit prerequisite `Makefile.p,v'. Trying pattern rule with stem `Makefile.p'. Trying implicit prerequisite `RCS/Makefile.p,v'. Trying pattern rule with stem `Makefile.p'. Trying implicit prerequisite `RCS/Makefile.p'. Trying pattern rule with stem `Makefile.p'. Trying implicit prerequisite `s.Makefile.p'. Trying pattern rule with stem `Makefile.p'. Trying implicit prerequisite `SCCS/s.Makefile.p'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.web'. Looking for a rule with intermediate file `Makefile.web'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.web'. Trying implicit prerequisite `Makefile.web,v'. Trying pattern rule with stem `Makefile.web'. Trying implicit prerequisite `RCS/Makefile.web,v'. Trying pattern rule with stem `Makefile.web'. Trying implicit prerequisite `RCS/Makefile.web'. Trying pattern rule with stem `Makefile.web'. Trying implicit prerequisite `s.Makefile.web'. Trying pattern rule with stem `Makefile.web'. Trying implicit prerequisite `SCCS/s.Makefile.web'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.f'. Looking for a rule with intermediate file `Makefile.f'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.F'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.r'. Trying pattern rule with stem `Makefile.f'. Trying implicit prerequisite `Makefile.f,v'. Trying pattern rule with stem `Makefile.f'. Trying implicit prerequisite `RCS/Makefile.f,v'. Trying pattern rule with stem `Makefile.f'. Trying implicit prerequisite `RCS/Makefile.f'. Trying pattern rule with stem `Makefile.f'. Trying implicit prerequisite `s.Makefile.f'. Trying pattern rule with stem `Makefile.f'. Trying implicit prerequisite `SCCS/s.Makefile.f'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.F'. Looking for a rule with intermediate file `Makefile.F'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.F'. Trying implicit prerequisite `Makefile.F,v'. Trying pattern rule with stem `Makefile.F'. Trying implicit prerequisite `RCS/Makefile.F,v'. Trying pattern rule with stem `Makefile.F'. Trying implicit prerequisite `RCS/Makefile.F'. Trying pattern rule with stem `Makefile.F'. Trying implicit prerequisite `s.Makefile.F'. Trying pattern rule with stem `Makefile.F'. Trying implicit prerequisite `SCCS/s.Makefile.F'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.r'. Looking for a rule with intermediate file `Makefile.r'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.l'. Trying pattern rule with stem `Makefile.r'. Trying implicit prerequisite `Makefile.r,v'. Trying pattern rule with stem `Makefile.r'. Trying implicit prerequisite `RCS/Makefile.r,v'. Trying pattern rule with stem `Makefile.r'. Trying implicit prerequisite `RCS/Makefile.r'. Trying pattern rule with stem `Makefile.r'. Trying implicit prerequisite `s.Makefile.r'. Trying pattern rule with stem `Makefile.r'. Trying implicit prerequisite `SCCS/s.Makefile.r'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.F'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.m'. Looking for a rule with intermediate file `Makefile.m'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.ym'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.lm'. Trying pattern rule with stem `Makefile.m'. Trying implicit prerequisite `Makefile.m,v'. Trying pattern rule with stem `Makefile.m'. Trying implicit prerequisite `RCS/Makefile.m,v'. Trying pattern rule with stem `Makefile.m'. Trying implicit prerequisite `RCS/Makefile.m'. Trying pattern rule with stem `Makefile.m'. Trying implicit prerequisite `s.Makefile.m'. Trying pattern rule with stem `Makefile.m'. Trying implicit prerequisite `SCCS/s.Makefile.m'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.ym'. Looking for a rule with intermediate file `Makefile.ym'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.ym'. Trying implicit prerequisite `Makefile.ym,v'. Trying pattern rule with stem `Makefile.ym'. Trying implicit prerequisite `RCS/Makefile.ym,v'. Trying pattern rule with stem `Makefile.ym'. Trying implicit prerequisite `RCS/Makefile.ym'. Trying pattern rule with stem `Makefile.ym'. Trying implicit prerequisite `s.Makefile.ym'. Trying pattern rule with stem `Makefile.ym'. Trying implicit prerequisite `SCCS/s.Makefile.ym'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.lm'. Looking for a rule with intermediate file `Makefile.lm'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.lm'. Trying implicit prerequisite `Makefile.lm,v'. Trying pattern rule with stem `Makefile.lm'. Trying implicit prerequisite `RCS/Makefile.lm,v'. Trying pattern rule with stem `Makefile.lm'. Trying implicit prerequisite `RCS/Makefile.lm'. Trying pattern rule with stem `Makefile.lm'. Trying implicit prerequisite `s.Makefile.lm'. Trying pattern rule with stem `Makefile.lm'. Trying implicit prerequisite `SCCS/s.Makefile.lm'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.r'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.s'. Looking for a rule with intermediate file `Makefile.s'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.S'. Trying pattern rule with stem `Makefile.s'. Trying implicit prerequisite `Makefile.s,v'. Trying pattern rule with stem `Makefile.s'. Trying implicit prerequisite `RCS/Makefile.s,v'. Trying pattern rule with stem `Makefile.s'. Trying implicit prerequisite `RCS/Makefile.s'. Trying pattern rule with stem `Makefile.s'. Trying implicit prerequisite `s.Makefile.s'. Trying pattern rule with stem `Makefile.s'. Trying implicit prerequisite `SCCS/s.Makefile.s'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.S'. Looking for a rule with intermediate file `Makefile.S'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.S'. Trying implicit prerequisite `Makefile.S,v'. Trying pattern rule with stem `Makefile.S'. Trying implicit prerequisite `RCS/Makefile.S,v'. Trying pattern rule with stem `Makefile.S'. Trying implicit prerequisite `RCS/Makefile.S'. Trying pattern rule with stem `Makefile.S'. Trying implicit prerequisite `s.Makefile.S'. Trying pattern rule with stem `Makefile.S'. Trying implicit prerequisite `SCCS/s.Makefile.S'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.S'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.mod'. Looking for a rule with intermediate file `Makefile.mod'. Avoiding implicit rule recursion. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.mod'. Trying implicit prerequisite `Makefile.mod,v'. Trying pattern rule with stem `Makefile.mod'. Trying implicit prerequisite `RCS/Makefile.mod,v'. Trying pattern rule with stem `Makefile.mod'. Trying implicit prerequisite `RCS/Makefile.mod'. Trying pattern rule with stem `Makefile.mod'. Trying implicit prerequisite `s.Makefile.mod'. Trying pattern rule with stem `Makefile.mod'. Trying implicit prerequisite `SCCS/s.Makefile.mod'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.c'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.cc'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.C'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.cpp'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.p'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.f'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.F'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.m'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.r'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.s'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.S'. Trying pattern rule with stem `Makefile'. Rejecting impossible implicit prerequisite `Makefile.mod'. Trying pattern rule with stem `Makefile'. Trying implicit prerequisite `Makefile.sh'. Looking for a rule with intermediate file `Makefile.sh'. Avoiding implicit rule recursion. Trying pattern rule with stem `Makefile.sh'. Trying implicit prerequisite `Makefile.sh,v'. Trying pattern rule with stem `Makefile.sh'. Trying implicit prerequisite `RCS/Makefile.sh,v'. Trying pattern rule with stem `Makefile.sh'. Trying implicit prerequisite `RCS/Makefile.sh'. Trying pattern rule with stem `Makefile.sh'. Trying implicit prerequisite `s.Makefile.sh'. Trying pattern rule with stem `Makefile.sh'. Trying implicit prerequisite `SCCS/s.Makefile.sh'. No implicit rule found for `Makefile'. Finished prerequisites of target file `Makefile'. No need to remake target `Makefile'. Updating goal targets.... Considering target file `all'. File `all' does not exist. Considering target file `build'. File `build' does not exist. Finished prerequisites of target file `build'. Must remake target `build'. Successfully remade target file `build'. Finished prerequisites of target file `all'. Must remake target `all'. Successfully remade target file `all'. make: Nothing to be done for `all'. ```
straight-shoota commented 7 months ago

Hm, looks like make doesn't recognize the prerequisites (SRC_SOURCES) at all.

Maybe try this diff to see if there are any errors with the find command? Would be very strange though...

@@ -28,7 +28,7 @@ INSTALL_BIN ?= /usr/bin/install
 SHARD_BIN ?= ../../bin
 CRFLAGS ?= -Dpreview_mt

-SRC_SOURCES ::= $(shell find src -name '*.cr' 2>/dev/null)
+SRC_SOURCES ::= $(shell find src -name '*.cr')
 DOC_SOURCE   ::= src/**

Looks like your make version is really ancient. You might want to update to a more modern version. (Dunno if that could be of any relevance here)

Sija commented 7 months ago

Nope, doesn't work. Also what's interesting when I run this command from my terminal I get:

λ Shabdiz → shell find src -name '*.cr'                                                                                                                           
zsh: command not found: shell
straight-shoota commented 7 months ago

$(shell xxx) is a make function: https://www.gnu.org/software/make/manual/html_node/Shell-Function.html

It means run xxx in the shell.

So could you try if find src -name '*.cr' works for you? I don't know how that could fail 🤷 It should print the paths of all source files.

Sija commented 7 months ago

Yeah, that works just fine.

Sija commented 7 months ago

Solution was to install make from homebrew (v4.4.1).