mirror of
https://github.com/AppleCommander/AppleCommander.git
synced 2024-11-16 12:05:22 +00:00
30dc5ec61c
scripts in the build folder.
59 lines
2.4 KiB
Plaintext
59 lines
2.4 KiB
Plaintext
Notes on attempts to compile AppleCommander natively... ultimately should
|
|
be directions!
|
|
|
|
|
|
Issues:
|
|
1) Unable to handle graphics (images) in native mode. Need to patch code in
|
|
compile process for this.
|
|
|
|
|
|
*********************
|
|
** LINUX **
|
|
*********************
|
|
|
|
See build/build-applecommander-linux-gtk for the script which builds
|
|
an executable of AppleCommander. The build/build-swt-linux-gtk script
|
|
builds the SWT swt.so file.
|
|
|
|
|
|
**********************
|
|
** 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!
|
|
3) If all of AppleCommander is built, the resulting executable cannot use
|
|
Runtime.loadLibrary because that method is not implemented. Either need
|
|
to wait for GCJ to be updated or need to compile the native code into
|
|
executable (and this may or may not work).
|