echo "Building libs..." mkdir -pv bin/lib for lib in $(find ./src/lib -name "*.cpp"); do echo "Compiling $lib" c++ -shared -o $(sed -e 's/^.\/src/.\/bin/;s/cpp$/so/' <<< $lib) $lib; done echo "Building tools..." mkdir -pv bin/tools # Commands for every program need to be given individually because we can't # just add all shared libraries to all programs. # Or can we? Idk, cba to find out. c++ src/tools/dumpnbt.cpp -Lbin/lib -lnbt -o bin/tools/dumpnbt