# # Project: libFIRM # File name: Makefile.in # Purpose: Top level Makefile # Author: Till Riedel # Modified by: # Created: # CVS-ID: $Id$ # Copyright: (c) 2002-2003 Universität Karlsruhe # Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. # # top directory of the source tree top_srcdir := @top_srcdir@ # directory with the sources for this directory srcdir := @srcdir@ # top directory of the configured tree topdir := . # subdirectory under topdir subdir := . # do we want statistics enable_statistics := @enable_statistics@ # do we want external description of effects enable_external_effects := @enable_external_effects@ # do we want to use the libcore for debug and ADT support enable_libcore := @enable_libcore@ enable_backend := @enable_backend@ backends := @BACKENDS@ LIBCORE_CFLAGS = @LIBCORE_CFLAGS@ LIBCORE_LIBS = @LIBCORE_LFLAGS@ # suck in values for the linking procedure: LDFLAGS = @LDFLAGS@ $(LIBCORE_CFLAGS) LIBS = @LIBS@ $(LIBCORE_LIBS) # plugin subdirectories plugin_subdirs := @plugin_subdirs@ build_subdirs := ir/adt ir/net ir/debug ir/tv ir/common ir/ident ir/ir \ ir/opt ir/tr ir/ana ir/stat ir/arch ir/lower include/libfirm \ $(plugin_subdirs) ifeq ($(enable_external_effects),yes) build_subdirs += ir/external endif ifeq ($(enable_backend),yes) build_subdirs += ir/be $(addprefix ir/be/, $(backends)) endif build_add_lib := libfirm_xmalloc.a subdirs := $(build_subdirs) ir/config SOURCES := Makefile.in MakeRules.in MakeTargets\ aclocal.m4 config.h.in\ config.guess config.sub configure.in \ stamp-h.in install-sh README configure SHARED_LIB = libfirm.so INSTALL_LIBS = libfirm.a $(build_add_lib) GENFILES := stamp-h config.log config.cache # config.status config.h.in $(srcdir)/stamp-h.in include $(topdir)/MakeRules XOFILES += $(addsuffix /subdir.o, $(build_subdirs)) include $(top_srcdir)/MakeTargets # add target firmjni if configured with --enable-firmjni all: firm firm: libfirm.a $(build_add_lib) shared: $(SHARED_LIB) $(OFILES): config.h Makefile $(XOFILES): subdir_all libfirm.a: $(XOFILES) $(OFILES) $(AR) $(ARFLAGS) $@.new $^ mv -f $@.new $@ $(RANLIB) $@ libfirm_xmalloc.a: subdir_all ir/adt/xmalloc.o $(AR) $(ARFLAGS) $@.new ir/adt/xmalloc.o mv -f $@.new $@ # dont know about xml here libfirm.so: $(XOFILES) ld -Bshareable -o ./libfirm.so $(XOFILES) -lm $(LDFLAGS) $(LIBS) testprograms: libfirm.a $(MAKE) -C testprograms firmjni:: libfirm.a $(MAKE) -C firmjni # gernerate program documentation .PHONY: autodoc autodoc: $(DOXYFILE) $(DOXYGEN) $(DOXYFILE) #${srcdir}/configure: configure.in aclocal.m4 $(srcdir)/configure: configure.in cd $(srcdir) && autoconf # autoheader might not change config.h.in, so touch a stamp file. $(srcdir)/config.h.in: stamp-h.in #${srcdir2/stamp-h.in: configure.in aclocal.m4 acconfig.h \ $(srcdir)/stamp-h.in: configure.in cd $(srcdir) && autoheader echo timestamp > $(srcdir)/stamp-h.in config.h: stamp-h stamp-h: config.h.in config.status ./config.status config.status: configure ./config.status --recheck # add target test-firmjni if configured with --enable-firmjni test:: $(MAKE) -C testprograms test; test-firmjni:: $(MAKE) -C firmjni test; test-reference:: $(MAKE) -C testprograms reference; test-clean: $(MAKE) -C testprograms realclean $(MAKE) -C firmjni/testprograms clean;