mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
216 lines
7.6 KiB
Puppet
216 lines
7.6 KiB
Puppet
//
|
|
// Config.pp
|
|
//
|
|
// This file defines certain configuration variables that are written
|
|
// into the various make scripts. It is processed by ppremake (along
|
|
// with the Sources.pp files in each of the various directories) to
|
|
// generate build scripts appropriate to each environment.
|
|
//
|
|
// ppremake is capable of generating generic Unix autoconf/automake
|
|
// style build scripts, as well as makefiles customized for SGI's
|
|
// MipsPRO compiler or for Microsoft's Visual C++. It can also
|
|
// generate Microsoft Developer's Studio project files directly. In
|
|
// principle, it can be extended to generate suitable build script
|
|
// files for any number of different build environments.
|
|
//
|
|
// All of these build scripts can be tuned for a particular
|
|
// environment via this file. This is the place for the user to
|
|
// specify which external packages are installed and where, or to
|
|
// enable or disable certain optional features. However, it is
|
|
// suggested that rather than modify this file directly, you create a
|
|
// custom file in your home directory and there redefine whatever
|
|
// variables are appropriate, and set the environment variable
|
|
// PPREMAKE_CONFIG to refer to it. In this way, you can easily get an
|
|
// updated source tree (including a new Config.pp) without risking
|
|
// accidentally losing your customizations. This also avoids having
|
|
// to redefine the same variables in different packages (for instance,
|
|
// in dtool and in panda).
|
|
//
|
|
// The syntax in this file resembles some hybrid between C++
|
|
// preprocessor declarations and GNU make variables. This is the same
|
|
// syntax used in the various ppremake system configure files; it's
|
|
// designed to be easy to use as a macro language to generate
|
|
// makefiles and their ilk.
|
|
//
|
|
|
|
// What kind of build scripts are we generating? This selects a
|
|
// suitable template file from the ppremake system files. The
|
|
// allowable choices, at present, are:
|
|
//
|
|
// autoconf - Generate configure.in and a series of Makefile.am files,
|
|
// suitable for using with autoconf/automake. Not quite
|
|
// there yet.
|
|
// stopgap - Generate original Cary-style Makefile/Makefile.install/etc.
|
|
// files, to ease transition to the new system.
|
|
//
|
|
#define BUILD_TYPE stopgap
|
|
|
|
// Define the directory in which the system ppremake files are
|
|
// installed.
|
|
#define PPREMAKE_DIR /usr/local/panda/share
|
|
|
|
|
|
// In which directory should this package be installed when you type
|
|
// "make install"? This has no meaning when BUILD_TYPE is "stopgap".
|
|
#define INSTALL_DIR /usr/local/panda
|
|
|
|
|
|
// What level of compiler optimization/debug symbols should we build?
|
|
// The various optimize levels are defined as follows:
|
|
//
|
|
// 1 - No compiler optimizations, full debug symbols
|
|
// 2 - Full compiler optimizations, full debug symbols
|
|
// (if the compiler supports this)
|
|
// 3 - Full compiler optimizations, no debug symbols
|
|
// 4 - Full optimizations, no debug symbols, and asserts removed
|
|
//
|
|
// Setting this has no effect when BUILD_TYPE is "stopgap". In this
|
|
// case, the compiler optimizations are selected by setting the
|
|
// environment variable OPTIMIZE accordingly at compile time.
|
|
#define OPTIMIZE 1
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// The remaining variables are considered only if BUILD_TYPE is not
|
|
// "autoconf". (Autoconf can determine these directly.)
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
// NOTE: In the following, to indicate "yes" to a yes/no question,
|
|
// define the variable to be a nonempty string. To indicate "no",
|
|
// define the variable to be an empty string.
|
|
|
|
// Many of the HAVE_* variables are defined in terms of expressions
|
|
// based on the paths and library names, etc., defined above. These
|
|
// are defined using the "defer" command, so that they are not
|
|
// evaluated right away, giving the user an opportunity to redefine
|
|
// the variables they depend on, or to redefine the HAVE_* variables
|
|
// themselves (you can explicitly define a HAVE_* variable to some
|
|
// nonempty string to force the package to be marked as installed).
|
|
|
|
// Is Python installed, and should Python interfaces be generated? If
|
|
// Python is installed, which directory is it in? (If the directory
|
|
// is someplace standard like /usr/include, you may leave it blank.)
|
|
#define PYTHON_IPATH /usr/local/include/python1.6
|
|
#define PYTHON_LPATH
|
|
#defer HAVE_PYTHON $[isdir $[PYTHON_IPATH]]
|
|
|
|
// Is NSPR installed, and where?
|
|
#define NSPR_IPATH /usr/local/mozilla/dist/*/include
|
|
#define NSPR_LPATH
|
|
#define NSPR_LIBS nspr3
|
|
#defer HAVE_NSPR $[libtest $[NSPR_LPATH],$[NSPR_LIBS]]
|
|
|
|
// Is VRPN installed, and where?
|
|
#define VRPN_IPATH
|
|
#define VRPN_LPATH
|
|
#defer HAVE_VRPN $[isdir $[VRPN_IPATH]]
|
|
|
|
// Is ZLIB installed, and where?
|
|
#define ZLIB_IPATH
|
|
#define ZLIB_LPATH
|
|
#define ZLIB_LIBS z
|
|
#defer HAVE_ZLIB $[libtest $[ZLIB_LPATH],$[ZLIB_LIBS]]
|
|
|
|
// Is the sox libst library installed, and where?
|
|
#define SOXST_IPATH
|
|
#define SOXST_LPATH
|
|
#define SOXST_LIBS st
|
|
#defer HAVE_SOXST $[libtest $[SOXST_LPATH],$[SOXST_LIBS]]
|
|
|
|
// Is OpenGL installed, and where? This should include libGL as well
|
|
// as libGLU, if they are in different places.
|
|
#define GL_IPATH
|
|
#define GL_LPATH
|
|
#if $[eq $[PLATFORM],Win32]
|
|
#define GL_LIBS \
|
|
opengl32.lib glu32.lib winmm.lib kernel32.lib \
|
|
oldnames.lib mswsock.lib ws2_32.lib \
|
|
advapi32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib
|
|
#else
|
|
#define GL_LIBS GL GLU
|
|
#endif
|
|
#defer HAVE_GL $[libtest $[GL_LPATH],$[GL_LIBS]]
|
|
|
|
// How about GLX?
|
|
#define GLX_IPATH
|
|
#define GLX_LPATH
|
|
#if $[eq $[PLATFORM],Win32]
|
|
#defer HAVE_GLX
|
|
#else
|
|
#defer HAVE_GLX $[HAVE_GL]
|
|
#endif
|
|
|
|
// Glut?
|
|
#define GLUT_IPATH
|
|
#define GLUT_LPATH
|
|
#define GLUT_LIBS glut
|
|
#defer HAVE_GLUT $[libtest $[GLUT_LPATH],$[GLUT_LIBS]]
|
|
|
|
// Should we try to build the WGL interface?
|
|
#define HAVE_WGL
|
|
|
|
// Should we try to build the SGI-specific glxdisplay?
|
|
#define HAVE_SGIGL
|
|
|
|
// Should we try to build the DirectX interface? What additional
|
|
// libraries do we need?
|
|
#define DX_IPATH
|
|
#define DX_LPATH
|
|
#if $[eq $[PLATFORM],Win32]
|
|
#define DX_LIBS \
|
|
dxguid.lib winmm.lib kernel32.lib gdi32.lib comdlg32.lib winspool.lib \
|
|
user32.lib advapi32.lib ddraw.lib d3dim.lib
|
|
#else
|
|
#define DX_LIBS
|
|
#endif
|
|
#defer HAVE_DX $[libtest $[DX_LPATH],$[DX_LIBS]]
|
|
|
|
// Do you want to build the Renderman interface?
|
|
#define HAVE_RIB
|
|
|
|
// Is Mikmod installed? How should we run the libmikmod-config program?
|
|
#define MIKMOD_CONFIG libmikmod-config
|
|
#defer HAVE_MIKMOD $[bintest $[MIKMOD_CONFIG]]
|
|
|
|
// Do you want to build the network interface? What additional libraries
|
|
// are required?
|
|
#define NET_IPATH
|
|
#define NET_LPATH
|
|
#if $[eq $[PLATFORM],Win32]
|
|
#define NET_LIBS ws2_32.lib
|
|
#else
|
|
#define NET_LIBS
|
|
#endif
|
|
#define HAVE_NET 1
|
|
|
|
// Do you want to build the audio interface? What additional
|
|
// libraries are required?
|
|
#define AUDIO_IPATH
|
|
#define AUDIO_LPATH
|
|
#if $[eq $[PLATFORM],Win32]
|
|
#define AUDIO_LIBS winmm.lib dsound.lib user32.lib ole32.lib dxguid.lib
|
|
#else
|
|
#define AUDIO_LIBS
|
|
#endif
|
|
#define HAVE_AUDIO 1
|
|
|
|
|
|
// Is Gtk-- installed? How should we run the gtkmm-config program?
|
|
// This matters only to programs in PANDATOOL.
|
|
#define GTKMM_CONFIG gtkmm-config
|
|
#defer HAVE_GTKMM $[bintest $[GTKMM_CONFIG]]
|
|
|
|
// Is Maya installed? This matters only to programs in PANDATOOL.
|
|
#define MAYA_LOCATION /usr/aw/maya2.5
|
|
#defer HAVE_MAYA $[isdir $[MAYA_LOCATION]]
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// There are also some additional variables that control specific
|
|
// compiler/platform features or characteristics, defined in the
|
|
// platform specific file Config.platform.pp. Be sure to inspect
|
|
// these variables for correctness too. As above, these are
|
|
// unnecessary when BUILD_TYPE is "autoconf".
|
|
//////////////////////////////////////////////////////////////////////
|