X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=Makefile;h=909d5c73856263e2edc7ec309397ee11239ef93c;hb=0ba6d24830420634f69caa4c0b947bbdd8955346;hp=e66167012ca0d20b3b9f370a0322671072d48f97;hpb=2fe92b2ba842a1ad390e0f993776d9867bf8aba3;p=libfirm diff --git a/Makefile b/Makefile index e66167012..909d5c738 100644 --- a/Makefile +++ b/Makefile @@ -20,15 +20,15 @@ Q ?= @ CC ?= cc LINK ?= $(CC) -AR ?= ar ru -RANLIB ?= ranlib +AR ?= ar DLLEXT ?= .so # Variants -CFLAGS_debug = -O0 -g3 -DDEBUG_libfirm -CFLAGS_profile = -O3 -pg -DNDEBUG -fno-inline +CFLAGS_all = -fPIC +CFLAGS_debug = $(CFLAGS_all) -O0 -g3 -DDEBUG_libfirm +CFLAGS_profile = $(CFLAGS_all) -O3 -pg -DNDEBUG -fno-inline LINKFLAGS_profile = -pg -CFLAGS_optimize = -O3 -DNDEBUG +CFLAGS_optimize = $(CFLAGS_all) -O3 -DNDEBUG # General flags CFLAGS += $(CFLAGS_$(variant)) @@ -36,6 +36,14 @@ CFLAGS += -Wall -W -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wwrite-s LINKFLAGS += $(LINKFLAGS_$(variant)) VPATH = $(srcdir) +REVISION ?= $(shell git describe --abbrev=40 --always --dirty --match '') + +# Update revision.h if necessary +UNUSED := $(shell \ + REV="\#define libfirm_VERSION_REVISION \"$(REVISION)\""; \ + echo "$$REV" | cmp -s - firm_revision.h 2> /dev/null || echo "$$REV" > firm_revision.h \ +) + .PHONY: all all: firm @@ -51,8 +59,6 @@ $(srcdir)config.h: $(Q)echo "#define libfirm_VERSION_MAJOR 1" >> $@ $(Q)echo "#define libfirm_VERSION_MICRO 0" >> $@ $(Q)echo "#define libfirm_VERSION_MINOR 20" >> $@ - $(Q)echo "#define HAVE_LONG_DOUBLE 1" >> $@ - $(Q)echo "#define FIRM_STATISTICS" >> $@ # libFirm libfirm_DIRS := \ @@ -68,6 +74,7 @@ libfirm_DIRS := \ ir/ir \ ir/lower \ ir/libcore \ + ir/lpp \ ir/opt \ ir/st \ ir/stat \ @@ -87,9 +94,9 @@ firm: $(libfirm_dll) backends = amd64 arm ia32 sparc TEMPLATE EMITTER_GENERATOR = $(srcdir)ir/be/scripts/generate_emitter.pl +EMITTER_GENERATOR2 = $(srcdir)ir/be/scripts/generate_emitter_new.pl REGALLOC_IF_GENERATOR = $(srcdir)ir/be/scripts/generate_regalloc_if.pl OPCODES_GENERATOR = $(srcdir)ir/be/scripts/generate_new_opcodes.pl -MACHINE_GENERATOR = $(srcdir)ir/be/scripts/generate_machine.pl define backend_template $(1)_SOURCES = $$(wildcard ir/be/$(1)/*.c) @@ -98,7 +105,7 @@ $(1)_GEN_HEADERS = $(1)_SPEC = ir/be/$(1)/$(1)_spec.pl -$$(srcdir)ir/be/$(1)/gen_$(1)_emitter.h $$(srcdir)ir/be/$(1)/gen_$(1)_emitter.c: $$($(1)_SPEC) $$(EMITTER_GENERATOR) +$$(srcdir)ir/be/$(1)/gen_$(1)_emitter.h $$(srcdir)ir/be/$(1)/gen_$(1)_emitter.c: $$($(1)_SPEC) $$(EMITTER_GENERATOR) $(EMITTER_GENERATOR2) @echo GEN $$@ $(Q)$$(EMITTER_GENERATOR) $$($(1)_SPEC) $$(srcdir)ir/be/$(1) $(1)_SOURCES += ir/be/$(1)/gen_$(1)_emitter.c @@ -110,12 +117,6 @@ $$(srcdir)ir/be/$(1)/gen_$(1)_regalloc_if.h $$(srcdir)ir/be/$(1)/gen_$(1)_regall $(1)_SOURCES += ir/be/$(1)/gen_$(1)_regalloc_if.c $(1)_GEN_HEADERS += ir/be/$(1)/gen_$(1)_regalloc_if.h -$$(srcdir)ir/be/$(1)/gen_$(1)_machine.h $$(srcdir)ir/be/$(1)/gen_$(1)_machine.c: $$($(1)_SPEC) $$(MACHINE_GENERATOR) - @echo GEN $$@ - $(Q)$$(MACHINE_GENERATOR) $$($(1)_SPEC) $$(srcdir)ir/be/$(1) -$(1)_SOURCES += ir/be/$(1)/gen_$(1)_machine.c -$(1)_GEN_HEADERS += ir/be/$(1)/gen_$(1)_machine.h - $$(srcdir)ir/be/$(1)/gen_$(1)_new_nodes.h $$(srcdir)ir/be/$(1)/gen_$(1)_new_nodes.c.inl: $$($(1)_SPEC) $$(OPCODES_GENERATOR) @echo GEN $$@ $(Q)$$(OPCODES_GENERATOR) $$($(1)_SPEC) $$(srcdir)ir/be/$(1) @@ -149,10 +150,7 @@ $(IR_SPEC_GENERATED_FILES): $(IR_SPEC_GENERATOR) $(IR_SPEC) scripts/spec_util.py $(Q)$(IR_SPEC_GENERATOR) $(IR_SPEC) ir/ir IR_IO_GENERATOR := scripts/gen_ir_io.py -IR_IO_GENERATED_FILES := \ - ir/ir/gen_irio_import.inl \ - ir/ir/gen_irio_export.inl \ - ir/ir/gen_irio_lex.inl +IR_IO_GENERATED_FILES := ir/ir/gen_irio.inl $(IR_IO_GENERATED_FILES): $(IR_IO_GENERATOR) $(IR_SPEC) scripts/spec_util.py @echo GEN $@ @@ -166,9 +164,7 @@ libfirm_DEPS = $(libfirm_OBJECTS:%.o=%.d) $(libfirm_a): $(libfirm_OBJECTS) @echo AR $@ - $(Q)$(AR) ru $@ $^ - @echo RANLIB $@ - $(Q)$(RANLIB) $@ + $(Q)$(AR) -cru $@ $^ $(libfirm_dll): $(libfirm_OBJECTS) @echo LINK $@ @@ -185,3 +181,4 @@ clean: @echo CLEAN $(Q)rm -f $(libfirm_OBJECTS) $(Q)rm -f $(libfirm_TARGET) + $(Q)rm -f $(shell find ir/ -name "gen_*.[ch]")