X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=firmjni%2FMakefile.in;h=90a53f4885bbe34d3aa7123a54d1d09f3d6b135e;hb=5c8fea174ada95511143ff2838ae1c2ce04bae6f;hp=762bd2366a714bcc38d0a4677649cd163c317704;hpb=5b567bb7b5f4558bc809be14ca2250e9dce1fd17;p=libfirm diff --git a/firmjni/Makefile.in b/firmjni/Makefile.in index 762bd2366..90a53f488 100644 --- a/firmjni/Makefile.in +++ b/firmjni/Makefile.in @@ -15,7 +15,10 @@ srcdir = @srcdir@ topdir = .. subdir = firmjni -enable_heapanal := @enable_heapanalysis@ +enable_heapanal := @enable_heapanalysis@ +enable_libcore := @enable_libcore@ +enable_external_effects := @enable_external_effects@ +disable_libiberty := @disable_libiberty@ # The library implementing the JNI methods. This name is also # known to the generator for the JNI interface and used in the @@ -47,9 +50,28 @@ CPPFLAGS += -I$(top_srcdir)/ir/ir -I$(top_srcdir)/ir/common \ -I$(top_srcdir)/ir/ident -I$(top_srcdir)/ir/tr \ -I$(top_srcdir)/ir/tv -I$(top_srcdir)/ir/debug \ -I$(top_srcdir)/ir/ana -I$(top_srcdir)/ir/opt \ - -I$(top_srcdir)/ir/st -I$(top_srcdir)/ir/stat + -I$(top_srcdir)/ir/st -I$(top_srcdir)/ir/stat \ + -I$(top_srcdir)/ir/arch -I$(topdir)/ir/config \ + -I$(topdir) + +LDFLAGS += -L$(libdir) + +ifeq ($(enable_heapanal),yes) +LDFLAGS += -lfirmlower -labor -lheapanal +endif + +ifeq ($(enable_libcore),yes) +LDFLAGS += -lcore +endif + +ifeq ($(enable_external_effects),yes) +LDFLAGS += -lxml2 +endif + +ifeq ($(disable_libiberty),yes) +LDFLAGS += -liberty +endif -LDFLAGS += -I$(topdir) FIRM_HEADERS=$(notdir $(FIRM_PATH_HEADERS)) MEMBERS=$(subst .h,.m,$(shell echo $(FIRM_HEADERS)|$(SHELL_TOUPPER))) @@ -61,14 +83,16 @@ MEMBERS += $(IMPL_MEMBERS) # How to pass function pointers? Or how to obtain them? # Irgwalk.m Typewalk.m # -FIRM_PATH_HEADERS=common/firm.h common/firm_common.h \ +FIRM_PATH_HEADERS=common/firm_types.h common/firm.h common/firm_common.h \ ident/ident.h tv/tv.h \ tr/type.h tr/entity.h tr/type_or_entity.h tr/tpop.h tr/mangle.h \ + tr/type_identify.h \ ir/irprog.h ir/irgraph.h ir/irnode.h ir/irmode.h ir/irop.h \ ir/ircons.h ir/ircgcons.h ir/irflag.h ir/irvrfy.h ir/irdump.h \ ir/iropt.h ir/irgopt.h ir/ircgopt.h \ ana/irouts.h ana/irdom.h ana/irloop.h ana/cgana.h \ - ir/irgmod.h tr/typegmod.h opt/tailrec.h + ir/irgmod.h tr/typegmod.h opt/tailrec.h arch/archop.h \ + ana/irextbb.h FIRM_SOURCE_DIR_HEADERS=$(addprefix $(SOURCE_DIR)/,$(FIRM_HEADERS)) @@ -121,22 +145,16 @@ Heapanal.java: javah -classpath $(topdir) -o $@ $(PACKAGENAME).$(<:.class=) %.o: %.c %.h - gcc $(CPPFLAGS) -c $< -o $@ + $(CC) $(CPPFLAGS) -c $< -o $@ $(OFILES): - gcc $(CPPFLAGS) -c $(@:.o=.c) -o $@ - - -ifeq ($(enable_heapanal),yes) -HEAPANALLIB = -lheapanal -else -HEAPANALLIB = -endif + $(CC) $(CPPFLAGS) -c $(@:.o=.c) -o $@ +# We need firmlower and abor for heap analysis stuff, which is called from aux/Heapanal.java +# BY the way, what is ../../sw/lib/ can this be removed? Probaly, so I did. jni: $(HFILES) $(OFILES) # ../libfirm.a - gcc -shared -fPIC -o $(LIBNAME) *.o -lfirm -L.. $(HEAPANALLIB) $(LDFLAGS) -liberty -L../../sw/lib - + $(CC) -shared -fPIC -o $(LIBNAME) *.o -lfirm -L.. $(LDFLAGS) install: cp libfirmjni.so $(libdir) # mkdir $(javadir) @@ -183,7 +201,7 @@ $(FIRM_SOURCE_DIR_HEADERS): $(SOURCE_DIR) # troff -a -C -z $(FIRM_SRC_HEADER) > $(SOURCE_DIR)/$(notdir $@) $(FIRM_HEADERS):$(FIRM_SOURCE_DIR_HEADERS) $(SOURCE_DIR)/firm_typedefs.h - gcc $(CPPFLAGS) -E -C -P $(SOURCE_DIR)/$@ -o $@ + $(CC) $(CPPFLAGS) -E -C -P $(SOURCE_DIR)/$@ -o $@ ############################################################################### # Call crecoder to construct from each header a .java file specifying the @@ -195,7 +213,7 @@ $(FIRM_HEADERS):$(FIRM_SOURCE_DIR_HEADERS) $(SOURCE_DIR)/firm_typedefs.h H_FROM_JAVA=$(subst .java,.h,$(shell echo $@|$(SHELL_TOLOWER))) %.java: $(FIRM_SOURCE_DIR_HEADERS) $(SOURCE_DIR)/firm_typedefs.h - gcc $(CPPFLAGS) -E -C -P $(SOURCE_DIR)/$(H_FROM_JAVA) -o $(H_FROM_JAVA) + $(CC) $(CPPFLAGS) -E -C -P $(SOURCE_DIR)/$(H_FROM_JAVA) -o $(H_FROM_JAVA) env CLASSPATH=$(FIRM_JNI_TOOLS_DIR)/crecoder.jar:$$CLASSPATH java crecoder/tools/jniBuilder/BuildJNI $(H_FROM_JAVA);\ rm $(H_FROM_JAVA); # remove the patched header so that further compilation finds the proper firm headers