mirror of https://github.com/deadw00d/AROS.git
154 lines
4.6 KiB
Plaintext
154 lines
4.6 KiB
Plaintext
# $Id$
|
|
|
|
include $(SRCDIR)/config/aros.cfg
|
|
include $(TOP)/$(CURDIR)/geninc.cfg
|
|
|
|
INCSUBDIRS := aros \
|
|
aros/preprocessor \
|
|
aros/preprocessor/variadic \
|
|
aros/preprocessor/array \
|
|
aros/types \
|
|
asm \
|
|
bluetooth \
|
|
c++ \
|
|
c++/exec \
|
|
clib \
|
|
datatypes \
|
|
defines \
|
|
devices \
|
|
diskfont \
|
|
dos \
|
|
exec \
|
|
gadgets \
|
|
graphics \
|
|
hardware \
|
|
hardware/cpu \
|
|
hardware/efi \
|
|
hardware/pic \
|
|
hidd \
|
|
inline \
|
|
intuition \
|
|
irda \
|
|
libcore \
|
|
libraries \
|
|
midi \
|
|
pragmas \
|
|
prefs \
|
|
proto \
|
|
resources \
|
|
rexx \
|
|
SDI \
|
|
scsi \
|
|
utility \
|
|
workbench
|
|
|
|
# clib & proto are handled above.
|
|
#INCEMPTYDIRS := defines \
|
|
# inline
|
|
|
|
INCLUDES_BASE := $(foreach d,$(addprefix $(SRCDIR)/$(CURDIR)/,$(INCSUBDIRS)),$(wildcard $(d)/*.h) $(wildcard $(d)/*.hpp)) $(wildcard *.h)
|
|
INCLUDES := $(subst $(SRCDIR)/$(CURDIR)/,,$(INCLUDES_BASE))
|
|
ARCHINCDIR := $(SRCDIR)/arch/$(CPU)-$(ARCH)/include/
|
|
ARCHFAMILYINCDIR := $(SRCDIR)/arch/$(CPU)-$(FAMILY)/include/
|
|
ARCH_INCLUDES := $(subst $(ARCHINCDIR),,$(foreach d,$(addprefix $(ARCHINCDIR),$(INCSUBDIRS)),$(wildcard $(d)/*.h) $(wildcard $(d)/*.hpp)))
|
|
ARCHFAMILY_INCLUDES := $(subst $(ARCHFAMILYINCDIR),,$(foreach d,$(addprefix $(ARCHFAMILYINCDIR),$(INCSUBDIRS)),$(wildcard $(d)/*.h) $(wildcard $(d)/*.hpp)))
|
|
# ARCH > FAMILY > GENERIC
|
|
INCLUDES := $(filter-out $(strip $(ARCH_INCLUDES) $(filter-out $(ARCH_INCLUDES),$(ARCHFAMILY_INCLUDES))),$(INCLUDES))
|
|
DEST_INCLUDES := $(foreach f,$(INCLUDES),$(AROS_INCLUDES)/$(f))
|
|
GEN_INCLUDES := $(foreach f,$(INCLUDES),$(GENINCDIR)/$(f))
|
|
INCL_DIRS := $(foreach dir,$(INCSUBDIRS) $(INCEMPTYDIRS),$(AROS_INCLUDES)/$(dir)) \
|
|
$(foreach dir,$(INCSUBDIRS) $(INCEMPTYDIRS),$(GENINCDIR)/$(dir))
|
|
|
|
#MM- includes : includes-generate
|
|
#MM- includes-generate : includes-generate-deps
|
|
#MM- includes-generate-deps : includes-copy includes-$(ARCH)-$(CPU) includes-$(FAMILY)-$(CPU)
|
|
#MM- includes-copy : compiler-includes includes-copy-$(ARCH)-$(CPU) includes-copy-$(FAMILY)-$(CPU)
|
|
|
|
#MM- includes-$(ARCH)-$(CPU) : \
|
|
#MM includes-copy-$(ARCH)-$(CPU) \
|
|
#MM includes-generate-$(ARCH)-$(CPU)
|
|
#MM- includes-generate-$(ARCH)-$(CPU) : includes-copy-$(ARCH)-$(CPU)
|
|
#MM- includes-copy-$(ARCH)-$(CPU) :
|
|
|
|
#MM- includes-$(FAMILY)-$(CPU) : \
|
|
#MM includes-copy-$(FAMILY)-$(CPU) \
|
|
#MM includes-generate-$(FAMILY)-$(CPU)
|
|
#MM- includes-generate-$(FAMILY)-$(CPU) : includes-copy-$(FAMILY)-$(CPU)
|
|
#MM- includes-copy-$(FAMILY)-$(CPU) :
|
|
|
|
#MM
|
|
compiler-includes : setup $(DEST_INCLUDES) $(GEN_INCLUDES) includes-execbase_h
|
|
|
|
# execbase is copied seperately, since on SMP builds we need to
|
|
# remove some fields
|
|
|
|
$(GENINCDIR)/exec/execbase.h : $(SRCDIR)/$(CURDIR)/exec/execbase.inc
|
|
@$(ECHO) "Copying C includes to $(GENINCDIR)..."
|
|
@$(CP) $< $@
|
|
ifneq ($(strip $(SMPREADY)),"")
|
|
$(SED) -i -e 's/.*ThisTask;.*/ IPTR Private1;/' -e 's/.*Quantum;.*/ WORD Private2;/' -e 's/.*Elapsed;.*/ WORD Private3;/' -e 's/.*IDNestCnt;.*/ UBYTE Private4;/' -e 's/.*TDNestCnt;.*/ UBYTE Private5;/' $@
|
|
endif
|
|
|
|
$(AROS_INCLUDES)/exec/execbase.h : $(GENINCDIR)/exec/execbase.h
|
|
@$(ECHO) "Copying C includes to $(AROS_INCLUDES)..."
|
|
@$(CP) $< $@
|
|
|
|
#MM
|
|
includes-execbase_h : $(AROS_INCLUDES)/exec/execbase.h
|
|
|
|
.PHONY : includes-execbase_h
|
|
|
|
# normal include copy routines
|
|
|
|
$(AROS_INCLUDES)/%.h : $(SRCDIR)/$(CURDIR)/%.h
|
|
@$(ECHO) "Copying C includes to $(AROS_INCLUDES)..."
|
|
@$(CP) $< $@
|
|
|
|
$(GENINCDIR)/%.h : $(SRCDIR)/$(CURDIR)/%.h
|
|
@$(ECHO) "Copying C includes to $(GENINCDIR)..."
|
|
@$(CP) $< $@
|
|
|
|
$(AROS_INCLUDES)/%.hpp : $(SRCDIR)/$(CURDIR)/%.hpp
|
|
@$(ECHO) "Copying C++ includes to $(AROS_INCLUDES)..."
|
|
@$(CP) $< $@
|
|
|
|
$(GENINCDIR)/%.hpp : $(SRCDIR)/$(CURDIR)/%.hpp
|
|
@$(ECHO) "Copying C++ includes to $(GENINCDIR)..."
|
|
@$(CP) $< $@
|
|
|
|
setup : $(INCL_DIRS)
|
|
|
|
$(INCL_DIRS) :
|
|
@$(ECHO) "Creating $@..."
|
|
@$(MKDIR) $@
|
|
|
|
#MM
|
|
includes-asm_h-$(CPU) : $(GENINCDIR)/aros/$(CPU)/asm.h
|
|
|
|
.PHONY : includes-asm_h-$(CPU)
|
|
|
|
ifeq ($(AROS_TOOLCHAIN),gnu)
|
|
GREPTOKEN := ".asciz"
|
|
else
|
|
GREPTOKEN := ".ascii"
|
|
endif
|
|
|
|
$(OBJDIR)/asm.s : $(SRCDIR)/$(CURDIR)/asm.c | $(OBJDIR)
|
|
@$(ECHO) "Compiling $<..."
|
|
@$(TARGET_CC) $(TARGET_SYSROOT) $(CFLAGS) $(PRIV_EXEC_INCLUDES) $(PRIV_KERNEL_INCLUDES) -I$(AROS_PRIVATE_INCLUDES) -I$(AROS_CONFIG_INCLUDES) -S $< -o $@
|
|
|
|
$(GENINCDIR)/aros/$(CPU)/asm.h : $(OBJDIR)/asm.s | $(GENINCDIR)/aros/$(AROS_TARGET_CPU)
|
|
@$(ECHO) Generating $@...
|
|
@grep $(GREPTOKEN) $< | cut -d'"' -f2 | sed 's/\$$//g' >$@
|
|
|
|
$(OBJDIR) :
|
|
@$(MKDIR) $@
|
|
|
|
$(GENINCDIR)/aros/$(CPU) :
|
|
@$(MKDIR) $@
|
|
|
|
#MM
|
|
clean :
|
|
-$(RM) $(AROS_INCLUDES) $(GENINCDIR)
|
|
|