cara compile lame.exe buat win64 ato win32
ada beberapa cara, tapi mungkin ini yang paling cepet menurut gw (butuh pemahaman dikit), meskipun lebih berguna kalo compile dengan mingw yang bisa buat bikin ffmpeg
cara ini bisa 32-bita & 64-bita (tergantung compilernya) dan lebih cepat daripada vc solution serta tanpa install
tapi kalau suka mingw juga tidak mengapa (karena bisa optimalisasi dr win98 sampai latest), ya cari praktisnya sih, karena perbedaan speed cukup lumayan dari segi optimasi compiler kalo msvc sse versi biasa = 17 detik, msvc sse2 = 15 detik, mingw atom sse2 sse3 sse4 = 13 detik+wuzz kalo jalan di intel atom
1. download source code LAME
http://lame.sf.net/ kalo udah kelar extract ke C:\lame-3.99.5 (pake extract here)
2. download dulu msvc compiler 2010
https://msvc.googlecode.com/ pilih terserah, dengan arsip
https://code.google.com/archive/p/msvc/downloads3. kalo udah kelar langsung extract ke C:\lame-3.99.5 (folder bin, etc dalam C:\lame-3.99.5)
4. download nasm
http://www.nasm.us/ kalo udah kelar unpack & rename jadi nasmw.exe taruh ke C:\lame-3.99.5\bin (biar minimal bentrok), atau nasm/yasm (-f win64)
http://yasm.tortall.net/ (tp yg yasm blm testing sih), kalo masm/ml64.exe cari dimana ya skrg-_- ASM=ML64
5. udah gitu browse C:\lame-3.99.5
6. edit dikit makefile.msvc pake notepad, ilangin kata "/opt:nowin98" (kyknya gitu)
7. double click cmd.lnk (shortcut), pastikan read-only untuk mempermudah (dan baru ngeh klo di winxp hrs ketik cmd dulu, maaf lupa)
8. ketik nmake -f makefile.msvc
9. liat di C:\lame-3.99.5\output
eh lupa ngasih target build
# targets <-> DOS filenames
T_LAME = nmake -f makefile.msvc lame.exe
T_MP3X = nmake -f makefile.msvc mp3x.exe
T_MP3RTP = nmake -f makefile.msvc mp3rtp.exe
T_DLL = nmake -f makefile.msvc libmp3lame.dll
T_LIB_DYNAMIC = nmake -f makefile.msvc libmp3lame.lib
T_LIB_STATIC = nmake -f makefile.msvc libmp3lame-static.lib
T_LEGACY_DLL = nmake -f makefile.msvc lame_enc.dll

nb: kalo mau bisa diganti dengan msvc 2012 ato 2013 juga bisa sih
kalo mau compile pake Clang yang ngga pake ribet (jangan lupa hapus dulu *.obj yang udah jadi)
1. download dulu Clang-nya
http://llvm.org/builds/ ya snapshot tapi cukuplah
2. backup dulu folder /bin/ & /include/ yang berisi file msvc dengan copy paste
3. open hasil download dengan 7-zip
4. cari cl.exe & libclang.dll dan copy ke /bin/ di C:\lame-3.99.5\
5. cari folder /lib/ & /include/ copy ke /lib/ & /include/ di C:\lame-3.99.5\
6. Clang emg rada-rada aneh, -O4 ngga bisa pdhl ada di doc
trik 1: gunakan linker msvc 2008 (link.exe), tinggal copas dari msvc 2008 express atau pro [untuk 64bita yg ingin model Win64 gunakanlah 'compiler x64'] (secara pribadi tidak suka 64bita karena kurang fleksibel) atau dengan cara compile ulang tanpa ganti linker dengan menambahkan perintah MSVCVER=Win64 (kecuali psymodel.c di compile scr normal) otomatis akan tercipta *.obj yang tak biasa, cara ini untuk mengurangi kode yang tidak terlalu penting (terutama untuk lame_enc.dll) karena ini msvc build bukan mingw ato icl yang bisa forcing optimasi scr bertingkat
trik 2: jika ingin agak combo, intinya dengan mengadakan fitur percepatan sse2 pada psymodel.c dengan cara compile scr terpisah dulu (biar gampang compile secara terpisah dengan model sse2, detil ada di vc solution, setelah itu psymodel.obj hasil compile itu direplacekan, hapus dulu lib mp3lame yg di /output/), hasil akhirnya bisa cepat pada sse2 dan stabil di sse/mmx tapi ini tidak begitu penting (bagian dari hack yang banyak digunakan ketika awal kemunculan lame sekitar tahun 2000/2001)
trik 3: compile to *.obj dengan Clang bwt mempercepat code execution dalam arti sepersekian detik atau gunakan Clang (clang.exe/clang-cl.exe) pada trik no. 4
trik 4: aktifkan vector, kalo tdk salah ingat Clang punya fitur *vector* ini yang katanya native (ngga tahu jg sih, pas dicobain ngga ada bedanya *cepetan sse2*, yang jelas Clang 3.3 altivec ppc ato sederajat gcc -fmath sudah masuk kok, kalo pake gcc/mingw tambah mantap deh), cuman jadi catetan kenapa ngga ada turbo sse2 di Clang, makanya ya vectorization paksa, ambil diff dari sini
http://tmkk.undo.jp/lame/lame-3.99.5-sse-20120229.diff (untuk optimalisasi doang sih) taruh di C:\lame-3.99.5 dan lakukan patching diff dengan patch.py (biar cepet aja, gw udah nyoba "patcher" yg lain dari gnu patch cuman gw rasa agak ugly gitu klo jalan di win32/64 ato gw yg kurang update ya?)
https://code.google.com/p/python-patch/ kalo ada yg salah patching plg cuma 1 character, caranya hampir sama kyk gnu patch C:\lame-3.99.5\patch-1.13.py -p0 lame-3.99.5-sse-20120229.diff
trik 5: masih lanjutan dari trik 4 buat yang mau, intel c++ hack ya tapi harus punya libmmt.lib dan libirc.lib (untuk akselerasi biar peak cpu sampai 24.000), ini memakai MSVCVER=8.0 untuk linking, pertama ganti /O2 jadi /O3 /Ot (speed biar bisa tembus peak 23.000 lebih, /O4 ato /O5 soalnya error kalo tidak error ya pakai, kalo pakai intel bisa 24.500 lebih) lalu ganti "Win64" pada bagian ADD_OBJ jadi "8.0" dan terakhir ganti bufferoverflowu.lib jadi libmmt.lib pada makefile.msvc (svml_dispmt.lib belum cobain) dan juga kita modif salah satu *.obj di folder libmp3lame dengan mengganti string libcmt.lib dengan "libmmt.lib"
trik 6: lanjutan dari trik no. 5 dengan menambahkan asmlib seperti trik libmmt.lib
http://www.agner.org/optimize/ tetapi ini kita force sedikit: unpack & ambil libacof32o.lib 32-bita rename jadi asmlib.lib setelah itu kita modif salah satu *.obj di folder libmp3lame dengan mengganti string libcmt.lib dengan asmlib.lib (fungsinya supaya linker mengambil jalan ke asmlib dulu baru ke libcmt seperti teknik /MD, efek yang terjadi selain jadi stabil, peak bisa mendekati 25.000), kita modif *.obj di folder frontend dengan mengganti string libcmt.lib dengan libirc.lib eh clang kelupaan dikit aktifkan -fmsc-version=1600 bwt yang pakai msvc 2010
nb: update