From e7d6206dc5709a4e201fb0f2fac53830730b47e4 Mon Sep 17 00:00:00 2001 From: verhaegs Date: Sat, 2 Oct 2004 16:44:36 +0000 Subject: [PATCH] * Define __CXREF__ preprocessor symbol when running cxref to generate the function references. * Be sure that the order of the source files of a module is kept the same when linking; even when arch specific versions of a file are present * add an modulename argument to the %build_archspecific macro. This will make sure that also in arch specific files LC_LIBDEFS_FILE can be used. git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@22434 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- config/make.tmpl | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/config/make.tmpl b/config/make.tmpl index 39ccf66372..1410aa76eb 100644 --- a/config/make.tmpl +++ b/config/make.tmpl @@ -110,7 +110,7 @@ #------------------------------------------------------------------------------ # Create the function reference file %(to) to %(from) -%define mkref_q cc=$(AROS_CC) cppflags="-E -C -dD" cflags=$(CFLAGS) from=$< to=$@ +%define mkref_q cc=$(AROS_CC) cppflags="-E -C -dD -D__CXREF__" cflags=$(CFLAGS) from=$< to=$@ @$(ECHO) "Generating ref for $(notdir %(from))..." @$(CXREF) -raw -CPP '%(cc) %(cppflags) %(cflags)' %(from) >%(to) 2>$(GENDIR)/cerrors @$(IF) $(TEST) -s %(to) ; \ @@ -726,9 +726,9 @@ BD_ENDFILE$(BDID) := $(BD_OBJDIR$(BDID))/$(BD_MODNAME$(BDID))_end BD_STARTOBJ$(BDID) := $(addsuffix .o,$(BD_STARTFILE$(BDID))) BD_ARCHOBJS$(BDID) := $(wildcard $(BD_OBJDIR$(BDID))/arch/*.o) BD_ARCHFILES$(BDID) := $(basename $(notdir $(BD_ARCHOBJS$(BDID)))) -BD_FILES$(BDID) := $(filter-out $(BD_ARCHFILES$(BDID)),$(BD_FILES$(BDID))) -BD_OBJS$(BDID) := $(addsuffix .o,$(addprefix $(BD_OBJDIR$(BDID))/,$(BD_FILES$(BDID)))) \ - $(BD_ARCHOBJS$(BDID)) +BD_NEWARCHFILES$(BDID):= $(filter-out $(BD_FILES$(BDID)),$(BD_ARCHFILES$(BDID))) +BD_OBJS$(BDID) := $(foreach f,$(BD_FILES$(BDID)),$(if $(filter $(f),$(BD_ARCHFILES$(BDID))),$(BD_OBJDIR$(BDID))/arch/$(f).o,$(BD_OBJDIR$(BDID))/$(f).o)) \ + $(addsuffix .o,$(addprefix $(BD_OBJDIR$(BDID))/arch/,$(BD_NEWARCHFILES$(BDID)))) BD_ENDOBJ$(BDID) := $(addsuffix .o,$(BD_ENDFILE$(BDID))) BD_DEPS$(BDID) := $(patsubst %.o,%.d,$(BD_OBJS$(BDID)) $(BD_STARTOBJ$(BDID)) $(BD_ENDOBJ$(BDID))) @@ -1389,7 +1389,7 @@ BD_OBJS$(BDID) := $(foreach icon, %(icons), %(dir)/$(icon).info) # - compiler: (host or target) specifies which compiler to use. By default # the target compiler is used %define build_archspecific files= asmfiles= mainmmake=/A maindir=/A arch=/A \ -cflags=$(CFLAGS) dflags= aflags=$(AFLAGS) compiler=target +cflags=$(CFLAGS) dflags= aflags=$(AFLAGS) compiler=target modulename= ifeq (%(files) %(asmfiles),) $(error no files or asmfiles given) @@ -1401,7 +1401,7 @@ endif #MM- %(mainmmake)-linklib : %(mainmmake)-$(ARCH)-$(CPU) %(mainmmake)-$(ARCH) %(mainmmake)-$(CPU) #MM- %(mainmmake)-kobj : %(mainmmake)-$(ARCH)-$(CPU) %(mainmmake)-$(ARCH) %(mainmmake)-$(CPU) -#MM %(mainmmake)-%(arch) : %(mainmmake)-%(arch)-setup +#MM %(mainmmake)-%(arch) : %(mainmmake)-%(arch)-setup %(mainmmake)-includes ifeq (%(arch),) $(error argument arch has to be non empty for the rule_compile_archspecific macro) @@ -1437,9 +1437,15 @@ endif ifeq (%(compiler),host) $(BD_COBJS$(BDID)) : TMP_CMD:=$(HOST_CC) endif +ifneq (%(modulename),) +$(BD_COBJS$(BDID)) : TMP_CFLAGS:=%(cflags) -I$(GENDIR)/%(maindir) \ + --include $(GENDIR)/%(maindir)/%(modulename)_deflibdefs.h +else +$(BD_COBJS$(BDID)) : TMP_CFLAGS:=%(cflags) +endif ifeq ($(TARGET),%(mainmmake)-%(arch)) $(BD_OBJDIR$(BDID))/%.o : %.c - %compile_q opt=%(cflags) cmd=$(TMP_CMD) + %compile_q opt=$(TMP_CFLAGS) cmd=$(TMP_CMD) endif ifeq (%(dflags),) -- 2.11.4.GIT