Browse Source

Build Panda in Cygwin with MinGW

rdb 11 years ago
parent
commit
d3df1035e6

+ 42 - 0
dtool/Config.Win32.pp

@@ -19,6 +19,48 @@
 // to a subsequent version of Panda.
 // to a subsequent version of Panda.
 // *******************************************************************
 // *******************************************************************
 
 
+// These compiler settings are only used when using USE_COMPILER GCC.
+#define CC i686-w64-mingw32-gcc
+#define CXX i686-w64-mingw32-g++
+#define AR i686-w64-mingw32-ar
+#define RANLIB i686-w64-mingw32-ranlib $[target]
+
+#define DEBUGFLAGS -g
+#define OPTFLAGS -O2
+
+#defer COMPILE_C $[CC] $[CFLAGS_GEN] $[ARCH_FLAGS] -c -o $[target] $[ipath:%=-I%] $[flags] $[source]
+#defer COMPILE_C++ $[CXX] $[C++FLAGS_GEN] $[ARCH_FLAGS] -c -o $[target] $[ipath:%=-I%] $[flags] $[source]
+
+#defer CDEFINES_OPT1 $[EXTRA_CDEFS]
+#defer CDEFINES_OPT2 $[EXTRA_CDEFS]
+#defer CDEFINES_OPT3 $[EXTRA_CDEFS]
+#defer CDEFINES_OPT4 $[EXTRA_CDEFS]
+
+#defer CFLAGS_OPT1 $[CDEFINES_OPT1:%=-D%] -Wall $[DEBUGFLAGS]
+#defer CFLAGS_OPT2 $[CDEFINES_OPT2:%=-D%] -Wall $[DEBUGFLAGS] $[if $[no_opt],,$[OPTFLAGS]]
+#defer CFLAGS_OPT3 $[CDEFINES_OPT3:%=-D%] $[DEBUGFLAGS] $[if $[no_opt],,$[OPTFLAGS]]
+#defer CFLAGS_OPT4 $[CDEFINES_OPT4:%=-D%] $[if $[no_opt],,$[OPTFLAGS]]
+
+#defer CFLAGS_SHARED -fPIC
+
+#defer LINK_BIN_C $[cc_ld] $[ARCH_FLAGS] -o $[target] $[sources] $[flags] $[lpath:%=-L%] $[libs:%=-l%]\
+ $[fpath:%=-Wl,-F%] $[patsubst %,-framework %, $[bin_frameworks]]
+#defer LINK_BIN_C++ $[cxx_ld] $[ARCH_FLAGS] \
+ -o $[target] $[sources]\
+ $[flags]\
+ $[lpath:%=-L%] $[libs:%=-l%]\
+ $[fpath:%=-Wl,-F%] $[patsubst %,-framework %, $[bin_frameworks]]
+
+#defer STATIC_LIB_C $[AR] cru $[target] $[sources]
+#defer STATIC_LIB_C++ $[AR] cru $[target] $[sources]
+
+#defer SHARED_LIB_C $[cc_ld] -shared $[LFLAGS] -o $[target] $[sources] $[lpath:%=-L%] $[libs:%=-l%]
+#defer SHARED_LIB_C++ $[cxx_ld] -shared $[LFLAGS] -o $[target] $[sources] $[lpath:%=-L%] $[libs:%=-l%]
+
+#defer install_dash_p $[if $[KEEP_TIMESTAMPS],-p,]
+#defer INSTALL $[if $[ne $[dir $[local]], ./],cd ./$[dir $[local]] &&] install -m $[INSTALL_UMASK_DATA] $[install_dash_p] $[notdir $[local]] $[dest]/
+#defer INSTALL_PROG $[if $[ne $[dir $[local]], ./],cd ./$[dir $[local]] &&] install -m $[INSTALL_UMASK_PROG] $[install_dash_p] $[notdir $[local]] $[dest]/
+
 // What additional flags should we pass to interrogate?
 // What additional flags should we pass to interrogate?
 #define SYSTEM_IGATE_FLAGS -longlong __int64 -D_X86_ -DWIN32_VC -D"_declspec(param)=" -D"__declspec(param)=" -D_near  -D_far -D__near  -D__far -D_WIN32 -D__stdcall -Dvolatile -Dmutable -DWIN32
 #define SYSTEM_IGATE_FLAGS -longlong __int64 -D_X86_ -DWIN32_VC -D"_declspec(param)=" -D"__declspec(param)=" -D_near  -D_far -D__near  -D__far -D_WIN32 -D__stdcall -Dvolatile -Dmutable -DWIN32
 
 

