]> git.argeo.org Git - gpl/argeo-tp.git/blob - bootstrap/Makefile
Rebuild ECJ and BND
[gpl/argeo-tp.git] / bootstrap / Makefile
1 include ../sdk.mk
2 include ../common.mk
3
4 ECJ_VERSION=4.26
5 BND_VERSION=5.3.0
6
7 ORIGIN_BASE=$(HOME)/.cache/argeo/build/origin
8 BOOTSTRAP_BASE=$(SDK_BUILD_BASE)/bootstrap
9
10 ECJ_BASE=$(BOOTSTRAP_BASE)/ecj
11 ECJ_SRC=$(ECJ_BASE)/OSGI-OPT/src
12
13 BNDLIB_BASE=$(BOOTSTRAP_BASE)/bndlib
14 BNDLIB_SRC=$(BNDLIB_BASE)/OSGI-OPT/src
15
16 bootstrap-download-sources: $(ORIGIN_BASE)/ecjsrc-$(ECJ_VERSION).jar $(ORIGIN_BASE)/bnd-$(BND_VERSION).tar.gz
17
18 $(ORIGIN_BASE)/ecjsrc-$(ECJ_VERSION).jar:
19 mkdir -p $(ORIGIN_BASE)
20 wget -c -O $(ORIGIN_BASE)/ecjsrc-$(ECJ_VERSION).jar https://ftp-stud.hs-esslingen.de/Mirrors/eclipse/eclipse/downloads/drops4/R-4.26-202211231800/ecjsrc-$(ECJ_VERSION).jar
21
22 $(ORIGIN_BASE)/bnd-$(BND_VERSION).tar.gz:
23 mkdir -p $(ORIGIN_BASE)
24 wget -c -O $(ORIGIN_BASE)/bnd-$(BND_VERSION).tar.gz https://github.com/bndtools/bnd/archive/refs/tags/$(BND_VERSION).REL.tar.gz
25
26 all: ecj-build bndlib-build
27 make -C org.argeo.tp.build all
28
29 ecj: ecj-build
30
31 ecj-build:
32 mkdir -p $(ECJ_BASE)
33 cd $(ECJ_BASE) && jar -xf $(ORIGIN_BASE)/ecjsrc-$(ECJ_VERSION).jar
34 # remove ant-dependent class
35 $(RM) $(ECJ_BASE)/org/eclipse/jdt/core/JDTCompilerAdapter.java
36 # clean up
37 $(RM) $(ECJ_BASE)/*.jar
38 $(RM) $(ECJ_BASE)/build.xml
39 $(RM) $(ECJ_BASE)/ecj.1
40 $(RM) -rf $(ECJ_BASE)/scripts
41 # TODO: keep the service files
42 $(RM) -rf $(ECJ_BASE)/META-INF
43 # list sources
44 find $(ECJ_BASE)/org | grep "\.java" > $(BOOTSTRAP_BASE)/ecj.todo
45 # copy sources
46 mkdir -p $(ECJ_SRC)
47 cp -r $(ECJ_BASE)/org $(ECJ_SRC)
48 # build
49 $(JAVA_HOME)/bin/javac -d $(ECJ_BASE) -source 17 -target 17 -Xlint:none @$(BOOTSTRAP_BASE)/ecj.todo
50 # remove sources
51 cd $(ECJ_BASE) && find . -name "*.java" -name "*.html" -type f -exec rm -f {} \;
52
53 bndlib-build: ecj-build
54 # copy sources
55 cd $(BOOTSTRAP_BASE) && tar -xzf $(ORIGIN_BASE)/bnd-$(BND_VERSION).tar.gz
56 mkdir -p $(BNDLIB_SRC)
57 cp -r $(BOOTSTRAP_BASE)/bnd-$(BND_VERSION).REL/aQute.libg/src/* $(BNDLIB_SRC)
58 cp -r $(BOOTSTRAP_BASE)/bnd-$(BND_VERSION).REL/biz.aQute.bndlib/src/* $(BNDLIB_SRC)
59 cp -r $(BOOTSTRAP_BASE)/bnd-$(BND_VERSION).REL/biz.aQute.bnd.annotation/src/* $(BNDLIB_SRC)
60 rm -rf $(BOOTSTRAP_BASE)/bnd-$(BND_VERSION).REL
61
62 # clean up
63 rm -rf $(BNDLIB_SRC)/aQute/bnd/junit
64
65 # build
66 $(JAVA_HOME)/bin/java -cp $(ECJ_BASE) org.eclipse.jdt.internal.compiler.batch.Main -nowarn \
67 -cp $(BND_CLASSPATH) \
68 -source 17 -target 17 \
69 $(BNDLIB_SRC) \
70 -d $(BNDLIB_BASE)
71
72
73 clean:
74 rm -rf $(BOOTSTRAP_BASE)
75 make -C org.argeo.tp.build clean