Prechádzať zdrojové kódy

Build fixes for new code

Josh Yelon 19 rokov pred
rodič
commit
882dbb172f
3 zmenil súbory, kde vykonal 102 pridanie a 148 odobranie
  1. 101 58
      doc/makepanda/makepanda.py
  2. 0 89
      doc/makepanda/maketarball.py
  3. 1 1
      dtool/PandaVersion.pp

+ 101 - 58
doc/makepanda/makepanda.py

@@ -1395,7 +1395,7 @@ def CompileLinkLINUX(wdll, obj, wobj, opts, dll, ldef):
     if (PkgSelected(opts,"NVIDIACG")):
         cmd = cmd + ' -Lthirdparty/nvidiacg/lib '
         if (opts.count("CGGL")):  cmd = cmd + " -lCgGL"
-        cmd = cmd + " -lCg"
+        cmd = cmd + " -lCg "
     if (PkgSelected(opts,"FFMPEG")):   cmd = cmd + ' -L' + THIRDPARTYLIBS + 'ffmpeg/lib -lavformat -lavcodec -lavformat -lavutil'
     if (PkgSelected(opts,"ZLIB")):     cmd = cmd + " -lz"
     if (PkgSelected(opts,"PNG")):      cmd = cmd + " -lpng"
@@ -1406,6 +1406,7 @@ def CompileLinkLINUX(wdll, obj, wobj, opts, dll, ldef):
     if (PkgSelected(opts,"VRPN")):     cmd = cmd + ' -L' + THIRDPARTYLIBS + 'vrpn/lib -lvrpn -lquat'
     if (PkgSelected(opts,"FFTW")):     cmd = cmd + ' -L' + THIRDPARTYLIBS + 'fftw/lib -lrfftw -lfftw'
     if (opts.count("GLUT")):           cmd = cmd + " -lGL -lGLU"
+    cmd = cmd + " -lpthread"
     oscmd(cmd)
 
 def EnqueueLink(dll=0, obj=[], opts=[], xdep=[], ldef=0):
