[Captivate Q&A, Help & Troubleshooting] gdanko:
Krylon360 over at CyanogenMod forums was kind enough to create the vendor tree for the Captivate. It can be found here.

http://github.com/Krylon360/android_device_samsung_captivate

So I set up my build environment and I know it works since I was able to build my Eclair ROM. Anyway, I grabbed the latest 2.2 sources, downloaded Krylon's files to ~/mydroid/device/samsung/captivate, and ran extract-files.sh to pull everything in. The only difference is, I don't have the leaked Froyo installed but I do have the system.img so I used unyaffs to extract the files and in extract-files.sh I changed the "adb-pull" to a "cp". Suffice it to say, I got all the files out of there.

Next I had to create a vendorsetup.sh in ~/mydroid/device/samsung/captivate. I basically copied one from another vendor tree and modified it to suit me. So far so good.

Next I run source build/envsetup.sh from within ~/mydroid to suck in all the vendorsetup.sh scripts.

~/mydroid$ source build/envsetup.sh
including device/htc/dream/vendorsetup.sh
including device/htc/passion/vendorsetup.sh
including device/htc/sapphire/vendorsetup.sh
including device/samsung/captivate/vendorsetup.sh

My captivate script was found just dandy. Everything looks good so I fire up this make command:

make -j2 TARGET_PRODUCT=captivate | tee build-$(`date +%d%m%y%H%M`).log

Things start chugging along nicely though I see these messages which I've yet to investigate.

build/core/Makefile:19: warning: overriding commands for target `out/target/product/captivate/system/lib/egl/libGLES_android.so'
build/core/base_rules.mk:455: warning: ignoring old commands for target `out/target/product/captivate/system/lib/egl/libGLES_android.so'
build/core/Makefile:19: warning: overriding commands for target `out/target/product/captivate/system/lib/libril.so'
build/core/base_rules.mk:455: warning: ignoring old commands for target `out/target/product/captivate/system/lib/libril.so'
build/core/Makefile:19: warning: overriding commands for target `out/target/product/captivate/system/lib/libreference-ril.so'
build/core/base_rules.mk:455: warning: ignoring old commands for target `out/target/product/captivate/system/lib/libreference-ril.so'
build/core/Makefile:19: warning: overriding commands for target `out/target/product/captivate/system/usr/keylayout/AVRCP.kl'
sdk/emulator/keymaps/Android.mk:18: warning: ignoring old commands for target `out/target/product/captivate/system/usr/keylayout/AVRCP.kl'
build/core/Makefile:19: warning: overriding commands for target `out/target/product/captivate/system/usr/keylayout/qwerty.kl'
sdk/emulator/keymaps/Android.mk:13: warning: ignoring old commands for target `out/target/product/captivate/system/usr/keylayout/qwerty.kl'
build/core/Makefile:19: warning: overriding commands for target `out/target/product/captivate/system/usr/keychars/qwerty.kcm.bin'
build/core/base_rules.mk:455: warning: ignoring old commands for target `out/target/product/captivate/system/usr/keychars/qwerty.kcm.bin'
build/core/Makefile:19: warning: overriding commands for target `out/target/product/captivate/system/usr/keychars/qwerty2.kcm.bin'
build/core/base_rules.mk:455: warning: ignoring old commands for target `out/target/product/captivate/system/usr/keychars/qwerty2.kcm.bin'
No private recovery resources for TARGET_DEVICE captivate

Then comes the error :(

make: *** No rule to make target `vendor/samsung/captivate/proprietary/lib/libclientgps.so', needed by `out/target/product/captivate/obj/lib/libclientgps.so'. Stop.
make: *** Waiting for unfinished jobs....

Presumably some makefile somewhere is looking for this file, but I have no idea where. I'll keep looking. However, this file isn't in the froyo system.img I obtained which is supposedly from the leaked Captivate ROM. Any ideas?