diff options
author | Joe Onorato <joeo@android.com> | 2009-08-31 10:12:00 -0700 |
---|---|---|
committer | Joe Onorato <joeo@android.com> | 2009-08-31 10:12:00 -0700 |
commit | b72c5c2e5482cf10117b2b25f642f7616b2326c3 (patch) | |
tree | f02ba1bc29f4fe6853d9b7008eed37cdcfb96e81 /build | |
parent | a23344a828357fe4b6596f8af5fed467d72757ab (diff) | |
download | external_proguard-b72c5c2e5482cf10117b2b25f642f7616b2326c3.tar.gz external_proguard-b72c5c2e5482cf10117b2b25f642f7616b2326c3.tar.bz2 external_proguard-b72c5c2e5482cf10117b2b25f642f7616b2326c3.zip |
ProGuard 4.4android-2.1_r2.1sandroid-2.1_r2.1p2android-2.1_r2.1pandroid-2.1_r2android-2.1_r1android-2.0_r1android-2.0.1_r1
Diffstat (limited to 'build')
-rwxr-xr-x | build/build.sh | 94 | ||||
-rw-r--r-- | build/build.xml | 171 | ||||
-rw-r--r-- | build/makefile | 94 |
3 files changed, 359 insertions, 0 deletions
diff --git a/build/build.sh b/build/build.sh new file mode 100755 index 0000000..eb5fcf7 --- /dev/null +++ b/build/build.sh @@ -0,0 +1,94 @@ +#!/bin/bash +# +# GNU/Linux build script for ProGuard. + +# +# Configuration. +# + +ANT_HOME=${ANT_HOME:-/usr/local/java/ant} +WTK_HOME=${WTK_HOME:-/usr/local/java/wtk} + +if [ -z $PROGUARD_HOME ]; then + PROGUARD_HOME=$(which "$0") + PROGUARD_HOME=$(dirname "$0")/.. +fi + +cd "$PROGUARD_HOME" + +SRC=src +CLASSES=classes +LIB=lib + +PROGUARD=proguard/ProGuard +PROGUARD_GUI=proguard/gui/ProGuardGUI +RETRACE=proguard/retrace/ReTrace +ANT_TASK=proguard/ant/ProGuardTask +WTK_PLUGIN=proguard/wtk/ProGuardObfuscator + +ANT_JAR=$ANT_HOME/lib/ant.jar +WTK_JAR=$WTK_HOME/wtklib/kenv.zip + +PROGUARD_JAR=$LIB/proguard.jar +PROGUARD_GUI_JAR=$LIB/proguardgui.jar +RETRACE_JAR=$LIB/retrace.jar + +# +# Function definitions. +# + +function compile { + # Compile java source files. + echo "Compiling ${1//\//.} ..." + javac -nowarn -Xlint:none -sourcepath "$SRC" -d "$CLASSES" \ + "$SRC/$1.java" 2>&1 \ + | sed -e 's|^| |' + + # Copy resource files. + (cd "$SRC"; find $(dirname $1) -maxdepth 1 \ + \( -name \*.properties -o -name \*.png -o -name \*.gif -o -name \*.pro \) \ + -exec cp --parents {} "../$CLASSES" \; ) +} + +function createjar { + echo "Creating $2..." + jar -cfm "$2" "$SRC/$(dirname $1)/MANIFEST.MF" -C "$CLASSES" $(dirname $1) +} + +function updatejar { + echo "Updating $PROGUARD_JAR..." + jar -uf "$PROGUARD_JAR" -C "$CLASSES" $(dirname $1) +} + +# +# Main script body. +# + +mkdir -p "$CLASSES" + +compile $PROGUARD +createjar $PROGUARD "$PROGUARD_JAR" + +compile $PROGUARD_GUI +createjar $PROGUARD_GUI "$PROGUARD_GUI_JAR" + +compile $RETRACE +createjar $RETRACE "$RETRACE_JAR" + +if [ -f "$ANT_JAR" ]; then + export CLASSPATH=$ANT_JAR + compile $ANT_TASK + updatejar $ANT_TASK +else + echo "Please make sure the environment variable ANT_HOME is set correctly," + echo "if you want to compile the optional ProGuard Ant task." +fi + +if [ -f "$WTK_JAR" ]; then + export CLASSPATH=$WTK_JAR + compile $WTK_PLUGIN + updatejar $WTK_PLUGIN +else + echo "Please make sure the environment variable WTK_HOME is set correctly," + echo "if you want to compile the optional ProGuard WTK plugin." +fi diff --git a/build/build.xml b/build/build.xml new file mode 100644 index 0000000..a592945 --- /dev/null +++ b/build/build.xml @@ -0,0 +1,171 @@ +<!-- Ant build script for ProGuard. --> + +<project name = "proguard" + default = "all" + basedir = ".."> + + <property file = "build/build.properties"/> + <property name = "src" value = "src"/> + <property name = "classes" value = "classes"/> + <property name = "lib" value = "lib"/> + + <property name = "ant.jar" value = "${ant.home}/lib/ant.jar"/> + <property name = "wtk.jar" value = "${wtk.home}/wtklib/kenv.jar"/> + + <target name = "all" depends = "basic,options"/> + <target name = "basic" depends = "proguard,proguardgui,retrace"/> + <target name = "options" depends = "anttask,wtkplugin"/> + + <target name = "proguard" depends = "classes,lib"> + <javac nowarn = "true" + deprecation = "false" + srcdir = "${src}" + destdir = "${classes}" + includes = "proguard/ProGuard.java"> + <compilerarg value = "-Xlint:none"/> + </javac> + + <copy todir = "${classes}"> + <fileset dir = "${src}"> + <include name = "proguard/*.properties"/> + <include name = "proguard/*.png"/> + <include name = "proguard/*.gif"/> + <include name = "proguard/*.pro"/> + </fileset> + </copy> + + <jar jarfile = "${lib}/proguard.jar" + manifest = "${src}/proguard/MANIFEST.MF" + basedir = "${classes}" + includes = "proguard/**"/> + </target> + + <target name = "proguardgui" depends = "proguard"> + <javac nowarn = "true" + deprecation = "false" + srcdir = "${src}" + destdir = "${classes}" + includes = "proguard/gui/ProGuardGUI.java"> + <compilerarg value = "-Xlint:none"/> + </javac> + + <copy todir = "${classes}"> + <fileset dir = "${src}"> + <include name = "proguard/gui/*.properties"/> + <include name = "proguard/gui/*.png"/> + <include name = "proguard/gui/*.gif"/> + <include name = "proguard/gui/*.pro"/> + </fileset> + </copy> + + <jar jarfile = "${lib}/proguardgui.jar" + manifest = "${src}/proguard/gui/MANIFEST.MF" + basedir = "${classes}" + includes = "proguard/gui/**"/> + </target> + + <target name = "retrace" depends = "classes,lib"> + <javac nowarn = "true" + deprecation = "false" + srcdir = "${src}" + destdir = "${classes}" + includes = "proguard/retrace/ReTrace.java"> + <compilerarg value = "-Xlint:none"/> + </javac> + + <copy todir = "${classes}"> + <fileset dir = "${src}"> + <include name = "proguard/retrace/*.properties"/> + <include name = "proguard/retrace/*.png"/> + <include name = "proguard/retrace/*.gif"/> + <include name = "proguard/retrace/*.pro"/> + </fileset> + </copy> + + <jar jarfile = "${lib}/retrace.jar" + manifest = "${src}/proguard/retrace/MANIFEST.MF" + basedir = "${classes}" + includes = "proguard/retrace/**"/> + </target> + + <target name = "anttask" depends = "proguard"> + <fail message="Please set the value of the property ant.home in the file build/build.properties, if you want to build the optional ProGuard Ant task."> + <condition> + <not> + <available file="${ant.jar}"/> + </not> + </condition> + </fail> + + <javac nowarn = "true" + deprecation = "false" + classpath = "${ant.jar}" + srcdir = "${src}" + destdir = "${classes}" + includes = "proguard/ant/ProGuardTask.java"> + <compilerarg value = "-Xlint:none"/> + </javac> + + <copy todir = "${classes}"> + <fileset dir = "${src}"> + <include name = "proguard/ant/*.properties"/> + <include name = "proguard/ant/*.png"/> + <include name = "proguard/ant/*.gif"/> + <include name = "proguard/ant/*.pro"/> + </fileset> + </copy> + + <jar jarfile = "${lib}/proguard.jar" + update = "true" + basedir = "${classes}" + includes = "proguard/ant/**"/> + </target> + + <target name = "wtkplugin" depends = "proguard"> + <fail message="Please set the value of the property wtk.home in the file build/build.properties, if you want to build the optional ProGuard WTK plugin."> + <condition> + <not> + <available file="${wtk.jar}"/> + </not> + </condition> + </fail> + + <javac nowarn = "true" + deprecation = "false" + classpath = "${wtk.jar}" + srcdir = "${src}" + destdir = "${classes}" + includes = "proguard/wtk/ProGuardObfuscator.java"> + <compilerarg value = "-Xlint:none"/> + </javac> + + <copy todir = "${classes}"> + <fileset dir = "${src}"> + <include name = "proguard/wtk/*.properties"/> + <include name = "proguard/wtk/*.png"/> + <include name = "proguard/wtk/*.gif"/> + <include name = "proguard/wtk/*.pro"/> + </fileset> + </copy> + + <jar jarfile = "${lib}/proguard.jar" + update = "true" + basedir = "${classes}" + includes = "proguard/wtk/**"/> + </target> + + <target name = "classes"> + <mkdir dir = "${classes}"/> + </target> + + <target name = "lib"> + <mkdir dir = "${lib}"/> + </target> + + <target name = "clean"> + <delete> + <fileset dir = "${classes}"/> + <fileset dir = "${lib}"/> + </delete> + </target> +</project> diff --git a/build/makefile b/build/makefile new file mode 100644 index 0000000..0508eb4 --- /dev/null +++ b/build/makefile @@ -0,0 +1,94 @@ +# GNU/Linux makefile for ProGuard. + +ANT_HOME = /usr/local/java/ant +WTK_HOME = /usr/local/java/wtk + +PROGUARD_HOME := $(subst ./..,..,$(subst /build/..,/,$(dir $(MAKEFILE_LIST))..)) +SRC = $(PROGUARD_HOME)/src +CLASSES = $(PROGUARD_HOME)/classes +LIB = $(PROGUARD_HOME)/lib + +ANT_JAR = $(ANT_HOME)/lib/ant.jar +WTK_JAR = $(WTK_HOME)/wtklib/kenv.zip + +CLASSPATH = $(ANT_JAR):$(WTK_JAR) + +PROGUARD = proguard/ProGuard +PROGUARD_GUI = proguard/gui/ProGuardGUI +RETRACE = proguard/retrace/ReTrace +ANT_TASK = proguard/ant/ProGuardTask +WTK_PLUGIN = proguard/wtk/ProGuardObfuscator + +TARGETS = $(PROGUARD) $(PROGUARD_GUI) $(RETRACE) $(ANT_TASK) $(WTK_PLUGIN) + +JAVAC_OPTIONS = -nowarn -Xlint:none -classpath $(CLASSPATH) -sourcepath $(SRC) -d $(CLASSES) + +# Command sequence definitions for creating jars. + +define createjar + jar -cfm $(LIB)/$@.jar $(SRC)/$(dir $<)MANIFEST.MF \ + -C $(CLASSES) $(dir $<) +endef + +define updatejar + jar -uf $(LIB)/proguard.jar \ + -C $(CLASSES) $(dir $<) +endef + +# The various targets. + +all: basic options +basic: proguard proguardgui retrace +options: anttask wtkplugin + +proguard: $(PROGUARD) + $(createjar) + +proguardgui: proguard +proguardgui: $(PROGUARD_GUI) + $(createjar) + +retrace: $(RETRACE) + $(createjar) + +anttask: $(ANT_JAR) +anttask: $(PROGUARD) +anttask: $(ANT_TASK) + $(updatejar) + +wtkplugin: $(WTK_JAR) +wtkplugin: $(PROGUARD) +wtkplugin: $(WTK_PLUGIN) + $(updatejar) + +clean: + -rm -fr $(CLASSES) $(LIB) + + +define RESOURCES + $(shell find $(SRC)/$(dir $(1)) -maxdepth 1 \( -name \*.properties -o -name \*.png -o -name \*.gif -o -name \*.pro \) -printf $(CLASSES)/$(dir $(1))%P\\n) +endef + +define TARGETRULE + $(1): $(CLASSES) $(CLASSES)/$(1).class $(call RESOURCES,$(1)) $(LIB) +endef + +$(foreach TARGET,$(TARGETS),$(eval $(call TARGETRULE,$(TARGET)))) + +$(CLASSES) $(LIB): + -mkdir -p $@ + +$(CLASSES)/%.class: $(SRC)/%.java + javac $(JAVAC_OPTIONS) $^ + +$(CLASSES)/%.properties $(CLASSES)/%.png $(CLASSES)/%.gif $(CLASSES)/%.pro: + cp $(subst $(CLASSES),$(SRC),$@) $@ + +%.jar %.zip: + echo "Please make sure the path to $@ is set" + echo "correctly in this $(strip $(MAKEFILE_LIST))." + echo "Alternatively, if you don't need the corresponding option," + echo "you can run `make' with the option -k." + find $@ + +.PHONY: all basic options proguard proguardgui retrace anttask wtkplugin clean $(TARGETS) $(OPTIONAL_TARGETS) |