include sdk.mk
.PHONY: clean all osgi jni
-all: osgi
+all: osgi jni
-BUNDLE_PREFIX = org.argeo
-A2_CATEGORY = org.argeo
+A2_CATEGORY = org.argeo.cms
BUNDLES = \
org.argeo.init \
org.argeo.cms \
org.argeo.cms.pgsql \
eclipse/org.argeo.cms.servlet \
-rcp/org.argeo.swt.minidesktop \
-rcp/org.argeo.swt.specific.rcp \
eclipse/org.argeo.cms.swt \
-rcp/org.argeo.cms.ui.rcp \
-
-BUILD_CLASSPATH = \
-/usr/share/java/osgi-core/osgi.core.jar:$\
-/usr/share/java/osgi-compendium/osgi.cmpn.jar:$\
-/usr/share/java/ecj/ecj.jar:$\
-/usr/share/java/aqute-bnd/biz.aQute.bndlib.jar:$\
-/usr/share/java/slf4j/api.jar:$\
-/usr/share/java/commons-io.jar:$\
-/usr/share/java/commons-cli.jar:$\
-/usr/share/java/bcprov.jar:$\
-/usr/share/java/bcpkix.jar:$\
-/usr/share/java/commons-httpclient3.jar:$\
-/usr/share/java/postgresql-jdbc.jar:$\
-/usr/share/java/tomcat-servlet-api.jar:$\
-/usr/share/java/eclipse/equinox.http.jetty.jar:$\
-/usr/lib/java/swt.jar:$\
-/usr/lib/eclipse/plugins/org.eclipse.swt.gtk.linux.x86_64_3.116.0.v20210304-1735:$\
-/usr/lib/eclipse/plugins/org.eclipse.e4.ui.css.core_0.13.0.v20210304-1735.jar:$\
-/usr/lib/eclipse/plugins/org.eclipse.e4.ui.css.swt_0.14.100.v20210304-1735.jar:$\
-/usr/lib/eclipse/plugins/org.eclipse.e4.ui.css.swt.theme_0.13.0.v20210304-1735.jar:$\
-/usr/lib/eclipse/plugins/org.eclipse.jface_3.22.100.v20210304-1735.jar:$\
-/usr/lib/eclipse/plugins/org.eclipse.core.commands_3.9.800.v20210304-1735.jar:$\
-/usr/share/java/eclipse/equinox.common.jar:$\
-/usr/share/java/sac.jar:$\
+eclipse/org.argeo.cms.e4 \
+rap/org.argeo.cms.ui.rap \
+rap/org.argeo.swt.specific.rap \
+rap/org.argeo.cms.e4.rap \
+jcr/org.argeo.cms.jcr \
+jcr/org.argeo.cms.ui \
JAVADOC_BUNDLES = \
org.argeo.api.uuid \
org.argeo.api.acr \
org.argeo.api.cms
+A2_OUTPUT = $(SDK_BUILD_BASE)/a2
+A2_BASE = $(A2_OUTPUT)
-jni:
- $(MAKE) -C jni
-
-# TODO relativize from SDK_SRC_BASE
-BUILD_BASE = $(SDK_BUILD_BASE)
-
-#
-# GENERIC
-#
-JVM := /usr/lib/jvm/jre-11/bin/java
-JAVADOC := /usr/lib/jvm/jre-11/bin/javadoc
-ECJ_JAR := /usr/share/java/ecj/ecj.jar
-BND_TOOL := /usr/bin/bnd
-
-WORKSPACE_BNDS := $(shell cd $(SDK_SRC_BASE) && find cnf -name '*.bnd')
-#BND_WORKSPACES := $(foreach bundle, $(BUNDLES), ./$(dir $(bundle)))
-BUILD_WORKSPACE_BNDS := $(WORKSPACE_BNDS:%=$(SDK_BUILD_BASE)/%) $(WORKSPACE_BNDS:%=$(SDK_BUILD_BASE)/eclipse/%) $(WORKSPACE_BNDS:%=$(SDK_BUILD_BASE)/rcp/%)
-
-cnf: $(BUILD_WORKSPACE_BNDS)
-
-A2_BUNDLES = $(BUNDLES:%=$(SDK_BUILD_BASE)/a2/$(A2_CATEGORY)/%.$(MAJOR).$(MINOR).jar)
-
-#JAVA_SRCS = $(shell find $(BUNDLE_PREFIX).* -name '*.java')
-JAVA_SRCS = $(foreach bundle, $(BUNDLES), $(shell find $(bundle) -name '*.java'))
-ECJ_SRCS = $(foreach bundle, $(BUNDLES), $(bundle)/src[-d $(BUILD_BASE)/$(bundle)/bin])
+VPATH = .:eclipse:rap:jcr
-JAVADOC_SRCS = $(foreach bundle, $(JAVADOC_BUNDLES),$(bundle)/src)
+DEP_CATEGORIES = org.argeo.tp org.argeo.tp.apache org.argeo.tp.jetty org.argeo.tp.eclipse.equinox org.argeo.tp.eclipse.rap org.argeo.tp.jcr
-osgi: cnf $(A2_BUNDLES)
-
-javadoc: $(BUILD_BASE)/java-compiled
- $(JAVADOC) -d $(SDK_BUILD_BASE)/api --source-path $(subst $(space),$(pathsep),$(strip $(JAVADOC_SRCS))) -subpackages $(JAVADOC_PACKAGES)
+jni:
+ $(MAKE) -C jni
clean:
- rm -rf $(BUILD_BASE)/*-compiled
- rm -rf $(BUILD_BASE)/{cnf,a2}
- rm -rf $(BUILD_BASE)/$(BUNDLE_PREFIX).* $(BUILD_BASE)/eclipse $(BUILD_BASE)/rcp
+ rm -rf $(BUILD_BASE)
$(MAKE) -C jni clean
-# SDK level
-$(SDK_BUILD_BASE)/cnf/%.bnd: cnf/%.bnd
- mkdir -p $(dir $@)
- cp $< $@
-
-$(SDK_BUILD_BASE)/eclipse/cnf/%.bnd: cnf/%.bnd
- mkdir -p $(dir $@)
- cp $< $@
-
-$(SDK_BUILD_BASE)/rcp/cnf/%.bnd: cnf/%.bnd
- mkdir -p $(dir $@)
- cp $< $@
-
-$(SDK_BUILD_BASE)/a2/$(A2_CATEGORY)/%.$(MAJOR).$(MINOR).jar : $(BUILD_BASE)/%/bundle.jar
- mkdir -p $(dir $@)
- cp $< $@
-
-# Build level
-$(BUILD_BASE)/%/bundle.jar : %/bnd.bnd $(BUILD_BASE)/java-compiled
- rsync -r --exclude "*.java" $(dir $<)src/ $(dir $@)bin
- rsync -r $(dir $<)src/ $(dir $@)src
- if [ -d "$(dir $<)OSGI-INF" ]; then rsync -r $(dir $<)OSGI-INF/ $(dir $@)/OSGI-INF; fi
- cp $< $(dir $@)
- cd $(dir $@) && $(BND_TOOL) build
- mv $(dir $@)generated/*.jar $(dir $@)bundle.jar
-
-$(BUILD_BASE)/java-compiled : $(JAVA_SRCS)
- $(JVM) -jar $(ECJ_JAR) -11 -nowarn -time -cp $(BUILD_CLASSPATH) \
- $(ECJ_SRCS)
- touch $@
-
-null :=
-space := $(null) #
-pathsep := :
-
-#WITH_LIST := $(subst $(space),$(pathsep),$(strip $(WITH_LIST)))
-
+include $(SDK_SRC_BASE)/sdk/osgi.mk
\ No newline at end of file
JAVA_HOME := $JAVA_HOME
include \$(SDK_SRC_BASE)/branch.properties
-include \$(SDK_SRC_BASE)/sdk/includes.mk
EOF
output.. = bin/
bin.includes = META-INF/,\
.,\
- OSGI-INF/jcrDeployment.xml,\
- OSGI-INF/repositoryContextsFactory.xml,\
- OSGI-INF/jcrRepositoryFactory.xml,\
- OSGI-INF/jcrFsProvider.xml
+ OSGI-INF/
source.. = src/
-additional.bundles = org.apache.jackrabbit.core,\
- javax.jcr,\
- org.apache.jackrabbit.api,\
- org.apache.jackrabbit.data,\
- org.apache.jackrabbit.jcr.commons,\
- org.apache.jackrabbit.spi,\
- org.apache.jackrabbit.spi.commons,\
- org.slf4j.api,\
- org.apache.commons.collections,\
- EDU.oswego.cs.dl.util.concurrent,\
- org.apache.lucene,\
- org.apache.tika.core,\
- org.apache.commons.dbcp,\
- org.apache.jackrabbit.jcr2spi,\
- org.apache.jackrabbit.spi2dav,\
- org.apache.httpcomponents.httpclient,\
- org.apache.httpcomponents.httpcore,\
- org.apache.tika.parsers,\
- org.h2
+additional.bundles = \
+org.apache.jackrabbit.data, \
+org.apache.jackrabbit.spi.commons,\
+
+
\ No newline at end of file
+include ../sdk.mk
+
JNIDIRS = org_argeo_api_uuid_libuuid
.PHONY: clean all
$(foreach dir, $(JNIDIRS), $(MAKE) -C $(dir);)
clean:
- $(foreach dir, $(JNIDIRS), $(MAKE) -C $(dir) clean;)
+ rm -r $(BUILD_DIR) $(SDK_BUILD_BASE)/jni
+
+
mkdir -p $(dir $@)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
-clean:
- rm -r $(BUILD_DIR) $(SDK_BUILD_BASE)/$(TARGET_EXEC)
-
# Include the .d makefiles. The - at the front suppresses the errors of missing
# Makefiles. Initially, all the .d files will be missing, and we don't want those
# errors to show up.
--11
--nowarn
\ No newline at end of file
+-source 17
+-target 11
+-nowarn
+-time
\ No newline at end of file
+#
+# GENERIC
+#
+JVM := $(JAVA_HOME)/bin/java
+JAVADOC := $(JAVA_HOME)/bin/javadoc
+ECJ_JAR := $(SDK_BUILD_BASE)/a2/org.argeo.tp.sdk/org.eclipse.jdt.core.compiler.batch.3.28.jar
+BND_TOOL := /usr/bin/bnd
+BUILD_BASE = $(SDK_BUILD_BASE)/$(A2_CATEGORY)
-#base-java-sources : $(shell find org.argeo.* -name '*.java')
+WORKSPACE_BNDS := $(shell cd $(SDK_SRC_BASE) && find cnf -name '*.bnd')
+BUILD_WORKSPACE_BNDS := $(WORKSPACE_BNDS:%=$(BUILD_BASE)/%)
-#base-java-classes : $(shell find org.argeo.* -name '*.class')
+A2_JARS = $(foreach category, $(DEP_CATEGORIES), $(shell find $(A2_BASE)/$(category) -name '*.jar'))
+A2_CLASSPATH = $(subst $(space),$(pathsep),$(strip $(A2_JARS)))
-# each dir depends on its package directories
-#$(SDK_SRC_BASE)/% : $(shell find */src -type f | sed "s%/[^/]*$%%" | sort -u)
+A2_BUNDLES = $(foreach bundle, $(BUNDLES),$(A2_OUTPUT)/$(A2_CATEGORY)/$(shell basename $(bundle)).$(MAJOR).$(MINOR).jar)
-# non empty package dirs
-#$(SDK_SRC_BASE)/*/src/% : $(shell grep --no-filename ^import '%/*.java' | sed 's/import //g' | sed 's/static //g' | sed 's/\.[A-Za-z0-9_]*;//' | sed 's/\.[A-Z].*//' | sort | uniq)
+JAVA_SRCS = $(foreach bundle, $(BUNDLES), $(shell find $(bundle) -name '*.java'))
+BNDS = $(foreach bundle, $(BUNDLES), $(BUILD_BASE)/$(shell basename $(bundle))/bnd.bnd)
+ECJ_SRCS = $(foreach bundle, $(BUNDLES), $(bundle)/src[-d $(BUILD_BASE)/$(shell basename $(bundle))/bin])
-# convert dir to package
-#$(shell find %/src -mindepth 1 -type d -printf '%P\n' | sed "s/\//\./g")
+JAVADOC_SRCS = $(foreach bundle, $(JAVADOC_BUNDLES),$(bundle)/src)
-# all packages
-# grep --no-filename ^import src/org/argeo/api/uuid/*.java | sed "s/import //g" | sed "s/static //g" | sed "s/\.[A-Za-z0-9_]*;//" | sed "s/\.[A-Z].*//" | sort | uniq
+osgi: $(BUILD_WORKSPACE_BNDS) $(A2_BUNDLES)
+javadoc: $(BUILD_BASE)/java-compiled
+ $(JAVADOC) -d $(BUILD_BASE)/api --source-path $(subst $(space),$(pathsep),$(strip $(JAVADOC_SRCS))) -subpackages $(JAVADOC_PACKAGES)
+
+# SDK level
+$(BUILD_BASE)/cnf/%.bnd: cnf/%.bnd
+ mkdir -p $(dir $@)
+ cp $< $@
+
+$(SDK_BUILD_BASE)/a2/$(A2_CATEGORY)/%.$(MAJOR).$(MINOR).jar : $(BUILD_BASE)/%.jar
+ mkdir -p $(dir $@)
+ cp $< $@
+
+$(BUILD_BASE)/%.jar: $(BUILD_BASE)/jars-built
+ mv $(basename $@)/generated/*.jar $(basename $@).jar
+
+# Build level
+$(BUILD_BASE)/jars-built: $(BNDS)
+ cd $(BUILD_BASE) && $(BND_TOOL) build
+ touch $@
+
+$(BUILD_BASE)/%/bnd.bnd : %/bnd.bnd $(BUILD_BASE)/java-compiled
+ mkdir -p $(dir $@)bin
+ rsync -r --exclude "*.java" $(dir $<)src/ $(dir $@)bin
+ if [ -d "$(dir $<)OSGI-INF" ]; then rsync -r $(dir $<)OSGI-INF/ $(dir $@)/OSGI-INF; fi
+ cp $< $@
+ echo "\n-sourcepath:$(SDK_SRC_BASE)/$(dir $<)src\n" >> $@
+
+$(BUILD_BASE)/java-compiled : $(JAVA_SRCS)
+ $(JVM) -jar $(ECJ_JAR) @$(SDK_SRC_BASE)/sdk/ecj.args -cp $(A2_CLASSPATH) $(ECJ_SRCS)
+ touch $@
+
+# Local manifests
+manifests : osgi
+ $(foreach bundle, $(BUNDLES), cp -v $(BUILD_BASE)/$(shell basename $(bundle))/META-INF/MANIFEST.MF $(bundle)/META-INF/MANIFEST.MF;)
+
+null :=
+space := $(null) #
+pathsep := :