X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=firmjni%2FMakefile.in;h=70289bb6b2f7a26ced14ba368a5e528d7f40d35d;hb=d2dc2564b47d9c113d7e6e598574e9733627fcca;hp=fd156f6fb63598d0ecf3ec7928f73a3913fc474d;hpb=711c0350d30274a14131a8b3d65a2c9e602228c9;p=libfirm diff --git a/firmjni/Makefile.in b/firmjni/Makefile.in index fd156f6fb..70289bb6b 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,14 +50,30 @@ 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$(top_srcdir)/ir/lower \ + -I$(topdir)/ir/config \ + -I$(topdir) -LDFLAGS += -I$(topdir) +LDFLAGS += -L$(libdir) -ifeq ($enable_heapanal,yes) -LDFLAGS += -L$(libdir) -lfirmlower -labor +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 + + FIRM_HEADERS=$(notdir $(FIRM_PATH_HEADERS)) MEMBERS=$(subst .h,.m,$(shell echo $(FIRM_HEADERS)|$(SHELL_TOUPPER))) MEMBERS += $(IMPL_MEMBERS) @@ -65,7 +84,7 @@ 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 \ @@ -73,7 +92,8 @@ FIRM_PATH_HEADERS=common/firm.h common/firm_common.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)) @@ -117,31 +137,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 $@ - + $(CC) $(CPPFLAGS) -c $(@:.o=.c) -o $@ -ifeq ($(enable_heapanal),yes) -HEAPANALLIB = -lheapanal -else -HEAPANALLIB = -endif -# We need firmlower and abor for heap analysis stuff, wich is called from aux/Heapanal.java -# BY the way, what is sw/lib/ can this be removed??? +# 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 -lxml2 -L.. $(HEAPANALLIB) $(LDFLAGS) -liberty -L../../sw/lib + $(CC) -shared -fPIC -o $(LIBNAME) *.o -lfirm -L.. $(LDFLAGS) install: cp libfirmjni.so $(libdir) # mkdir $(javadir) @@ -188,7 +202,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 @@ -200,7 +214,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