ID: 24204 User updated by: php_public at macfreek dot nl Reported By: php_public at macfreek dot nl Status: Assigned Bug Type: Java related Operating System: Mac OS X (10.2.6) PHP Version: 4.3.2 Assigned To: kalowsky New Comment:
Oh yes, this is not the proper fix! That's why I called it an *ugly* workaround. ;-) By the way, the file in php-4.3.2/sapi/servlet/ servlet.c will most likely have the same problem. I would have expected Apple to have made a symbolic link from /usr/include/JavaVM/jni.h to whereever the file may reside in the most current release. However, that is not the case, and Java seem to be installed, so we apparently have to deal with whatever is available. The correct solution is probably to add the appropriate -I option to the linker, by altering the configure file. Previous Comments: ------------------------------------------------------------------------ [2003-06-16 07:43:53] [EMAIL PROTECTED] The short of it is, those files are needed, but I believe you're misunderstanding how frameworks work. By specifying the full path you are (potentially) invalidating future release of the JavaVM framework. The proper answer is to figure out why the jni.h file is not being used by JavaVM framework. I'll try to reproduce it later today. ------------------------------------------------------------------------ [2003-06-16 07:10:17] php_public at macfreek dot nl Description: ------------ In short, Java does not compile on Mac OS X, because the Java headers are at an other location then java.c expects them. configure does work. Reproduce code: --------------- On Mac OS X (Darwin): ./configure --with-java=/usr (you can leave the =/usr out). make Actual result: -------------- /Users/freek/Downloads/php-4.3.2/ext/java/java.c:39:24: JavaVM/jni.h: No such file or directory This is due to this code: #if HAVE_JAVAVM_JAVAVM_H #include <JavaVM/JavaVM.h> #include <JavaVM/jni.h> #define JNI_12 #else #include <jni.h> #endif In php_config.h, the precompiler directive HAVE_JAVAVM_JAVAVM_H was set, even though there is no file on my system called JavaVM/JavaVM.h As an ugly workaround, specifying the full path did work: #include </System/Library/Frameworks/JavaVM.framework/ Versions/A/Headers/JavaVM.h> #include </System/Library/Frameworks/JavaVM.framework/ Versions/1.3.1/Headers/jni.h Apparently, jni.h is not in Java VM 1.4.1, which is also installed on Mac OS X. But to be honest, I got crazy about all symbolic links in /System/Library/ Frameworks/JavaVM.framework/ ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=24204&edit=1
