C++ = g++ LD = g++ RM = rm -f CFLAGS = -std=c++20 LFLAGS = TARGET = ate SRCS := $(wildcard *.cpp) OBJS := $(patsubst %.cpp,%.o, $(SRCS)) OBJS += usage.o all: $(TARGET) %.o: %.cpp $(C++) -c $(CFLAGS) $< -o $@ %.o: %.txt objcopy --input binary --output elf64-x86-64 $< $@ Arguments.o: usage.h $(TARGET): $(OBJS) $(LD) $^ $(LFLAGS) -o $@ clean: $(RM) $(TARGET) $(OBJS) compile_commands: compiledb make -Bn original.pcm: original.flac ./any2s16lepcm $< $@ edit.pcm: original.pcm $(TARGET) ./$(TARGET) $< $@ -b-4 -t-18 edit.wav: edit.pcm ./s16lepcm2any $< $@ original.wav: original.pcm ./s16lepcm2any $< $@ edit.png: edit.wav original.png: original.wav %.png: %.wav sox $< -n spectrogram -o $@