2
0
Эх сурвалжийг харах

Proper library configuration on FreeBSD (I hope)

rdb 14 жил өмнө
parent
commit
0e4535acf5

+ 4 - 1
makepanda/installpanda.py

@@ -118,6 +118,7 @@ def InstallPanda(destdir="", prefix="/usr", outputdir="built"):
     oscmd("mkdir -p "+destdir+PPATH)
     if (sys.platform.startswith("freebsd")):
         oscmd("mkdir -p "+destdir+prefix+"/etc")
+        oscmd("mkdir -p "+destdir+"/usr/local/libdata/ldconfig")
     else:
         oscmd("mkdir -p "+destdir+"/etc/ld.so.conf.d")
     WriteFile(destdir+prefix+"/share/panda3d/direct/__init__.py", "")
@@ -147,7 +148,9 @@ def InstallPanda(destdir="", prefix="/usr", outputdir="built"):
     oscmd("cp doc/ReleaseNotes                  "+destdir+prefix+"/share/panda3d/ReleaseNotes")
     oscmd("echo '"+prefix+"/share/panda3d' >    "+destdir+PPATH+"/panda3d.pth")
     oscmd("echo '"+prefix+libdir+"/panda3d'>>   "+destdir+PPATH+"/panda3d.pth")
-    if (not sys.platform.startswith("freebsd")):
+    if (sys.platform.startswith("freebsd")):
+        oscmd("echo '"+prefix+libdir+"/panda3d'>    "+destdir+"/usr/local/libdata/ldconfig/panda3d")
+    else:
         oscmd("echo '"+prefix+libdir+"/panda3d'>    "+destdir+"/etc/ld.so.conf.d/panda3d.conf")
         oscmd("chmod +x "+destdir+"/etc/ld.so.conf.d/panda3d.conf")
     oscmd("ln -s "+PEXEC+"                      "+destdir+prefix+"/bin/ppython")

+ 17 - 8
makepanda/makepanda.py

@@ -5204,9 +5204,9 @@ def MakeInstallerLinux():
 
     # Invoke installpanda.py to install it into a temporary dir
     if RUNTIME:
-        InstallRuntime(destdir = "targetroot", outputdir = GetOutputDir())
+        InstallRuntime(destdir = "targetroot", prefix = "/usr", outputdir = GetOutputDir())
     else:
-        InstallPanda(destdir = "targetroot", outputdir = GetOutputDir())
+        InstallPanda(destdir = "targetroot", prefix = "/usr", outputdir = GetOutputDir())
         oscmd("chmod -R 755 targetroot/usr/share/panda3d")
 
     if (os.path.exists("/usr/bin/rpmbuild") and not os.path.exists("/usr/bin/dpkg-deb")):
@@ -5529,15 +5529,24 @@ def MakeInstallerFreeBSD():
     else:
         descr_txt = INSTALLER_PKG_DESCR_FILE[1:]
     descr_txt = descr_txt.replace("VERSION", VERSION)
-    plist_txt = "@name panda3d-%s\n" % VERSION
+    if (RUNTIME):
+        plist_txt = "@name panda3d-runtime-%s\n" % VERSION
+    else:
+        plist_txt = "@name panda3d-%s\n" % VERSION
     for root, dirs, files in os.walk("targetroot/usr/local/", True):
         for f in files:
             plist_txt += os.path.join(root, f)[21:] + "\n"
-    for remdir in ("lib/panda3d", "share/panda3d", "include/panda3d"):
-        for root, dirs, files in os.walk("targetroot/usr/local/" + remdir, False):
-            for d in dirs:
-                plist_txt += "@dirrm %s\n" % os.path.join(root, d)[21:]
-        plist_txt += "@dirrm %s\n" % remdir
+
+    if (not RUNTIME):
+        plist_txt += "@exec /sbin/ldconfig -m /usr/local/lib\n"
+        plist_txt += "@unexec /sbin/ldconfig -R\n"
+
+        for remdir in ("lib/panda3d", "share/panda3d", "include/panda3d"):
+            for root, dirs, files in os.walk("targetroot/usr/local/" + remdir, False):
+                for d in dirs:
+                    plist_txt += "@dirrm %s\n" % os.path.join(root, d)[21:]
+            plist_txt += "@dirrm %s\n" % remdir
+
     WriteFile("pkg-plist", plist_txt)
     WriteFile("pkg-descr", descr_txt)
     cmd = "pkg_create"