It's been a while since I've used make
, so bear with me…
I've got a directory, flac
, containing .FLAC files. I've got a corresponding directory, mp3
containing MP3 files. If a FLAC file is newer than the corresponding MP3 file (or the corresponding MP3 file doesn't exist), then I want to run a bunch of commands to convert the FLAC file to an MP3 file, and copy the tags across.
The kicker: I need to search the flac
directory recursively, and create corresponding subdirectories in the mp3
directory. The directories and files can have spaces in the names, and are named in UTF-8.
And I want to use make
to drive this.
Best Answer
I would try something along these lines
A couple of quick notes for
make
beginners:@
in front of the commands preventsmake
from printing the command before actually running it.$(@D)
is the directory part of the target file name ($@
)Even if this should handle all UTF-8 characters and stuff, it will fail at spaces in file or directory names, as
make
uses spaces to separate stuff in the makefiles and I am not aware of a way to work around that. So that leaves you with just a shell script, I am afraid :-/