Skip to content

Commit 5efd9e7

Browse files
committed
Add a Makefile to auto-build everything in a headless environment
1 parent babf5de commit 5efd9e7

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed

Makefile

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# To use this file, run:
2+
#
3+
# $ make CONFIGURE_FLAGS="-Dplugin.path=/path/to/your/eclipse/plugins"
4+
#
5+
# For example, on Debian GNU/Linux:
6+
#
7+
# $ make CONFIGURE_FLAGS="-Dplugin.path=/usr/lib/eclipse:/usr/share/eclipse/dropins/jdt"
8+
#
9+
# You can also add e.g. "-DforceContextQualifier=none" to make the jars be
10+
# output under a stable filename.
11+
#
12+
CONFIGURE_FLAGS +=
13+
CORE_FLAGS += -DjavacFailOnError=true
14+
INCUBATOR_FLAGS += -DjavacFailOnError=true -DjavacSource=1.6 -DjavacTarget=1.6
15+
16+
# Order is important; dependencies must go earlier.
17+
CORE_PLUGINS = net.sf.j2s.core net.sf.j2s.ajax net.sf.j2s.ui net.sf.j2s.lib
18+
INCUBATOR_PLUGINS = net.sf.j2s.ui.template.velocity net.sf.j2s.ui.cmdline
19+
20+
BUILD_WORKSPACE := $(PWD)/autobuild
21+
ECLIPSE_ANT = eclipse -nosplash -clean \
22+
-configuration $(BUILD_WORKSPACE)/configuration \
23+
-user $(BUILD_WORKSPACE) \
24+
-data $(BUILD_WORKSPACE) \
25+
-application org.eclipse.ant.core.antRunner
26+
27+
ECLIPSE_ANT_BUILD = $(ECLIPSE_ANT) build.update.jar
28+
ECLIPSE_ANT_CLEAN = if [ -f build.xml ]; then \
29+
$(ECLIPSE_ANT) clean; \
30+
rm -rf build.xml javaCompiler...args; \
31+
fi
32+
33+
all: build
34+
35+
configure:
36+
$(ECLIPSE_ANT) -f configure.xml $(CONFIGURE_FLAGS)
37+
38+
build: configure
39+
for i in $(CORE_PLUGINS:%=sources/%); do \
40+
( cd $$i && $(ECLIPSE_ANT_BUILD) $(CORE_FLAGS); ) \
41+
done
42+
for i in $(INCUBATOR_PLUGINS:%=incubator/%); do \
43+
( cd $$i && $(ECLIPSE_ANT_BUILD) $(INCUBATOR_FLAGS); ) \
44+
done
45+
46+
clean:
47+
for i in $(INCUBATOR_PLUGINS:%=incubator/%); do \
48+
( cd $$i && $(ECLIPSE_ANT_CLEAN); ) \
49+
done
50+
for i in $(CORE_PLUGINS:%=sources/%); do \
51+
( cd $$i && $(ECLIPSE_ANT_CLEAN); ) \
52+
done
53+
rm -rf $(BUILD_WORKSPACE)/.metadata
54+
55+
prefix ?= /usr/local
56+
datadir ?= $(prefix)/share/eclipse
57+
pluginsdir ?= $(datadir)/plugins
58+
59+
install:
60+
test -z "$(DESTDIR)$(pluginsdir)" || mkdir -p "$(DESTDIR)$(pluginsdir)"
61+
install -t "$(DESTDIR)$(pluginsdir)" \
62+
$(join $(CORE_PLUGINS:%=sources/%/),$(CORE_PLUGINS:%=%_2.0.0.jar)) \
63+
$(join $(INCUBATOR_PLUGINS:%=incubator/%/),$(INCUBATOR_PLUGINS:%=%_1.0.0.*.jar))
64+
65+
.PHONY: all configure build clean install

configure.xml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project name="java2script" default="configure" basedir=".">
3+
<!-- IMPORTANT!
4+
5+
This is not a normal ant build file. You need to run it via the Eclipse
6+
AntRunner, like this Unix shell example:
7+
8+
$ eclipse -nosplash -clean \
9+
-configuration $PWD/autobuild/configuration \
10+
-user $PWD/autobuild \
11+
-data $PWD/autobuild \
12+
-application org.eclipse.ant.core.antRunner \
13+
-buildfile build.xml \
14+
-Dplugin.path=/usr/lib/eclipse:/usr/share/eclipse/dropins/jdt
15+
16+
Setting the -configuration, -user, and -data options are important in an
17+
automated build process where you don't want to clobber the default locations.
18+
19+
For more details see http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Ftasks%2Fpde_feature_generating_antcommandline.htm
20+
-->
21+
<target name="configure">
22+
<eclipse.buildScript elements="plugin@net.sf.j2s.core"
23+
buildDirectory="sources"
24+
pluginPath="${plugin.path}"
25+
forceContextQualifier="${forceContextQualifier}" />
26+
<eclipse.buildScript elements="plugin@net.sf.j2s.ajax"
27+
buildDirectory="sources"
28+
pluginPath="${plugin.path}"
29+
forceContextQualifier="${forceContextQualifier}" />
30+
<eclipse.buildScript elements="plugin@net.sf.j2s.lib"
31+
buildDirectory="sources"
32+
pluginPath="${plugin.path}"
33+
forceContextQualifier="${forceContextQualifier}" />
34+
<eclipse.buildScript elements="plugin@net.sf.j2s.ui"
35+
buildDirectory="sources"
36+
pluginPath="${plugin.path}"
37+
forceContextQualifier="${forceContextQualifier}" />
38+
<eclipse.buildScript elements="plugin@net.sf.j2s.ui.template.velocity"
39+
buildDirectory="incubator"
40+
pluginPath="${plugin.path}${path.separator}sources"
41+
forceContextQualifier="${forceContextQualifier}" />
42+
<eclipse.buildScript elements="plugin@net.sf.j2s.ui.cmdline"
43+
buildDirectory="incubator"
44+
pluginPath="${plugin.path}${path.separator}sources"
45+
forceContextQualifier="${forceContextQualifier}" />
46+
</target>
47+
</project>

0 commit comments

Comments
 (0)