qse/ase/java/makefile.in
2008-06-10 03:29:00 +00:00

99 lines
2.9 KiB
Makefile

#
# $Id: makefile.in,v 1.6 2007/11/11 15:06:47 bacon Exp $
#
TOP_DIR = @abs_top_builddir@
CC = @CC@
CXX = @CXX@
CFLAGS = @CFLAGS@ -I$(TOP_DIR)/inc
CXXFLAGS = @CXXFLAGS@ -I$(TOP_DIR)/inc
LDFLAGS = @LDFLAGS@ -L$(TOP_DIR)/out/@BUILDMODE@/lib
LIBS = @LIBS@ -laseawk -lasecmn -laseutl -lm
LIBS_CXX = -laseawk++ ${LIBS}
LIBS_CJ = -laseawkja
MODE = @BUILDMODE@
STRIP = @STRIP@
CJ = @CJ@
CJFLAGS = @CJFLAGS@ --classpath=$(TOP_DIR)/..:. -fjni
BUILD_CJ = @BUILD_CJ@
JAVAC = @JAVAC@
JAR = @JAR@
CFLAGS_JNI = @CFLAGS_JNI@
BUILD_JNI = @BUILD_JNI@
AR = ar
OUT_DIR= $(TOP_DIR)/out/$(MODE)
OUT_DIR_LIB = $(OUT_DIR)/lib
OUT_DIR_BIN = $(OUT_DIR)/cmd
TMP_DIR = $(MODE)
ASEAWK_LIB =
all: build$(BUILD_JNI)$(BUILD_CJ)
build: $(TMP_DIR) $(OUT_DIR_BIN) $(OUT_DIR_BIN)/aseawk $(OUT_DIR_BIN)/aseawk++
buildjnicj: buildjni buildcj
buildjni: build $(OUT_DIR_BIN)/aseawk.jar $(OUT_DIR)/AseAwkApplet.html $(OUT_DIR)/AseAwkApplet.js
buildcj: build $(OUT_DIR_BIN)/aseawkja
$(OUT_DIR_BIN)/aseawk: awk.c
$(CC) $(CFLAGS) -o $@ awk.c $(LDFLAGS) $(LIBS)
$(STRIP) $@
$(OUT_DIR_BIN)/aseawk++: Awk.cpp
$(CXX) $(CXXFLAGS) -o $@ Awk.cpp $(LDFLAGS) $(LIBS_CXX)
$(STRIP) $@
$(OUT_DIR_BIN)/aseawkja: $(TMP_DIR)/cj AseAwk.java AseAwkPanel.java AseAwkApplet.java
$(CJ) $(CJFLAGS) -o $(TMP_DIR)/cj/AseAwk.o -c AseAwk.java
$(CJ) $(CJFLAGS) -o $(TMP_DIR)/cj/AseAwkPanel.o -c AseAwkPanel.java
$(CJ) $(CJFLAGS) -o $(TMP_DIR)/cj/AseAwkApplet.o -c AseAwkApplet.java
mkdir -p $(TMP_DIR)/cj/lib
cd $(TMP_DIR)/cj/lib; $(AR) xv @abs_top_builddir@/@BUILDMODE@/lib/libaseawkja.a
$(CJ) --main=AseAwk -o $@ $(TMP_DIR)/cj/*.o $(TMP_DIR)/cj/lib/*.o
rm -rf $(TMP_DIR)/cj/lib
# Linking with the library seems to cause the resulting program
# to crash for some JNI operations. Correct me if I'm wrong.
#$(CJ) --main=AseAwk -o $@ $(TMP_DIR)/cj/*.o $(LDFLAGS) $(LIBS_CJ)
$(OUT_DIR_BIN)/aseawk.jar: $(TMP_DIR)/AseAwkPanel.class $(TMP_DIR)/AseAwk.class $(TMP_DIR)/AseAwkApplet.class
cd $(TMP_DIR); $(JAR) -xvf ../$(OUT_DIR_LIB)/aseawk.jar
cd $(TMP_DIR); $(JAR) -cvfm ../$@ ../manifest *.class ase
rm -rf $(TMP_DIR)/ase
$(TMP_DIR)/AseAwkPanel.class: AseAwkPanel.java
$(JAVAC) -classpath $(TMP_DIR):$(OUT_DIR_LIB)/aseawk.jar -d $(TMP_DIR) AseAwkPanel.java
$(TMP_DIR)/AseAwk.class: AseAwk.java
$(JAVAC) -classpath $(TMP_DIR):$(OUT_DIR_LIB)/aseawk.jar -d $(TMP_DIR) AseAwk.java
$(TMP_DIR)/AseAwkApplet.class: AseAwkApplet.java
$(JAVAC) -classpath $(TMP_DIR):$(OUT_DIR_LIB)/aseawk.jar -d $(TMP_DIR) AseAwkApplet.java
$(OUT_DIR)/AseAwkApplet.html: AseAwkApplet.html
cp -pf AseAwkApplet.html $(OUT_DIR)
$(OUT_DIR)/AseAwkApplet.js: AseAwkApplet.js
cp -pf AseAwkApplet.js $(OUT_DIR)
$(OUT_DIR_BIN):
mkdir -p $(OUT_DIR_BIN)
$(TMP_DIR):
mkdir -p $(TMP_DIR)
$(TMP_DIR)/cj:
mkdir -p $(TMP_DIR)/cj
clean:
rm -rf $(OUT_DIR_BIN)/aseawk $(OUT_DIR_BIN)/aseawk++ $(OUT_DIR_BIN)/aseawkja
rm -rf $(OUT_DIR_BIN)/aseawk.jar $(OUT_DIR)/AseAwkApplet.html $(OUT_DIR)/AseAwkApplet.js $(TMP_DIR)/*.class