@@ -2767,30 +2768,30 @@ EnqueueIgate(ipath=IPATH, opts=OPTS, outd='libdistort.in', obj='libdistort_igate
 
 if OMIT.count("OPENSSL")==0:
     IPATH=['panda/src/downloadertools']
-    OPTS=['OPENSSL', 'ZLIB']
+    OPTS=['OPENSSL', 'ZLIB', 'ADVAPI']
     LIBS=['libpandaexpress.dll', 'libpanda.dll', 'libp3dtoolconfig.dll', 'libp3dtool.dll', 'libp3pystub.dll']
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='apply_patch.cxx', obj='apply_patch_apply_patch.obj')
-    EnqueueLink(dll='apply_patch.exe', opts=['ADVAPI'], obj=['apply_patch_apply_patch.obj']+LIBS)
+    EnqueueLink(dll='apply_patch.exe', opts=OPTS, obj=['apply_patch_apply_patch.obj']+LIBS)
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='build_patch.cxx', obj='build_patch_build_patch.obj')
-    EnqueueLink(dll='build_patch.exe', opts=['ADVAPI'], obj=['build_patch_build_patch.obj']+LIBS)
+    EnqueueLink(dll='build_patch.exe', opts=OPTS, obj=['build_patch_build_patch.obj']+LIBS)
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='check_adler.cxx', obj='check_adler_check_adler.obj')
-    EnqueueLink(dll='check_adler.exe', opts=['ADVAPI',  'ZLIB'], obj=['check_adler_check_adler.obj']+LIBS)
+    EnqueueLink(dll='check_adler.exe', opts=OPTS, obj=['check_adler_check_adler.obj']+LIBS)
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='check_crc.cxx', obj='check_crc_check_crc.obj')
-    EnqueueLink(dll='check_crc.exe', opts=['ADVAPI',  'ZLIB'], obj=['check_crc_check_crc.obj']+LIBS)
+    EnqueueLink(dll='check_crc.exe', opts=OPTS, obj=['check_crc_check_crc.obj']+LIBS)
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='check_md5.cxx', obj='check_md5_check_md5.obj')
-    EnqueueLink(dll='check_md5.exe', opts=['ADVAPI',  'OPENSSL'], obj=['check_md5_check_md5.obj']+LIBS)
+    EnqueueLink(dll='check_md5.exe', opts=OPTS, obj=['check_md5_check_md5.obj']+LIBS)
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='multify.cxx', obj='multify_multify.obj')
-    EnqueueLink(dll='multify.exe', opts=['ADVAPI'], obj=['multify_multify.obj']+LIBS)
+    EnqueueLink(dll='multify.exe', opts=OPTS, obj=['multify_multify.obj']+LIBS)
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='pzip.cxx', obj='pzip_pzip.obj')
-    EnqueueLink(dll='pzip.exe', opts=['ADVAPI',  'ZLIB'], obj=['pzip_pzip.obj']+LIBS)
+    EnqueueLink(dll='pzip.exe', opts=OPTS, obj=['pzip_pzip.obj']+LIBS)
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='punzip.cxx', obj='punzip_punzip.obj')
-    EnqueueLink(dll='punzip.exe', opts=['ADVAPI',  'ZLIB'], obj=['punzip_punzip.obj']+LIBS)
+    EnqueueLink(dll='punzip.exe', opts=OPTS, obj=['punzip_punzip.obj']+LIBS)
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='pdecrypt.cxx', obj='pdecrypt_pdecrypt.obj')
-    EnqueueLink(dll='pdecrypt.exe', opts=['ADVAPI',  'OPENSSL'], obj=['pdecrypt_pdecrypt.obj']+LIBS)
+    EnqueueLink(dll='pdecrypt.exe', opts=OPTS, obj=['pdecrypt_pdecrypt.obj']+LIBS)
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='pencrypt.cxx', obj='pencrypt_pencrypt.obj')
-    EnqueueLink(dll='pencrypt.exe', opts=['ADVAPI',  'OPENSSL'], obj=['pencrypt_pencrypt.obj']+LIBS)
+    EnqueueLink(dll='pencrypt.exe', opts=OPTS, obj=['pencrypt_pencrypt.obj']+LIBS)
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='show_ddb.cxx', obj='show_ddb_show_ddb.obj')
-    EnqueueLink(dll='show_ddb.exe', opts=['ADVAPI'], obj=['show_ddb_show_ddb.obj']+LIBS)
+    EnqueueLink(dll='show_ddb.exe', opts=OPTS, obj=['show_ddb_show_ddb.obj']+LIBS)
 
 #
 # DIRECTORY: panda/src/windisplay/
