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.29.jar
9 BNDLIB_JAR
:= $(A2_BASE
)/org.argeo.tp.sdk
/biz.aQute.bndlib
.5.3.jar
10 SLF4J_API_JAR
:= $(A2_BASE
)/org.argeo.tp
/org.slf4j.api
.1.7.jar
12 #ARGEO_MAKE = $(JVM) -cp $(ECJ_JAR):$(BNDLIB_JAR):$(SLF4J_API_JAR):$(BUILD_BASE)/bin org/argeo/build/Make
13 ARGEO_MAKE
:= $(JVM
) -cp
$(ECJ_JAR
):$(BNDLIB_JAR
):$(SLF4J_API_JAR
) $(SDK_SRC_BASE
)/sdk
/argeo-build
/src
/org
/argeo
/build
/Make.java
14 #BND_TOOL := /usr/bin/bnd
16 BUILD_BASE
= $(SDK_BUILD_BASE
)/$(shell basename $(SDK_SRC_BASE
))
18 #WORKSPACE_BNDS := $(shell cd $(SDK_SRC_BASE) && find cnf -name '*.bnd') sdk/argeo-build/argeo.bnd
19 #BUILD_WORKSPACE_BNDS := $(WORKSPACE_BNDS:%=$(BUILD_BASE)/%)
21 #A2_JARS = $(foreach category, $(DEP_CATEGORIES), $(shell find $(A2_BASE)/$(category) -name '*.jar'))
22 #A2_CLASSPATH = $(subst $(space),$(pathsep),$(strip $(A2_JARS)))
24 #A2_BUNDLES = $(foreach bundle, $(BUNDLES),$(A2_OUTPUT)/$(A2_CATEGORY)/$(shell basename $(bundle)).$(MAJOR).$(MINOR).jar)
26 #JAVA_SRCS = $(foreach bundle, $(BUNDLES), $(shell find $(bundle) -name '*.java'))
27 #BNDS = $(foreach bundle, $(BUNDLES), $(BUILD_BASE)/$(shell basename $(bundle))/bnd.bnd)
28 #ECJ_SRCS = $(foreach bundle, $(BUNDLES), $(bundle)/src[-d $(BUILD_BASE)/$(bundle)/bin])
30 JAVADOC_SRCS
= $(foreach bundle
, $(JAVADOC_BUNDLES
),$(bundle
)/src
)
32 osgi
: $(BUILD_BASE
)/built
34 javadoc
: $(BUILD_BASE
)/java-compiled
35 $(JAVADOC
) -d
$(BUILD_BASE
)/api
--source-path
$(subst $(space
),$(pathsep
),$(strip $(JAVADOC_SRCS
))) -subpackages
$(JAVADOC_PACKAGES
)
38 TARGET_BUNDLES
:= $(abspath
$(foreach bundle
, $(BUNDLES
),$(A2_OUTPUT
)/$(shell dirname
$(bundle
))/$(A2_CATEGORY
)/$(shell basename $(bundle
)).
$(MAJOR
).
$(MINOR
).jar
))
39 TODOS
:= $(foreach bundle
, $(BUNDLES
),$(BUILD_BASE
)/$(bundle
)/to-build
)
43 $(BUILD_BASE
)/built
: BUNDLES_TO_BUILD
= $(subst $(abspath
$(BUILD_BASE
))/,, $(subst to-build
,, $?
))
44 $(BUILD_BASE
)/built
: $(TODOS
)
45 $(ARGEO_MAKE
) all --a2-bases
$(A2_BASE
) --dep-categories
$(DEP_CATEGORIES
) --category
$(A2_CATEGORY
) --bundles
$(BUNDLES_TO_BUILD
)
46 touch
$(BUILD_BASE
)/built
48 $(A2_OUTPUT
)/%.
$(MAJOR
).
$(MINOR
).jar
: $(BUILD_BASE
)/$$(subst $(A2_CATEGORY
)/,,$$*)/to-build
49 $(ARGEO_MAKE
) all --a2-bases
$(A2_BASE
) --dep-categories
$(DEP_CATEGORIES
) --category
$(A2_CATEGORY
) --bundles
$(subst $(A2_CATEGORY
)/,,$*)
51 $(BUILD_BASE
)/%/to-build
: $$(shell find
$(SDK_SRC_BASE
)/% -type f
-not
-path
'bin/*' -not
-path
'*/MANIFEST.MF')
56 $(BUILD_BASE
)/%/sources-modified
: $$(shell find
$(SDK_SRC_BASE
)/$$* -name
'*.java')
59 $(BUILD_BASE
)/%/java-compiled
: $(BUILD_BASE
)/%/sources-modified
60 $(ARGEO_MAKE
) compile
--a2-bases
$(A2_BASE
) --dep-categories
$(DEP_CATEGORIES
) --bundles
$(BUNDLES
)
64 $(BUILD_BASE
)/jars-built
: $(BUILD_BASE
)/java-compiled
65 $(ARGEO_MAKE
) bundle
--category
$(A2_CATEGORY
) --bundles
$(BUNDLES
)
68 $(BUILD_BASE
)/java-compiled
: $(JAVA_SRCS
)
69 $(ARGEO_MAKE
) compile
--a2-bases
$(A2_BASE
) --dep-categories
$(DEP_CATEGORIES
) --bundles
$(BUNDLES
)
73 rm -rf
$(TARGET_BUNDLES
)
74 rm -rf
$(BUILD_BASE
)/built
78 @mkdir
-p
$(foreach bundle
, $(BUNDLES
), $(bundle
)/META-INF
/);
79 @
$(foreach bundle
, $(BUNDLES
), cp
-v
$(BUILD_BASE
)/$(bundle
)/META-INF
/MANIFEST.MF
$(bundle
)/META-INF
/MANIFEST.MF
;)
81 builder
: $(BUILD_BASE
)/bin
/org
/argeo
/build
/Make.class
83 $(BUILD_BASE
)/bin
/org
/argeo
/build
/Make.class
: $(SDK_SRC_BASE
)/sdk
/argeo-build
/java
/org
/argeo
/build
/Make.java
84 $(JVM
) -jar
$(ECJ_JAR
) -cp
$(ECJ_JAR
):$(BNDLIB_JAR
):$(SLF4J_API_JAR
) @
$(SDK_SRC_BASE
)/sdk
/argeo-build
/ecj.args
$(SDK_SRC_BASE
)/sdk
/argeo-build
/src
[-d
$(BUILD_BASE
)/bin
]