You should direct FX related issues to openjfx-dev instead. -DrD-
> I am trying to build JavaFX with native media enabled. For background, read > *The initial problem* below. > > So I am stuck in build.gradle ( line 2392 for me) in def buildGlib{ .... I > have progressed somewhat since the initial problem. To me it now seems that > Gradle or Cywin or Make is messing up my Path so that the makefile is not > able to execute lines like: > /MANIFEST = $(shell cygpath -ma "$(BUILD_DIR)/$(BASE_NAME).manifest"/) > as it can't find cygpath. > > I haven't fixed this yet, but I have some clues. > Firstly, I have added a line to the makefile (in > E:\...\JavaFX\modules\media\src\main\native\gstreamer\projects\win\glib-lite/) > a /lin/e SHELL=C:/cygwin/bin/sh.exe/to be sure I have a shell./ > /Then I added a line to print the value of /PATH /in the makefile. > My DOS path (DOS SET PATH) has 26 items including C:\cygwin\bin; which is > where cygpath.exe is held. > By the time /PATH /gets to the makefile it has 47 items and the item > C:\cygwin\binhas been /replaced /by C:/cygwin64/bin; > As a result (I think) /$(shell cygpath/doesn't find cygpath and that breaks > the build. > > I have grepped for /cygwin64 /in the JFX tree but there are no hits. > So either Cygwin or Gradle or Cygwin-make is taking what may be a correct DOS > path and making it into an incorrect path by the time it gets to /make/. > /cygwin.bat/ does not do it. /mingw make 3.8/ has the same problem so perhaps > it is in /Cygwin /or Gradle. > > It seems /make /has a variable called PATH which is /derived /from DOS Path > but is messed up. DOS path itself is not changed. I don't really understand > who makes the make PATH or how /make /might use it in finding cygpath.exe. > > But these are just clues. > > Any ideas on where to look /what to do next? > > Thanks > > robinH > > P.S. > It would be helpful if the page Building OpenJFX > <https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX> was more > specific about the versions of /Cygwin /& /make /which should be used as it > is quite specific for most of the other tools. /Cygwin/make/ has been making > changes in how they deal with DOS paths so perhaps they broke something. > > ------------------------------------------------- The initial probem > ------------------------------------------------------------------------- > > I find JFX media HLS is not working well for me. It dies after about 30s > whereas VLC can pick up the 'dead' m3u8 and continue playing fine, so I > decided to build from source to try to see what is going on. I have followed > Michael Berry's efforts extending media codecs too. Also, I found this > <https://coaxion.net/blog/2014/05/http-adaptive-streaming-with-gstreamer/>(November > 26, 2014 at 15:04 > <https://coaxion.net/blog/2014/05/http-adaptive-streaming-with-gstreamer/comment-page-1/#comment-28467>) > comment interesting in response to the question "Is there any support on > gstreamer 0.10 for Adaptive Streaming – Smooth Streaming, Dash etc. ?" . > 'Slomo' replied /"There is some initial support for HLS but don’t use 0.10 > for anything really. It’s no longer maintained since more than 2 years and a > lot has happened since then"/. The rest of his blog ('*HTTP Adaptive > Streaming with GStreamer*') seemed to indicate he had some knowledge in this > area. So I decided to build from source to see more of what is going on. > > I chose to build 8u-dev/rt from Hg, although that may not have been the best > choice. > The initial build went fine (without native). It was */easy/*. > Congratulations! > > Then I made a gradle.properties and set COMPILE_MEDIA = true and got errors. > These are in of build.gradle ( line 2392 for me) in def buildGlib{ .... > This exec's the makefile in > E:\robins_root\software\JavaFX\modules\media\src\main\native\gstreamer\projects\win\glib-lite. > The errors look like: > /bin/sh: cygpath: command not found > / Makefile:71: recipe for target '/libglib-2.28.8.lib' failed/ /( I have > messed up the line numbers ignore 71)/ > And make returns 2 and error 127. Now from the cywin window, I can do > > /Robin@MY-PC /cygdrive/e/robins_root/software/JavaFX// > //$ cygpath --help// > //cygpath --help// > //Usage: cygpath (-d|-m|-u|-w|-t TYPE) [-f FILE] [OPTION]... NAME.../ > etc > and also > /$ echo $SHELL// > //echo $SHELL// > //C:\cygwin\bin\bash.exe/ > and echo path starts off > /usr/local/bin: > /usr/bin: > /cygdrive/c/ProgramData/Oracle/Java/javapath: > /cygdrive/c/Tcl/bin: > /cygdrive/c/Windows/system32: > /cygdrive/c/Windows: > ... > If I manually run the makefile from its folder, fixing up any needed > variables, it seemed to run OK. ( Although my VS2010 was initially damaged. > I had to set up the INCLUDE environment variable since I was getting > windows.h not found. I think this is caused somehow by having VS2010, VS2011 > & VS2012 originally, then removing all three and doing a clean install of > VS2010. I googled reports of others having this problem of corrupted include > path.) > > My installation is unusual (?) in that all my JFX builder folders are on e: > whereas Cywgin is on c: . I need to use both paths /cygdrive/e/ and > /cygdrive/c/. > > The detailed build instructions are detailed about versions for most > programs, but not for cygwin & make. I wonder which version you use in your > builds? > > Does Gradle change the SHELL variable? Does Gradle/cygwin/make assume all > programs are on say a C: drive? mintty has no problem finding cygpath. Is > Gradle looking for cygpath on e: instead of c:? > > Now I have been playing with PATH & SHELL but nothing I do seems to help. > > Any suggestions? > > --------------------------------------------------------------------------- > I am using: > Gradle 1.8 Build time: 2013-09-24 07:32:33 UTC Revision: > 7970ec3503b4f5767ee1c1c69f8b4186c4763e3d Groovy:1.8.6 > Ant: Apache Ant(TM) version 1.9.2 compiled on July 8 2013 > Ivy: 2.2.0 > JVM: 1.8.0_05 (Oracle Corporation 25.5-b02) > OS: Windows 8.1 6.3 x86 > $uname -a CYGWIN_NT-6.3-WOW64 ROBIN-PC 1.7.33-2(0.280/5/3) 2014-11-13 15:45 > i686 Cygwin > make -v GNU Make 4.0 Built for i686-pc-cygwin > cygwin install, version 2.859 > I used CygWin setup-x86.exe so I presume this is 32-bit Cygwin > JAVA_HOME points to (X86) jdk1.8.0.05 > JRE_HOME (X86) jre8 > My machine also has 64-bit jdk1.8.0_25 & jdk1.8.0_05in Program Files