   ways to use cal3d without your code becoming GPL
  How can this be achieved? I want to use cal3d (actually there dont seem to be any realistic alternatives) but I dont know how exactly I can link with cal3d without my code being forced into a "GPL or compatible" licence.As I understood it before, I have to make available any modifications I make to cal3d itself, but other bits of my code (especially bits whcih are using other open source, but non GPL compatible licences) are still OK to stay under their respective licences. Now im not so sure.Help?
  First, standard "IANAL so I'm not trying to give legal advice" disclaimer.cal3D uses the LGPL, so as long as you dynamically link to it, the rest of your project's code is unaffected.From their FAQs:Quote:Can I use Cal3D for a commercial product? The short answer is yes. Cal3D is released under the Lesser GNU Public License (LGPL), which allows you to link in the Cal3D library for your commercial game or simulator or whatever. The catch, however, is that if you make changes to Cal3D and use them, you are obligated to release the source code under the same license. If you were to statically link to Cal3D, either through a static library or by using the code directly in your project, then that's where you will have to change your project license to being "LGPL compatible". SDL is another library that uses LGPL and has a short clarifying page on this as well.So, for your project you will just need to compile Cal3D as a dynamic library and use the headers/lib/dll in your project rather than the source or a static library directly. If you did not make any changes to the underlying Cal3D code, you can link to the Cal3D site with the version you used (it's still a good idea to keep a local copy for the future though). If you made any changes to the code, then you have to provide that code base in accordance with the LGPL. Either way though, as long as you are linking dynamically, the rest of your code is unaffected.If you are wondering how to dynamically link and you use Visual Studio 2008, it's pretty simple (note: I didn't use the existing project because it wouldn't compile when upgraded to a newer version):- Create a new Empty Win32 DLL project named Cal3D. Save it and then close Visual Studio.- Copy the "Cal3D.sln", "Cal3D.vcproj", "Cal3D.suo", and the "Cal3D.vcproj.X.user" files into the root cal3d folder of the version you are using (I tested with cal3d-0.11rc2)- Open the solution and add the Cal3D header/source files to the project from the src/cal3d- Add the src folder to the Additional Include Directionless field (Project -> Properties -> Configuration Properties -> C/C++ -> General).- Compile (should get no errors, only warnings)Now, you just need to put together a package of the necessary files for the library. The package should include:- Debug/Release versions of the Cal3D DLL- Debug/Release versions of the Cal3D Lib- All of the header files from the 'src/cal3d' folder- Docs of the Cal3D project from the root directory (AUTHORS, COPYING, ChangeLog, README at minimal) You might want to write your own INSTALL if you are feeling generous.You will also want to make sure to save a backup copy of the files you built from, just as a safe guard in case the Cal3D project goes down and someone needs the source that you are obligated to give them under the LGPL.Once that's together, you just use it in your project like you would any other 3rd party library that you downloaded a prebuilt SDK of. For example, this is what I just put together: cal3d-0.11rc2_win32_bin.zip. I made a new project for the miniviewer_gl example to test with and it worked fine (needed to install GLUT and grab cal3d_data-0.9 to get a model to use first though). Hope that helps!   ;Quote:Original post by Drew_BentonFirst, standard "IANAL so I'm not trying to give legal advice" disclaimer.cal3D uses the LGPL, so as long as you dynamically link to it, the rest of your project's code is unaffected.From their FAQs:Quote:Can I use Cal3D for a commercial product? The short answer is yes. Cal3D is released under the Lesser GNU Public License (LGPL), which allows you to link in the Cal3D library for your commercial game or simulator or whatever. The catch, however, is that if you make changes to Cal3D and use them, you are obligated to release the source code under the same license. If you were to statically link to Cal3D, either through a static library or by using the code directly in your project, then that's where you will have to change your project license to being "LGPL compatible". SDL is another library that uses LGPL and has a short clarifying page on this as well.So, for your project you will just need to compile Cal3D as a dynamic library and use the headers/lib/dll in your project rather than the source or a static library directly. If you did not make any changes to the underlying Cal3D code, you can link to the Cal3D site with the version you used (it's still a good idea to keep a local copy for the future though). If you made any changes to the code, then you have to provide that code base in accordance with the LGPL. Either way though, as long as you are linking dynamically, the rest of your code is unaffected.If you are wondering how to dynamically link and you use Visual Studio 2008, it's pretty simple (note: I didn't use the existing project because it wouldn't compile when upgraded to a newer version):- Create a new Empty Win32 DLL project named Cal3D. Save it and then close Visual Studio.- Copy the "Cal3D.sln", "Cal3D.vcproj", "Cal3D.suo", and the "Cal3D.vcproj.X.user" files into the root cal3d folder of the version you are using (I tested with cal3d-0.11rc2)- Open the solution and add the Cal3D header/source files to the project from the src/cal3d- Add the src folder to the Additional Include Directionless field (Project -> Properties -> Configuration Properties -> C/C++ -> General).- Compile (should get no errors, only warnings)Now, you just need to put together a package of the necessary files for the library. The package should include:- Debug/Release versions of the Cal3D DLL- Debug/Release versions of the Cal3D Lib- All of the header files from the 'src/cal3d' folder- Docs of the Cal3D project from the root directory (AUTHORS, COPYING, ChangeLog, README at minimal) You might want to write your own INSTALL if you are feeling generous.You will also want to make sure to save a backup copy of the files you built from, just as a safe guard in case the Cal3D project goes down and someone needs the source that you are obligated to give them under the LGPL.Once that's together, you just use it in your project like you would any other 3rd party library that you downloaded a prebuilt SDK of. For example, this is what I just put together: cal3d-0.11rc2_win32_bin.zip. I made a new project for the miniviewer_gl example to test with and it worked fine (needed to install GLUT and grab cal3d_data-0.9 to get a model to use first though). Hope that helps!Awsome. Not only have you put my mind at rest but also described exactly how to build cal3d properly. Thanks a lot.