mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 02:15:43 -04:00
compile in default INSTALL_DIR
This commit is contained in:
parent
b65a5d1886
commit
da06477f27
@ -76,13 +76,19 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// What is the default install directory for all trees in the Panda
|
// What is the default install directory for all trees in the Panda
|
||||||
// suite? You may also override this for a particular tree by
|
// suite? The default value for this variable is provided by
|
||||||
// defining a variable name like DTOOL_INSTALL or PANDA_INSTALL. This
|
// ppremake; on Unix machines it is the value of --prefix passed in to
|
||||||
// variable will have no effect when you are using the cttools to
|
// the configure script, and on Windows machines the default is
|
||||||
// control your attachment to the trees; in this case, the install
|
// hardcoded to C:\Panda3d.
|
||||||
// directory for each tree will by default be the root of the tree
|
|
||||||
// itself (although this may be overridden).
|
// You may also override this for a particular tree by defining a
|
||||||
#define INSTALL_DIR /usr/local/panda
|
// variable name like DTOOL_INSTALL or PANDA_INSTALL. This variable
|
||||||
|
// will have no effect when you are using the cttools to control your
|
||||||
|
// attachment to the trees; in this case, the install directory for
|
||||||
|
// each tree will by default be the root of the tree itself (although
|
||||||
|
// this may be overridden).
|
||||||
|
|
||||||
|
// #define INSTALL_DIR /usr/local/panda
|
||||||
|
|
||||||
// If you intend to use Panda only as a Python module, you may find
|
// If you intend to use Panda only as a Python module, you may find
|
||||||
// the following define useful (but you should put in the correct path
|
// the following define useful (but you should put in the correct path
|
||||||
|
@ -80,7 +80,16 @@
|
|||||||
#set PPREMAKE_CONFIG $[unixfilename $[PPREMAKE_CONFIG]]
|
#set PPREMAKE_CONFIG $[unixfilename $[PPREMAKE_CONFIG]]
|
||||||
#print Reading $[PPREMAKE_CONFIG]
|
#print Reading $[PPREMAKE_CONFIG]
|
||||||
#include $[PPREMAKE_CONFIG]
|
#include $[PPREMAKE_CONFIG]
|
||||||
|
|
||||||
|
#elif $[wildcard $[unixfilename $[INSTALL_DIR]]/Config.pp]
|
||||||
|
// If the PPREMAKE_CONFIG variable is not, but there exists a
|
||||||
|
// Config.pp in the compiled-in INSTALL_DIR, use that one by default.
|
||||||
|
#set PPREMAKE_CONFIG $[unixfilename $[INSTALL_DIR]]/Config.pp
|
||||||
|
#print Reading $[PPREMAKE_CONFIG]
|
||||||
|
#include $[PPREMAKE_CONFIG]
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
// Otherwise, just carry on without it.
|
||||||
#print Environment variable PPREMAKE_CONFIG not set; using defaults.
|
#print Environment variable PPREMAKE_CONFIG not set; using defaults.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -79,9 +79,12 @@
|
|||||||
/* Name of package */
|
/* Name of package */
|
||||||
#define PACKAGE "ppremake"
|
#define PACKAGE "ppremake"
|
||||||
|
|
||||||
|
/* The default value of INSTALL_DIR within ppremake. */
|
||||||
|
#define INSTALL_DIR C:\\Panda3d
|
||||||
|
|
||||||
/**************** UPDATE VERSION NUMBER HERE ****************
|
/**************** UPDATE VERSION NUMBER HERE ****************
|
||||||
** Also be sure to change the version number **
|
** Also be sure to change the version number **
|
||||||
** at the beginning of configure.in. **
|
** at the beginning of configure.in. **
|
||||||
**************** ****************/
|
**************** ****************/
|
||||||
#define VERSION "1.13"
|
#define VERSION "1.14"
|
||||||
/**************** UPDATE VERSION NUMBER HERE ****************/
|
/**************** UPDATE VERSION NUMBER HERE ****************/
|
||||||
|
@ -5,7 +5,7 @@ dnl **************** UPDATE VERSION NUMBER HERE ****************
|
|||||||
dnl ** Also be sure to change the version number **
|
dnl ** Also be sure to change the version number **
|
||||||
dnl ** at the end of config_msvc.h. **
|
dnl ** at the end of config_msvc.h. **
|
||||||
dnl **************** ****************
|
dnl **************** ****************
|
||||||
AM_INIT_AUTOMAKE(ppremake, 1.13)
|
AM_INIT_AUTOMAKE(ppremake, 1.14)
|
||||||
dnl **************** UPDATE VERSION NUMBER HERE ****************
|
dnl **************** UPDATE VERSION NUMBER HERE ****************
|
||||||
|
|
||||||
AM_CONFIG_HEADER(config.h)
|
AM_CONFIG_HEADER(config.h)
|
||||||
@ -20,6 +20,7 @@ AC_CANONICAL_HOST
|
|||||||
if test "${CXXFLAGS+set}" != set -a "${CFLAGS+set}" = set; then
|
if test "${CXXFLAGS+set}" != set -a "${CFLAGS+set}" = set; then
|
||||||
CXXFLAGS=$CFLAGS
|
CXXFLAGS=$CFLAGS
|
||||||
fi
|
fi
|
||||||
|
CPPFLAGS="${CPPFLAGS} -DINSTALL_DIR="'$(prefix)'
|
||||||
|
|
||||||
# Save these variables for later, so we can easily append to them or
|
# Save these variables for later, so we can easily append to them or
|
||||||
# change them.
|
# change them.
|
||||||
@ -84,5 +85,4 @@ AC_DEFINE_UNQUOTED(PLATFORM, "$PLATFORM",
|
|||||||
[The platform ppremake is compiled for. This primarily controls the
|
[The platform ppremake is compiled for. This primarily controls the
|
||||||
initial setting of the PLATFORM ppremake variable.])
|
initial setting of the PLATFORM ppremake variable.])
|
||||||
|
|
||||||
|
|
||||||
AC_OUTPUT(Makefile)
|
AC_OUTPUT(Makefile)
|
||||||
|
@ -1159,7 +1159,42 @@ find_on_searchpath(const DSearchPath &searchpath) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
bool Filename::
|
bool Filename::
|
||||||
scan_directory(vector_string &contents) const {
|
scan_directory(vector_string &contents) const {
|
||||||
#if defined(HAVE_GLOB_H)
|
#if defined(WIN32_VC)
|
||||||
|
// Use FindFirstFile()/FindNextFile() to walk through the list of
|
||||||
|
// files in a directory.
|
||||||
|
size_t orig_size = contents.size();
|
||||||
|
|
||||||
|
string match;
|
||||||
|
if (empty()) {
|
||||||
|
match = "*.*";
|
||||||
|
} else {
|
||||||
|
match = to_os_specific() + "\\*.*";
|
||||||
|
}
|
||||||
|
WIN32_FIND_DATA find_data;
|
||||||
|
|
||||||
|
HANDLE handle = FindFirstFile(match.c_str(), &find_data);
|
||||||
|
if (handle == INVALID_HANDLE_VALUE) {
|
||||||
|
if (GetLastError() == ERROR_NO_MORE_FILES) {
|
||||||
|
// No matching files is not an error.
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
do {
|
||||||
|
string filename = find_data.cFileName;
|
||||||
|
if (filename != "." && filename != "..") {
|
||||||
|
contents.push_back(filename);
|
||||||
|
}
|
||||||
|
} while (FindNextFile(handle, &find_data));
|
||||||
|
|
||||||
|
bool scan_ok = (GetLastError() == ERROR_NO_MORE_FILES);
|
||||||
|
FindClose(handle);
|
||||||
|
|
||||||
|
sort(contents.begin() + orig_size, contents.end());
|
||||||
|
return scan_ok;
|
||||||
|
|
||||||
|
#elif defined(HAVE_GLOB_H)
|
||||||
// In some cases, particularly with NFS, it seems that opendir()
|
// In some cases, particularly with NFS, it seems that opendir()
|
||||||
// .. readdir() fails to properly read the entire directory ("Value
|
// .. readdir() fails to properly read the entire directory ("Value
|
||||||
// too large for defined data type"), but glob() succeeds.
|
// too large for defined data type"), but glob() succeeds.
|
||||||
@ -1175,10 +1210,12 @@ scan_directory(vector_string &contents) const {
|
|||||||
glob_t globbuf;
|
glob_t globbuf;
|
||||||
|
|
||||||
int r = glob(dirname.c_str(), GLOB_ERR, NULL, &globbuf);
|
int r = glob(dirname.c_str(), GLOB_ERR, NULL, &globbuf);
|
||||||
|
#ifdef GLOB_NOMATCH
|
||||||
if (r != 0 && r != GLOB_NOMATCH) {
|
if (r != 0 && r != GLOB_NOMATCH) {
|
||||||
perror(dirname.c_str());
|
perror(dirname.c_str());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
size_t offset = dirname.size() - 1;
|
size_t offset = dirname.size() - 1;
|
||||||
|
|
||||||
for (int i = 0; globbuf.gl_pathv[i] != NULL; i++) {
|
for (int i = 0; globbuf.gl_pathv[i] != NULL; i++) {
|
||||||
@ -1222,41 +1259,6 @@ scan_directory(vector_string &contents) const {
|
|||||||
sort(contents.begin() + orig_size, contents.end());
|
sort(contents.begin() + orig_size, contents.end());
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
#elif defined(WIN32_VC)
|
|
||||||
// Use FindFirstFile()/FindNextFile() to walk through the list of
|
|
||||||
// files in a directory.
|
|
||||||
size_t orig_size = contents.size();
|
|
||||||
|
|
||||||
string match;
|
|
||||||
if (empty()) {
|
|
||||||
match = "*.*";
|
|
||||||
} else {
|
|
||||||
match = to_os_specific() + "\\*.*";
|
|
||||||
}
|
|
||||||
WIN32_FIND_DATA find_data;
|
|
||||||
|
|
||||||
HANDLE handle = FindFirstFile(match.c_str(), &find_data);
|
|
||||||
if (handle == INVALID_HANDLE_VALUE) {
|
|
||||||
if (GetLastError() == ERROR_NO_MORE_FILES) {
|
|
||||||
// No matching files is not an error.
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
do {
|
|
||||||
string filename = find_data.cFileName;
|
|
||||||
if (filename != "." && filename != "..") {
|
|
||||||
contents.push_back(filename);
|
|
||||||
}
|
|
||||||
} while (FindNextFile(handle, &find_data));
|
|
||||||
|
|
||||||
bool scan_ok = (GetLastError() == ERROR_NO_MORE_FILES);
|
|
||||||
FindClose(handle);
|
|
||||||
|
|
||||||
sort(contents.begin() + orig_size, contents.end());
|
|
||||||
return scan_ok;
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
// Don't know how to scan directories!
|
// Don't know how to scan directories!
|
||||||
return false;
|
return false;
|
||||||
|
@ -28,6 +28,8 @@
|
|||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
#define STRINGIZE(x) #x
|
||||||
|
|
||||||
bool unix_platform = false;
|
bool unix_platform = false;
|
||||||
bool windows_platform = false;
|
bool windows_platform = false;
|
||||||
bool dry_run = false;
|
bool dry_run = false;
|
||||||
@ -71,6 +73,7 @@ usage() {
|
|||||||
|
|
||||||
" -h Display this page.\n"
|
" -h Display this page.\n"
|
||||||
" -V Report the version of ppremake, and exit.\n"
|
" -V Report the version of ppremake, and exit.\n"
|
||||||
|
" -I Report the compiled-in default for INSTALL_DIR, and exit.\n"
|
||||||
" -v Turn on verbose output (may help in debugging .pp files).\n"
|
" -v Turn on verbose output (may help in debugging .pp files).\n"
|
||||||
" -vv Be very verbose (if you're getting desperate).\n"
|
" -vv Be very verbose (if you're getting desperate).\n"
|
||||||
" -P Report the current platform name, and exit.\n\n"
|
" -P Report the current platform name, and exit.\n\n"
|
||||||
@ -103,6 +106,12 @@ report_version() {
|
|||||||
<< ".\n";
|
<< ".\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
report_install_dir() {
|
||||||
|
cerr << "Default value for INSTALL_DIR is "
|
||||||
|
<< STRINGIZE(INSTALL_DIR) << ".\n";
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
report_platform() {
|
report_platform() {
|
||||||
cerr << "ppremake built for default platform " << PLATFORM << ".\n";
|
cerr << "ppremake built for default platform " << PLATFORM << ".\n";
|
||||||
@ -223,7 +232,7 @@ main(int argc, char *argv[]) {
|
|||||||
string progname = argv[0];
|
string progname = argv[0];
|
||||||
extern char *optarg;
|
extern char *optarg;
|
||||||
extern int optind;
|
extern int optind;
|
||||||
const char *optstr = "hVvPD:drnNp:c:s:";
|
const char *optstr = "hVIvPD:drnNp:c:s:";
|
||||||
|
|
||||||
bool any_d = false;
|
bool any_d = false;
|
||||||
bool dependencies_stale = false;
|
bool dependencies_stale = false;
|
||||||
@ -253,6 +262,11 @@ main(int argc, char *argv[]) {
|
|||||||
exit(0);
|
exit(0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'I':
|
||||||
|
report_install_dir();
|
||||||
|
exit(0);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'v':
|
case 'v':
|
||||||
++verbose;
|
++verbose;
|
||||||
break;
|
break;
|
||||||
@ -339,6 +353,7 @@ main(int argc, char *argv[]) {
|
|||||||
global_scope.define_variable("PLATFORM", platform);
|
global_scope.define_variable("PLATFORM", platform);
|
||||||
global_scope.define_variable("PACKAGE_FILENAME", PACKAGE_FILENAME);
|
global_scope.define_variable("PACKAGE_FILENAME", PACKAGE_FILENAME);
|
||||||
global_scope.define_variable("SOURCE_FILENAME", SOURCE_FILENAME);
|
global_scope.define_variable("SOURCE_FILENAME", SOURCE_FILENAME);
|
||||||
|
global_scope.define_variable("INSTALL_DIR", STRINGIZE(INSTALL_DIR));
|
||||||
|
|
||||||
if (got_ppremake_config) {
|
if (got_ppremake_config) {
|
||||||
// If this came in on the command line, define a variable as such.
|
// If this came in on the command line, define a variable as such.
|
||||||
@ -349,8 +364,11 @@ main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
// Also, it's convenient to have a way to represent the literal tab
|
// Also, it's convenient to have a way to represent the literal tab
|
||||||
// character, without actually putting a literal tab character in
|
// character, without actually putting a literal tab character in
|
||||||
// the source file.
|
// the source file. Similarly with some other special characters.
|
||||||
global_scope.define_variable("TAB", "\t");
|
global_scope.define_variable("TAB", "\t");
|
||||||
|
global_scope.define_variable("SPACE", " ");
|
||||||
|
global_scope.define_variable("DOLLAR", "$");
|
||||||
|
global_scope.define_variable("HASH", "#");
|
||||||
|
|
||||||
PPMain ppmain(&global_scope);
|
PPMain ppmain(&global_scope);
|
||||||
if (!ppmain.read_source(".")) {
|
if (!ppmain.read_source(".")) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user