Blame | Last modification | View Log | Download | RSS feed
The latest PhysicsFS information and releases can be found at:https://icculus.org/physfs/Building is (ahem) very easy.ALL PLATFORMS:Please read the text file LICENSE.txt in the root of the source tree.The license is extremely liberal, even to closed-source, commercialapplications.If you've got Doxygen (http://www.doxygen.org/) installed, you can run itwithout any command line arguments in the root of the source tree to generatethe API reference (or build the "docs" target from your build system). Thisis optional. You can browse the API docs online here:https://icculus.org/physfs/docs/BUILD IT WITH YOUR OWN PROGRAM:If you don't care about formal packaging: just add everything in the "src"directory to whatever you use to build your program and compile it along witheverything else, and you're done. It should compile with any reasonableANSI C compiler, should build cleanly even with excessive compiler warningsenabled, needs no extra configuration, and allows static linking.WinRT and Haiku need C++ compilers for their system APIs, but if you aren't onthese platforms and don't have a C++ compiler, don't build the .cpp files.Likewise: Apple platforms (macOS, iOS, etc) need an Objective-C compiler, butif you aren't on these platforms and don't have a Objective-C compiler, don'tbuild the .m file. Everything you need is in the .c sources.If this all worked for your specific project, you can stop reading now.UNIX:You will need CMake (https://www.cmake.org/) 2.4 or later installed.Make a directory, wherever you like. This will be your build directory.Chdir to your build directory. Run "cmake /where/i/unpacked/physfs" togenerate Makefiles. You can then run "ccmake ." and customize the build,but the defaults are probably okay. You can have CMake generate KDevelopor Ninja project files or whatever, if you prefer these.Run "make". PhysicsFS will now build.As root, run "make install".If you get sick of the library, run "make uninstall" as rootand it will remove all traces of the library from the system paths.Once you are satisfied, you can delete the build directory.Primary Unix development is done with GNU/Linux, but PhysicsFS is known towork out of the box with several flavors of Unix. It it doesn't work, patchesto get it running can be sent to icculus@icculus.org.Windows:If building with Cygwin, mingw32, MSYS, or something else that uses the GNUtoolchain, follow the Unix instructions, above.If you want to use Visual Studio, nmake, or the Platform SDK, you will needCMake (https://www.cmake.org/) 2.4 or later installed. Point CMake at theCMakeLists.txt file in the root of the source directory and hit the"Configure" button. After telling it what type of compiler you are targeting(Borland, Visual Studio, etc), CMake will process for while and then give youa list of options you can change (what archivers you want to support, etc).If you aren't sure, the defaults are probably fine. Hit the "Configure"button again, then "OK" once configuration has completed with options thatmatch your liking. Now project files for your favorite programmingenvironment will be generated for you in the directory you specified.Go there and use them to build PhysicsFS.PhysicsFS will only link directly against system libraries that have existedsince Windows NT 3.51. If there's a newer API we want to use, we try todynamically load it at runtime and fallback to a reasonable behaviour whenwe can't find it. Note that Windows 98 and later _should_work if you use the Microsoft Layer for Unicode (UNICOWS.DLL) to providesome missing system APIs, but this is no longer tested as of PhysicsFS 2.1.0.PhysicsFS 2.0.x is known to work with Windows 95 without UNICOWS.DLL.PhysicsFS works on 32-bit and 64-bit Windows. There is no 16-bit Windowssupport at all. Windows RT is covered below.Windows RT:Windows RT (Windows Phone, Windows Store, UWP) 8.0 and later are supported.Make sure you include both physfs_platform_windows.c _and_physfs_platform_winrt.cpp in your build, and that the C++ file has"Consume Windows Runtime Extension" set to "Yes" in its Visual Studioproperties (from the command line, you want to compile this file with the"/ZW" compiler switch). CMake can, in theory, generate a project file forWinRT if you pick a recent Visual Studio target, choose manual cross-compileoptions, and set the system name to "WindowsPhone" or "WindowsStore" and thecorrect OS version (8.0 or later).PocketPC/WindowsCE:Support for PocketPC was removed in PhysicsFS 2.1.0. This was known to workin the 1.0 releases, but wasn't tested in 2.0 and later. PhysicsFS shouldwork on modern Windows Phones (see "Windows RT" section).macOS:You will need CMake (https://www.cmake.org/) 2.4 or later installed.You can either generate a Unix makefile with CMake, or generate an Xcodeproject, whichever makes you more comfortable.PowerPC and Intel Macs should both be supported.MAC OS 8/9 ("Mac OS Classic"):Classic Mac OS support has been dropped in PhysicsFS 2.0. Apple hasn't updatedpre-OSX versions in more than a decade at this point, none of the hardwarethey've shipped will boot it for almost as many years, and findingdeveloper tools for it is becoming almost impossible. As the switch to Intelhardware has removed the "Classic" emulation environment, it was time toremove support from PhysicsFS. That being said, the PhysicsFS 1.0 branch canstill target back to Mac OS 8.5, so you can use that if you need support forthis legacy OS. We still very much support modern macOS, though: see above.Emscripten:Use the "Unix" instructions, above. You can install the Emscripten SDK and usethe extras/buildbot-emscripten.sh script to automate this for you.BeOS, Zeta, YellowTab:BeOS support was dropped in PhysicsFS 2.1.0. Consider installing Haiku, whichwe still support.Haiku:Use the "Unix" instructions, above.OS/2:OS/2 is known to work with OpenWatcom and GCC-based compilers. I couldn't getan OS/2 port of CMake to generate OpenWatcom project files (although it shouldbe able to do that in theory), it should be able to do Unix Makefiles withGCC. It might be easier to just compile PhysicsFS along with the rest ofyour project on this platform.OTHER PLATFORMS:Many Unix-like platforms might "just work" with CMake. Some of these platformsare known to have worked at one time, but have not been heavily tested, iftested at all. PhysicsFS is, as far as we know, 64-bit and byteorder clean,and is known to compile on several compilers across many platforms. Toimplement a new platform or archiver, please read the heavily-commentedphysfs_internal.h and look at the physfs_platform_* and physfs_archiver_*source files for examples.--ryan. (icculus@icculus.org)