mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-18 12:43:44 -04:00
Mainly fixes for path problems
This commit is contained in:
parent
aa740cf5c5
commit
0ea72c30fb
@ -51,7 +51,7 @@ void pathfail(void)
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
char fnbuf[PATH_MAX],ppbuf[PATH_MAX],pabuf[PATH_MAX],prbuf[PATH_MAX],modcmd[PATH_MAX];
|
||||
char fnbuf[PATH_MAX],ppbuf[PATH_MAX],pabuf[PATH_MAX],modcmd[PATH_MAX];
|
||||
int fnlen;
|
||||
|
||||
// Ask windows for the file name of this executable.
|
||||
@ -67,29 +67,12 @@ int main(int argc, char **argv)
|
||||
if (stricmp(fnbuf + fnlen - srclen, LINK_SOURCE)) pathfail();
|
||||
fnlen -= srclen; fnbuf[fnlen] = 0;
|
||||
|
||||
// Fetch the command line and trim the first word.
|
||||
|
||||
char *cmdline = GetCommandLine();
|
||||
char *args = cmdline;
|
||||
bool inquote = false;
|
||||
while (*args && ((*args != ' ')||(inquote))) {
|
||||
if (*args == '"') inquote = !inquote;
|
||||
args++;
|
||||
}
|
||||
while (*args==' ') args++;
|
||||
|
||||
// Calculate MODCMD
|
||||
// See if we can find the panda root. If not, abort.
|
||||
|
||||
if (GENPYCODE) {
|
||||
sprintf(ppbuf,"%s\\direct\\src\\ffi\\jGenPyCode.py",fnbuf);
|
||||
FILE *f = fopen(ppbuf,"r");
|
||||
if (f) {
|
||||
fclose(f);
|
||||
sprintf(modcmd,"python %s\\direct\\src\\ffi\\jGenPyCode.py %s",fnbuf,args);
|
||||
} else {
|
||||
sprintf(modcmd,"python %s\\..\\direct\\src\\ffi\\jGenPyCode.py %s",fnbuf,args);
|
||||
}
|
||||
} else sprintf(modcmd,"python %s",args);
|
||||
sprintf(ppbuf,"%s/direct/__init__.py",fnbuf);
|
||||
FILE *f = fopen(ppbuf,"r");
|
||||
if (f==0) pathfail();
|
||||
fclose(f);
|
||||
|
||||
// Set the PYTHONPATH and PATH
|
||||
|
||||
@ -102,11 +85,28 @@ int main(int argc, char **argv)
|
||||
else sprintf(pabuf,"PATH=%s\\bin",fnbuf);
|
||||
putenv(pabuf);
|
||||
|
||||
// Fetch the command line and trim the first word.
|
||||
|
||||
char *cmdline = GetCommandLine();
|
||||
char *args = cmdline;
|
||||
bool inquote = false;
|
||||
while (*args && ((*args != ' ')||(inquote))) {
|
||||
if (*args == '"') inquote = !inquote;
|
||||
args++;
|
||||
}
|
||||
while (*args==' ') args++;
|
||||
|
||||
// Append LINK_TARGET to the file name.
|
||||
|
||||
if (fnlen + strlen(LINK_TARGET) > 1023) pathfail();
|
||||
strcat(fnbuf, LINK_TARGET);
|
||||
|
||||
// Calculate MODCMD
|
||||
|
||||
if (GENPYCODE) {
|
||||
sprintf(modcmd,"python -c \"import direct.ffi.jGenPyCode\" %s",args);
|
||||
} else sprintf(modcmd,"python %s",args);
|
||||
|
||||
// Run it.
|
||||
|
||||
signal(SIGINT, SIG_IGN);
|
||||
@ -162,7 +162,7 @@ void pathfail(void)
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
char fnbuf[PATH_MAX],ppbuf[PATH_MAX],pabuf[PATH_MAX],prbuf[PATH_MAX],genpyc[PATH_MAX];
|
||||
char fnbuf[PATH_MAX],ppbuf[PATH_MAX];
|
||||
char *modargv[1024];
|
||||
int fnlen,modargc;
|
||||
|
||||
@ -180,38 +180,31 @@ int main(int argc, char **argv)
|
||||
if (strcmp(fnbuf + fnlen - srclen, LINK_SOURCE)) pathfail();
|
||||
fnlen -= srclen; fnbuf[fnlen] = 0;
|
||||
|
||||
// Calculate GENPYC
|
||||
// See if we can find the 'direct' tree locally.
|
||||
// If not, continue anyway. It may be possible to succeed.
|
||||
|
||||
if (GENPYCODE) {
|
||||
sprintf(ppbuf,"%s/direct/src/ffi/jGenPyCode.py",fnbuf);
|
||||
FILE *f = fopen(ppbuf,"r");
|
||||
if (f) {
|
||||
fclose(f);
|
||||
sprintf(genpyc,"%s/direct/src/ffi/jGenPyCode.py",fnbuf);
|
||||
} else {
|
||||
sprintf(genpyc,"%s/../direct/src/ffi/jGenPyCode.py",fnbuf);
|
||||
}
|
||||
sprintf(ppbuf,"%s/direct/__init__.py",fnbuf);
|
||||
FILE *f = fopen(ppbuf,"r");
|
||||
if (f) {
|
||||
char *pp = getenv("PYTHONPATH");
|
||||
if (pp) sprintf(ppbuf,"PYTHONPATH=%s:%s/lib:%s",fnbuf,fnbuf,pp);
|
||||
else sprintf(ppbuf,"PYTHONPATH=%s:%s/lib",fnbuf,fnbuf);
|
||||
putenv(ppbuf);
|
||||
}
|
||||
|
||||
// Set the PYTHONPATH and PATH
|
||||
|
||||
char *pp = getenv("PYTHONPATH");
|
||||
if (pp) sprintf(ppbuf,"PYTHONPATH=%s:%s/lib:%s",fnbuf,fnbuf,pp);
|
||||
else sprintf(ppbuf,"PYTHONPATH=%s:%s/lib",fnbuf,fnbuf);
|
||||
putenv(ppbuf);
|
||||
char *path = getenv("PATH");
|
||||
if (path) sprintf(pabuf,"PATH=%s/bin;%s",fnbuf,path);
|
||||
else sprintf(pabuf,"PATH=%s/bin",fnbuf);
|
||||
putenv(pabuf);
|
||||
|
||||
// Calculate MODARGV
|
||||
|
||||
modargc=0;
|
||||
modargv[modargc++]="python";
|
||||
if (GENPYCODE) modargv[modargc++] = genpyc;
|
||||
if (GENPYCODE) {
|
||||
modargv[modargc++] = "-c";
|
||||
modargv[modargc++] = "import direct.ffi.jGenPyCode";
|
||||
}
|
||||
for (int i=1; i<argc; i++) modargv[modargc++] = argv[i];
|
||||
modargv[modargc] = 0;
|
||||
|
||||
// Run it.
|
||||
|
||||
execv("/usr/bin/python", modargv);
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
#
|
||||
# This module should be invoked by a shell-script that says:
|
||||
#
|
||||
# python direct\\src\\ffi\\jGenPyCode.py <arguments>
|
||||
# python -c "import direct.ffi.jGenPyCode" <arguments>
|
||||
#
|
||||
# Before invoking python, the shell-script may need to set
|
||||
# these environment variables, to make sure that everything
|
||||
|
@ -181,12 +181,13 @@ BUILDING THE SOURCE TAR-BALL AND THE RPM
|
||||
If you are using Linux and you want to build an RPM, it is fairly easy
|
||||
to do so. First, you need a panda source tar-ball. If you do not
|
||||
already have one, build one using 'maketarball.py'. You will need to
|
||||
specify a version number.
|
||||
give your version of panda a version number. The version number can
|
||||
be any three integers separated by dots.
|
||||
|
||||
maketarball.py --v1 58 --v2 23 --v3 95
|
||||
makepanda/maketarball.py 58.23.95
|
||||
|
||||
This builds panda3d-58.23.95.tar.gz. Once you have the tar-ball,
|
||||
it is easy to turn it into a binary RPM:
|
||||
This builds panda3d-58.23.95.tar.gz and panda3d-58-23-95.zip. Once
|
||||
you have the tar-ball, it is easy to turn it into a binary RPM:
|
||||
|
||||
rpmbuild -tb panda3d-58.23.95.tar.gz
|
||||
|
||||
|
@ -487,7 +487,7 @@ def parseopts(args):
|
||||
elif (option=="--prefix"): PREFIX=value
|
||||
elif (option=="--compiler"): COMPILER=value
|
||||
elif (option=="--directx-sdk"): DIRECTXSDK=value
|
||||
elif (option=="--thirdparty"): THIRDPARTY=value
|
||||
elif (option=="--thirdparty"): THIRDPARTY=value+"/"
|
||||
elif (option=="--optimize"): OPTIMIZE=value
|
||||
elif (option=="--quiet"): VERBOSE-=1
|
||||
elif (option=="--verbose"): VERBOSE+=1
|
||||
@ -585,11 +585,12 @@ if sys.platform == "win32":
|
||||
elif (os.path.isdir("C:/Python25")): PythonSDK = "C:/Python25"
|
||||
else: sys.exit("Cannot find the python SDK")
|
||||
else:
|
||||
if (os.path.isdir("/usr/include/python2.2")): PythonSDK = "/usr/include/python2.2"
|
||||
elif (os.path.isdir("/usr/include/python2.3")): PythonSDK = "/usr/include/python2.3"
|
||||
if (os.path.isdir("/usr/include/python2.5")): PythonSDK = "/usr/include/python2.5"
|
||||
elif (os.path.isdir("/usr/include/python2.4")): PythonSDK = "/usr/include/python2.4"
|
||||
elif (os.path.isdir("/usr/include/python2.5")): PythonSDK = "/usr/include/python2.5"
|
||||
elif (os.path.isdir("/usr/include/python2.3")): PythonSDK = "/usr/include/python2.3"
|
||||
elif (os.path.isdir("/usr/include/python2.2")): PythonSDK = "/usr/include/python2.2"
|
||||
else: sys.exit("Cannot find the python SDK")
|
||||
# this is so that the user can find out which version of python was used.
|
||||
|
||||
########################################################################
|
||||
##
|
||||
@ -875,7 +876,7 @@ ALLTARGETS=[]
|
||||
global CxxIncludeCache
|
||||
CxxIncludeCache = {}
|
||||
|
||||
iCachePath=PREFIX+"/makepanda-icache"
|
||||
iCachePath=PREFIX+"/tmp/makepanda-icache"
|
||||
try: icache = open(iCachePath,'rb')
|
||||
except: icache = 0
|
||||
if (icache!=0):
|
||||
@ -1064,8 +1065,8 @@ def CopyAllFiles(dstdir,srcdir):
|
||||
|
||||
def CopyTree(dstdir,srcdir):
|
||||
if (os.path.isdir(dstdir)): return 0
|
||||
if (COMPILER=="MSVC7"): cmd = "xcopy.exe /I/Y/E/Q \""+srcdir+"\" \""+dstdir+"\""
|
||||
if (COMPILER=="LINUXA"): cmd = "cp --recursive --force "+srcdir+" "+dstdir
|
||||
if (COMPILER=="MSVC7"): cmd = 'xcopy.exe /I/Y/E/Q "' + srcdir + '" "' + dstdir+ '"'
|
||||
if (COMPILER=="LINUXA"): cmd = 'cp --recursive --force "' + srcdir + '" "' + dstdir + '"'
|
||||
oscmd(cmd)
|
||||
updatefiledate(dstdir)
|
||||
|
||||
@ -1105,11 +1106,10 @@ def CompileFlex(pre,dst,src,dashi):
|
||||
if (dashi): oslocalcmd(PREFIX+"/tmp", flexFullPath+" -i -P" + pre + " -olex.yy.c " + fn)
|
||||
else: oslocalcmd(PREFIX+"/tmp", flexFullPath+" -P" + pre + " -olex.yy.c " + fn)
|
||||
replaceInFile(PREFIX+'/tmp/lex.yy.c', dst, '#include <unistd.h>', '')
|
||||
#WriteFile(wdst, ReadFile("built\\tmp\\lex.yy.c").replace("#include <unistd.h>",""))
|
||||
if (COMPILER=="LINUXA"):
|
||||
if (dashi): oslocalcmd(PREFIX+"/tmp", "flex -i -P" + pre + " -olex.yy.c " + fn)
|
||||
else: oslocalcmd(PREFIX+"/tmp", "flex -P" + pre + " -olex.yy.c " + fn)
|
||||
oscmd('cp built/tmp/lex.yy.c '+dst)
|
||||
oscmd('cp "'+PREFIX+'/tmp/lex.yy.c" "'+dst+'"')
|
||||
updatefiledate(dst)
|
||||
|
||||
########################################################################
|
||||
@ -1158,10 +1158,10 @@ def CompileC(obj=0,src=0,ipath=[],opts=[]):
|
||||
if (OPTIMIZE==2): cmd = cmd + " /D_DEBUG /Zc:forScope /MDd /Zi /RTCs /GS "
|
||||
if (OPTIMIZE==3): cmd = cmd + " /Zc:forScope /MD /O2 /Ob2 /G6 /Zi /DFORCE_INLINING "
|
||||
if (OPTIMIZE==4): cmd = cmd + " /Zc:forScope /MD /O2 /Ob2 /G6 /GL /Zi /DFORCE_INLINING /DNDEBUG "
|
||||
cmd = cmd + " /Fd\"" + wobj[:-4] + ".pdb\""
|
||||
cmd = cmd + ' /Fd"' + wobj[:-4] + '.pdb"'
|
||||
building = buildingwhat(opts)
|
||||
if (building): cmd = cmd + " /DBUILDING_"+building
|
||||
cmd = cmd + " /EHsc /Zm300 /DWIN32_VC /DWIN32 /W3 \"" + fullsrc + "\""
|
||||
cmd = cmd + ' /EHsc /Zm300 /DWIN32_VC /DWIN32 /W3 "' + fullsrc + '"'
|
||||
oscmd(cmd)
|
||||
updatefiledate(wobj)
|
||||
|
||||
@ -1170,8 +1170,8 @@ def CompileC(obj=0,src=0,ipath=[],opts=[]):
|
||||
if (older(wobj, dep)):
|
||||
if VERBOSE >= 0:
|
||||
checkIfNewDir(ipath[1])
|
||||
if (src[-2:]==".c"): cmd = "gcc -c -o "+wobj
|
||||
else: cmd = "g++ -ftemplate-depth-30 -c -o "+wobj
|
||||
if (src[-2:]==".c"): cmd = 'gcc -c -o "' + wobj + '"'
|
||||
else: cmd = 'g++ -ftemplate-depth-30 -c -o "' + wobj + '"'
|
||||
cmd = cmd + ' -I"' + PythonSDK + '"'
|
||||
if (PkgSelected(opts,"VRPN")): cmd = cmd + ' -I"' + THIRDPARTY + 'vrpn/include"'
|
||||
if (PkgSelected(opts,"FFTW")): cmd = cmd + ' -I"' + THIRDPARTY + 'fftw/include"'
|
||||
@ -1187,7 +1187,7 @@ def CompileC(obj=0,src=0,ipath=[],opts=[]):
|
||||
if (OPTIMIZE==4): cmd = cmd + " -O2"
|
||||
building = buildingwhat(opts)
|
||||
if (building): cmd = cmd + " -DBUILDING_" + building
|
||||
cmd = cmd + " " + fullsrc
|
||||
cmd = cmd + ' "' + fullsrc + '"'
|
||||
oscmd(cmd)
|
||||
updatefiledate(wobj)
|
||||
|
||||
@ -1242,7 +1242,7 @@ def Interrogate(ipath=0, opts=0, outd=0, outc=0, src=0, module=0, library=0, fil
|
||||
if (x[:9]=="BUILDING_"): building = x[9:]
|
||||
if (older(outc, dep) or older(outd, dep)):
|
||||
if (COMPILER=="MSVC7"):
|
||||
cmd = dotdots + PREFIX+"/bin/interrogate.exe"
|
||||
cmd = '"' + dotdots + PREFIX+'/bin/interrogate.exe"'
|
||||
cmd = cmd + ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -longlong __int64 -D_X86_ -DWIN32_VC -D_WIN32'
|
||||
cmd = cmd + ' -D"_declspec(param)=" -D_near -D_far -D__near -D__far -D__stdcall'
|
||||
if (OPTIMIZE==1): cmd = cmd + ' '
|
||||
@ -1252,7 +1252,7 @@ def Interrogate(ipath=0, opts=0, outd=0, outc=0, src=0, module=0, library=0, fil
|
||||
cmd = cmd + ' -S"' + dotdots + PREFIX+'/include/parser-inc"'
|
||||
cmd = cmd + ' -I"' + dotdots + PREFIX+'/python/include"'
|
||||
if (COMPILER=="LINUXA"):
|
||||
cmd = dotdots + PREFIX+"/bin/interrogate"
|
||||
cmd = '"' + dotdots + PREFIX + '/bin/interrogate"'
|
||||
cmd = cmd + ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__i386__ -D__const=const'
|
||||
if (OPTIMIZE==1): cmd = cmd + ' '
|
||||
if (OPTIMIZE==2): cmd = cmd + ' '
|
||||
@ -1260,7 +1260,7 @@ def Interrogate(ipath=0, opts=0, outd=0, outc=0, src=0, module=0, library=0, fil
|
||||
if (OPTIMIZE==4): cmd = cmd + ' '
|
||||
cmd = cmd + ' -S"' + dotdots + PREFIX+'/include/parser-inc" -S"/usr/include"'
|
||||
cmd = cmd + ' -I"' + dotdots + PREFIX+'/python/include"'
|
||||
cmd = cmd + " -oc "+dotdots+outc+" -od "+dotdots+outd
|
||||
cmd = cmd + ' -oc "' + dotdots + outc + '" -od "' + dotdots + outd + '"'
|
||||
cmd = cmd + ' -fnames -string -refcount -assert -python'
|
||||
for x in ipath: cmd = cmd + ' -I"' + dotdots + x + '"'
|
||||
if (building): cmd = cmd + " -DBUILDING_"+building
|
||||
@ -1295,10 +1295,10 @@ def InterrogateModule(outc=0, module=0, library=0, files=0):
|
||||
if VERBOSE >= 1:
|
||||
print "Generating Python-stub cxx file for %s"%(library,)
|
||||
if (COMPILER=="MSVC7"):
|
||||
cmd = PREFIX+"/bin/interrogate_module.exe "
|
||||
cmd = '"' + PREFIX + '/bin/interrogate_module.exe" '
|
||||
if (COMPILER=="LINUXA"):
|
||||
cmd = PREFIX+"/bin/interrogate_module "
|
||||
cmd = cmd + " -oc \"" + outc + '" -module "' + module + '" -library "' + library + '" -python '
|
||||
cmd = '"' + PREFIX + '/bin/interrogate_module" '
|
||||
cmd = cmd + ' -oc "' + outc + '" -module "' + module + '" -library "' + library + '" -python '
|
||||
for x in files: cmd = cmd + ' "' + x + '" '
|
||||
oscmd(cmd)
|
||||
updatefiledate(outc)
|
||||
@ -1319,9 +1319,9 @@ def CompileLIB(lib=0, obj=[], opts=[]):
|
||||
wobj = xpaths(PREFIX+"/tmp/",obj,"")
|
||||
ALLTARGETS.append(wlib)
|
||||
if (older(wlib, wobj)):
|
||||
cmd = 'lib.exe /nologo /OUT:'+wlib
|
||||
cmd = 'lib.exe /nologo /OUT:"' + wlib + '"'
|
||||
if (OPTIMIZE==4): cmd = cmd + " /LTCG "
|
||||
for x in wobj: cmd=cmd+" "+x
|
||||
for x in wobj: cmd=cmd+' "'+x+'"'
|
||||
oscmd(cmd)
|
||||
updatefiledate(wlib)
|
||||
|
||||
@ -1330,8 +1330,8 @@ def CompileLIB(lib=0, obj=[], opts=[]):
|
||||
wobj = []
|
||||
for x in obj: wobj.append(PREFIX+"/tmp/" + x[:-4] + ".o")
|
||||
if (older(wlib, wobj)):
|
||||
cmd = "ar cru " + wlib
|
||||
for x in wobj: cmd=cmd+" "+x
|
||||
cmd = 'ar cru "' + wlib + '"'
|
||||
for x in wobj: cmd=cmd+' "'+x+'"'
|
||||
oscmd(cmd)
|
||||
updatefiledate(wlib)
|
||||
|
||||
@ -1368,10 +1368,10 @@ def CompileLink(dll=0, obj=[], opts=[], xdep=[]):
|
||||
cmd = cmd + " /MAP /MAPINFO:EXPORTS /MAPINFO:LINES /fixed:no /incremental:no /stack:4194304 "
|
||||
if (opts.count("NOLIBCI")): cmd = cmd + " /NODEFAULTLIB:LIBCI.LIB "
|
||||
if (opts.count("MAXEGGDEF")): cmd = cmd + ' /DEF:pandatool/src/maxegg/MaxEgg.def'
|
||||
cmd = cmd + " /OUT:\"" + dll + "\" /IMPLIB:\"" + lib + "\" /MAP:NUL"
|
||||
cmd = cmd + " /LIBPATH:\""+PREFIX+"/python/libs\" "
|
||||
cmd = cmd + ' /OUT:"' + dll + '" /IMPLIB:"' + lib + '" /MAP:NUL'
|
||||
cmd = cmd + ' /LIBPATH:"' + PREFIX + '/python/libs" '
|
||||
for x in wobj: cmd = cmd + ' "' + x + '"'
|
||||
if (dll[-4:]==".exe"): cmd = cmd + " built/tmp/pandaIcon.res"
|
||||
if (dll[-4:]==".exe"): cmd = cmd + ' "' + PREFIX + '/tmp/pandaIcon.res"'
|
||||
if (opts.count("D3D8") or opts.count("D3D9") or opts.count("DXDRAW") or opts.count("DXSOUND") or opts.count("DXGUID")):
|
||||
cmd = cmd + ' /LIBPATH:"' + DIRECTXSDK + 'lib/x86"'
|
||||
cmd = cmd + ' /LIBPATH:"' + DIRECTXSDK + 'lib"'
|
||||
@ -1454,13 +1454,13 @@ def CompileLink(dll=0, obj=[], opts=[], xdep=[]):
|
||||
elif (suffix==".lib"): wobj.append(PREFIX+"/lib/"+x[:-4]+".a")
|
||||
else: sys.exit("unknown suffix in object list.")
|
||||
if (older(wdll, wobj+xdep)):
|
||||
if (dll[-4:]==".exe"): cmd = "g++ -o " + wdll + " -L" + PREFIX + "/lib"
|
||||
else: cmd = "g++ -shared -o " + wdll + " -L" + PREFIX + "/lib"
|
||||
if (dll[-4:]==".exe"): cmd = 'g++ -o "' + wdll + '" -L"' + PREFIX + '/lib"'
|
||||
else: cmd = 'g++ -shared -o "' + wdll + '" -L"' + PREFIX + '/lib"'
|
||||
for x in obj:
|
||||
suffix = x[-4:]
|
||||
if (suffix==".obj"): cmd = cmd + " " + PREFIX + "/tmp/"+x[:-4]+".o"
|
||||
elif (suffix==".dll"): cmd = cmd + " -l" + x[3:-4]
|
||||
elif (suffix==".lib"): cmd = cmd + " " + PREFIX + "/lib/"+x[:-4]+".a"
|
||||
if (suffix==".obj"): cmd = cmd + ' "' + PREFIX + '/tmp/' + x[:-4] + '.o"'
|
||||
elif (suffix==".dll"): cmd = cmd + ' -l' + x[3:-4]
|
||||
elif (suffix==".lib"): cmd = cmd + ' "' + PREFIX + '/lib/' + x[:-4] + '.a"'
|
||||
if (PkgSelected(opts,"FMOD")): cmd = cmd + ' -L"' + THIRDPARTY + 'fmod/lib" -lfmod-3.74'
|
||||
if (PkgSelected(opts,"NVIDIACG")):
|
||||
cmd = cmd + ' -L"' + THIRDPARTY + 'nvidiacg/lib" '
|
||||
@ -1587,6 +1587,8 @@ conf = conf.replace("NVERSION",str(NVERSION))
|
||||
|
||||
ConditionalWriteFile(PREFIX+'/include/checkPandaVersion.h',conf)
|
||||
|
||||
ConditionalWriteFile(PREFIX + "/tmp/pythonversion", os.path.basename(PythonSDK))
|
||||
|
||||
##########################################################################################
|
||||
#
|
||||
# If running under windows, compile up the icon.
|
||||
|
@ -100,32 +100,42 @@ The Panda3D engine.
|
||||
%build
|
||||
makepanda/makepanda.py --version VERSION --everything
|
||||
%install
|
||||
PYTHONV=`cat built/tmp/pythonversion`
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
PANDA=$RPM_BUILD_ROOT/usr/share/panda3d
|
||||
mkdir -p $PANDA
|
||||
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/etc/ld.so.conf.d
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/bin
|
||||
cp --recursive built/bin $PANDA/bin
|
||||
cp --recursive built/lib $PANDA/lib
|
||||
cp --recursive built/etc $PANDA/etc
|
||||
cp --recursive built/include $PANDA/include
|
||||
cp --recursive direct $PANDA/direct
|
||||
cp built/direct/__init__.py $PANDA/direct/__init__.py
|
||||
cp --recursive models $PANDA/models
|
||||
cp --recursive samples $PANDA/samples
|
||||
cp --recursive SceneEditor $PANDA/SceneEditor
|
||||
cp --recursive Config.prc $PANDA/Config.prc
|
||||
cp --recursive LICENSE $PANDA/LICENSE
|
||||
echo "/usr/share/panda3d/lib" > $RPM_BUILD_ROOT/etc/ld.so.conf.d/panda3d.conf
|
||||
for x in $PANDA/bin/* ; do
|
||||
|
||||
sed -e 's@$THIS_PRC_DIR/[.]@/usr/share/panda3d@' < doc/Config.prc > $RPM_BUILD_ROOT/etc/Config.prc
|
||||
|
||||
cp --recursive built/lib $RPM_BUILD_ROOT/usr/lib/panda3d
|
||||
cp --recursive built/include $RPM_BUILD_ROOT/usr/include/panda3d
|
||||
cp --recursive direct $RPM_BUILD_ROOT/usr/lib/$PYTHONV/direct
|
||||
cp --recursive built/pandac $RPM_BUILD_ROOT/usr/lib/$PYTHONV/pandac
|
||||
cp built/direct/__init__.py $RPM_BUILD_ROOT/usr/lib/$PYTHONV/direct/__init__.py
|
||||
cp --recursive models $RPM_BUILD_ROOT/usr/share/panda3d/models
|
||||
cp --recursive samples $RPM_BUILD_ROOT/usr/share/panda3d/samples
|
||||
cp --recursive SceneEditor $RPM_BUILD_ROOT/usr/lib/$PYTHONV/SceneEditor
|
||||
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
|
||||
echo "/usr/lib/panda3d" > $RPM_BUILD_ROOT/etc/ld.so.conf.d/panda3d.conf
|
||||
cp built/bin/* $RPM_BUILD_ROOT/usr/bin/
|
||||
|
||||
for x in built/lib/* ; do
|
||||
base=`basename $x`
|
||||
ln -sf /usr/share/panda3d/bin/$base $RPM_BUILD_ROOT/usr/bin
|
||||
ln -sf /usr/lib/panda3d/$base $RPM_BUILD_ROOT/usr/lib/$PYTHONV/lib-dynload/$base
|
||||
done
|
||||
for x in $PANDA/direct/src/* ; do
|
||||
for x in $RPM_BUILD_ROOT/usr/lib/$PYTHONV/direct/src/* ; do
|
||||
if [ `basename $x` != extensions ] ; then
|
||||
python -c "import compileall; compileall.compile_dir('$x')"
|
||||
fi
|
||||
done
|
||||
|
||||
%post
|
||||
/sbin/ldconfig
|
||||
%postun
|
||||
|
Loading…
x
Reference in New Issue
Block a user