+ 42 - 0
dtool/Config.Win64.pp

@@ -19,6 +19,48 @@
 // to a subsequent version of Panda.
 // to a subsequent version of Panda.
 // *******************************************************************
 // *******************************************************************
 
 
+// These compiler settings are only used when using USE_COMPILER GCC.
+#define CC x86_64-w64-mingw32-gcc
+#define CXX x86_64-w64-mingw32-g++
+#define AR x86_64-w64-mingw32-ar
+#define RANLIB x86_64-w64-mingw32-ranlib $[target]
+
+#define DEBUGFLAGS -g
+#define OPTFLAGS -O2
+
+#defer COMPILE_C $[CC] $[CFLAGS_GEN] $[ARCH_FLAGS] -c -o $[target] $[ipath:%=-I%] $[flags] $[source]
+#defer COMPILE_C++ $[CXX] $[C++FLAGS_GEN] $[ARCH_FLAGS] -c -o $[target] $[ipath:%=-I%] $[flags] $[source]
+
+#defer CDEFINES_OPT1 $[EXTRA_CDEFS]
+#defer CDEFINES_OPT2 $[EXTRA_CDEFS]
+#defer CDEFINES_OPT3 $[EXTRA_CDEFS]
+#defer CDEFINES_OPT4 $[EXTRA_CDEFS]
+
+#defer CFLAGS_OPT1 $[CDEFINES_OPT1:%=-D%] -Wall $[DEBUGFLAGS]
+#defer CFLAGS_OPT2 $[CDEFINES_OPT2:%=-D%] -Wall $[DEBUGFLAGS] $[if $[no_opt],,$[OPTFLAGS]]
+#defer CFLAGS_OPT3 $[CDEFINES_OPT3:%=-D%] $[DEBUGFLAGS] $[if $[no_opt],,$[OPTFLAGS]]
+#defer CFLAGS_OPT4 $[CDEFINES_OPT4:%=-D%] $[if $[no_opt],,$[OPTFLAGS]]
+
+#defer CFLAGS_SHARED -fPIC
+
+#defer LINK_BIN_C $[cc_ld] $[ARCH_FLAGS] -o $[target] $[sources] $[flags] $[lpath:%=-L%] $[libs:%=-l%]\
+ $[fpath:%=-Wl,-F%] $[patsubst %,-framework %, $[bin_frameworks]]
+#defer LINK_BIN_C++ $[cxx_ld] $[ARCH_FLAGS] \
+ -o $[target] $[sources]\
+ $[flags]\
+ $[lpath:%=-L%] $[libs:%=-l%]\
+ $[fpath:%=-Wl,-F%] $[patsubst %,-framework %, $[bin_frameworks]]
+
+#defer STATIC_LIB_C $[AR] cru $[target] $[sources]
+#defer STATIC_LIB_C++ $[AR] cru $[target] $[sources]
+
+#defer SHARED_LIB_C $[cc_ld] -shared $[LFLAGS] -o $[target] $[sources] $[lpath:%=-L%] $[libs:%=-l%]
+#defer SHARED_LIB_C++ $[cxx_ld] -shared $[LFLAGS] -o $[target] $[sources] $[lpath:%=-L%] $[libs:%=-l%]
+
+#defer install_dash_p $[if $[KEEP_TIMESTAMPS],-p,]
+#defer INSTALL $[if $[ne $[dir $[local]], ./],cd ./$[dir $[local]] &&] install -m $[INSTALL_UMASK_DATA] $[install_dash_p] $[notdir $[local]] $[dest]/
+#defer INSTALL_PROG $[if $[ne $[dir $[local]], ./],cd ./$[dir $[local]] &&] install -m $[INSTALL_UMASK_PROG] $[install_dash_p] $[notdir $[local]] $[dest]/
+
 // What additional flags should we pass to interrogate?
 // What additional flags should we pass to interrogate?
 #define SYSTEM_IGATE_FLAGS -longlong __int64 -D_X64_ -DWIN64_VC -D"_declspec(param)=" -D"__declspec(param)=" -D_near  -D_far -D__near  -D__far -D_WIN32 -D_WIN64 -D__stdcall -Dvolatile -Dmutable -DWIN64
 #define SYSTEM_IGATE_FLAGS -longlong __int64 -D_X64_ -DWIN64_VC -D"_declspec(param)=" -D"__declspec(param)=" -D_near  -D_far -D__near  -D__far -D_WIN32 -D_WIN64 -D__stdcall -Dvolatile -Dmutable -DWIN64
 
 

