Config.Win64.pp 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. //
  2. // Config.Win64.pp
  3. //
  4. // This file defines some custom config variables for the Windows
  5. // platform, using MS VC++. It makes some initial guesses about
  6. // compiler features, etc.
  7. //
  8. // *******************************************************************
  9. // NOTE: you should not attempt to copy this file verbatim as your own
  10. // personal Config.pp file. Instead, you should start with an empty
  11. // Config.pp file, and add lines to it when you wish to override
  12. // settings given in here. In the normal ppremake system, this file
  13. // will always be read first, and then your personal Config.pp file
  14. // will be read later, which gives you a chance to override the
  15. // default settings found in this file. However, if you start by
  16. // copying the entire file, it will be difficult to tell which
  17. // settings you have customized, and it will be difficult to upgrade
  18. // to a subsequent version of Panda.
  19. // *******************************************************************
  20. // These compiler settings are only used when using USE_COMPILER GCC.
  21. #define CC x86_64-w64-mingw32-gcc
  22. #define CXX x86_64-w64-mingw32-g++
  23. #define AR x86_64-w64-mingw32-ar
  24. #define RANLIB x86_64-w64-mingw32-ranlib $[target]
  25. #define DEBUGFLAGS -g
  26. #define OPTFLAGS -O2
  27. #defer COMPILE_C $[CC] $[CFLAGS_GEN] $[ARCH_FLAGS] -c -o $[target] $[ipath:%=-I%] $[flags] $[source]
  28. #defer COMPILE_C++ $[CXX] $[C++FLAGS_GEN] $[ARCH_FLAGS] -c -o $[target] $[ipath:%=-I%] $[flags] $[source]
  29. #defer CDEFINES_OPT1 $[EXTRA_CDEFS]
  30. #defer CDEFINES_OPT2 $[EXTRA_CDEFS]
  31. #defer CDEFINES_OPT3 $[EXTRA_CDEFS]
  32. #defer CDEFINES_OPT4 $[EXTRA_CDEFS]
  33. #defer CFLAGS_OPT1 $[CDEFINES_OPT1:%=-D%] -Wall $[DEBUGFLAGS]
  34. #defer CFLAGS_OPT2 $[CDEFINES_OPT2:%=-D%] -Wall $[DEBUGFLAGS] $[if $[no_opt],,$[OPTFLAGS]]
  35. #defer CFLAGS_OPT3 $[CDEFINES_OPT3:%=-D%] $[DEBUGFLAGS] $[if $[no_opt],,$[OPTFLAGS]]
  36. #defer CFLAGS_OPT4 $[CDEFINES_OPT4:%=-D%] $[if $[no_opt],,$[OPTFLAGS]]
  37. #defer CFLAGS_SHARED -fPIC
  38. #defer LINK_BIN_C $[cc_ld] $[ARCH_FLAGS] -o $[target] $[sources] $[flags] $[lpath:%=-L%] $[libs:%=-l%]\
  39. $[fpath:%=-Wl,-F%] $[patsubst %,-framework %, $[bin_frameworks]]
  40. #defer LINK_BIN_C++ $[cxx_ld] $[ARCH_FLAGS] \
  41. -o $[target] $[sources]\
  42. $[flags]\
  43. $[lpath:%=-L%] $[libs:%=-l%]\
  44. $[fpath:%=-Wl,-F%] $[patsubst %,-framework %, $[bin_frameworks]]
  45. #defer STATIC_LIB_C $[AR] cru $[target] $[sources]
  46. #defer STATIC_LIB_C++ $[AR] cru $[target] $[sources]
  47. #defer SHARED_LIB_C $[cc_ld] -shared $[LFLAGS] -o $[target] $[sources] $[lpath:%=-L%] $[libs:%=-l%]
  48. #defer SHARED_LIB_C++ $[cxx_ld] -shared $[LFLAGS] -o $[target] $[sources] $[lpath:%=-L%] $[libs:%=-l%]
  49. #defer install_dash_p $[if $[KEEP_TIMESTAMPS],-p,]
  50. #defer INSTALL $[if $[ne $[dir $[local]], ./],cd ./$[dir $[local]] &&] install -m $[INSTALL_UMASK_DATA] $[install_dash_p] $[notdir $[local]] $[dest]/
  51. #defer INSTALL_PROG $[if $[ne $[dir $[local]], ./],cd ./$[dir $[local]] &&] install -m $[INSTALL_UMASK_PROG] $[install_dash_p] $[notdir $[local]] $[dest]/
  52. // What additional flags should we pass to interrogate?
  53. #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
  54. // Additional flags to pass to the Tau instrumentor.
  55. #define TAU_INSTRUMENTOR_FLAGS -DTAU_USE_C_API -DPROFILING_ON -DWIN64_VC -D_WIN32 -D_WIN64 -D__cdecl= -D__stdcall= -D__fastcall= -D__i386 -D_MSC_VER=1310 -D_W64= -D_INTEGRAL_MAX_BITS=64 --exceptions --late_tiebreaker --no_class_name_injection --no_warnings --restrict --microsoft --new_for_init
  56. // Is the platform big-endian (like an SGI workstation) or
  57. // little-endian (like a PC)? Define this to the empty string to
  58. // indicate little-endian, or nonempty to indicate big-endian.
  59. #define WORDS_BIGENDIAN
  60. // Does the C++ compiler support namespaces?
  61. #define HAVE_NAMESPACE 1
  62. // Does the C++ compiler support ios::binary?
  63. #define HAVE_IOS_BINARY 1
  64. // How about the typename keyword?
  65. #define HAVE_TYPENAME 1
  66. // Will the compiler avoid inserting extra bytes in structs between a
  67. // base struct and its derived structs? It is safe to define this
  68. // false if you don't know, but if you know that you can get away with
  69. // this you may gain a tiny performance gain by defining this true.
  70. // If you define this true incorrectly, you will get lots of
  71. // assertion failures on execution.
  72. #define SIMPLE_STRUCT_POINTERS 1
  73. // Does gettimeofday() take only one parameter?
  74. #define GETTIMEOFDAY_ONE_PARAM
  75. // Do we have getopt() and/or getopt_long_only() built into the
  76. // system?
  77. #define HAVE_GETOPT
  78. #define HAVE_GETOPT_LONG_ONLY
  79. // Are the above getopt() functions defined in getopt.h, or somewhere else?
  80. #define PHAVE_GETOPT_H
  81. // Can we determine the terminal width by making an ioctl(TIOCGWINSZ) call?
  82. #define IOCTL_TERMINAL_WIDTH
  83. // Do the system headers define a "streamsize" typedef? How about the
  84. // ios::binary enumerated value? And other ios typedef symbols like
  85. // ios::openmode and ios::fmtflags?
  86. #define HAVE_STREAMSIZE 1
  87. #define HAVE_IOS_BINARY 1
  88. #define HAVE_IOS_TYPEDEFS 1
  89. // Can we safely call getenv() at static init time?
  90. #define STATIC_INIT_GETENV 1
  91. // Can we read the file /proc/self/* to determine our
  92. // environment variables at static init time?
  93. #define HAVE_PROC_SELF_EXE
  94. #define HAVE_PROC_SELF_MAPS
  95. #define HAVE_PROC_SELF_ENVIRON
  96. #define HAVE_PROC_SELF_CMDLINE
  97. // Do we have a global pair of argc/argv variables that we can read at
  98. // static init time? Should we prototype them? What are they called?
  99. #define HAVE_GLOBAL_ARGV 1
  100. #define PROTOTYPE_GLOBAL_ARGV
  101. #define GLOBAL_ARGV __argv
  102. #define GLOBAL_ARGC __argc
  103. // Should we include <iostream> or <iostream.h>? Define PHAVE_IOSTREAM
  104. // to nonempty if we should use <iostream>, or empty if we should use
  105. // <iostream.h>.
  106. #define PHAVE_IOSTREAM 1
  107. // Do we have a true stringstream class defined in <sstream>?
  108. #define PHAVE_SSTREAM 1
  109. // Does fstream::open() require a third parameter, specifying the
  110. // umask?
  111. #define HAVE_OPEN_MASK
  112. // Do we have the lockf() function available?
  113. #define HAVE_LOCKF 1
  114. // Do the compiler or system libraries define wchar_t for you?
  115. #define HAVE_WCHAR_T 1
  116. // Does <string> define the typedef wstring? Most do, but for some
  117. // reason, versions of gcc before 3.0 didn't do this.
  118. #define HAVE_WSTRING 1
  119. // Do we have <new>?
  120. #define PHAVE_NEW 1
  121. // Do we have <io.h>?
  122. #define PHAVE_IO_H 1
  123. // Do we have <malloc.h>?
  124. #define PHAVE_MALLOC_H 1
  125. // Do we have <alloca.h>?
  126. #define PHAVE_ALLOCA_H
  127. // Do we have <locale.h>?
  128. #define PHAVE_LOCALE_H
  129. // Do we have <string.h>?
  130. #define PHAVE_STRING_H 1
  131. // Do we have <stdlib.h>?
  132. #define PHAVE_STDLIB_H
  133. // Do we have <limits.h>?
  134. #define PHAVE_LIMITS_H
  135. // Do we have <minmax.h>?
  136. #define PHAVE_MINMAX_H 1
  137. // Do we have <sys/types.h>?
  138. #define PHAVE_SYS_TYPES_H 1
  139. #define PHAVE_SYS_TIME_H
  140. // Do we have <unistd.h>?
  141. #define PHAVE_UNISTD_H
  142. // Do we have <utime.h>?
  143. #define PHAVE_UTIME_H
  144. // Do we have <dirent.h>?
  145. #define PHAVE_DIRENT_H
  146. // Do we have <sys/soundcard.h> (and presumably a Linux-style audio
  147. // interface)?
  148. #define PHAVE_SYS_SOUNDCARD_H
  149. // Do we have <ucontext.h> (and therefore makecontext() / swapcontext())?
  150. #define PHAVE_UCONTEXT_H
  151. // Do we have RTTI (and <typeinfo>)?
  152. #define HAVE_RTTI 1
  153. // Do we have <stdint.h>?
  154. #define PHAVE_STDINT_H
  155. // can Intel C++ build this directory successfully (if not, change CC to msvc)
  156. #define NOT_INTEL_BUILDABLE false
  157. // The dynamic library file extension (usually .so .dll or .dylib):
  158. #define DYNAMIC_LIB_EXT .dll
  159. #define STATIC_LIB_EXT .lib
  160. #define BUNDLE_EXT