X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=firmjni%2FMakefile.in;h=59c5dccbbe6d21561166dd5bb4b0e6ee2bfb65ee;hb=534b324d67b91c9131c8eaba0b763c7ca66987f7;hp=09508aee326e501e59b4ad570fec9d1cfcd0f1b1;hpb=1a09f25603172665322612b51760898e54d13530;p=libfirm diff --git a/firmjni/Makefile.in b/firmjni/Makefile.in index 09508aee3..59c5dccbb 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,28 +50,120 @@ 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/st -I$(top_srcdir)/ir/stat \ + -I$(top_srcdir)/ir/arch -I$(top_srcdir)/ir/lower \ + -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))) MEMBERS += $(IMPL_MEMBERS) # How to pass function pointers? Therefore removed. -# irgwalk.h typewalk.h +# irgwalk.h typewalk.h firmwalk.h # How to pass function pointers? Or how to obtain them? # Irgwalk.m Typewalk.m # -FIRM_PATH_HEADERS=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 \ - 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 + +# common/debug.h requieres libcore +# ir/irprintf.h crecoder cannot handle va_list +# +FIRM_PATH_HEADERS= \ + common/firm_types.h \ + common/firm_common.h \ + common/firm.h \ + \ + ident/ident.h \ + \ + ana/irouts.h \ + ana/trouts.h \ + ana/irdom.h \ + ana/cgana.h \ + ana/irloop.h \ + ana/irtypeinfo.h \ + ana/irsimpletype.h \ + ana/callgraph.h \ + ana/rta.h \ + ana/interval_analysis.h \ + ana/field_temperature.h \ + ana/execution_frequency.h \ + ana/irextbb.h \ + ana/irconsconfirm.h \ + ana/analyze_irg_args.h \ + \ + ir/irprog.h \ + ir/irgraph.h \ + ir/irnode.h \ + ir/irmode.h \ + ir/irop.h \ + ir/ircons.h \ + ir/irflag.h \ + ir/irvrfy.h \ + ir/irgmod.h \ + ir/iropt.h \ + ir/irdump.h \ + ir/irgopt.h \ + ir/ircgcons.h \ + ir/ircgopt.h \ + ir/irhooks.h \ + ir/irarch.h \ + ir/pseudo_irg.h \ + ir/iredges.h \ + \ + opt/cfopt.h \ + opt/gvn_pre.h \ + opt/tailrec.h \ + opt/ldstopt.h \ + opt/reassoc.h \ + opt/loop_unrolling.h \ + opt/funccall.h \ + opt/opt_polymorphy.h \ + opt/ifconv.h \ + opt/return.h \ + opt/tropt.h \ + opt/scalar_replace.h \ + opt/escape_ana.h \ + opt/proc_cloning.h \ + opt/opt_confirms.h \ + opt/opt_frame.h \ + opt/opt_osr.h \ + \ + tr/entity.h \ + tr/mangle.h \ + tr/tpop.h \ + tr/type.h \ + tr/type_or_entity.h \ + tr/typegmod.h \ + tr/type_identify.h \ + tr/tr_inheritance.h \ + \ + arch/archop.h \ + \ + tv/tv.h \ + \ + lower/lower_intrinsics.h \ + lower/lower_calls.h \ + lower/lower_dw.h FIRM_SOURCE_DIR_HEADERS=$(addprefix $(SOURCE_DIR)/,$(FIRM_HEADERS)) @@ -112,31 +207,25 @@ Type_or_entity.h: Type_or_entity.class Dbginfo.java: - cp $(top_srcdir)/firmjni/aux/Dbginfo.java $(top_srcdir)/firmjni/aux/Dbginfo.c . + cp $(top_srcdir)/firmjni/auxilliary/Dbginfo.java $(top_srcdir)/firmjni/auxilliary/Dbginfo.c . Heapanal.java: - cp $(top_srcdir)/firmjni/aux/Heapanal.java $(top_srcdir)/firmjni/aux/Heapanal.c . + cp $(top_srcdir)/firmjni/auxilliary/Heapanal.java $(top_srcdir)/firmjni/auxilliary/Heapanal.c . %.h: %.class 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 auxilliary/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 +272,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 +284,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) - env CLASSPATH=$(FIRM_JNI_TOOLS_DIR)/crecoder.jar:$$CLASSPATH java crecoder/tools/jniBuilder/BuildJNI $(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