@@ -3044,7 +3045,7 @@ EnqueueLink(dll='libpandaeggstripped.dll', opts=['ADVAPI'], obj=[
 
 if (sys.platform != "win32"):
     IPATH=['panda/src/mesadisplay', 'panda/src/glstuff']
-    OPTS=['BUILDING_PANDAGLUT',  'GLUT']
+    OPTS=['BUILDING_PANDAGLUT', 'NVIDIACG', 'GLUT']
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='mesadisplay_composite.cxx', obj='mesadisplay_composite.obj')
     IPATH=['panda/metalibs/pandagl']
     EnqueueLink(opts=['GLUT'], dll='libpandamesa.dll', obj=[
@@ -3292,9 +3293,9 @@ if (OMIT.count("PYTHON")==0):
 
 if (OMIT.count("PYTHON")==0):
     IPATH=['direct/src/dcparse', 'direct/src/dcparser']
-    OPTS=['WITHINPANDA']
+    OPTS=['WITHINPANDA', 'ADVAPI']
     EnqueueCxx(ipath=IPATH, opts=OPTS, src='dcparse.cxx', obj='dcparse_dcparse.obj')
-    EnqueueLink(dll='dcparse.exe', opts=['ADVAPI'], obj=[
+    EnqueueLink(dll='dcparse.exe', opts=OPTS, obj=[
                  'dcparse_dcparse.obj',
                  'libp3direct.dll',
                  'libpandaexpress.dll',
@@ -4677,8 +4678,8 @@ def MakeInstallerNSIS(file,fullname,smdirectory,installdir):
     oscmd( cmd)
     os.rename("nsis-output.exe", file)
 
-def MakeInstallerDPKG(file):
-    DEB="""
+
+INSTALLER_DEB_FILE="""
 Package: panda3d
 Version: VERSION
 Section: libdevel
@@ -4690,55 +4691,97 @@ Provides: panda3d
 Maintainer: [email protected]
 Description: The panda3D free 3D engine
 """
+
+INSTALLER_SPEC_FILE="""
+Summary: Panda 3D Engine
+Name: panda3d
+Version: VERSION
+Release: 1
+License: Panda3D License
+Group: Development/Libraries
+BuildRoot: linuxroot
+%description
+The Panda3D engine.
+%prep
+%setup -q
+%build
+true
+%install
+true
+%post
+/sbin/ldconfig
+%postun
+/sbin/ldconfig
+%clean
+true
+%files
+%defattr(-,root,root)
+/etc/Confauto.prc
+/etc/Config.prc
+/usr/share/panda3d
+/etc/ld.so.conf.d/panda3d.conf
+/usr/bin
+/usr/lib
+/usr/include/panda3d
+"""
+
+
+def MakeInstallerLinux():
     import compileall
     PYTHONV=os.path.basename(PYTHONSDK)
-    if (os.path.isdir("debtmp")): oscmd( "chmod -R 755 debtmp")
-    oscmd("rm -rf debtmp data.tar.gz control.tar.gz ")
-    oscmd("mkdir -p debtmp/usr/bin")
-    oscmd("mkdir -p debtmp/usr/include")
-    oscmd("mkdir -p debtmp/usr/share/panda3d")
-    oscmd("mkdir -p debtmp/usr/lib/"+PYTHONV+"/lib-dynload")
-    oscmd("mkdir -p debtmp/usr/lib/"+PYTHONV+"/site-packages")
-    oscmd("mkdir -p debtmp/etc")
-    oscmd("mkdir -p debtmp/DEBIAN")
-    oscmd("sed -e 's@$THIS_PRC_DIR/[.][.]@/usr/share/panda3d@' < built/etc/Config.prc > debtmp/etc/Config.prc")
-    oscmd("cp built/etc/Confauto.prc  debtmp/etc/Confauto.prc")
-    oscmd("cp --recursive built/include debtmp/usr/include/panda3d")
-    oscmd("cp --recursive direct        debtmp/usr/share/panda3d/direct")
-    oscmd("cp --recursive built/pandac  debtmp/usr/share/panda3d/pandac")
-    oscmd("cp --recursive built/Pmw     debtmp/usr/share/panda3d/Pmw")
-    oscmd("cp built/direct/__init__.py  debtmp/usr/share/panda3d/direct/__init__.py")
-    oscmd("cp --recursive SceneEditor   debtmp/usr/share/panda3d/SceneEditor")
-    oscmd("cp --recursive built/models  debtmp/usr/share/panda3d/models")
-    oscmd("cp --recursive samples       debtmp/usr/share/panda3d/samples")
-    oscmd("cp doc/LICENSE               debtmp/usr/share/panda3d/LICENSE")
-    oscmd("cp doc/LICENSE               debtmp/usr/include/panda3d/LICENSE")
-    oscmd("cp doc/ReleaseNotes          debtmp/usr/share/panda3d/ReleaseNotes")
-    oscmd("echo '/usr/share/panda3d' >  debtmp/usr/lib/"+PYTHONV+"/site-packages/panda3d.pth")
-    oscmd("cp built/bin/*               debtmp/usr/bin/")
+    if (os.path.isdir("linuxroot")): oscmd("chmod -R 755 linuxroot")
+    oscmd("rm -rf linuxroot data.tar.gz control.tar.gz ")
+    oscmd("mkdir -p linuxroot/usr/bin")
+    oscmd("mkdir -p linuxroot/usr/include")
+    oscmd("mkdir -p linuxroot/usr/share/panda3d")
+    oscmd("mkdir -p linuxroot/usr/lib/"+PYTHONV+"/lib-dynload")
+    oscmd("mkdir -p linuxroot/usr/lib/"+PYTHONV+"/site-packages")
+    oscmd("mkdir -p linuxroot/etc")
+    oscmd("sed -e 's@$THIS_PRC_DIR/[.][.]@/usr/share/panda3d@' < built/etc/Config.prc > linuxroot/etc/Config.prc")
+    oscmd("cp built/etc/Confauto.prc  linuxroot/etc/Confauto.prc")
+    oscmd("cp --recursive built/include linuxroot/usr/include/panda3d")
+    oscmd("cp --recursive direct        linuxroot/usr/share/panda3d/direct")
+    oscmd("cp --recursive built/pandac  linuxroot/usr/share/panda3d/pandac")
+    oscmd("cp --recursive built/Pmw     linuxroot/usr/share/panda3d/Pmw")
+    oscmd("cp built/direct/__init__.py  linuxroot/usr/share/panda3d/direct/__init__.py")
+    oscmd("cp --recursive SceneEditor   linuxroot/usr/share/panda3d/SceneEditor")
+    oscmd("cp --recursive built/models  linuxroot/usr/share/panda3d/models")
+    oscmd("cp --recursive samples       linuxroot/usr/share/panda3d/samples")
+    oscmd("cp doc/LICENSE               linuxroot/usr/share/panda3d/LICENSE")
+    oscmd("cp doc/LICENSE               linuxroot/usr/include/panda3d/LICENSE")
+    oscmd("cp doc/ReleaseNotes          linuxroot/usr/share/panda3d/ReleaseNotes")
+    oscmd("echo '/usr/share/panda3d' >  linuxroot/usr/lib/"+PYTHONV+"/site-packages/panda3d.pth")
+    oscmd("cp built/bin/*               linuxroot/usr/bin/")
     for base in os.listdir("built/lib"):
-        oscmd("ln -sf /usr/lib/"+base+" debtmp/usr/lib/"+PYTHONV+"/lib-dynload/"+base)
-        oscmd("cp built/lib/"+base+" debtmp/usr/lib/"+base)
-    for base in os.listdir("debtmp/usr/share/panda3d/direct/src"):
+        oscmd("ln -sf /usr/lib/"+base+" linuxroot/usr/lib/"+PYTHONV+"/lib-dynload/"+base)
+        oscmd("cp built/lib/"+base+" linuxroot/usr/lib/"+base)
+    for base in os.listdir("linuxroot/usr/share/panda3d/direct/src"):
         if ((base != "extensions") and (base != "extensions_native")):
-            compileall.compile_dir("debtmp/usr/share/panda3d/direct/src/"+base)
-    compileall.compile_dir("debtmp/usr/share/panda3d/Pmw")
-    compileall.compile_dir("debtmp/usr/share/panda3d/SceneEditor")
-    oscmd("chmod -R 555 debtmp/usr/share/panda3d")
-    oscmd("cd debtmp ; (find usr -type f -exec md5sum {} \;) >  DEBIAN/md5sums")
-    oscmd("cd debtmp ; (find etc -type f -exec md5sum {} \;) >> DEBIAN/md5sums")
-    WriteFile("debtmp/DEBIAN/conffiles","/etc/Config.prc\n")
-    WriteFile("debtmp/DEBIAN/control",DEB[1:].replace("VERSION",str(VERSION)).replace("PYTHONV",PYTHONV))
-    oscmd("dpkg-deb -b debtmp "+file)
-    oscmd("chmod -R 755 debtmp")
-    oscmd("rm -rf debtmp")
+            compileall.compile_dir("linuxroot/usr/share/panda3d/direct/src/"+base)
+    compileall.compile_dir("linuxroot/usr/share/panda3d/Pmw")
+    compileall.compile_dir("linuxroot/usr/share/panda3d/SceneEditor")
+    oscmd("chmod -R 555 linuxroot/usr/share/panda3d")
+
+    if (os.path.exists("/usr/bin/dpkg-deb")):
+        txt = INSTALLER_DEB_FILE[1:].replace("VERSION",str(VERSION)).replace("PYTHONV",PYTHONV)
+        oscmd("mkdir -p linuxroot/DEBIAN")
+        oscmd("cd linuxroot ; (find usr -type f -exec md5sum {} \;) >  DEBIAN/md5sums")
+        oscmd("cd linuxroot ; (find etc -type f -exec md5sum {} \;) >> DEBIAN/md5sums")
+        WriteFile("linuxroot/DEBIAN/conffiles","/etc/Config.prc\n")
+        WriteFile("linuxroot/DEBIAN/control",txt)
+        oscmd("dpkg-deb -b linuxroot panda3d_"+VERSION+"_i386.deb")
+        oscmd("chmod -R 755 linuxroot")
+
+    if (os.path.exists("/usr/bin/rpmbuild")):
+        txt = INSTALLER_SPEC_FILE[1:].replace("VERSION",str(VERSION)).replace("PYTHONV",PYTHONV)
+        WriteFile("panda3d.spec", SPEC)
 
 
 if (INSTALLER != 0):
     if (sys.platform == "win32"):
         MakeInstallerNSIS("Panda3D-"+VERSION+".exe", "Panda3D", "Panda3D "+VERSION, "C:\\Panda3D-"+VERSION)
-    elif (sys.platform == "linux2") and (os.path.isfile("/usr/bin/dpkg-deb")):
-        MakeInstallerDPKG("panda3d_"+VERSION+"_i386.deb")
+    elif (sys.platform == "linux2"):
+        MakeInstallerLinux()
     else:
         exit("Do not know how to make an installer for this platform")
 

+ 0 - 89
doc/makepanda/maketarball.py

@@ -78,95 +78,6 @@ elif (len(sys.argv)==1):
     except: sys.exit("Cannot read version number from dtool/PandaVersion.pp")
 else: printUsage()
 
-########################################################################
-##
-## The SPEC File
-##
-########################################################################
-
-SPEC="""Summary: Panda 3D Engine
-Name: panda3d
-Version: VERSION
-Release: 1
-Source0: %{name}-%{version}.tar.gz
-License: Panda3D License
-Group: Development/Libraries
-BuildRoot: %{_builddir}/%{name}-%{version}/BUILDROOT
-%description
-The Panda3D engine.
-%prep
-%setup -q
-%build
-makepanda/makepanda.py --version VERSION --everything MOREARGUMENTS
-%install
-
-PYTHONV=`cat built/tmp/pythonversion`
-
-rm -rf $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT/usr/bin
-mkdir -p $RPM_BUILD_ROOT/usr/include
-mkdir -p $RPM_BUILD_ROOT/usr/lib
-mkdir -p $RPM_BUILD_ROOT/usr/share/panda3d
-mkdir -p $RPM_BUILD_ROOT/usr/lib/$PYTHONV/lib-dynload
-mkdir -p $RPM_BUILD_ROOT/usr/lib/$PYTHONV/site-packages
-mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d
-mkdir -p $RPM_BUILD_ROOT/usr/bin
-
-sed -e 's@$THIS_PRC_DIR/[.][.]@/usr/share/panda3d@' < built/etc/Config.prc > $RPM_BUILD_ROOT/etc/Config.prc
-
-cp built/etc/Confauto.prc    $RPM_BUILD_ROOT/etc/Confauto.prc
-cp --recursive built/include $RPM_BUILD_ROOT/usr/include/panda3d
-cp --recursive direct        $RPM_BUILD_ROOT/usr/share/panda3d/direct
-cp --recursive built/pandac  $RPM_BUILD_ROOT/usr/share/panda3d/pandac
-cp --recursive built/Pmw     $RPM_BUILD_ROOT/usr/share/panda3d/Pmw
-cp built/direct/__init__.py  $RPM_BUILD_ROOT/usr/share/panda3d/direct/__init__.py
-cp --recursive SceneEditor   $RPM_BUILD_ROOT/usr/share/panda3d/SceneEditor
-cp --recursive built/models  $RPM_BUILD_ROOT/usr/share/panda3d/models
-cp --recursive samples       $RPM_BUILD_ROOT/usr/share/panda3d/samples
-cp --recursive built/lib     $RPM_BUILD_ROOT/usr/lib/panda3d
-cp doc/LICENSE               $RPM_BUILD_ROOT/usr/lib/panda3d/LICENSE
-cp doc/LICENSE               $RPM_BUILD_ROOT/usr/share/panda3d/LICENSE
-cp doc/LICENSE               $RPM_BUILD_ROOT/usr/include/panda3d/LICENSE
-cp doc/ReleaseNotes          $RPM_BUILD_ROOT/usr/share/panda3d/ReleaseNotes
-echo "/usr/lib/panda3d" >    $RPM_BUILD_ROOT/etc/ld.so.conf.d/panda3d.conf
-echo "/usr/share/panda3d" >  $RPM_BUILD_ROOT/usr/lib/$PYTHONV/site-packages/panda3d.pth
-cp built/bin/*               $RPM_BUILD_ROOT/usr/bin/
-
-for x in built/lib/* ; do
-  base=`basename $x`
-  ln -sf /usr/lib/panda3d/$base $RPM_BUILD_ROOT/usr/lib/$PYTHONV/lib-dynload/$base
-done
-for x in $RPM_BUILD_ROOT/usr/share/panda3d/direct/src/* ; do
-  if [ `basename $x` != extensions ] ; then
-    python -c "import compileall; compileall.compile_dir('$x')"
-  fi
-done
-python -c "import compileall ; compileall.compile_dir('$RPM_BUILD_ROOT/usr/share/panda3d/Pmw');"
-python -c "import compileall ; compileall.compile_dir('$RPM_BUILD_ROOT/usr/share/panda3d/SceneEditor');"
-
-chmod -R 555 $RPM_BUILD_ROOT/usr/share/panda3d
-
-%post
-/sbin/ldconfig
-%postun
-/sbin/ldconfig
-%clean
-rm -rf $RPM_BUILD_ROOT
-%files
-%defattr(-,root,root)
-/etc/Confauto.prc
-/etc/Config.prc
-/usr/share/panda3d
-/etc/ld.so.conf.d/panda3d.conf
-/usr/bin
-/usr/lib
-/usr/include/panda3d
-"""
-
-MORE=''
-for x in sys.argv[2:]: MORE=MORE+x+' '
-SPEC=SPEC.replace("VERSION",str(VERSION))
-SPEC=SPEC.replace("MOREARGUMENTS",MORE)
 
 ########################################################################
 ##

+ 1 - 1
dtool/PandaVersion.pp

@@ -3,7 +3,7 @@
 // ppremake scripts for Panda.
 
 // Use spaces to separate the major, minor, and sequence numbers here.
-#define PANDA_VERSION 1 3 0
+#define PANDA_VERSION 1 4 0
 
 // This variable will be defined to false in the CVS repository, but
 // scripts that generate source tarballs and/or binary releases for