Builds based on Make
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 12 Feb 2022 10:23:40 +0000 (11:23 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 12 Feb 2022 10:23:40 +0000 (11:23 +0100)
Makefile
configure
jcr/org.argeo.cms.jcr/build.properties
jni/Makefile
jni/jni.mk
sdk/ecj.args
sdk/includes.mk [deleted file]
sdk/osgi.mk

index 85473c29cb1291d9f86b35075d9326b0ebfb8941..f19a0dc4b61f068b55f7d516f1eb2f53264e8a2b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,9 @@
 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 \
@@ -15,34 +14,13 @@ org.argeo.api.cms \
 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 \
@@ -54,80 +32,18 @@ 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
index 90c0e9953b3150d59901ec2096752f93f53e218a..da5dffbd145f01926ae75f61d4ec5b10c0a83dce 100644 (file)
--- a/configure
+++ b/configure
@@ -43,7 +43,6 @@ SDK_BUILD_BASE := $SDK_BUILD_BASE
 JAVA_HOME := $JAVA_HOME
 
 include \$(SDK_SRC_BASE)/branch.properties
-include \$(SDK_SRC_BASE)/sdk/includes.mk
 EOF
 
 
index 55784db080fe5349dc525dbe3893eaf6c38f703d..2b99dd7ba2b140ae683db2e8f968ac96bd1448c7 100644 (file)
@@ -1,27 +1,10 @@
 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
index 8944d5ce7645fe6f132317813bf9be39880c8d9f..daac622fe5d6181738e9643f432fb04a8b867dc4 100644 (file)
@@ -1,3 +1,5 @@
+include ../sdk.mk
+
 JNIDIRS = org_argeo_api_uuid_libuuid
 
 .PHONY: clean all
@@ -6,5 +8,7 @@ all:
        $(foreach dir, $(JNIDIRS), $(MAKE) -C $(dir);)
        
 clean:
-       $(foreach dir, $(JNIDIRS), $(MAKE) -C $(dir) clean;)
+       rm -r $(BUILD_DIR) $(SDK_BUILD_BASE)/jni
+
+
 
index 46f06749c91185ff5b929dd028dec65c24ad8613..40dde446958e754f28cd97f36534088f9ad9a29e 100644 (file)
@@ -50,9 +50,6 @@ $(BUILD_DIR)/%.cpp.o: %.cpp
        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.
index 306fd825c98d7cfdd5a3d0bf4a5998c1a8a48f01..852a33d4a0272c9afa3f4e7ab4c5f3598d655e01 100644 (file)
@@ -1,2 +1,4 @@
--11
--nowarn
\ No newline at end of file
+-source 17
+-target 11
+-nowarn
+-time 
\ No newline at end of file
diff --git a/sdk/includes.mk b/sdk/includes.mk
deleted file mode 100644 (file)
index e69de29..0000000
index 5b27b0e3b3a57c2c75268f06335d27b370c21372..a97a937f82f0b5186ea4752e337f2138ce45e478 100644 (file)
@@ -1,21 +1,67 @@
 
 
+#
+# 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 := :