6 JVM
:= $(JAVA_HOME
)/bin
/java
7 JAVADOC
:= $(JAVA_HOME
)/bin
/javadoc
8 ECJ_JAR
:= $(A2_BASE
)/org.argeo.tp.sdk
/org.eclipse.jdt.core.compiler.batch
.3.28.jar
9 BND_TOOL
:= /usr
/bin
/bnd
11 BUILD_BASE
= $(SDK_BUILD_BASE
)/$(A2_CATEGORY
)
13 WORKSPACE_BNDS
:= $(shell cd
$(SDK_SRC_BASE
) && find cnf
-name
'*.bnd') sdk
/argeo-build
/argeo.bnd
14 BUILD_WORKSPACE_BNDS
:= $(WORKSPACE_BNDS
:%=$(BUILD_BASE
)/%)
16 A2_JARS
= $(foreach category
, $(DEP_CATEGORIES
), $(shell find
$(A2_BASE
)/$(category
) -name
'*.jar'))
17 A2_CLASSPATH
= $(subst $(space
),$(pathsep
),$(strip $(A2_JARS
)))
19 A2_BUNDLES
= $(foreach bundle
, $(BUNDLES
),$(A2_OUTPUT
)/$(A2_CATEGORY
)/$(shell basename $(bundle
)).
$(MAJOR
).
$(MINOR
).jar
)
21 JAVA_SRCS
= $(foreach bundle
, $(BUNDLES
), $(shell find
$(bundle
) -name
'*.java'))
22 BNDS
= $(foreach bundle
, $(BUNDLES
), $(BUILD_BASE
)/$(shell basename $(bundle
))/bnd.bnd
)
23 ECJ_SRCS
= $(foreach bundle
, $(BUNDLES
), $(bundle
)/src
[-d
$(BUILD_BASE
)/$(shell basename $(bundle
))/bin
])
25 JAVADOC_SRCS
= $(foreach bundle
, $(JAVADOC_BUNDLES
),$(bundle
)/src
)
27 osgi
: $(BUILD_WORKSPACE_BNDS
) $(A2_BUNDLES
)
29 javadoc
: $(BUILD_BASE
)/java-compiled
30 $(JAVADOC
) -d
$(BUILD_BASE
)/api
--source-path
$(subst $(space
),$(pathsep
),$(strip $(JAVADOC_SRCS
))) -subpackages
$(JAVADOC_PACKAGES
)
34 $(BUILD_BASE
)/cnf
/%.bnd
: cnf
/%.bnd
38 $(BUILD_BASE
)/sdk
/argeo-build
/%.bnd
: sdk
/argeo-build
/%.bnd
42 $(A2_OUTPUT
)/$(A2_CATEGORY
)/%.
$(MAJOR
).
$(MINOR
).jar
: $(BUILD_BASE
)/%.jar
46 $(BUILD_BASE
)/%.jar
: $(BUILD_BASE
)/jars-built
47 mv
$(basename $@
)/generated
/*.jar
$(basename $@
).jar
50 $(BUILD_BASE
)/jars-built
: $(BNDS
)
51 cd
$(BUILD_BASE
) && $(BND_TOOL
) build
54 $(BUILD_BASE
)/%/bnd.bnd
: %/bnd.bnd
$(BUILD_BASE
)/java-compiled
56 rsync
-r
--exclude
"*.java" $(dir $<)src
/ $(dir $@
)bin
57 rsync
-r
--exclude-from
$(SDK_SRC_BASE
)/sdk
/argeo-build
/excludes.txt
$(dir $<) $(dir $@
)bin
58 if
[ -d
"$(dir $<)OSGI-INF" ]; then rsync
-r
$(dir $<)OSGI-INF
/ $(dir $@
)/OSGI-INF
; fi
60 echo
"\n-sourcepath:$(SDK_SRC_BASE)/$(dir $<)src\n" >> $@
62 $(BUILD_BASE
)/java-compiled
: $(JAVA_SRCS
)
63 $(JVM
) -jar
$(ECJ_JAR
) @
$(SDK_SRC_BASE
)/sdk
/argeo-build
/ecj.args
-cp
$(A2_CLASSPATH
) $(ECJ_SRCS
)
68 $(foreach bundle
, $(BUNDLES
), cp
-v
$(BUILD_BASE
)/$(shell basename $(bundle
))/META-INF
/MANIFEST.MF
$(bundle
)/META-INF
/MANIFEST.MF
;)