mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
compile in default INSTALL_DIR
This commit is contained in:
parent
b65a5d1886
commit
da06477f27
@ -76,13 +76,19 @@
|
||||
#endif
|
||||
|
||||
// What is the default install directory for all trees in the Panda
|
||||
// suite? You may also override this for a particular tree by
|
||||
// defining a 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
|
||||
// suite? The default value for this variable is provided by
|
||||
// ppremake; on Unix machines it is the value of --prefix passed in to
|
||||
// the configure script, and on Windows machines the default is
|
||||
// hardcoded to C:\Panda3d.
|
||||
|
||||
// You may also override this for a particular tree by defining a
|
||||
// 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
|
||||
// the following define useful (but you should put in the correct path
|
||||
|
@ -80,7 +80,16 @@
|
||||
#set PPREMAKE_CONFIG $[unixfilename $[PPREMAKE_CONFIG]]
|
||||
#print Reading $[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
|
||||
// Otherwise, just carry on without it.
|
||||
#print Environment variable PPREMAKE_CONFIG not set; using defaults.
|
||||
#endif
|
||||
|
||||
|
@ -79,9 +79,12 @@
|
||||
/* Name of package */
|
||||
#define PACKAGE "ppremake"
|
||||
|
||||
/* The default value of INSTALL_DIR within ppremake. */
|
||||
#define INSTALL_DIR C:\\Panda3d
|
||||
|
||||
/**************** UPDATE VERSION NUMBER HERE ****************
|
||||
** Also be sure to change the version number **
|
||||
** at the beginning of configure.in. **
|
||||
**************** ****************/
|
||||
#define VERSION "1.13"
|
||||
#define VERSION "1.14"
|
||||
/**************** UPDATE VERSION NUMBER HERE ****************/
|
||||
|
@ -5,7 +5,7 @@ dnl **************** UPDATE VERSION NUMBER HERE ****************
|
||||
dnl ** Also be sure to change the version number **
|
||||
dnl ** at the end of config_msvc.h. **
|
||||
dnl **************** ****************
|
||||
AM_INIT_AUTOMAKE(ppremake, 1.13)
|
||||
AM_INIT_AUTOMAKE(ppremake, 1.14)
|
||||
dnl **************** UPDATE VERSION NUMBER HERE ****************
|
||||
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
@ -20,6 +20,7 @@ AC_CANONICAL_HOST
|
||||
if test "${CXXFLAGS+set}" != set -a "${CFLAGS+set}" = set; then
|
||||
CXXFLAGS=$CFLAGS
|
||||
fi
|
||||
CPPFLAGS="${CPPFLAGS} -DINSTALL_DIR="'$(prefix)'
|
||||
|
||||
# Save these variables for later, so we can easily append to them or
|
||||
# change them.
|
||||
@ -84,5 +85,4 @@ AC_DEFINE_UNQUOTED(PLATFORM, "$PLATFORM",
|
||||
[The platform ppremake is compiled for. This primarily controls the
|
||||
initial setting of the PLATFORM ppremake variable.])
|
||||
|
||||
|
||||
AC_OUTPUT(Makefile)
|
||||
|
@ -1159,7 +1159,42 @@ find_on_searchpath(const DSearchPath &searchpath) {
|
||||
////////////////////////////////////////////////////////////////////
|
||||
bool Filename::
|
||||
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()
|
||||
// .. readdir() fails to properly read the entire directory ("Value
|
||||
// too large for defined data type"), but glob() succeeds.
|
||||
@ -1175,10 +1210,12 @@ scan_directory(vector_string &contents) const {
|
||||
glob_t globbuf;
|
||||
|
||||
int r = glob(dirname.c_str(), GLOB_ERR, NULL, &globbuf);
|
||||
#ifdef GLOB_NOMATCH
|
||||
if (r != 0 && r != GLOB_NOMATCH) {
|
||||
perror(dirname.c_str());
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
size_t offset = dirname.size() - 1;
|
||||
|
||||
for (int i = 0; globbuf.gl_pathv[i] != NULL; i++) {
|
||||
@ -1221,41 +1258,6 @@ scan_directory(vector_string &contents) const {
|
||||
|
||||
sort(contents.begin() + orig_size, contents.end());
|
||||
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
|
||||
// Don't know how to scan directories!
|
||||
|
@ -28,6 +28,8 @@
|
||||
#include <sys/stat.h>
|
||||
#include <assert.h>
|
||||
|
||||
#define STRINGIZE(x) #x
|
||||
|
||||
bool unix_platform = false;
|
||||
bool windows_platform = false;
|
||||
bool dry_run = false;
|
||||
@ -71,6 +73,7 @@ usage() {
|
||||
|
||||
" -h Display this page.\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"
|
||||
" -vv Be very verbose (if you're getting desperate).\n"
|
||||
" -P Report the current platform name, and exit.\n\n"
|
||||
@ -103,6 +106,12 @@ report_version() {
|
||||
<< ".\n";
|
||||
}
|
||||
|
||||
static void
|
||||
report_install_dir() {
|
||||
cerr << "Default value for INSTALL_DIR is "
|
||||
<< STRINGIZE(INSTALL_DIR) << ".\n";
|
||||
}
|
||||
|
||||
static void
|
||||
report_platform() {
|
||||
cerr << "ppremake built for default platform " << PLATFORM << ".\n";
|
||||
@ -223,7 +232,7 @@ main(int argc, char *argv[]) {
|
||||
string progname = argv[0];
|
||||
extern char *optarg;
|
||||
extern int optind;
|
||||
const char *optstr = "hVvPD:drnNp:c:s:";
|
||||
const char *optstr = "hVIvPD:drnNp:c:s:";
|
||||
|
||||
bool any_d = false;
|
||||
bool dependencies_stale = false;
|
||||
@ -253,6 +262,11 @@ main(int argc, char *argv[]) {
|
||||
exit(0);
|
||||
break;
|
||||
|
||||
case 'I':
|
||||
report_install_dir();
|
||||
exit(0);
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
++verbose;
|
||||
break;
|
||||
@ -339,6 +353,7 @@ main(int argc, char *argv[]) {
|
||||
global_scope.define_variable("PLATFORM", platform);
|
||||
global_scope.define_variable("PACKAGE_FILENAME", PACKAGE_FILENAME);
|
||||
global_scope.define_variable("SOURCE_FILENAME", SOURCE_FILENAME);
|
||||
global_scope.define_variable("INSTALL_DIR", STRINGIZE(INSTALL_DIR));
|
||||
|
||||
if (got_ppremake_config) {
|
||||
// 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
|
||||
// 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("SPACE", " ");
|
||||
global_scope.define_variable("DOLLAR", "$");
|
||||
global_scope.define_variable("HASH", "#");
|
||||
|
||||
PPMain ppmain(&global_scope);
|
||||
if (!ppmain.read_source(".")) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user