mirror of
https://github.com/AppleCommander/AppleCommander.git
synced 2024-12-22 08:30:35 +00:00
72b74c8f92
resolved. (Does not deal with SWT nor image-related issues...)
80 lines
3.3 KiB
Plaintext
80 lines
3.3 KiB
Plaintext
Notes on attempts to compile AppleCommander natively... ultimately should
|
|
be directions!
|
|
|
|
|
|
Issues:
|
|
1) Need SWT code and need to compile it for all interested platforms.
|
|
2) Unable to handle graphics (images) in native mode. Need to patch code in
|
|
compile process for this.
|
|
|
|
|
|
*********************
|
|
** LINUX **
|
|
*********************
|
|
|
|
com.webcodepro.applecommander.storage:
|
|
=====================================
|
|
These are generated in when trying to compile test and storage package. The
|
|
JAR file must be valid (used by GCJ itself) and the classpath cannot use any
|
|
shortcuts (like "~" in Linux). Commands:
|
|
|
|
gcj --classpath=AppleCommander-1.1.1b.jar -c *.java
|
|
gcj -shared -o storage.so *.o
|
|
|
|
Note that graphics will be an issue. GraphicsFileFilter needed to be patched
|
|
to be (essentially) useless. The SUN JPEGCodec is not available, nor is the
|
|
ImageIO library. GCJ uses something less than JDK 1.4, presumably as the
|
|
supported JDK level.
|
|
|
|
com.webcodepro.applecommander.test:
|
|
==================================
|
|
If JUnit is not available (or wanted), remove any references to JUnit.
|
|
(Make sure the assert statements have been removed also.) The main method
|
|
should execute tests directly. The full package must be specified, else GCJ
|
|
will not be happy with it. Commands used to compile:
|
|
|
|
gcj --classpath=AppleCommander-1.1.1b.jar -c DoIt.java
|
|
gcj --main=com.webcodepro.applecommander.test.DoIt -o DoIt DoIt.o storage.so
|
|
|
|
"DoIt" was a highly modified version of DiskHelperTest. Have not tested with
|
|
real data as of yet - may have same problems as the Windows code.
|
|
|
|
|
|
**********************
|
|
** WINDOWS **
|
|
**********************
|
|
|
|
Using MinGW, am able to compile AppleCommander tests. The date issue is known,
|
|
and there is a suggested work-around posted here:
|
|
http://gcc.gnu.org/ml/java/2002-04/msg00180.html
|
|
Basically, force a reference to the classes which cause the error - the problem
|
|
lies in classes loaded by reflection, so this forces these classes to be
|
|
compiled in. The suggested prelude is:
|
|
// static references to these classes ensure that the linker will include them
|
|
private static Class c1 = gnu.java.locale.Calendar.class;
|
|
private static Class c2 = java.util.GregorianCalendar.class;
|
|
private static Class c3 = gnu.gcj.convert.Input_ASCII.class;
|
|
private static Class c4 = gnu.gcj.convert.Input_UTF8.class;
|
|
private static Class c5 = gnu.gcj.convert.Input_8859_1.class;
|
|
private static Class c6 = gnu.java.locale.LocaleInformation.class;
|
|
private static Class c7 = gnu.gcj.convert.Output_ASCII.class;
|
|
Presumably, this is just needed in one class - probably the class which contains
|
|
the main method.
|
|
|
|
MinGW seems to run (at least in text mode) faster than Cygwin. It also appears
|
|
to be related to date type stuff (just an observation, no real meat here).
|
|
|
|
Command sequence is similar to this.
|
|
|
|
1) Compile storage package:
|
|
cd <...>\storage
|
|
gcj --classpath=AppleCommander-1.1.1b.jar -c *.java
|
|
Unable to build a *.so file as on Linux with MinGW - but Cygwin does work.
|
|
2) Compile DoIt in test:
|
|
cd ..\test
|
|
gcj --classpath=AppleCommander-1.1.1b.jar -c DoIt.java
|
|
gcj --main=com.webcodepro.applecommander.test.DoIt -o DoIt DoIt.o ..\storage\*.o
|
|
strip -x DoIt.exe
|
|
The executable is 2.7MB and runs to completion!
|
|
|