+ 4 - 4
dtool/src/cppparser/cppExpression.cxx

@@ -89,7 +89,7 @@ as_integer() const {
 
 
   case RT_pointer:
   case RT_pointer:
     // We don't mind if this loses precision.
     // We don't mind if this loses precision.
-    return (int)reinterpret_cast<long>(_u._pointer);
+    return (int)reinterpret_cast<intptr_t>(_u._pointer);
 
 
   default:
   default:
     cerr << "Invalid type\n";
     cerr << "Invalid type\n";
@@ -114,7 +114,7 @@ as_real() const {
 
 
   case RT_pointer:
   case RT_pointer:
     // We don't mind if this loses precision.
     // We don't mind if this loses precision.
-    return (double)reinterpret_cast<long>(_u._pointer);
+    return (double)reinterpret_cast<intptr_t>(_u._pointer);
 
 
   default:
   default:
     cerr << "Invalid type\n";
     cerr << "Invalid type\n";
@@ -132,10 +132,10 @@ void *CPPExpression::Result::
 as_pointer() const {
 as_pointer() const {
   switch (_type) {
   switch (_type) {
   case RT_integer:
   case RT_integer:
-    return reinterpret_cast<void*>((long)_u._integer);
+    return reinterpret_cast<void*>((intptr_t)_u._integer);
 
 
   case RT_real:
   case RT_real:
-    return reinterpret_cast<void*>((long)_u._real);
+    return reinterpret_cast<void*>((intptr_t)_u._real);
 
 
   case RT_pointer:
   case RT_pointer:
     return _u._pointer;
     return _u._pointer;

+ 1 - 1
dtool/src/dtoolbase/stl_compares.I

@@ -132,7 +132,7 @@ add_hash(size_t hash, const Key &key) {
 INLINE size_t pointer_hash::
 INLINE size_t pointer_hash::
 add_hash(size_t hash, const void *key) {
 add_hash(size_t hash, const void *key) {
   // We don't mind if this loses precision.
   // We don't mind if this loses precision.
-  PN_uint32 key32 = (PN_uint32)reinterpret_cast<unsigned long>(key);
+  PN_uint32 key32 = (PN_uint32)(reinterpret_cast<uintptr_t>(key));
   return AddHash::add_hash(hash, &key32, 1);
   return AddHash::add_hash(hash, &key32, 1);
 }
 }
 
 

+ 2 - 2
dtool/src/interrogatedb/dtool_super_base.cxx

@@ -15,7 +15,7 @@
 #include "py_panda.h"
 #include "py_panda.h"
 
 
 #ifdef HAVE_PYTHON
 #ifdef HAVE_PYTHON
-  
+
 class EmptyClass {
 class EmptyClass {
 };
 };
 Define_Module_Class_Private(dtoolconfig, DTOOL_SUPER_BASE, EmptyClass, DTOOL_SUPER_BASE111);
 Define_Module_Class_Private(dtoolconfig, DTOOL_SUPER_BASE, EmptyClass, DTOOL_SUPER_BASE111);
@@ -35,7 +35,7 @@ static Py_hash_t DTool_HashKey_Methods_DTOOL_SUPER_BASE(PyObject *self) {
   if (local_this == NULL) {
   if (local_this == NULL) {
     return -1;
     return -1;
   }
   }
-  return (Py_hash_t) local_this;
+  return (Py_hash_t)(intptr_t)local_this;
 };
 };
 
 
 inline void Dtool_PyModuleClassInit_DTOOL_SUPER_BASE(PyObject *module) {
 inline void Dtool_PyModuleClassInit_DTOOL_SUPER_BASE(PyObject *module) {

+ 1 - 1
panda/src/express/checksumHashGenerator.I

@@ -68,5 +68,5 @@ add_fp(double number, double threshold) {
 ////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////
 INLINE void ChecksumHashGenerator::
 INLINE void ChecksumHashGenerator::
 add_pointer(void *ptr) {
 add_pointer(void *ptr) {
-  add_int((long)ptr);
+  add_int((intptr_t)ptr);
 }
 }