From 132d4be41c2f47bdd4ce3d8eba70dbf8c5e128ef Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=B6tz=20Lindenmaier?= Date: Tue, 5 Nov 2002 16:48:54 +0000 Subject: [PATCH] moved to dir firmjnk [r515] --- tools/Makefile | 40 ------------- tools/build_firm_jni | 136 ------------------------------------------- tools/crecoder.jar | Bin 333252 -> 333334 bytes 3 files changed, 176 deletions(-) delete mode 100644 tools/Makefile delete mode 100755 tools/build_firm_jni diff --git a/tools/Makefile b/tools/Makefile deleted file mode 100644 index b2563370f..000000000 --- a/tools/Makefile +++ /dev/null @@ -1,40 +0,0 @@ - - - -LIBNAME = libfirmjni.so - -.PHONY: default all clean realclean depend - - - -MEMBERS = Firm.m Firm.m Firm_common.m Dbginfo.m Ident.m Tv.m \ - Type.m Entity.m Type_or_entity.m Tpop.m Mangle.m \ - Irprog.m Irgraph.m Irnode.m Irmode.m Irop.m Ircons.m Ircgcons.m Irflag.m Irvrfy.m \ - Irdump.m Iropt.m Irgopt.m Ircgopt.m \ - Irouts.m Irdom.m Irloop.m Cgana.m \ - Irgwalk.m Irgmod.m Typewalk.m Typegmod.m - -OFILES = $(MEMBERS:.m=.o) -HFILES = $(MEMBERS:.m=.h) - -all: lib - -%.class: %.java - javac $< - -%.h: %.class - javah $(<:.class=) - -cp Firm_0005fcommon.h Firm_common.h - -cp Type_0005for_0005fentity.h Type_or_entity.h - -%.o: %.c %.h - gcc $(CPPFLAGS) -c $< -o $@ - -lib: $(HFILES) $(OFILES) - gcc -shared -fPIC -o $(LIBNAME) *.o /ben/goetz/proj/libfirm/i686/libfirm.a - -clean: -# rm -f *.class $(JHFILES) *.o $(JCFILES) $(JOFILES) $(CLSFILES) $(JFILES) - -realclean: clean -# rm -f *~ libfirmjni.a libfirmjni.so *.vcg diff --git a/tools/build_firm_jni b/tools/build_firm_jni deleted file mode 100755 index f8f285577..000000000 --- a/tools/build_firm_jni +++ /dev/null @@ -1,136 +0,0 @@ -#!/bin/sh - -# Project: FIRM -# File name: script/build_firm_jni -# Purpose: skript to build a java native interface for the public headers of firm. -# Author: Goetz Lindenmaier -# Modified by: -# Created: 30.10.2002 -# CVS-ID: $Id$ -# Copyright: (c) 2002 Universität Karlsruhe -# Licence: - - -############################################################################### -# Set this variable to the directory which shall contain the JNI implementation -FIRM_JNI_DIR=/ben/goetz/proj/libfirm/firm-jni/ - -# Set these directories to point to a libfirm installation: - -FIRM_INCLUDE_DIR=/ben/goetz/proj/libfirm/i686/include -FIRM_LIB_DIR=/ben/goetz/proj/libfirm/i686 -FIRM_JNI_TOOLS_DIR=/ben/goetz/proj/libfirm/firm-jni/tools - -# Set this directory to a directory with sufficient space. -WORK_DIR=/ben/goetz/proj/libfirm/firm-jni/tmp - -# This is the list of firm headers a JNI interface is generated for -FIRM_HEADERS="firm.h firm_common.h dbginfo.h ident.h tv.h - type.h entity.h type_or_entity.h tpop.h mangle.h - irprog.h irgraph.h irnode.h irmode.h irop.h ircons.h ircgcons.h irflag.h irvrfy.h - irdump.h iropt.h irgopt.h ircgopt.h - irouts.h irdom.h irloop.h cgana.h - irgwalk.h irgmod.h typewalk.h typegmod.h" - -############################################################################### - -CURRENT_DIR=$PWD -SOURCE_DIR=sources -PUREC_DIR=purec - -MACHINE=`uname -m` -SYS_OS=`uname -s` -ARCH_DIR=$MACHINE-$SYS_OS - -LOG_FILE=compile-log.txt - -REMOVE_CPP_COMMANDS=$FIRM_JNI_TOOLS_DIR/remove_cpp_comands.perl - -# -# shell initialization -# -source /afs/info.uni-karlsruhe.de/public/tools/Modules/init/sh - -# -# flags -# -verbose="" - -# -# set up directories -# -rm -rf $WORK_DIR -mkdir -p $WORK_DIR -cd $WORK_DIR - -############################################################################### - -analargs () { - while [ $# -gt 0 ]; do - case $1 in - --verbose) verbose="y";; - *) echo "Unknown option "$1;; - esac - shift - done -} - -analargs $* - -############################################################################### - - -############################################################################### -# Get all the necessary Firm headers. -cd $WORK_DIR - -mkdir $PUREC_DIR -mkdir $SOURCE_DIR - -for file in $FIRM_HEADERS; do - cp $FIRM_INCLUDE_DIR/$file $SOURCE_DIR -done; - -cd $SOURCE_DIR - - -############################################################################### -# Remove C preprocessor commands. Overwrite the header files. -# This part should be removed if crecoder integrates the preprocessor. - -rm -f firm_typedefs.h -for file in $FIRM_HEADERS; do - perl $REMOVE_CPP_COMMANDS $file -done; - -for file in $FIRM_HEADERS; do - gcc -E -C -P $file -o ../$PUREC_DIR/$file -done; - -cd ../$PUREC_DIR - - -############################################################################### -# Call crecoder to construct from each header a .java file specifying the -# java native interface. Further crecoder constructs an implementation of -# the java native interface in C calling the real libfirm functions. -# For a file "file.h" files "File.java" and "File.c" are generated. - -module add jdk-1.3.1-sun -export CLASSPATH=$FIRM_JNI_TOOLS_DIR/crecoder.jar:$CLASSPATH -for file in $FIRM_HEADERS; do - java crecoder/tools/jniBuilder/BuildJNI $file -done; - -# Remove the C headers which are no more needed. They contain -# nonsense no C compiler ever should see ;-) -rm -f $FIRM_HEADERS -# Make the JNI Implementation - -export CPPFLAGS="-I. -I/usr/public2/java/jdk1.3-sun/include/ -I/usr/public2/java/jdk1.3-sun/include/linux/ -I$FIRM_INCLUDE_DIR" -export LDFLAGS="-L$FIRM_LIB_DIR" - -make -f $FIRM_JNI_TOOLS_DIR/Makefile -mv libfirmjni.so $FIRM_JNI_DIR - -#mv *.java *.class $FIRM_JNI_DIR diff --git a/tools/crecoder.jar b/tools/crecoder.jar index 9450921556a79c0edd69a53c3678636ee842ff1b..d74d66ab73033e8f65c2c6af660654f59d4445ad 100644 GIT binary patch delta 17330 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