@@ -52,25 +52,29 @@ classpath = avian
52
52
53
53
test-executable = $(executable )
54
54
boot-classpath = $(classpath-build )
55
- java-home = /avian-embedded
55
+ embed-prefix = /avian-embedded
56
56
57
57
ifdef openjdk
58
58
ifdef openjdk-src
59
59
include openjdk-src.mk
60
60
options := $(options)-openjdk-src
61
61
classpath-objects = $(openjdk-objects)
62
- classpath-cflags = -DAVIAN_OPENJDK_SRC
62
+ classpath-cflags = -DAVIAN_OPENJDK_SRC -DBOOT_JAVAHOME
63
63
openjdk-jar-dep = $(build)/openjdk-jar.dep
64
64
classpath-jar-dep = $(openjdk-jar-dep)
65
+ javahome = $(embed-prefix)/javahomeJar
66
+ javahome-files = lib/zi
67
+ javahome-object = $(build)/javahome-jar.o
65
68
else
66
69
options := $(options)-openjdk
67
70
test-executable = $(executable-dynamic)
68
71
library-path = LD_LIBRARY_PATH=$(build)
69
- java-home = $(openjdk)/jre
72
+ javahome = $(openjdk)/jre
70
73
endif
71
74
72
75
classpath = openjdk
73
76
boot-classpath := $(boot-classpath):$(openjdk)/jre/lib/rt.jar
77
+ build-javahome = $(openjdk)/jre
74
78
endif
75
79
76
80
ifeq ($(classpath ) ,avian)
@@ -120,7 +124,8 @@ warnings = -Wall -Wextra -Werror -Wunused-parameter -Winit-self \
120
124
common-cflags = $(warnings ) -fno-rtti -fno-exceptions -fno-omit-frame-pointer \
121
125
"-I$(JAVA_HOME ) /include" -idirafter $(src ) -I$(build ) $(classpath-cflags ) \
122
126
-D__STDC_LIMIT_MACROS -D_JNI_IMPLEMENTATION_ -DAVIAN_VERSION=\"$(version ) \" \
123
- -DUSE_ATOMIC_OPERATIONS -DAVIAN_JAVA_HOME=\"$(java-home ) \"
127
+ -DUSE_ATOMIC_OPERATIONS -DAVIAN_JAVA_HOME=\"$(javahome ) \" \
128
+ -DAVIAN_EMBED_PREFIX=\"$(embed-prefix ) \"
124
129
125
130
build-cflags = $(common-cflags ) -fPIC -fvisibility=hidden \
126
131
"-I$(JAVA_HOME ) /include/linux" -I$(src ) -pthread
@@ -593,12 +598,6 @@ $(driver-dynamic-object): $(driver-source)
593
598
$(boot-object ) : $(boot-source )
594
599
$(compile-object )
595
600
596
- $(build ) /classpath.jar : $(classpath-dep ) $(classpath-jar-dep )
597
- @echo " creating $( @) "
598
- (wd=$$ (pwd) && \
599
- cd $(classpath-build ) && \
600
- $(jar ) c0f " $$ ($( native-path) " $$ {wd}/$(@ ) " )" .)
601
-
602
601
$(build ) /binaryToObject-main.o : $(src ) /binaryToObject/main.cpp
603
602
$(build-cxx ) -c $(^ ) -o $(@ )
604
603
@@ -620,11 +619,28 @@ $(build)/binaryToObject-pe.o: $(src)/binaryToObject/pe.cpp
620
619
$(converter ) : $(converter-objects )
621
620
$(build-cxx ) $(^ ) -o $(@ )
622
621
622
+ $(build ) /classpath.jar : $(classpath-dep ) $(classpath-jar-dep )
623
+ @echo " creating $( @) "
624
+ (wd=$$ (pwd) && \
625
+ cd $(classpath-build ) && \
626
+ $(jar ) c0f " $$ ($( native-path) " $$ {wd}/$(@ ) " )" .)
627
+
623
628
$(classpath-object ) : $(build ) /classpath.jar $(converter )
624
629
@echo " creating $( @) "
625
630
$(converter ) $(< ) $(@ ) _binary_classpath_jar_start \
626
631
_binary_classpath_jar_end $(platform ) $(arch )
627
632
633
+ $(build ) /javahome.jar : $(foreach x,$(javahome-files ) ,$(build-javahome ) /$(x ) )
634
+ @echo " creating $( @) "
635
+ (wd=$$ (pwd) && \
636
+ cd $(build-javahome ) && \
637
+ $(jar ) c0f " $$ ($( native-path) " $$ {wd}/$(@ ) " )" $(javahome-files ) )
638
+
639
+ $(javahome-object ) : $(build ) /javahome.jar $(converter )
640
+ @echo " creating $( @) "
641
+ $(converter ) $(< ) $(@ ) _binary_javahome_jar_start \
642
+ _binary_javahome_jar_end $(platform ) $(arch )
643
+
628
644
$(generator-objects ) : $(generator-depends )
629
645
$(generator-objects ) : $(build ) /% -build.o: $(src ) /% .cpp
630
646
@echo " compiling $( @) "
@@ -651,7 +667,8 @@ $(bootimage-object): $(bootimage-bin) $(converter)
651
667
writable executable
652
668
653
669
executable-objects = $(vm-objects ) $(classpath-objects ) $(driver-object ) \
654
- $(vm-heapwalk-objects ) $(boot-object ) $(vm-classpath-object )
670
+ $(vm-heapwalk-objects ) $(boot-object ) $(vm-classpath-object ) \
671
+ $(javahome-object )
655
672
656
673
$(executable ) : $(executable-objects )
657
674
@echo " linking $( @) "
@@ -696,18 +713,16 @@ else
696
713
$(ld) $(^) $(rdynamic) $(lflags) -o $(@)
697
714
endif
698
715
699
- dynamic-library-objects = $(vm-objects ) $(dynamic-object ) \
700
- $(classpath-objects ) $(vm-heapwalk-objects ) $(boot-object ) \
701
- $(vm-classpath-object ) $(classpath-libraries )
702
-
703
- $(dynamic-library ) : $(dynamic-library-objects )
716
+ $(dynamic-library ) : $(vm-objects ) $(dynamic-object ) $(classpath-objects ) \
717
+ $(vm-heapwalk-objects ) $(boot-object ) $(vm-classpath-object ) \
718
+ $(classpath-libraries ) $(javahome-object )
704
719
@echo " linking $( @) "
705
720
ifdef msvc
706
- $(ld) $(shared) $(lflags) $(dynamic-library-objects ) -out:$(@) \
707
- -PDB:$(@).pdb - IMPLIB:$(build)/$(name).lib -MANIFESTFILE:$(@).manifest
721
+ $(ld) $(shared) $(lflags) $(^ ) -out:$(@) -PDB:$(@).pdb \
722
+ -IMPLIB:$(build)/$(name).lib -MANIFESTFILE:$(@).manifest
708
723
$(mt) -manifest $(@).manifest -outputresource:"$(@);2"
709
724
else
710
- $(ld) $(dynamic-library-objects ) -Wl,--version-script=openjdk.ld \
725
+ $(ld) $(^ ) -Wl,--version-script=openjdk.ld \
711
726
$(shared) $(lflags) $(bootimage-lflags) -o $(@)
712
727
endif
713
728
$(strip) $(strip-all) $(@)
0 commit comments